Reapply "Merge branch 'main' into DevelopCkutls"
This reverts commit 26ee6ded22.
363
.gitignore
vendored
Normal file
@@ -0,0 +1,363 @@
|
||||
## Ignore Visual Studio temporary files, build results, and
|
||||
## files generated by popular Visual Studio add-ons.
|
||||
##
|
||||
## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
|
||||
|
||||
# User-specific files
|
||||
*.rsuser
|
||||
*.suo
|
||||
*.user
|
||||
*.userosscache
|
||||
*.sln.docstates
|
||||
|
||||
# User-specific files (MonoDevelop/Xamarin Studio)
|
||||
*.userprefs
|
||||
|
||||
# Mono auto generated files
|
||||
mono_crash.*
|
||||
|
||||
# Build results
|
||||
[Dd]ebug/
|
||||
[Dd]ebugPublic/
|
||||
[Rr]elease/
|
||||
[Rr]eleases/
|
||||
x64/
|
||||
x86/
|
||||
[Ww][Ii][Nn]32/
|
||||
[Aa][Rr][Mm]/
|
||||
[Aa][Rr][Mm]64/
|
||||
bld/
|
||||
[Bb]in/
|
||||
[Oo]bj/
|
||||
[Oo]ut/
|
||||
[Ll]og/
|
||||
[Ll]ogs/
|
||||
|
||||
# Visual Studio 2015/2017 cache/options directory
|
||||
.vs/
|
||||
# Uncomment if you have tasks that create the project's static files in wwwroot
|
||||
#wwwroot/
|
||||
|
||||
# Visual Studio 2017 auto generated files
|
||||
Generated\ Files/
|
||||
|
||||
# MSTest test Results
|
||||
[Tt]est[Rr]esult*/
|
||||
[Bb]uild[Ll]og.*
|
||||
|
||||
# NUnit
|
||||
*.VisualState.xml
|
||||
TestResult.xml
|
||||
nunit-*.xml
|
||||
|
||||
# Build Results of an ATL Project
|
||||
[Dd]ebugPS/
|
||||
[Rr]eleasePS/
|
||||
dlldata.c
|
||||
|
||||
# Benchmark Results
|
||||
BenchmarkDotNet.Artifacts/
|
||||
|
||||
# .NET Core
|
||||
project.lock.json
|
||||
project.fragment.lock.json
|
||||
artifacts/
|
||||
|
||||
# ASP.NET Scaffolding
|
||||
ScaffoldingReadMe.txt
|
||||
|
||||
# StyleCop
|
||||
StyleCopReport.xml
|
||||
|
||||
# Files built by Visual Studio
|
||||
*_i.c
|
||||
*_p.c
|
||||
*_h.h
|
||||
*.ilk
|
||||
*.meta
|
||||
*.obj
|
||||
*.iobj
|
||||
*.pch
|
||||
*.pdb
|
||||
*.ipdb
|
||||
*.pgc
|
||||
*.pgd
|
||||
*.rsp
|
||||
*.sbr
|
||||
*.tlb
|
||||
*.tli
|
||||
*.tlh
|
||||
*.tmp
|
||||
*.tmp_proj
|
||||
*_wpftmp.csproj
|
||||
*.log
|
||||
*.vspscc
|
||||
*.vssscc
|
||||
.builds
|
||||
*.pidb
|
||||
*.svclog
|
||||
*.scc
|
||||
|
||||
# Chutzpah Test files
|
||||
_Chutzpah*
|
||||
|
||||
# Visual C++ cache files
|
||||
ipch/
|
||||
*.aps
|
||||
*.ncb
|
||||
*.opendb
|
||||
*.opensdf
|
||||
*.sdf
|
||||
*.cachefile
|
||||
*.VC.db
|
||||
*.VC.VC.opendb
|
||||
|
||||
# Visual Studio profiler
|
||||
*.psess
|
||||
*.vsp
|
||||
*.vspx
|
||||
*.sap
|
||||
|
||||
# Visual Studio Trace Files
|
||||
*.e2e
|
||||
|
||||
# TFS 2012 Local Workspace
|
||||
$tf/
|
||||
|
||||
# Guidance Automation Toolkit
|
||||
*.gpState
|
||||
|
||||
# ReSharper is a .NET coding add-in
|
||||
_ReSharper*/
|
||||
*.[Rr]e[Ss]harper
|
||||
*.DotSettings.user
|
||||
|
||||
# TeamCity is a build add-in
|
||||
_TeamCity*
|
||||
|
||||
# DotCover is a Code Coverage Tool
|
||||
*.dotCover
|
||||
|
||||
# AxoCover is a Code Coverage Tool
|
||||
.axoCover/*
|
||||
!.axoCover/settings.json
|
||||
|
||||
# Coverlet is a free, cross platform Code Coverage Tool
|
||||
coverage*.json
|
||||
coverage*.xml
|
||||
coverage*.info
|
||||
|
||||
# Visual Studio code coverage results
|
||||
*.coverage
|
||||
*.coveragexml
|
||||
|
||||
# NCrunch
|
||||
_NCrunch_*
|
||||
.*crunch*.local.xml
|
||||
nCrunchTemp_*
|
||||
|
||||
# MightyMoose
|
||||
*.mm.*
|
||||
AutoTest.Net/
|
||||
|
||||
# Web workbench (sass)
|
||||
.sass-cache/
|
||||
|
||||
# Installshield output folder
|
||||
[Ee]xpress/
|
||||
|
||||
# DocProject is a documentation generator add-in
|
||||
DocProject/buildhelp/
|
||||
DocProject/Help/*.HxT
|
||||
DocProject/Help/*.HxC
|
||||
DocProject/Help/*.hhc
|
||||
DocProject/Help/*.hhk
|
||||
DocProject/Help/*.hhp
|
||||
DocProject/Help/Html2
|
||||
DocProject/Help/html
|
||||
|
||||
# Click-Once directory
|
||||
publish/
|
||||
|
||||
# Publish Web Output
|
||||
*.[Pp]ublish.xml
|
||||
*.azurePubxml
|
||||
# Note: Comment the next line if you want to checkin your web deploy settings,
|
||||
# but database connection strings (with potential passwords) will be unencrypted
|
||||
*.pubxml
|
||||
*.publishproj
|
||||
|
||||
# Microsoft Azure Web App publish settings. Comment the next line if you want to
|
||||
# checkin your Azure Web App publish settings, but sensitive information contained
|
||||
# in these scripts will be unencrypted
|
||||
PublishScripts/
|
||||
|
||||
# NuGet Packages
|
||||
*.nupkg
|
||||
# NuGet Symbol Packages
|
||||
*.snupkg
|
||||
# The packages folder can be ignored because of Package Restore
|
||||
**/[Pp]ackages/*
|
||||
# except build/, which is used as an MSBuild target.
|
||||
!**/[Pp]ackages/build/
|
||||
# Uncomment if necessary however generally it will be regenerated when needed
|
||||
#!**/[Pp]ackages/repositories.config
|
||||
# NuGet v3's project.json files produces more ignorable files
|
||||
*.nuget.props
|
||||
*.nuget.targets
|
||||
|
||||
# Microsoft Azure Build Output
|
||||
csx/
|
||||
*.build.csdef
|
||||
|
||||
# Microsoft Azure Emulator
|
||||
ecf/
|
||||
rcf/
|
||||
|
||||
# Windows Store app package directories and files
|
||||
AppPackages/
|
||||
BundleArtifacts/
|
||||
Package.StoreAssociation.xml
|
||||
_pkginfo.txt
|
||||
*.appx
|
||||
*.appxbundle
|
||||
*.appxupload
|
||||
|
||||
# Visual Studio cache files
|
||||
# files ending in .cache can be ignored
|
||||
*.[Cc]ache
|
||||
# but keep track of directories ending in .cache
|
||||
!?*.[Cc]ache/
|
||||
|
||||
# Others
|
||||
ClientBin/
|
||||
~$*
|
||||
*~
|
||||
*.dbmdl
|
||||
*.dbproj.schemaview
|
||||
*.jfm
|
||||
*.pfx
|
||||
*.publishsettings
|
||||
orleans.codegen.cs
|
||||
|
||||
# Including strong name files can present a security risk
|
||||
# (https://github.com/github/gitignore/pull/2483#issue-259490424)
|
||||
#*.snk
|
||||
|
||||
# Since there are multiple workflows, uncomment next line to ignore bower_components
|
||||
# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
|
||||
#bower_components/
|
||||
|
||||
# RIA/Silverlight projects
|
||||
Generated_Code/
|
||||
|
||||
# Backup & report files from converting an old project file
|
||||
# to a newer Visual Studio version. Backup files are not needed,
|
||||
# because we have git ;-)
|
||||
_UpgradeReport_Files/
|
||||
Backup*/
|
||||
UpgradeLog*.XML
|
||||
UpgradeLog*.htm
|
||||
ServiceFabricBackup/
|
||||
*.rptproj.bak
|
||||
|
||||
# SQL Server files
|
||||
*.mdf
|
||||
*.ldf
|
||||
*.ndf
|
||||
|
||||
# Business Intelligence projects
|
||||
*.rdl.data
|
||||
*.bim.layout
|
||||
*.bim_*.settings
|
||||
*.rptproj.rsuser
|
||||
*- [Bb]ackup.rdl
|
||||
*- [Bb]ackup ([0-9]).rdl
|
||||
*- [Bb]ackup ([0-9][0-9]).rdl
|
||||
|
||||
# Microsoft Fakes
|
||||
FakesAssemblies/
|
||||
|
||||
# GhostDoc plugin setting file
|
||||
*.GhostDoc.xml
|
||||
|
||||
# Node.js Tools for Visual Studio
|
||||
.ntvs_analysis.dat
|
||||
node_modules/
|
||||
|
||||
# Visual Studio 6 build log
|
||||
*.plg
|
||||
|
||||
# Visual Studio 6 workspace options file
|
||||
*.opt
|
||||
|
||||
# Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
|
||||
*.vbw
|
||||
|
||||
# Visual Studio LightSwitch build output
|
||||
**/*.HTMLClient/GeneratedArtifacts
|
||||
**/*.DesktopClient/GeneratedArtifacts
|
||||
**/*.DesktopClient/ModelManifest.xml
|
||||
**/*.Server/GeneratedArtifacts
|
||||
**/*.Server/ModelManifest.xml
|
||||
_Pvt_Extensions
|
||||
|
||||
# Paket dependency manager
|
||||
.paket/paket.exe
|
||||
paket-files/
|
||||
|
||||
# FAKE - F# Make
|
||||
.fake/
|
||||
|
||||
# CodeRush personal settings
|
||||
.cr/personal
|
||||
|
||||
# Python Tools for Visual Studio (PTVS)
|
||||
__pycache__/
|
||||
*.pyc
|
||||
|
||||
# Cake - Uncomment if you are using it
|
||||
# tools/**
|
||||
# !tools/packages.config
|
||||
|
||||
# Tabs Studio
|
||||
*.tss
|
||||
|
||||
# Telerik's JustMock configuration file
|
||||
*.jmconfig
|
||||
|
||||
# BizTalk build output
|
||||
*.btp.cs
|
||||
*.btm.cs
|
||||
*.odx.cs
|
||||
*.xsd.cs
|
||||
|
||||
# OpenCover UI analysis results
|
||||
OpenCover/
|
||||
|
||||
# Azure Stream Analytics local run output
|
||||
ASALocalRun/
|
||||
|
||||
# MSBuild Binary and Structured Log
|
||||
*.binlog
|
||||
|
||||
# NVidia Nsight GPU debugger configuration file
|
||||
*.nvuser
|
||||
|
||||
# MFractors (Xamarin productivity tool) working folder
|
||||
.mfractor/
|
||||
|
||||
# Local History for Visual Studio
|
||||
.localhistory/
|
||||
|
||||
# BeatPulse healthcheck temp database
|
||||
healthchecksdb
|
||||
|
||||
# Backup folder for Package Reference Convert tool in Visual Studio 2017
|
||||
MigrationBackup/
|
||||
|
||||
# Ionide (cross platform F# VS Code tools) working folder
|
||||
.ionide/
|
||||
|
||||
# Fody - auto-generated XML schema
|
||||
FodyWeavers.xsd
|
||||
@@ -39,6 +39,7 @@
|
||||
|
||||
[Вдохновление](https://cs.fail/en/)
|
||||
|
||||
|
||||
## Наша Команда
|
||||
|
||||

|
||||

|
||||
|
||||
@@ -9,11 +9,33 @@
|
||||
display: flex;
|
||||
align-items: center;
|
||||
flex-direction: column;
|
||||
margin-top: 12%;
|
||||
}
|
||||
|
||||
.menu__content--jackpot-icon{
|
||||
width: 16vh;
|
||||
height: -4vh;
|
||||
margin-left: -5px;
|
||||
transition: 250ms;
|
||||
width: 125%;
|
||||
height: 125%;
|
||||
}
|
||||
|
||||
.menu__content--jackpot-icon:hover {
|
||||
margin-left: -15px;
|
||||
width: 175%;
|
||||
height: 175%;
|
||||
}
|
||||
|
||||
.menu__content--chest-icon {
|
||||
margin-left: -1px;
|
||||
transition: 250ms;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.menu__content--chest-icon:hover {
|
||||
margin-left: -5px;
|
||||
height: 125%;
|
||||
width: 125%;
|
||||
}
|
||||
|
||||
.menu__btn--home {
|
||||
@@ -24,6 +46,7 @@
|
||||
display: flex;
|
||||
align-items: center;
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
}
|
||||
.fotosloti {
|
||||
display: flex;
|
||||
@@ -54,11 +77,29 @@
|
||||
}
|
||||
|
||||
.menu__content--cruch-icon {
|
||||
margin-left: 6px
|
||||
margin-left: 6px;
|
||||
transition: 250ms;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.menu__content--cruch-icon:hover {
|
||||
margin-left: 0px;
|
||||
width: 125%;
|
||||
height: 125%;
|
||||
}
|
||||
|
||||
.menu__content--bomb-icon {
|
||||
margin-left: 6px
|
||||
margin-left: 6px;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
transition: 250ms;
|
||||
}
|
||||
|
||||
.menu__content--bomb-icon:hover {
|
||||
margin-left: 0px;
|
||||
width: 125%;
|
||||
height: 125%;
|
||||
}
|
||||
|
||||
.menu__content--gamemodes {
|
||||
@@ -76,8 +117,6 @@
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
text-align: center;
|
||||
max-width: 100%;
|
||||
max-height: 100%;
|
||||
}
|
||||
|
||||
.menu__btn--settings {
|
||||
|
||||
@@ -24,6 +24,11 @@
|
||||
font-weight: 700;
|
||||
font-size: 18px;
|
||||
margin-right: 3em;
|
||||
transition: 250ms;
|
||||
}
|
||||
|
||||
.header__nav nav a:hover {
|
||||
color: #EF4444;
|
||||
}
|
||||
|
||||
.header__nav--now {
|
||||
@@ -84,6 +89,7 @@
|
||||
padding: 20px 23px 20px 23px;
|
||||
text-decoration: none;
|
||||
margin-left: -15%;
|
||||
transition: 200ms;
|
||||
}
|
||||
|
||||
.header__auth--discord {
|
||||
|
||||
@@ -53,6 +53,12 @@
|
||||
left: 10%;
|
||||
}
|
||||
|
||||
.referal-icon-diamond img {
|
||||
position: absolute;
|
||||
top: 35.5%;
|
||||
left: 10%;
|
||||
}
|
||||
|
||||
.deposit-icon__input .promo-input,
|
||||
.deposit-icon__input .deposit-amount__input,
|
||||
.withdraw-input .with-input{
|
||||
|
||||
29
luckydiamond/src/assets/css/PagesStyles/BanPage.css
Normal file
@@ -0,0 +1,29 @@
|
||||
.banpage--body {
|
||||
background-color: rgb(17, 14, 32);
|
||||
background-image: linear-gradient(to right, rgba(255,0,0,0), rgba(255,0,0,1));
|
||||
padding: 0px;
|
||||
margin: 0;
|
||||
color: #fff;
|
||||
text-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25);
|
||||
font-family: Montserrat Alternates;
|
||||
font-size:25px;
|
||||
font-weight: 700;
|
||||
text-transform: uppercase;
|
||||
text-align: center;
|
||||
}
|
||||
.banpage--video {
|
||||
border-radius: 10px;
|
||||
}
|
||||
|
||||
.banpage--block {
|
||||
width: 50%;
|
||||
height: 100%;
|
||||
display: block;
|
||||
background-color: #ef4444;
|
||||
margin: auto;
|
||||
margin-top: 100px;
|
||||
padding-top: 50px;
|
||||
padding-bottom: 100px;
|
||||
border-radius: 10px;
|
||||
box-shadow: 12px 12px 2px 1px rgba(92, 12, 12, 0.2);
|
||||
}
|
||||
325
luckydiamond/src/assets/css/PagesStyles/games-pages/double.css
Normal file
@@ -0,0 +1,325 @@
|
||||
.bet-button {
|
||||
border: none;
|
||||
padding: 10px 20px;
|
||||
margin: 5px;
|
||||
border-radius: 10px;
|
||||
color: white;
|
||||
font-weight: bold;
|
||||
cursor: pointer;
|
||||
transition: transform 0.1s ease;
|
||||
outline: none;
|
||||
}
|
||||
|
||||
/* Цвета для кнопок */
|
||||
.bet-button.red {
|
||||
background-color: #863443;
|
||||
}
|
||||
|
||||
.bet-button.green {
|
||||
background-color: #2D4940;
|
||||
}
|
||||
|
||||
.bet-button.black {
|
||||
background-color: #202333;
|
||||
}
|
||||
|
||||
/* Стили для нажатой кнопки */
|
||||
.bet-button:active {
|
||||
transform: scale(0.95);
|
||||
/* Уменьшение при нажатии */
|
||||
}
|
||||
|
||||
.bet-button.active {
|
||||
opacity: 0.7;
|
||||
/* Пример изменения стиля активной кнопки */
|
||||
}
|
||||
|
||||
/* Можно добавить тени для кнопок, чтобы они выглядели объемнее */
|
||||
.bet-button {
|
||||
margin: 1.2% 0 0 5.8%;
|
||||
margin-bottom: 1vh;
|
||||
box-shadow: 0px 2px 5px rgba(0, 0, 0, 0.2);
|
||||
}
|
||||
|
||||
/* Стиль для тени при нажатии (опционально) */
|
||||
.bet-button:active {
|
||||
box-shadow: 0px 1px 3px rgba(0, 0, 0, 0.2);
|
||||
}
|
||||
|
||||
.double-start {
|
||||
z-index: 1;
|
||||
border-radius: 20px;
|
||||
background: #1D223E;
|
||||
box-shadow: 0px 4px 4px 0px rgba(0, 0, 0, 0.25);
|
||||
width: 42vh;
|
||||
height: 37vh;
|
||||
border: 1px solid #262C55;
|
||||
margin: 2.6%;
|
||||
margin-top: 0px;
|
||||
}
|
||||
|
||||
.double-game {
|
||||
z-index: 1;
|
||||
border-radius: 20px;
|
||||
width: 69%;
|
||||
height: 94%;
|
||||
}
|
||||
|
||||
.double-ui-component {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
background-color: #25325A;
|
||||
border-radius: 15px;
|
||||
/* padding: 10px 20px; */
|
||||
padding-right: 2vh;
|
||||
padding-bottom: 1vh;
|
||||
padding-top: 1vh;
|
||||
padding-left: 2vh;
|
||||
margin-bottom: 1vh;
|
||||
max-width: 300px;
|
||||
color: white;
|
||||
font-family: Arial, sans-serif;
|
||||
/* background: linear-gradient(to right, #1C213390 50%, #2F5139); */
|
||||
}
|
||||
|
||||
.double-ui-component-gradient {
|
||||
background: linear-gradient(to right, #1C213390 50%, #2F5139);
|
||||
}
|
||||
|
||||
/* .double-ui-component img {} */
|
||||
|
||||
.double-ui-component .double-username {
|
||||
flex-grow: 1;
|
||||
text-align: left;
|
||||
margin-left: 1vh;
|
||||
font-size: 18px;
|
||||
font-family: Montserrat;
|
||||
font-weight: bold;
|
||||
color: #515D83;
|
||||
}
|
||||
|
||||
.double-ui-component .double-score {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.double-score {
|
||||
font-size: 20px;
|
||||
font-family: Montserrat;
|
||||
font-weight: bold;
|
||||
color: #748985;
|
||||
}
|
||||
|
||||
.double-img-user {
|
||||
margin-top: 6px;
|
||||
}
|
||||
|
||||
.double-ui-component .double-score img {
|
||||
width: 3vh;
|
||||
height: 3vh;
|
||||
margin-left: 10px;
|
||||
}
|
||||
|
||||
.double-members-ingame-red {
|
||||
overflow-y: auto;
|
||||
background: linear-gradient(to bottom right,
|
||||
#A9373C,
|
||||
#1C2133 20%);
|
||||
z-index: 1;
|
||||
border: 2px solid #3B4260;
|
||||
border-radius: 15px;
|
||||
box-shadow: 0px 4px 4px 0px rgba(0, 0, 0, 0.25);
|
||||
margin-top: 1vh;
|
||||
width: 100%;
|
||||
height: 49vh;
|
||||
/* height: 94%; */
|
||||
padding: 2vh;
|
||||
}
|
||||
|
||||
.double-members-ingame-green {
|
||||
overflow-y: auto;
|
||||
background: linear-gradient(to bottom right,
|
||||
#345D3B,
|
||||
#1C2133 20%);
|
||||
z-index: 1;
|
||||
border: 2px solid #3B4260;
|
||||
border-radius: 15px;
|
||||
box-shadow: 0px 4px 4px 0px rgba(0, 0, 0, 0.25);
|
||||
margin-top: 1vh;
|
||||
width: 100%;
|
||||
height: 49vh;
|
||||
/* height: 94%; */
|
||||
padding: 2vh;
|
||||
}
|
||||
|
||||
.double-members-ingame-black {
|
||||
overflow-y: auto;
|
||||
background: linear-gradient(to bottom right,
|
||||
#1B1A1A,
|
||||
#1C2133 26%);
|
||||
z-index: 1;
|
||||
border: 2px solid #3B4260;
|
||||
border-radius: 15px;
|
||||
box-shadow: 0px 4px 4px 0px rgba(0, 0, 0, 0.25);
|
||||
margin-top: 1vh;
|
||||
margin-top: 1vh;
|
||||
width: 100%;
|
||||
/* height: 94%; */
|
||||
height: 49vh;
|
||||
padding: 2vh;
|
||||
}
|
||||
|
||||
.double-members-flex-container {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
color: white;
|
||||
margin-bottom: 2vh;
|
||||
}
|
||||
|
||||
.double-red-box {
|
||||
display: flex;
|
||||
align-items: baseline;
|
||||
font-size: 18px;
|
||||
font-family: Montserrat;
|
||||
font-weight: bold;
|
||||
color: #B64848;
|
||||
}
|
||||
|
||||
.double-white-box {
|
||||
display: flex;
|
||||
align-items: baseline;
|
||||
font-size: 18px;
|
||||
font-family: Montserrat;
|
||||
font-weight: bold;
|
||||
color: FEEBEB;
|
||||
}
|
||||
|
||||
.double-green-box {
|
||||
display: flex;
|
||||
align-items: baseline;
|
||||
font-size: 18px;
|
||||
font-family: Montserrat;
|
||||
font-weight: bold;
|
||||
color: #5EA25C;
|
||||
}
|
||||
|
||||
.double-number-color {
|
||||
color: #56629A;
|
||||
font-weight: bold;
|
||||
font-size: 18px;
|
||||
font-family: Montserrat;
|
||||
}
|
||||
|
||||
.double-red-box span {
|
||||
font-size: larger;
|
||||
/* Or any specific size */
|
||||
margin-left: 5px;
|
||||
/* Spacing between RED and X2 */
|
||||
}
|
||||
|
||||
.double-user-icon {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.double-user-icon .double-user-icon-span {
|
||||
background-image: url('../../../icons-games/double-game/MembersInGame.png');
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
.double-game {
|
||||
z-index: 1;
|
||||
border-radius: 20px;
|
||||
width: 69%;
|
||||
height: 94%;
|
||||
}
|
||||
|
||||
.double-game-main-box {
|
||||
border-radius: 10px;
|
||||
border: 1px solid #262C55;
|
||||
padding-top: 4vh;
|
||||
padding-bottom: 4vh;
|
||||
padding-left: 0vh !important;
|
||||
padding-right: 0vh !important;
|
||||
background: #1A1F37;
|
||||
margin-bottom: 1vh !important;
|
||||
}
|
||||
|
||||
.double-carousel {
|
||||
z-index: 1;
|
||||
position: relative;
|
||||
background: #2E2D37;
|
||||
box-shadow: 0px 4px 4px 0px rgba(0, 0, 0, 0.25);
|
||||
width: 100%;
|
||||
margin-top: 1px;
|
||||
border: 1vh solid #2E2D37;
|
||||
border-right: 0vh !important;
|
||||
border-left: 0vh !important;
|
||||
height: 95%;
|
||||
}
|
||||
|
||||
.container-double-history-text {
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.double-history-text {
|
||||
background-color: #728DF8;
|
||||
border: none;
|
||||
color: #0E1220;
|
||||
padding-right: 1vh;
|
||||
padding-left: 1vh;
|
||||
font-size: 16px;
|
||||
margin: 4px 2px;
|
||||
border-radius: 5px;
|
||||
box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2);
|
||||
font-size: 18px;
|
||||
font-family: Montserrat;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.double-carousel-arrow {
|
||||
position: absolute;
|
||||
bottom: -3vh;
|
||||
left: 50%;
|
||||
transform: translateX(-50%);
|
||||
color: #728DF8;
|
||||
font-size: 24px;
|
||||
}
|
||||
|
||||
.double-carousel-arrow-animate {
|
||||
animation: blink 1s infinite;
|
||||
}
|
||||
|
||||
@keyframes blink {
|
||||
|
||||
0%,
|
||||
100% {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
50% {
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.double-carousel-arrow-upper {
|
||||
position: absolute;
|
||||
top: -3vh;
|
||||
left: 50%;
|
||||
transform: translateX(-50%) rotate(180deg);
|
||||
color: #728DF8;
|
||||
font-size: 24px;
|
||||
}
|
||||
|
||||
.double-game-history-main-box {
|
||||
border-radius: 20px;
|
||||
border: 1px solid #262C55;
|
||||
padding-top: 1vh;
|
||||
padding-bottom: 0vh;
|
||||
padding-left: 1vh;
|
||||
padding-right: 0vh;
|
||||
background: #1A1F37;
|
||||
}
|
||||
@@ -47,17 +47,12 @@
|
||||
.carousel-arrow {
|
||||
position: absolute;
|
||||
bottom: -20px;
|
||||
/* Регулируйте положение стрелки относительно нижнего края карусели */
|
||||
left: 50%;
|
||||
/* Центрирование стрелки по горизонтали */
|
||||
transform: translateX(-50%);
|
||||
/* Дополнительное центрирование, чтобы точка указывала точно на центр */
|
||||
color: #728DF8;
|
||||
/* Цвет стрелки */
|
||||
font-size: 24px;
|
||||
/* Размер стрелки */
|
||||
/* Добавьте любые дополнительные стили, такие как цвет фона, границы и т.д. */
|
||||
}
|
||||
|
||||
.jackpot-useringame-list{
|
||||
margin-top: 3.5%;
|
||||
overflow-y: auto;
|
||||
|
||||
@@ -150,7 +150,8 @@
|
||||
#diamonds-input {
|
||||
/* width: 347px;
|
||||
height: 38px; */
|
||||
width: 37vh;
|
||||
/* width: 37vh; */
|
||||
width: 36vh;
|
||||
height: 4vh;
|
||||
}
|
||||
|
||||
|
||||
@@ -97,7 +97,7 @@
|
||||
|
||||
.bg-early{
|
||||
border-radius: 40px;
|
||||
background: #969B9E;
|
||||
background: #EF4444;
|
||||
box-shadow: 4px 4px 4px 0px rgba(0, 0, 0, 0.25);
|
||||
}
|
||||
|
||||
@@ -137,6 +137,7 @@
|
||||
font-weight: 700;
|
||||
text-transform: uppercase;
|
||||
text-align: center;
|
||||
padding: 0px 0px 0px 28px;
|
||||
}
|
||||
|
||||
.line__footer {
|
||||
@@ -153,7 +154,6 @@
|
||||
}
|
||||
|
||||
.line__footer img {
|
||||
width: 60%;
|
||||
margin-bottom: 5%;
|
||||
}
|
||||
|
||||
@@ -175,13 +175,37 @@
|
||||
|
||||
.line__img__jackpot {
|
||||
display: flex;
|
||||
margin: 1% 6.6% 1% 4.7%;
|
||||
margin: 1% 6.6% 1% 0%;
|
||||
}
|
||||
|
||||
.display-firstline {
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.cumming_soon_btn {
|
||||
border-radius: 21px;
|
||||
background: #FFF;
|
||||
box-shadow: 4px 4px 4px 0px rgba(0, 0, 0, 0.25);
|
||||
color: #000;
|
||||
text-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25);
|
||||
font-family: Montserrat Alternates;
|
||||
font-size: 36px;
|
||||
font-weight: 700;
|
||||
padding: 11px 0px 11px 11px;
|
||||
text-decoration: none;
|
||||
text-transform: uppercase;
|
||||
position: relative;
|
||||
bottom: 5%;
|
||||
left: 2%;
|
||||
transition: 250ms;
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
.cumming_soon_btn:hover {
|
||||
background-color: #525252;
|
||||
opacity: 0.75;
|
||||
}
|
||||
|
||||
.line__btn {
|
||||
border-radius: 21px;
|
||||
background: #FFF;
|
||||
@@ -191,14 +215,75 @@
|
||||
font-family: Montserrat Alternates;
|
||||
font-size: 36px;
|
||||
font-weight: 700;
|
||||
padding: 11px 11px;
|
||||
padding: 11px 0px 11px 11px;
|
||||
text-decoration: none;
|
||||
text-transform: uppercase;
|
||||
position: relative;
|
||||
bottom: 5%;
|
||||
left: 2%;
|
||||
transition: 250ms;
|
||||
}
|
||||
|
||||
.line__btn span:after {
|
||||
content: '\00bb';
|
||||
opacity: 0;
|
||||
transition: 250ms;
|
||||
right: 20;
|
||||
}
|
||||
|
||||
.line__btn:hover span:after {
|
||||
opacity: 1;
|
||||
right: 0;
|
||||
padding-right: 0px;
|
||||
}
|
||||
|
||||
.line__btn:hover {
|
||||
padding:11px 11px 11px 22px ;
|
||||
}
|
||||
|
||||
.line__btn:active {
|
||||
left: 5%;
|
||||
}
|
||||
|
||||
.line__btn--crash {
|
||||
border-radius: 21px;
|
||||
background: #FFF;
|
||||
box-shadow: 4px 4px 4px 0px rgba(0, 0, 0, 0.25);
|
||||
color: #000;
|
||||
text-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25);
|
||||
font-family: Montserrat Alternates;
|
||||
font-size: 36px;
|
||||
font-weight: 700;
|
||||
padding: 11px 0px 11px 11px;
|
||||
text-decoration: none;
|
||||
text-transform: uppercase;
|
||||
position: relative;
|
||||
bottom: 5%;
|
||||
left: 2%;
|
||||
transition: 250ms;
|
||||
}
|
||||
|
||||
.line__btn--crash span:after {
|
||||
content: '\00bb';
|
||||
opacity: 0;
|
||||
transition: 250ms;
|
||||
right: 20;
|
||||
}
|
||||
|
||||
.line__btn--crash:hover span:after {
|
||||
opacity: 1;
|
||||
right: 0;
|
||||
padding-right: 0px;
|
||||
}
|
||||
|
||||
.line__btn--crash:hover {
|
||||
padding:11px 11px 11px 22px ;
|
||||
}
|
||||
|
||||
.line__btn--crash:active {
|
||||
left: 5%;
|
||||
}
|
||||
|
||||
.line__btn__jackpot {
|
||||
border-radius: 21px;
|
||||
background: #FFF;
|
||||
@@ -208,14 +293,35 @@
|
||||
font-family: Montserrat Alternates;
|
||||
font-size: 36px;
|
||||
font-weight: 700;
|
||||
padding: 11px 11px;
|
||||
padding: 11px 0px 11px 11px;
|
||||
text-decoration: none;
|
||||
text-transform: uppercase;
|
||||
position: relative;
|
||||
bottom: 4%;
|
||||
left: 6%;
|
||||
transition: 250ms;
|
||||
}
|
||||
|
||||
.line__btn__jackpot span:after {
|
||||
content: '\00bb';
|
||||
opacity: 0;
|
||||
transition: 250ms;
|
||||
}
|
||||
|
||||
.line__btn__jackpot:hover span:after {
|
||||
opacity: 1;
|
||||
right: 0;
|
||||
padding-right: 0px;
|
||||
}
|
||||
|
||||
.line__btn__jackpot:hover {
|
||||
padding:11px 11px 11px 22px ;
|
||||
}
|
||||
|
||||
.line__btn__jackpot:active {
|
||||
left: 10%;
|
||||
}
|
||||
|
||||
.line__btn--elm {
|
||||
color: #000;
|
||||
font-size: 38px ;
|
||||
@@ -251,7 +357,7 @@
|
||||
.gamemode__twoline--first__element {
|
||||
width: 100%;
|
||||
margin: 2% 3.6% 0 5.5%;
|
||||
min-height: 180px;
|
||||
min-height: 209px;
|
||||
}
|
||||
|
||||
.linecontent-3 {
|
||||
@@ -264,23 +370,13 @@
|
||||
color: #fff;
|
||||
text-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25);
|
||||
font-family: Montserrat Alternates;
|
||||
font-size: 87px;
|
||||
font-size: 60px;
|
||||
font-weight: 700;
|
||||
text-transform: uppercase;
|
||||
padding: 4.5% 2.2%;
|
||||
}
|
||||
|
||||
.gamemode__twoline--first__element .container {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.gamemode__twoline--first__element .container a {
|
||||
margin-right: 10%;
|
||||
padding: 12px 10px;
|
||||
margin-bottom: 3%;
|
||||
}
|
||||
|
||||
.gamemode__twoline--two__element {
|
||||
margin-top: 2%;
|
||||
@@ -297,159 +393,195 @@
|
||||
margin-right: 10%;
|
||||
}
|
||||
|
||||
.cumming_soon--img {
|
||||
margin-bottom: 4%;
|
||||
}
|
||||
.gamemode__twoline--two__element {
|
||||
margin-top: 2%;
|
||||
width: 100%;
|
||||
min-height: 180px;
|
||||
}
|
||||
|
||||
.gamemode__twoline--first__element .container {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
|
||||
}
|
||||
|
||||
.gamemode__twoline--first__element .container a {
|
||||
margin-right: 10%;
|
||||
}
|
||||
|
||||
/* /GameMode */
|
||||
|
||||
/* Media */
|
||||
|
||||
@media (max-width: 1586px) {
|
||||
#diamonds-input-saper {
|
||||
width: 30vh !important;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (min-device-width: 1400px) and (max-device-width: 1600px) {
|
||||
.header__auth--discord {
|
||||
width: 14%;
|
||||
}
|
||||
.header__balance {
|
||||
width: auto;
|
||||
}
|
||||
.main {
|
||||
width: 75% !important;
|
||||
}
|
||||
.main__content h1 {
|
||||
font-size: 4.5em;
|
||||
}
|
||||
.gamemode__content--text div {
|
||||
width: 75%;
|
||||
}
|
||||
.gamemode__main {
|
||||
height: auto;
|
||||
width: 25%;
|
||||
}
|
||||
.title-firstline {
|
||||
font-size: 4.1em;
|
||||
}
|
||||
.line__footer {
|
||||
flex-direction: column;
|
||||
}
|
||||
.line__footer img {
|
||||
margin-top: -2em;
|
||||
}
|
||||
.line__content .line__btn--main .line__btn {
|
||||
left: 0;
|
||||
top: 2vh;
|
||||
/* top: -.4em; */
|
||||
/* top: top: 2vh;; */
|
||||
}
|
||||
.line__img {
|
||||
margin: 1% -8% 0 30%;
|
||||
}
|
||||
.gamemode__firstline img {
|
||||
width: 60%;
|
||||
}
|
||||
.gamemode__firstline .title-firstline {
|
||||
font-size: 3.2em;
|
||||
}
|
||||
.gamemode__twolines img {
|
||||
display: none;
|
||||
}
|
||||
.gamemode__twolines .title-twoline {
|
||||
font-size: 3.238em;
|
||||
}
|
||||
.line__btn {
|
||||
font-size: 28px;
|
||||
padding: 6px 11px;
|
||||
}
|
||||
.gamemode__twoline--first__element .container a {
|
||||
padding: 6px 11px;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (min-device-width: 1200px) and (max-device-width: 1399px) {
|
||||
.header__auth--discord {
|
||||
width: 14%;
|
||||
}
|
||||
.header__balance {
|
||||
width: auto;
|
||||
}
|
||||
.main__content h1 {
|
||||
font-size: 4.5em;
|
||||
}
|
||||
.main {
|
||||
width: 78% !important;
|
||||
}
|
||||
.gamemode__main {
|
||||
height: auto;
|
||||
width: 28.5%;
|
||||
}
|
||||
.gamemode__content--text div {
|
||||
width: 78%;
|
||||
}
|
||||
.title-firstline {
|
||||
font-size: 4.1em;
|
||||
}
|
||||
.line__footer {
|
||||
flex-direction: column;
|
||||
}
|
||||
.line__footer img {
|
||||
margin-top: -2em;
|
||||
}
|
||||
.line__content .line__btn--main .line__btn {
|
||||
left: 0;
|
||||
top: -.4em;
|
||||
}
|
||||
.line__img {
|
||||
margin: 1% -8% 0 15%;
|
||||
}
|
||||
.gamemode__firstline img {
|
||||
width: 60%;
|
||||
}
|
||||
.gamemode__firstline .title-firstline {
|
||||
font-size: 3.2em;
|
||||
}
|
||||
.gamemode__twolines img {
|
||||
display: none;
|
||||
}
|
||||
.gamemode__twolines .title-twoline {
|
||||
font-size: 3.238em;
|
||||
}
|
||||
.line__btn {
|
||||
font-size: 28px;
|
||||
padding: 6px 11px;
|
||||
}
|
||||
.gamemode__twoline--first__element .container a {
|
||||
padding: 6px 11px;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (max-width: 1100px) {
|
||||
.main__content h1 {
|
||||
font-size: 3.5em;
|
||||
}
|
||||
.title-firstline {
|
||||
font-size: 3.4em;
|
||||
}
|
||||
.line__img {
|
||||
margin: -1% -18% 0 2%;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (min-height: 820px) {
|
||||
.chat {
|
||||
height: 87vh !important;
|
||||
}
|
||||
}
|
||||
@media screen and (max-width: 1850px) {
|
||||
@media only screen and (max-width:1800px) {
|
||||
.line__img__jackpot {
|
||||
display: none !important;
|
||||
width: 150px;
|
||||
height: 150px;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
@media screen and (min-height: 800) {
|
||||
.chat {
|
||||
height: 85vh !important;
|
||||
.line__footer img {
|
||||
width: 55%;
|
||||
margin-bottom: 5%;
|
||||
}
|
||||
} */
|
||||
/* /Media */
|
||||
}
|
||||
|
||||
@media only screen and (max-width:1700px) {
|
||||
.title-jackpot {
|
||||
font-size:60px;
|
||||
padding: 0px 0px 0px 28px;
|
||||
}
|
||||
|
||||
.title-twoline {
|
||||
font-size: 40px;
|
||||
}
|
||||
|
||||
.line__img__jackpot {
|
||||
height: 150px;
|
||||
width: 150px;
|
||||
}
|
||||
|
||||
.line__footer img {
|
||||
width: 40%;
|
||||
margin-bottom: 5%;
|
||||
}
|
||||
|
||||
.line__content {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.line__btn {
|
||||
border-radius: 16px;
|
||||
font-size: 30px;
|
||||
padding: 11px 11px 11px 11px;
|
||||
}
|
||||
|
||||
.main__content h1 {
|
||||
font-size: 70px;
|
||||
}
|
||||
|
||||
.title-firstline {
|
||||
font-size:80px;
|
||||
}
|
||||
|
||||
.cumming_soon_btn {
|
||||
font-size: 30px;
|
||||
border-radius: 16px;
|
||||
}
|
||||
|
||||
.cumming_soon--img {
|
||||
height: 40px;
|
||||
width: 80px;
|
||||
}
|
||||
|
||||
|
||||
|
||||
.line__btn__jackpot {
|
||||
border-radius: 16px;
|
||||
font-size: 30px;
|
||||
}
|
||||
|
||||
.line__btn--crash {
|
||||
border-radius: 16px;
|
||||
font-size: 30px;
|
||||
padding: 7px 0px 11px 11px;
|
||||
}
|
||||
|
||||
.crash--img {
|
||||
height: 60px;
|
||||
width: 60px;
|
||||
}
|
||||
|
||||
.line__content {
|
||||
height: 354px;
|
||||
}
|
||||
}
|
||||
|
||||
@media only screen and (max-width:1300px) {
|
||||
.title-jackpot {
|
||||
font-size:40px;
|
||||
padding: 0px 0px 0px 28px;
|
||||
}
|
||||
|
||||
.title-twoline {
|
||||
font-size: 20px;
|
||||
}
|
||||
|
||||
.line__img__jackpot {
|
||||
height: 125px;
|
||||
width: 125px;
|
||||
}
|
||||
|
||||
.line__footer img {
|
||||
width: 40%;
|
||||
margin-bottom: 5%;
|
||||
}
|
||||
|
||||
.line__content {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.line__btn {
|
||||
border-radius: 10px;
|
||||
font-size: 20px;
|
||||
padding: 11px 11px 11px 11px;
|
||||
}
|
||||
|
||||
.main__content h1 {
|
||||
font-size: 40px;
|
||||
}
|
||||
|
||||
.title-firstline {
|
||||
font-size:60px;
|
||||
}
|
||||
|
||||
.cumming_soon_btn {
|
||||
font-size: 20px;
|
||||
border-radius: 10px;
|
||||
height: 50px;
|
||||
}
|
||||
|
||||
.cumming_soon--img {
|
||||
height: 40px;
|
||||
width: 80px;
|
||||
}
|
||||
|
||||
|
||||
|
||||
.line__btn__jackpot {
|
||||
border-radius: 10px;
|
||||
font-size: 20px;
|
||||
}
|
||||
|
||||
.line__btn--crash {
|
||||
border-radius: 10px;
|
||||
font-size: 20px;
|
||||
padding: 0px 0px 0px 16px;
|
||||
}
|
||||
|
||||
.crash--img {
|
||||
height: 50px;
|
||||
width: 50px;
|
||||
}
|
||||
|
||||
.line__content {
|
||||
height: 265px;
|
||||
}
|
||||
|
||||
|
||||
|
||||
.gamemode__twoline--two__element {
|
||||
margin-top: 0;
|
||||
width: 100%;
|
||||
min-height: 60px;
|
||||
}
|
||||
.gamemode__twoline--first__element {
|
||||
margin-top: 0;
|
||||
width: 100%;
|
||||
min-height: 60px;
|
||||
}
|
||||
}
|
||||
@@ -88,6 +88,17 @@
|
||||
background: #EF4444;
|
||||
}
|
||||
|
||||
.referal {
|
||||
padding: 3.8% 46% 3% 14%;
|
||||
margin-top: 12px;
|
||||
background: #2D6AE0;
|
||||
}
|
||||
|
||||
.referal img {
|
||||
height: 20px;
|
||||
width: 22px;
|
||||
}
|
||||
|
||||
.playerandvid {
|
||||
margin-right: 10vh;
|
||||
}
|
||||
|
||||
@@ -76,3 +76,56 @@
|
||||
background: red; /* Цвет фона трека для Firefox */
|
||||
height: 8px; /* Высота трека для Firefox */
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* toggle in label designing */
|
||||
.toggle {
|
||||
position : relative ;
|
||||
display : flex;
|
||||
width : 60px;
|
||||
height : 32px;
|
||||
background-color: #000413;
|
||||
border-radius: 5px;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
|
||||
|
||||
}
|
||||
|
||||
/* After slide changes */
|
||||
.toggle:after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
width: 22px;
|
||||
height: 22px;
|
||||
border-radius: 5px;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
align-content: center;
|
||||
background-color: #EF4444;
|
||||
top: 5px;
|
||||
left: 6px;
|
||||
transition: all 0.5s;
|
||||
}
|
||||
|
||||
/* Toggle text */
|
||||
.toggle p {
|
||||
font-family: Arial, Helvetica, sans-serif;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
/* Checkbox checked effect */
|
||||
.checkbox:checked + .toggle::after {
|
||||
|
||||
left : 34px;
|
||||
}
|
||||
|
||||
/* Checkbox checked toggle label bg color */
|
||||
|
||||
|
||||
/* Checkbox vanished */
|
||||
.checkbox {
|
||||
display : none;
|
||||
}
|
||||
@@ -179,7 +179,7 @@ button {
|
||||
height: 86vh;
|
||||
position: relative;
|
||||
z-index: 3;
|
||||
|
||||
|
||||
}
|
||||
|
||||
/* /Chat */
|
||||
@@ -235,7 +235,7 @@ button {
|
||||
|
||||
.about {
|
||||
grid-area: about;
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -301,7 +301,7 @@ button {
|
||||
grid-area: help;
|
||||
display: flex;
|
||||
/* height:99%; */
|
||||
height:86vh;
|
||||
height: 86vh;
|
||||
border-radius: 3.125rem;
|
||||
background: #17181C;
|
||||
box-shadow: 0.25rem 0.25rem 0.25rem 0px rgba(0, 0, 0, 0.25);
|
||||
@@ -309,7 +309,7 @@ button {
|
||||
/*height: 96.2%;*/
|
||||
width: 1000px;
|
||||
margin: 0 auto;
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -336,8 +336,9 @@ button {
|
||||
height: 35%;
|
||||
z-index: 0;
|
||||
}
|
||||
|
||||
/* /Crash */
|
||||
|
||||
/* Media */
|
||||
|
||||
/* /Media */
|
||||
/* /Media */
|
||||
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 690 B |
|
After Width: | Height: | Size: 2.8 KiB |
|
After Width: | Height: | Size: 2.9 KiB |
|
After Width: | Height: | Size: 2.9 KiB |
BIN
luckydiamond/src/assets/icons-games/saper-game/arrowTop.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
luckydiamond/src/assets/icons-profile/icon-referal.png
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
61
luckydiamond/src/assets/js/Profile/Referrals.js
Normal file
@@ -0,0 +1,61 @@
|
||||
import { BackendApiUrl } from '@/properties/Сonfig.js';
|
||||
import { GetCookie } from "@/assets/js/storage/CookieStorage";
|
||||
export async function GetReferralData () {
|
||||
|
||||
const myHeaders = new Headers();
|
||||
myHeaders.append("Content-Type", "application/json");
|
||||
|
||||
const userData = {
|
||||
searchToken: GetCookie("SearchToken"),
|
||||
authtoken: GetCookie("AUTHTOKEN"),
|
||||
};
|
||||
|
||||
const raw = JSON.stringify({
|
||||
"userCredentials": {
|
||||
"searchToken": userData.searchToken,
|
||||
"authtoken": userData.authtoken
|
||||
}
|
||||
});
|
||||
|
||||
const response = await fetch(`${BackendApiUrl}/PromoCode/GetReferralInfo`, {
|
||||
method: "POST",
|
||||
headers: {
|
||||
"Content-Type": "application/json",
|
||||
},
|
||||
body: raw,
|
||||
redirect: "follow"
|
||||
});
|
||||
|
||||
return await response.json();
|
||||
|
||||
|
||||
}
|
||||
|
||||
export async function WithdrawReferralMoney () {
|
||||
const myHeaders = new Headers();
|
||||
myHeaders.append("Content-Type", "application/json");
|
||||
|
||||
const userData = {
|
||||
searchToken: GetCookie("SearchToken"),
|
||||
authtoken: GetCookie("AUTHTOKEN"),
|
||||
};
|
||||
|
||||
const raw = JSON.stringify({
|
||||
"userCredentials": {
|
||||
"searchToken": userData.searchToken,
|
||||
"authtoken": userData.authtoken
|
||||
}
|
||||
});
|
||||
|
||||
const requestOptions = {
|
||||
method: "POST",
|
||||
headers: myHeaders,
|
||||
body: raw,
|
||||
redirect: "follow"
|
||||
};
|
||||
|
||||
fetch("https://spsystemcore20231122004605.azurewebsites.net/api/PromoCode/TakeMoneyReferral", requestOptions)
|
||||
.then((response) => response.text())
|
||||
.then((result) => console.log(result))
|
||||
.catch((error) => console.error(error));
|
||||
}
|
||||
@@ -10,7 +10,6 @@ export function ConnectToChat() {
|
||||
try {
|
||||
|
||||
if (webSocket && webSocket.readyState === WebSocket.OPEN) {
|
||||
console.log('WebSocket connection already established.');
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -22,17 +21,32 @@ export function ConnectToChat() {
|
||||
|
||||
webSocket.onmessage = function (event) {
|
||||
|
||||
const dataObject = JSON.parse(event.data);
|
||||
try {
|
||||
const dataObject = JSON.parse(event.data);
|
||||
|
||||
if (dataObject && Object.prototype.hasOwnProperty.call(dataObject, 'SpUserName') && Object.prototype.hasOwnProperty.call(dataObject, 'Message')) {
|
||||
eventBus.emit('dataChat', event.data);
|
||||
console.log('CHAT')
|
||||
}
|
||||
else {
|
||||
eventBus.emit('crash', event.data)
|
||||
}
|
||||
if (dataObject && Object.prototype.hasOwnProperty.call(dataObject, 'SpUserName') && Object.prototype.hasOwnProperty.call(dataObject, 'Message')) {
|
||||
eventBus.emit('dataChat', event.data);
|
||||
return;
|
||||
}
|
||||
|
||||
// console.log('Message from Server:', event.data);
|
||||
if (dataObject.MessageType == 'DoubleGameState') {
|
||||
eventBus.emit('doubleGame', event.data)
|
||||
return;
|
||||
}
|
||||
|
||||
if (dataObject.MessageType == "CrashGameState") {
|
||||
eventBus.emit('crash', event.data);
|
||||
return;
|
||||
}
|
||||
|
||||
if (Array.isArray(dataObject.CurrentGame.PlayerList)) {
|
||||
eventBus.emit('jackpotGameTik', event.data);
|
||||
return;
|
||||
}
|
||||
|
||||
} catch (error) {
|
||||
void (error);
|
||||
}
|
||||
};
|
||||
|
||||
webSocket.onclose = function () {
|
||||
|
||||
69
luckydiamond/src/assets/js/games/double/DoubleApi.js
Normal file
@@ -0,0 +1,69 @@
|
||||
import { BackendApiUrl } from '@/properties/Сonfig.js';
|
||||
import {
|
||||
GetCookie
|
||||
} from "@/assets/js/storage/CookieStorage.js";
|
||||
|
||||
|
||||
export async function GetNewestDoubleGames() {
|
||||
try {
|
||||
const response = await fetch(`${BackendApiUrl}/GameDouble/GetNewestDoubleGames`, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
},
|
||||
redirect: 'follow'
|
||||
})
|
||||
|
||||
if (!response.ok) {
|
||||
console.log('Fetch error:', response.status)
|
||||
}
|
||||
|
||||
return await response
|
||||
}
|
||||
catch (error) {
|
||||
console.log('Fetch error')
|
||||
}
|
||||
}
|
||||
|
||||
export async function JoinGame(amount, betColor) {
|
||||
|
||||
let betColorInt = 0;
|
||||
if (betColor == "red") {
|
||||
betColorInt = 0;
|
||||
}
|
||||
if (betColor == "green") {
|
||||
betColorInt = 1;
|
||||
}
|
||||
if (betColor == "black") {
|
||||
betColorInt = 2;
|
||||
}
|
||||
|
||||
const data = {
|
||||
UserCredentials: {
|
||||
SearchToken: GetCookie("SearchToken"),
|
||||
AUTHTOKEN: GetCookie("AUTHTOKEN")
|
||||
},
|
||||
bet: amount,
|
||||
betColor: betColorInt
|
||||
}
|
||||
|
||||
try {
|
||||
const response = await fetch(`${BackendApiUrl}/GameDouble/JoinGame`, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
},
|
||||
body: JSON.stringify(data),
|
||||
redirect: 'follow'
|
||||
})
|
||||
|
||||
if (!response.ok) {
|
||||
console.log('Fetch error:', response.status)
|
||||
}
|
||||
|
||||
return await response.json()
|
||||
}
|
||||
catch (error) {
|
||||
console.log('Fetch error')
|
||||
}
|
||||
}
|
||||
@@ -1,59 +1,59 @@
|
||||
import { BackendWebSocketJackpotUrl } from '@/properties/Сonfig.js';
|
||||
// import { BackendWebSocketJackpotUrl } from '@/properties/Сonfig.js';
|
||||
import { BackendApiUrl } from '@/properties/Сonfig.js';
|
||||
import { eventBus } from "@/main";
|
||||
// import { eventBus } from "@/main";
|
||||
|
||||
// import {
|
||||
// GetCookie
|
||||
// } from "@/assets/js/storage/CookieStorage.js";
|
||||
|
||||
let webSocket;
|
||||
// let webSocket;
|
||||
|
||||
export function ConnectToJackpotSocket() {
|
||||
try {
|
||||
// export function ConnectToJackpotSocket() {
|
||||
// try {
|
||||
|
||||
if (webSocket && webSocket.readyState === WebSocket.OPEN) {
|
||||
console.log('WebSocket connection already established.');
|
||||
return;
|
||||
}
|
||||
// if (webSocket && webSocket.readyState === WebSocket.OPEN) {
|
||||
// console.log('WebSocket connection already established.');
|
||||
// return;
|
||||
// }
|
||||
|
||||
webSocket = new WebSocket(BackendWebSocketJackpotUrl);
|
||||
// webSocket = new WebSocket(BackendWebSocketJackpotUrl);
|
||||
|
||||
webSocket.onopen = function () {
|
||||
console.log('Connection established');
|
||||
};
|
||||
// webSocket.onopen = function () {
|
||||
// console.log('Connection established');
|
||||
// };
|
||||
|
||||
webSocket.onmessage = function (event) {
|
||||
// webSocket.onmessage = function (event) {
|
||||
|
||||
// const dataObject = JSON.parse(event.data);
|
||||
// // const dataObject = JSON.parse(event.data);
|
||||
|
||||
eventBus.emit('jackpotGameTik', event.data);
|
||||
// eventBus.emit('jackpotGameTik', event.data);
|
||||
|
||||
// console.log(dataObject)
|
||||
// if (dataObject && Object.prototype.hasOwnProperty.call(dataObject, 'SpUserName') && Object.prototype.hasOwnProperty.call(dataObject, 'Message')) {
|
||||
// eventBus.emit('dataChat', event.data);
|
||||
// console.log('CHAT')
|
||||
// }
|
||||
// else {
|
||||
// eventBus.emit('crash', event.data)
|
||||
// }
|
||||
// // console.log(dataObject)
|
||||
// // if (dataObject && Object.prototype.hasOwnProperty.call(dataObject, 'SpUserName') && Object.prototype.hasOwnProperty.call(dataObject, 'Message')) {
|
||||
// // eventBus.emit('dataChat', event.data);
|
||||
// // console.log('CHAT')
|
||||
// // }
|
||||
// // else {
|
||||
// // eventBus.emit('crash', event.data)
|
||||
// // }
|
||||
|
||||
};
|
||||
// };
|
||||
|
||||
webSocket.onclose = function () {
|
||||
// webSocket.onclose = function () {
|
||||
|
||||
webSocket = new WebSocket(BackendWebSocketJackpotUrl);
|
||||
// webSocket = new WebSocket(BackendWebSocketJackpotUrl);
|
||||
|
||||
console.log('Connection closed and reconnected');
|
||||
};
|
||||
// console.log('Connection closed and reconnected');
|
||||
// };
|
||||
|
||||
webSocket.onerror = function (event) {
|
||||
webSocket = new WebSocket(BackendWebSocketJackpotUrl);
|
||||
console.error('WebSocket Error:', event);
|
||||
};
|
||||
} catch (error) {
|
||||
console.error('Error in ConnectToChat:', error);
|
||||
}
|
||||
}
|
||||
// webSocket.onerror = function (event) {
|
||||
// webSocket = new WebSocket(BackendWebSocketJackpotUrl);
|
||||
// console.error('WebSocket Error:', event);
|
||||
// };
|
||||
// } catch (error) {
|
||||
// console.error('Error in ConnectToChat:', error);
|
||||
// }
|
||||
// }
|
||||
|
||||
export async function JoinJackpotGame(userData, amount) {
|
||||
const data = {
|
||||
|
||||
@@ -4,7 +4,11 @@ import {GetCookie} from "@/assets/js/storage/CookieStorage";
|
||||
|
||||
export async function GettingMoneyOperation(amount) {
|
||||
const data = {
|
||||
Amount: amount
|
||||
Amount: amount,
|
||||
UserCredentials: {
|
||||
searchToken: GetCookie('SearchToken'),
|
||||
authtoken: GetCookie('AUTHTOKEN')
|
||||
}
|
||||
};
|
||||
try {
|
||||
const response = await fetch(`${BackendApiUrl}/payment/donate`, {
|
||||
|
||||
@@ -9,7 +9,8 @@
|
||||
<!-- <div class="fotosloti"><a href="#"><img src="../assets/icons-menu/slots-icon.svg" ></a></div> -->
|
||||
<a href="#" @click="$router.push({ name: 'jackpot' })"><img class="menu__content--jackpot-icon" src="../assets/icons-menu/jackpot-icon.svg"></a>
|
||||
<a href="#" @click="$router.push({ name: 'crash' })"><img class="menu__content--cruch-icon" src="../assets/icons-menu/crush-icon.svg"></a>
|
||||
<a href="#"><img src="../assets/icons-menu/case-icon.png"></a>
|
||||
<a href="#" @click="$router.push({ name: 'double' })"><img class="menu__content--chest-icon" src="../assets/icons-menu/case-icon.png"></a>
|
||||
|
||||
<!-- <a href="#" @click="$router.push({ name: 'saper' })"><img class="menu__content--bomb-icon" src="../assets/icons-menu/bomb-icon.svg"></a> -->
|
||||
<a href="#" @click="$router.push({ name: 'saper' })"><img class="menu__content--bomb-icon" src="../assets/icons-menu/bomb-icon.svg"></a>
|
||||
</div>
|
||||
|
||||
@@ -29,6 +29,8 @@
|
||||
</li>
|
||||
</transition-group>
|
||||
</ul>
|
||||
|
||||
|
||||
</div>
|
||||
<writechat-component @send="ClaimDatamsg"></writechat-component>
|
||||
<!-- <div class="chat__mute-button">
|
||||
@@ -68,11 +70,11 @@ export default {
|
||||
},
|
||||
ClaimDatamsg(msg) {
|
||||
const now = Date.now();
|
||||
if (!this.lastMsgTime || now - this.lastMsgTime >= 2000) {
|
||||
if (!this.lastMsgTime || now - this.lastMsgTime >= 1000) {
|
||||
SendMessageToChat(msg[0]);
|
||||
this.lastMsgTime = now;
|
||||
} else {
|
||||
alert("Вы не можете отправлять сообщения чаще, чем раз в 2 секунды.");
|
||||
alert("Вы не можете отправлять сообщения так часто");
|
||||
}
|
||||
},
|
||||
muteChat() {
|
||||
@@ -135,5 +137,4 @@ export default {
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
|
||||
@@ -115,7 +115,7 @@
|
||||
</div>
|
||||
<div class="withdraw-checkbox checkbox-styles">
|
||||
<input @click="agreeUser = !agreeUser" type="checkbox" />
|
||||
<h3>Я согласен с пользовательским соглашением.</h3>
|
||||
<h3>Я согласен <a href="https://docs.google.com/document/d/1lU_zTWJdD1lcMlIAFDIVz-DlZAoq3a-OFkoO8WBIkzo/edit?usp=sharing">пользовательским соглашением</a></h3>
|
||||
</div>
|
||||
<div class="error-captcha" v-if="errorCaptcha && agreeUser === true">
|
||||
<h2>Пройдите проверку!</h2>
|
||||
|
||||
167
luckydiamond/src/components/ReferalModal.vue
Normal file
@@ -0,0 +1,167 @@
|
||||
<template>
|
||||
<div class="payment-modal withdraw-modal">
|
||||
<div class="payments-modal__content close-modal__icon text-styles__margin">
|
||||
<h1>Рефералы</h1>
|
||||
<img @click="closeModal" src="@/assets/icons-other/icon-payments-modal-close.svg" />
|
||||
</div>
|
||||
<div class="payments-modal__deposit">
|
||||
<div class="error-deposit" v-if="errorDeposit">
|
||||
<h2>Ошибка с суммой депозита</h2>
|
||||
</div>
|
||||
<div
|
||||
class="deposit-input deposit-text referal-icon-diamond deposit-icon__input"
|
||||
>
|
||||
<br>
|
||||
<h3>Ваш реферальный код</h3>
|
||||
<input
|
||||
:class="{ 'animate-start-btn': errorDeposit }"
|
||||
readonly
|
||||
class="deposit-amount__input"
|
||||
v-if="referralData.referralCode"
|
||||
:value="referralData.referralCode"
|
||||
/>
|
||||
<br>
|
||||
<br>
|
||||
<h3>Доступно к выводу</h3>
|
||||
<img src="@/assets/icons-games/saper-game/icon-diamond-ore-saper.png" />
|
||||
<input
|
||||
:class="{ 'animate-start-btn': errorDeposit }"
|
||||
readonly
|
||||
class="deposit-amount__input"
|
||||
v-if="referralData.avalibleAmount !== 0"
|
||||
:value="referralData.avalibleAmount"
|
||||
/>
|
||||
<input
|
||||
:class="{ 'animate-start-btn': errorDeposit }"
|
||||
readonly
|
||||
class="deposit-amount__input"
|
||||
v-else
|
||||
:value="'0'"
|
||||
/>
|
||||
<div class="deposit-btns">
|
||||
<ul class="display-btns btns-style-diamonds">
|
||||
<li v-for="(number, index) in PaymentsModalNumbers" :key="index">
|
||||
<button
|
||||
@click="clickedBtnChoice(index, number.diamonds)"
|
||||
:class="{
|
||||
'btn-click': clickedBtn === index,
|
||||
[number]: clickedBtn === number,
|
||||
}"
|
||||
>
|
||||
{{ number.diamonds }}
|
||||
</button>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="deposit-promocode deposit-promocode__padding--input">
|
||||
<h3>Всего привели рефералов</h3>
|
||||
<div class="promokods">
|
||||
<input
|
||||
:class="{ 'animate-start-btn': errorDeposit }"
|
||||
readonly
|
||||
class="deposit-amount__input"
|
||||
v-if="referralData.activationsAmount !== 0"
|
||||
:value="referralData.activationsAmount"
|
||||
/>
|
||||
<input
|
||||
:class="{ 'animate-start-btn': errorDeposit }"
|
||||
readonly
|
||||
class="deposit-amount__input"
|
||||
v-else
|
||||
:value="'0'"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="error-checkbox" v-if="errorAgree">
|
||||
<h2>Подтвердите согласие!</h2>
|
||||
</div>
|
||||
<div class="deposit-checkbox checkbox-styles">
|
||||
<input
|
||||
@click="agreeUser = !agreeUser"
|
||||
type="checkbox"
|
||||
:class="{ 'animate-start-btn': errorAgree }"
|
||||
/>
|
||||
<h3>Я согласен с <a href="https://docs.google.com/document/d/1lU_zTWJdD1lcMlIAFDIVz-DlZAoq3a-OFkoO8WBIkzo/edit?usp=sharing">пользовательским соглашением</a></h3>
|
||||
</div>
|
||||
<div
|
||||
class="btn-deposit btn-text-style btn-display-deposit btn-style-payments"
|
||||
>
|
||||
<p>
|
||||
Вы подтверждаете правильность введенных данных при создании вывода.
|
||||
</p>
|
||||
<button type="submit" @click="handleWithdraw">Вывести</button>
|
||||
<p>
|
||||
Перед пополнение прочитайте политику конфиденциальности и
|
||||
пользовательское соглашение.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import "@/assets/css/ComponentsStyles/payments-modal.css";
|
||||
import { GetReferralData } from "@/assets/js/Profile/Referrals";
|
||||
import { WithdrawReferralMoney } from "@/assets/js/Profile/Referrals";
|
||||
import { eventBus } from "@/main";
|
||||
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
referralData: {},
|
||||
errorDeposit: false,
|
||||
errorAgree: false,
|
||||
agreeUser: false,
|
||||
amount: 0,
|
||||
PaymentsModalNumbers: [],
|
||||
};
|
||||
},
|
||||
props: ["payments"],
|
||||
async created() {
|
||||
this.referralData = await GetReferralData();
|
||||
},
|
||||
computed: {
|
||||
avalibleAmountValue() {
|
||||
return this.referralData.avalibleAmount !== 0 ? this.referralData.avalibleAmount : '0';
|
||||
},
|
||||
activationsAmountValue() {
|
||||
return this.referralData.activationsAmount !== 0 ? this.referralData.activationsAmount : '0';
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
async handleWithdraw() {
|
||||
try {
|
||||
if (!this.agreeUser) {
|
||||
this.errorAgree = true;
|
||||
setTimeout(() => {
|
||||
this.errorAgree = false;
|
||||
}, 1500);
|
||||
return;
|
||||
}
|
||||
|
||||
if (this.referralData.avalibleAmount == 0) {
|
||||
window.alert("У вас нет денег на вывод :(");
|
||||
return;
|
||||
}
|
||||
|
||||
await WithdrawReferralMoney().then(async (response) => {
|
||||
try {
|
||||
console.log("work", response);
|
||||
} catch (e) {
|
||||
console.error(e);
|
||||
}
|
||||
await this.$emit("notifacetionmoney");
|
||||
eventBus.emit("Updatebalance");
|
||||
this.$emit("closemodal");
|
||||
});
|
||||
} catch (error) {
|
||||
console.error("Error withdrawing referral money:", error);
|
||||
}
|
||||
},
|
||||
closeModal() {
|
||||
this.$emit("closemodal");
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
@@ -1,9 +1,17 @@
|
||||
import { createApp } from 'vue'
|
||||
import App from './App.vue'
|
||||
|
||||
const SiteOff = {
|
||||
template: `<div style="text-align: center; margin-top: 20%;">
|
||||
<h1>Site is currently unavailable.</h1>
|
||||
<p>We are currently performing maintenance. We will be back shortly!</p>
|
||||
</div>`
|
||||
};
|
||||
const siteIsOff = true;
|
||||
|
||||
import router from "@/router/router";
|
||||
import mitt from 'mitt'
|
||||
import { Mixins } from "@/mixins/mixin";
|
||||
import { Mixins } from "@/mixins/mixin";
|
||||
import {
|
||||
ConnectToChat
|
||||
} from "@/assets/js/chat/ChatLogic.js";
|
||||
@@ -11,12 +19,35 @@ import '@/assets/css/global.css'
|
||||
|
||||
export const eventBus = mitt()
|
||||
|
||||
const app = createApp(App)
|
||||
// const app = createApp(App)
|
||||
const app = createApp(siteIsOff ? SiteOff : App);
|
||||
|
||||
|
||||
if (!siteIsOff) {
|
||||
app.use(router);
|
||||
app.mixin(Mixins);
|
||||
app.provide(eventBus);
|
||||
// ConnectToChat(); // Uncomment if chat should also be disabled when the site is off.
|
||||
}
|
||||
|
||||
// app.use(router)
|
||||
// app.mixin(Mixins)
|
||||
|
||||
app.config.warnHandler = (msg) => {
|
||||
// Intercept specific warning message and suppress it
|
||||
if (msg.includes('Property or method "clickedBtn" is not defined on the instance but referenced during render.')) {
|
||||
// You can simply return to ignore it, or even better, log it somewhere if you have a logging system
|
||||
return;
|
||||
}
|
||||
|
||||
// Log or handle other warnings as you see fit
|
||||
};
|
||||
|
||||
app.use(router)
|
||||
app.mixin(Mixins)
|
||||
|
||||
|
||||
app.mount('#app')
|
||||
app.provide(eventBus)
|
||||
// app.provide(eventBus)
|
||||
|
||||
ConnectToChat();
|
||||
20
luckydiamond/src/pages/BanPage.vue
Normal file
@@ -0,0 +1,20 @@
|
||||
<template>
|
||||
|
||||
<body class="banpage--body">
|
||||
<div class="banpage--block">
|
||||
<center><h1>Вы были заблокированны на проекте LuckyDiamond</h1></center>
|
||||
<center><iframe class="banpage--video" width="560" height="315" src="https://www.youtube.com/embed/XeoS-zsGVCs?si=zLlKqDQIzvqOzFjW" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe></center>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
</template>
|
||||
|
||||
|
||||
<script>
|
||||
import '@/assets/css/PagesStyles/BanPage.css'
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
|
||||
@@ -37,12 +37,12 @@
|
||||
<h3 class="title-firstline">{{ mode.title }}</h3>
|
||||
<div class="line__footer">
|
||||
<img src="../assets/icons-gamemodes/bomb-icon.svg" />
|
||||
<div class="line__btn--main">
|
||||
<div>
|
||||
<a
|
||||
href="#"
|
||||
@click="$router.push({ name: 'saper' })"
|
||||
class="line__btn"
|
||||
>play <span class="line__btn--elm--saper">></span></a
|
||||
>play <span class="line__btn--elm--saper"></span></a
|
||||
>
|
||||
</div>
|
||||
</div>
|
||||
@@ -66,7 +66,7 @@
|
||||
href="#"
|
||||
@click="$router.push({ name: 'jackpot' })"
|
||||
class="line__btn__jackpot"
|
||||
>play <span class="line__btn--elm">></span></a
|
||||
> play <span class="line__btn--elm"></span></a
|
||||
>
|
||||
</div>
|
||||
</div>
|
||||
@@ -79,15 +79,19 @@
|
||||
<div class="gamemode__twolines">
|
||||
<div class="gamemode__twoline--first__element bg-early">
|
||||
<ul>
|
||||
<li v-for="mode in twolinefirstelementGameMode" :key="mode">
|
||||
<li v-for="mode in twolinetwoelementGameMode" :key="mode.id">
|
||||
<div :class="'linecontent-' + mode.id">
|
||||
<h3 class="title-twoline">скоро</h3>
|
||||
<h3 class="title-twoline">рулетка</h3>
|
||||
</div>
|
||||
<div class="container">
|
||||
<a href="#" class="line__btn"
|
||||
>play <span class="line__btn--elm">></span></a
|
||||
<!-- <a href="#" class="line__btn">play <span class="line__btn--elm">></span></a> -->
|
||||
<a
|
||||
href="#"
|
||||
@click="$router.push({ name: 'double' })"
|
||||
class="line__btn--crash"
|
||||
>play <span class="line__btn--elm"></span></a
|
||||
>
|
||||
<img src="@/assets/icons-gamemodes/slots-icon.png" style="margin-bottom: 4%;" />
|
||||
<img class="crash--img" src="@/assets/icons-gamemodes/slots-icon.png" />
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
@@ -103,10 +107,10 @@
|
||||
<a
|
||||
href="#"
|
||||
@click="$router.push({ name: 'crash' })"
|
||||
class="line__btn"
|
||||
>play <span class="line__btn--elm">></span></a
|
||||
class="line__btn--crash"
|
||||
>play <span class="line__btn--elm"></span></a
|
||||
>
|
||||
<img src="@/assets/icons-gamemodes/crush-icon.svg" />
|
||||
<img class="crash--img" src="@/assets/icons-gamemodes/crush-icon.svg" />
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@@ -14,6 +14,7 @@
|
||||
<div class="profile__btns--payments">
|
||||
<a href="#" class="text-btn btn-bg btn-margin btn-display" @click="depositClick"><img class="icon-margin-deposit-withdraw" src="@/assets/icons-profile/icon-deposit.svg"> Пополнить</a>
|
||||
<a href="#" class="withdraw text-btn btn-bg btn-display" @click="withdrawClick"><img class="icon-margin-deposit-withdraw" src="@/assets/icons-profile/icon-withdraw.png"> Вывести</a>
|
||||
<a href="#" class="referal text-btn btn-bg btn-display" @click="referalClick"><img class="icon-margin-deposit-withdraw" src="@/assets/icons-profile/icon-referal.png"> Рефералы</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="payments">
|
||||
@@ -57,6 +58,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<referal-modal v-if="openRef" @notifacetionmoney="NotificationEventListener" @closemodal="openRef = false"></referal-modal>
|
||||
<payments-modal v-if="openModal" @notifacetionmoney="NotificationEventListener" @closemodal="openModal = false" :payments="payments"></payments-modal>
|
||||
<notiicationwindow-component @notificationremove="NotificationMethod" :notification="notification"></notiicationwindow-component>
|
||||
</div>
|
||||
@@ -67,13 +69,14 @@ import axios from 'axios';
|
||||
import ChatComponent from "@/components/ChatComponent.vue";
|
||||
import HeaderComponent from "@/components/HeaderComponent.vue";
|
||||
import PaymentsModal from "@/components/PaymentsModal.vue";
|
||||
import ReferalModal from "@/components/ReferalModal.vue";
|
||||
import ProfilemobilePage from "@/pages/adaptive-pages/ProfilemobilePage.vue";
|
||||
import NotiicationwindowComponent from "@/components/NotiicationwindowComponent.vue";
|
||||
import { GetCookie } from "@/assets/js/storage/CookieStorage";
|
||||
import '@/assets/css/PagesStyles/profile.css'
|
||||
import {GetCurrentMoney} from "@/assets/js/rest/RestMethods";
|
||||
export default {
|
||||
components: {ProfilemobilePage, HeaderComponent, AsideBarComponent, ChatComponent, PaymentsModal, NotiicationwindowComponent },
|
||||
components: {ProfilemobilePage, HeaderComponent, AsideBarComponent, ChatComponent, PaymentsModal, ReferalModal, NotiicationwindowComponent },
|
||||
data() {
|
||||
return {
|
||||
username: 'Artemka',
|
||||
@@ -82,11 +85,12 @@ export default {
|
||||
balance: 0,
|
||||
mobile: false,
|
||||
openModal: false,
|
||||
openRef: false,
|
||||
payments: true,
|
||||
arrayHistory: [],
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
emits: ['notificationremove'],
|
||||
mounted() {
|
||||
this.checkWindowSize()
|
||||
@@ -96,6 +100,57 @@ export default {
|
||||
this.RemoveWindowListener()
|
||||
},
|
||||
created() {
|
||||
|
||||
const myHeaders = new Headers();
|
||||
myHeaders.append("Content-Type", "application/json");
|
||||
myHeaders.append("Cookie", "ARRAffinity=a6e48b9e9d2653435be7b61998d8624b44115214104213d6c8b8c526cc56dc70; ARRAffinitySameSite=a6e48b9e9d2653435be7b61998d8624b44115214104213d6c8b8c526cc56dc70");
|
||||
|
||||
const userData = {
|
||||
searchToken: GetCookie("SearchToken"),
|
||||
authtoken: GetCookie("AUTHTOKEN"),
|
||||
};
|
||||
|
||||
const raw = JSON.stringify({
|
||||
"userCredentials": {
|
||||
"searchToken": userData.searchToken,
|
||||
"authtoken": userData.authtoken
|
||||
}
|
||||
});
|
||||
|
||||
const requestOptions = {
|
||||
method: "POST",
|
||||
headers: myHeaders,
|
||||
body: raw,
|
||||
redirect: "follow"
|
||||
};
|
||||
|
||||
fetch("https://spsystemcore20231122004605.azurewebsites.net/api/PromoCode/GetReferralInfo", requestOptions)
|
||||
.then((response) => response.text())
|
||||
.then((result) => {
|
||||
console.log(result);
|
||||
if (result == "\"The Referral is not created\"") {
|
||||
const raw = JSON.stringify({
|
||||
"userCredentials": {
|
||||
"searchToken": userData.searchToken,
|
||||
"authtoken": userData.authtoken
|
||||
}
|
||||
});
|
||||
|
||||
const requestOptions = {
|
||||
method: "POST",
|
||||
headers: myHeaders,
|
||||
body: raw,
|
||||
redirect: "follow"
|
||||
};
|
||||
|
||||
fetch("https://spsystemcore20231122004605.azurewebsites.net/api/PromoCode/CreateReferal", requestOptions)
|
||||
.then((response) => response.text())
|
||||
.then((result) => console.log(result))
|
||||
.catch((error) => console.error(error));
|
||||
}
|
||||
})
|
||||
.catch((error) => console.error(error));
|
||||
|
||||
axios.post('https://spsystemcore20231122004605.azurewebsites.net/api/Payment/GetPaymentHistory', {
|
||||
searchToken: GetCookie('SearchToken'),
|
||||
authtoken: GetCookie('AUTHTOKEN')
|
||||
@@ -129,10 +184,16 @@ export default {
|
||||
depositClick() {
|
||||
this.openModal = true
|
||||
this.payments = true
|
||||
this.openRef = false
|
||||
},
|
||||
withdrawClick() {
|
||||
this.openModal = true
|
||||
this.payments = false
|
||||
this.openRef = false
|
||||
},
|
||||
referalClick() {
|
||||
this.openModal = false
|
||||
this.openRef = true
|
||||
},
|
||||
NotificationEventListener() {
|
||||
this.notification = true
|
||||
|
||||
@@ -12,19 +12,32 @@
|
||||
<button id="volume-down" @click="volumeDown">-</button>
|
||||
</div>
|
||||
-->
|
||||
<div class="volume-section">
|
||||
<h1 class="volume-text">Звук</h1>
|
||||
<input
|
||||
id="volumeControl"
|
||||
type="range"
|
||||
min="0"
|
||||
max="10"
|
||||
v-model="volume"
|
||||
@input="handleVolumeChange"
|
||||
ref="volumeControl"
|
||||
/>
|
||||
<h1 class="volume-text--grey">Данная страница находится в разработке, и будет полностью переделанна</h1>
|
||||
<div class="classssboxxxx">
|
||||
<div class="volume-section">
|
||||
<h1 class="volume-text">Звук</h1>
|
||||
<input
|
||||
id="volumeControl"
|
||||
type="range"
|
||||
min="0"
|
||||
max="10"
|
||||
v-model="volume"
|
||||
@input="handleVolumeChange"
|
||||
ref="volumeControl"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<!-- 3/23/2024 DT I turned off the chat off button because it wasn't working and wasn't displaying correctly on the frontend -->
|
||||
<!-- <div class="buttonbox">
|
||||
<input type="checkbox"
|
||||
id="switch"
|
||||
class="checkbox" />
|
||||
|
||||
<label for="switch"
|
||||
class="toggle">
|
||||
|
||||
</label>
|
||||
<p>скрыть чат</p>
|
||||
</div> -->
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
|
||||
697
luckydiamond/src/pages/games-pages/DoublePage.vue
Normal file
@@ -0,0 +1,697 @@
|
||||
<template>
|
||||
<div class="content-grid--double">
|
||||
<aside-bar-component></aside-bar-component>
|
||||
<chat-component></chat-component>
|
||||
<header-component></header-component>
|
||||
<div class="bg-gradient-left"></div>
|
||||
<section class="double">
|
||||
<div class="double-start">
|
||||
<div
|
||||
class="jackpot-start__content title-saper padding-elements-jackpot"
|
||||
>
|
||||
<h2>Рулетка</h2>
|
||||
<p>Крути, ставь, побеждай!</p>
|
||||
<div class="saper-start__choises diamonds diamonds-input__margin">
|
||||
<h3>Цвет победной ячейки</h3>
|
||||
<button
|
||||
class="bet-button red"
|
||||
:class="{ active: activeButton === 'red' }"
|
||||
@click="handleClick('red')"
|
||||
>
|
||||
x2
|
||||
</button>
|
||||
<button
|
||||
class="bet-button green"
|
||||
:class="{ active: activeButton === 'green' }"
|
||||
@click="handleClick('green')"
|
||||
>
|
||||
x20
|
||||
</button>
|
||||
<button
|
||||
class="bet-button black"
|
||||
:class="{ active: activeButton === 'black' }"
|
||||
@click="handleClick('black')"
|
||||
>
|
||||
x2
|
||||
</button>
|
||||
|
||||
<div class="diamonds__choises">
|
||||
<img
|
||||
class="diamond-icon"
|
||||
src="@/assets/icons-games/saper-game/icon-diamond-ore-saper.png"
|
||||
/>
|
||||
<input
|
||||
v-model="amountDeposit"
|
||||
type="number"
|
||||
id="diamonds-input"
|
||||
/>
|
||||
<div class="diamonds__btns btn-style__diamonds">
|
||||
<ul class="diamonds-btns__display">
|
||||
<li v-for="(item, index) in JackpotNumbers" :key="index">
|
||||
<button
|
||||
@click="clickedBtnChoice(index, item.diamonds)"
|
||||
:class="{
|
||||
'btn-click': clickedBtn === index,
|
||||
[index]: clickedBtn === index,
|
||||
}"
|
||||
:id="item.diamonds === 'max' ? 'max-button' : null"
|
||||
v-if="item.diamonds !== undefined"
|
||||
>
|
||||
{{ item.diamonds }}
|
||||
</button>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="jackpot-start__btns">
|
||||
<div class="error-block" v-if="ErrorClick">
|
||||
<h2>Ошибка при заполнении</h2>
|
||||
</div>
|
||||
<button
|
||||
class="btn-start"
|
||||
:class="{ 'animate-start-btn': ErrorClick }"
|
||||
@click="clickPlayBtn"
|
||||
>
|
||||
Начать игру
|
||||
</button>
|
||||
<!-- <button class="btn-claim" v-if="winningAmount === 0">Забрать {{ winningAmount }} АР</button>
|
||||
<button class="btn-claim" @click="claimWinningAmount()" v-else>Забрать {{ winningAmount.toFixed(2) }} АР</button> -->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- </div> -->
|
||||
<div class="double-game">
|
||||
<div class="bootstrap-wrapper">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-md-12 double-game-main-box">
|
||||
<div class="double-carousel">
|
||||
<div class="double-carousel-arrow" id="arrow">▲</div>
|
||||
<div class="double-carousel-arrow-upper" id="arrow-upper">▲</div>
|
||||
<Carousel
|
||||
ref="carousel"
|
||||
:wrapAround="true"
|
||||
:autoplay="autoPlay"
|
||||
class="no-pointer-events"
|
||||
:transition="150"
|
||||
:itemsToShow="10"
|
||||
@slide-start="handleStepCarousel"
|
||||
>
|
||||
<Slide v-for="(slide, index) in slides" :key="index">
|
||||
<div>
|
||||
<img
|
||||
:src="slide.img"
|
||||
onerror="this.onerror=null;this.src='data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7';"
|
||||
/>
|
||||
</div>
|
||||
</Slide>
|
||||
</Carousel>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-12 double-game-history-main-box">
|
||||
<div class="container-double-history-text">
|
||||
<span class="double-history-text">история</span>
|
||||
</div>
|
||||
|
||||
<div class="double--history-carousel">
|
||||
<Carousel
|
||||
ref="carouselHistory"
|
||||
class="no-pointer-events"
|
||||
:transition="150"
|
||||
:itemsToShow="24"
|
||||
>
|
||||
<Slide v-for="(slide, index) in slidesHistory" :key="index">
|
||||
<div>
|
||||
<img
|
||||
:src="slide.img"
|
||||
onerror="this.onerror=null;this.src='data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7';"
|
||||
/>
|
||||
</div>
|
||||
</Slide>
|
||||
</Carousel>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-4" style="padding-left: 0px">
|
||||
<div class="double-members-ingame-red">
|
||||
<div class="double-members-flex-container">
|
||||
<div class="double-red-box">RED X2</div>
|
||||
<div class="double-user-icon">
|
||||
<span class="double-user-icon-span"></span>
|
||||
<span class="double-number-color">{{
|
||||
numberUserCountRed
|
||||
}}</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div
|
||||
v-for="user in usersRed"
|
||||
:key="user.name"
|
||||
class="double-ui-component"
|
||||
:id="`user-${user.name}`"
|
||||
>
|
||||
<img :src="user.image" alt="User" width="40" height="40" />
|
||||
|
||||
<div class="double-username">{{ user.name }}</div>
|
||||
|
||||
<div class="double-score">
|
||||
{{ user.amount }}
|
||||
|
||||
<img
|
||||
class="double-img-user"
|
||||
src="@/assets/icons-header/diamond-ore-icon.png"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<!-- </div> -->
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-4" style="padding-left: 0px">
|
||||
<div class="double-members-ingame-green">
|
||||
<div class="double-members-flex-container">
|
||||
<div class="double-green-box">GREEN X20</div>
|
||||
<div class="double-user-icon">
|
||||
<span class="double-user-icon-span"></span>
|
||||
<span class="double-number-color">{{
|
||||
numberUserCountGreen
|
||||
}}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
v-for="user in usersGreen"
|
||||
:key="user.name"
|
||||
class="double-ui-component"
|
||||
:id="`user-${user.name}`"
|
||||
>
|
||||
<img :src="user.image" alt="User" width="40" height="40" />
|
||||
|
||||
<div class="double-username">{{ user.name }}</div>
|
||||
|
||||
<div class="double-score">
|
||||
{{ user.amount }}
|
||||
|
||||
<img
|
||||
class="double-img-user"
|
||||
src="@/assets/icons-header/diamond-ore-icon.png"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
class="col-md-4"
|
||||
style="padding-left: 0px; padding-right: 0px"
|
||||
>
|
||||
<div class="double-members-ingame-black">
|
||||
<div class="double-members-flex-container">
|
||||
<div class="double-white-box">BLACK X2</div>
|
||||
<div class="double-user-icon">
|
||||
<span class="double-user-icon-span"></span>
|
||||
<span class="double-number-color">{{
|
||||
numberUserCountBlack
|
||||
}}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
v-for="user in usersBlack"
|
||||
:key="user.name"
|
||||
class="double-ui-component"
|
||||
:id="`user-${user.name}`"
|
||||
>
|
||||
<img :src="user.image" alt="User" width="40" height="40" />
|
||||
|
||||
<div class="double-username">{{ user.name }}</div>
|
||||
|
||||
<div class="double-score">
|
||||
{{ user.amount }}
|
||||
|
||||
<img
|
||||
class="double-img-user"
|
||||
src="@/assets/icons-header/diamond-ore-icon.png"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import { reactive, ref, onMounted } from "vue";
|
||||
|
||||
import AsideBarComponent from "@/components/AsidebarComponent.vue";
|
||||
import HeaderComponent from "@/components/HeaderComponent.vue";
|
||||
import ChatComponent from "@/components/ChatComponent.vue";
|
||||
import JackpotNumbers from "@/mocks/JackpotNumbers";
|
||||
import {
|
||||
GetNewestDoubleGames,
|
||||
JoinGame,
|
||||
} from "@/assets/js/games/double/DoubleApi";
|
||||
import { GetCurrentMoney } from "@/assets/js/rest/RestMethods";
|
||||
import { GetCookie } from "@/assets/js/storage/CookieStorage";
|
||||
import { Carousel, Slide } from "vue3-carousel";
|
||||
import "vue3-carousel/dist/carousel.css";
|
||||
|
||||
import "@/assets/css/PagesStyles/games-pages/jackpot.css";
|
||||
import "@/assets/css/PagesStyles/games-pages/double.css";
|
||||
import "@/assets/css/global.css";
|
||||
import { eventBus } from "@/main";
|
||||
import { useVuelidate } from "@vuelidate/core";
|
||||
import {
|
||||
maxValue,
|
||||
minValue,
|
||||
required,
|
||||
numeric,
|
||||
integer,
|
||||
} from "@vuelidate/validators";
|
||||
|
||||
export default {
|
||||
components: {
|
||||
HeaderComponent,
|
||||
AsideBarComponent,
|
||||
ChatComponent,
|
||||
Carousel,
|
||||
Slide,
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
JackpotNumbers,
|
||||
clickedColor: "",
|
||||
amountDeposit: 0,
|
||||
activeButton: null,
|
||||
};
|
||||
},
|
||||
methods: {
|
||||
async clickedBtnChoice(index, content) {
|
||||
this.clickedBtn = index;
|
||||
if (content === "max") {
|
||||
await GetCurrentMoney(
|
||||
GetCookie("AUTHTOKEN"),
|
||||
GetCookie("SearchToken")
|
||||
).then((response) => {
|
||||
const responseBalance = response.currentMoney;
|
||||
|
||||
if (responseBalance === this.balance) {
|
||||
this.amountDeposit = parseInt(responseBalance);
|
||||
}
|
||||
});
|
||||
} else {
|
||||
this.amountDeposit = content;
|
||||
}
|
||||
},
|
||||
async handleClick(color) {
|
||||
this.clickedColor = color;
|
||||
this.activeButton = color;
|
||||
},
|
||||
async clickPlayBtn() {
|
||||
this.v$.$touch();
|
||||
this.offBtn = true;
|
||||
|
||||
if (
|
||||
this.balance < this.amountDeposit ||
|
||||
!Number.isInteger(Number(this.amountDeposit))
|
||||
) {
|
||||
this.textError = "Некорректное значение. Введите целое число.";
|
||||
this.offBtn = false;
|
||||
}
|
||||
|
||||
await JoinGame(this.amountDeposit, this.clickedColor).then((response) => {
|
||||
if (
|
||||
response === `You can't join to started or ended game` ||
|
||||
response === "Player alredy in the game."
|
||||
) {
|
||||
this.offBtn = false;
|
||||
|
||||
if (response === `You can't join to started or ended game`) {
|
||||
this.textError = "Игра уже началась или только закончилась!";
|
||||
} else if (response === "Player alredy in the game.") {
|
||||
this.textError = "Вы уже в игре!";
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
if (!response.ok) {
|
||||
this.textError = "Пожалуйста подождите";
|
||||
}
|
||||
});
|
||||
this.offBtn = false;
|
||||
},
|
||||
},
|
||||
validations() {
|
||||
return {
|
||||
amountDeposit: {
|
||||
required,
|
||||
numeric,
|
||||
minValue: minValue(1),
|
||||
maxValue: maxValue(this.balance),
|
||||
integer,
|
||||
},
|
||||
};
|
||||
},
|
||||
async created() {},
|
||||
|
||||
setup() {
|
||||
const v$ = useVuelidate();
|
||||
|
||||
const usersRed = ref([]);
|
||||
|
||||
const usersGreen = ref([]);
|
||||
|
||||
const usersBlack = ref([]);
|
||||
|
||||
const numberUserCountRed = ref(0);
|
||||
|
||||
const numberUserCountGreen = ref(0);
|
||||
|
||||
const numberUserCountBlack = ref(0);
|
||||
|
||||
const slides = reactive([
|
||||
{
|
||||
img: require("@/assets/icons-games/double-game/RectangleGreenDouble.png"),
|
||||
target: "Green",
|
||||
},
|
||||
{
|
||||
img: require("@/assets/icons-games/double-game/RectangleRedDouble.png"),
|
||||
target: "Red",
|
||||
},
|
||||
{
|
||||
img: require("@/assets/icons-games/double-game/RectangleBlackDouble.png"),
|
||||
target: "Black",
|
||||
},
|
||||
{
|
||||
img: require("@/assets/icons-games/double-game/RectangleRedDouble.png"),
|
||||
target: "Red",
|
||||
},
|
||||
{
|
||||
img: require("@/assets/icons-games/double-game/RectangleBlackDouble.png"),
|
||||
target: "Black",
|
||||
},
|
||||
{
|
||||
img: require("@/assets/icons-games/double-game/RectangleGreenDouble.png"),
|
||||
target: "Green",
|
||||
},
|
||||
{
|
||||
img: require("@/assets/icons-games/double-game/RectangleBlackDouble.png"),
|
||||
target: "Black",
|
||||
},
|
||||
{
|
||||
img: require("@/assets/icons-games/double-game/RectangleRedDouble.png"),
|
||||
target: "Red",
|
||||
},
|
||||
{
|
||||
img: require("@/assets/icons-games/double-game/RectangleBlackDouble.png"),
|
||||
target: "Black",
|
||||
},
|
||||
{
|
||||
img: require("@/assets/icons-games/double-game/RectangleRedDouble.png"),
|
||||
target: "Red",
|
||||
},
|
||||
]);
|
||||
|
||||
const slidesHistory = reactive([]);
|
||||
|
||||
let doubleData = reactive({});
|
||||
|
||||
let autoPlay = ref(0);
|
||||
let targetColor = ref("");
|
||||
let timeToGame = ref(0);
|
||||
let endGame = ref(false);
|
||||
|
||||
onMounted(() => {
|
||||
loadGameHistory();
|
||||
|
||||
// usersRed.value = fetchUsersRed();
|
||||
|
||||
eventBus.on("doubleGame", (dataDouble) => {
|
||||
const dataDoubleParse = JSON.parse(dataDouble);
|
||||
addClassById('arrow', 'double-carousel-arrow-animate');
|
||||
addClassById('arrow-upper', 'double-carousel-arrow-animate');
|
||||
if (dataDoubleParse.Players.length > 0) {
|
||||
processUsersInGame(dataDoubleParse.Players);
|
||||
}
|
||||
if (endGame.value != true) {
|
||||
if (dataDoubleParse.Status == "InGame") {
|
||||
autoPlay.value = 20;
|
||||
targetColor.value = dataDoubleParse.WInColor;
|
||||
removeClassById('arrow', 'double-carousel-arrow-animate');
|
||||
removeClassById('arrow-upper', 'double-carousel-arrow-animate');
|
||||
}
|
||||
if (dataDoubleParse.Status == "GameEnd") {
|
||||
targetColor.value = dataDoubleParse.WInColor;
|
||||
endGame.value = true;
|
||||
autoPlay.value = 150;
|
||||
removeClassById('arrow', 'double-carousel-arrow-animate');
|
||||
removeClassById('arrow-upper', 'double-carousel-arrow-animate');
|
||||
|
||||
|
||||
addWinEffectTouUsers(
|
||||
dataDoubleParse.Players,
|
||||
dataDoubleParse.WInColor
|
||||
);
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
function addClassById(id, className) {
|
||||
const element = document.getElementById(id);
|
||||
if (element) {
|
||||
element.classList.add(className);
|
||||
}
|
||||
}
|
||||
|
||||
function removeClassById(id, className) {
|
||||
const element = document.getElementById(id);
|
||||
if (element) {
|
||||
element.classList.remove(className);
|
||||
}
|
||||
}
|
||||
|
||||
function addWinEffectTouUsers(usersArray, winColor) {
|
||||
usersArray.forEach((user) => {
|
||||
if (user.BetColor == winColor) {
|
||||
setTimeout(() => {
|
||||
addGradientClassToUser(user);
|
||||
}, 2000);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function addGradientClassToUser(user) {
|
||||
const element = document.getElementById("user-" + user.UserName);
|
||||
|
||||
if (element) {
|
||||
element.classList.add("double-ui-component-gradient");
|
||||
}
|
||||
}
|
||||
|
||||
function addUserIfNotExist(usersArray, newUser, BetColor) {
|
||||
const userExists = usersArray.some((user) => user.name === newUser.name);
|
||||
|
||||
if (!userExists) {
|
||||
if (BetColor == "Red") {
|
||||
numberUserCountRed.value += 1;
|
||||
}
|
||||
if (BetColor == "Green") {
|
||||
numberUserCountGreen.value += 1;
|
||||
}
|
||||
if (BetColor == "Black") {
|
||||
numberUserCountBlack.value += 1;
|
||||
}
|
||||
usersArray.push(newUser);
|
||||
}
|
||||
}
|
||||
|
||||
function handleStepCarousel(data) {
|
||||
try {
|
||||
if (endGame.value == true) {
|
||||
let { currentSlideIndex } = data;
|
||||
if (
|
||||
slides[currentSlideIndex + 1].target == targetColor.value &&
|
||||
endGame.value == true
|
||||
) {
|
||||
stopAutoPlay();
|
||||
|
||||
setTimeout(() => {
|
||||
setTimeout(() => {
|
||||
if (
|
||||
usersRed.value.length > 0 ||
|
||||
usersBlack.value.length > 0 ||
|
||||
usersGreen.value.length > 0
|
||||
) {
|
||||
usersRed.value = [];
|
||||
usersGreen.value = [];
|
||||
usersBlack.value = [];
|
||||
}
|
||||
}, 4000);
|
||||
|
||||
loadGameHistory();
|
||||
}, 2000);
|
||||
}
|
||||
}
|
||||
} catch (error) {
|
||||
void error;
|
||||
}
|
||||
}
|
||||
|
||||
function processUsersInGame(users) {
|
||||
users.forEach((user) => {
|
||||
if (user.BetColor == "Red") {
|
||||
const newUser = {
|
||||
name: user.UserName,
|
||||
image:
|
||||
"https://avatar.spworlds.ru/face/55/" + user.UserName + ".png",
|
||||
amount: user.Bet,
|
||||
hasGradient: false,
|
||||
};
|
||||
|
||||
addUserIfNotExist(usersRed.value, newUser, "Red");
|
||||
}
|
||||
if (user.BetColor == "Green") {
|
||||
const newUser = {
|
||||
name: user.UserName,
|
||||
image:
|
||||
"https://avatar.spworlds.ru/face/55/" + user.UserName + ".png",
|
||||
amount: user.Bet,
|
||||
hasGradient: false,
|
||||
};
|
||||
|
||||
addUserIfNotExist(usersGreen.value, newUser, "Green");
|
||||
}
|
||||
if (user.BetColor == "Black") {
|
||||
const newUser = {
|
||||
name: user.UserName,
|
||||
image:
|
||||
"https://avatar.spworlds.ru/face/55/" + user.UserName + ".png",
|
||||
amount: user.Bet,
|
||||
hasGradient: false,
|
||||
};
|
||||
|
||||
addUserIfNotExist(usersBlack.value, newUser, "Black");
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
async function loadGameHistory() {
|
||||
try {
|
||||
await GetNewestDoubleGames()
|
||||
.then((response) => {
|
||||
return response.json();
|
||||
})
|
||||
.then((data) => {
|
||||
slidesHistory.value = [];
|
||||
slidesHistory.length = 0;
|
||||
for (let i = 0; i < 25; i++) {
|
||||
// doubleData = Object.assign(doubleData, dataDoubleParse);
|
||||
|
||||
// timeToGame.value = doubleData.WaitingTime;
|
||||
if (data[i].winColor == "Red") {
|
||||
slidesHistory.push({
|
||||
img: require("@/assets/icons-games/double-game/HistoryRectangleRedDouble.png"),
|
||||
target: "Red",
|
||||
});
|
||||
}
|
||||
if (data[i].winColor == "Black") {
|
||||
slidesHistory.push({
|
||||
img: require("@/assets/icons-games/double-game/HistoryRectangleBlackDouble.png"),
|
||||
target: "Black",
|
||||
});
|
||||
}
|
||||
if (data[i].winColor == "Green") {
|
||||
slidesHistory.push({
|
||||
img: require("@/assets/icons-games/double-game/HistoryRectangleGreenDouble.png"),
|
||||
target: "Green",
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
console.log(data);
|
||||
})
|
||||
.catch((error) => {
|
||||
void error;
|
||||
});
|
||||
} catch (error) {
|
||||
void error;
|
||||
}
|
||||
}
|
||||
|
||||
function stopAutoPlay() {
|
||||
autoPlay.value = 0;
|
||||
endGame.value = false;
|
||||
targetColor.value = "";
|
||||
}
|
||||
|
||||
return {
|
||||
slides,
|
||||
slidesHistory,
|
||||
autoPlay,
|
||||
doubleData,
|
||||
targetColor,
|
||||
timeToGame,
|
||||
handleStepCarousel,
|
||||
stopAutoPlay,
|
||||
usersRed,
|
||||
usersBlack,
|
||||
usersGreen,
|
||||
v$,
|
||||
};
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.carousel__slide {
|
||||
padding: 1px;
|
||||
}
|
||||
|
||||
.carousel__viewport {
|
||||
perspective: 2000px;
|
||||
}
|
||||
|
||||
.carousel__track {
|
||||
transform-style: preserve-3d;
|
||||
}
|
||||
|
||||
.carousel__slide--sliding {
|
||||
transition: 0.5s;
|
||||
}
|
||||
|
||||
.carousel__slide {
|
||||
opacity: 0.9;
|
||||
transform: rotateY(-20deg) scale(0.9);
|
||||
}
|
||||
|
||||
.carousel__slide--active ~ .carousel__slide {
|
||||
transform: rotateY(20deg) scale(0.9);
|
||||
}
|
||||
|
||||
.carousel__slide--prev {
|
||||
opacity: 1;
|
||||
transform: rotateY(-10deg) scale(0.95);
|
||||
}
|
||||
|
||||
.carousel__slide--next {
|
||||
opacity: 1;
|
||||
transform: rotateY(10deg) scale(0.95);
|
||||
}
|
||||
|
||||
.carousel__slide--active {
|
||||
opacity: 1;
|
||||
transform: rotateY(0) scale(1.1);
|
||||
}
|
||||
.double--history-carousel {
|
||||
opacity: 1 !important;
|
||||
transform: rotateY(0) scale(1) !important;
|
||||
}
|
||||
.double--history-carousel .carousel__slide--active ~ .carousel__slide,
|
||||
.double--history-carousel .carousel__slide--prev,
|
||||
.double--history-carousel .carousel__slide--next,
|
||||
.double--history-carousel .carousel__slide--active {
|
||||
opacity: 1;
|
||||
transform: rotateY(0) scale(1);
|
||||
}
|
||||
</style>
|
||||
@@ -263,7 +263,7 @@ import "@/assets/css/PagesStyles/games-pages/jackpot.css";
|
||||
import "@/assets/css/global.css";
|
||||
import JackpotNumbers from "@/mocks/JackpotNumbers";
|
||||
import {
|
||||
ConnectToJackpotSocket,
|
||||
// ConnectToJackpotSocket,
|
||||
JoinJackpotGame,
|
||||
} from "@/assets/js/jackpot/JackpotLogic.js";
|
||||
import { useVuelidate } from "@vuelidate/core";
|
||||
@@ -659,7 +659,7 @@ export default {
|
||||
},
|
||||
},
|
||||
mounted() {
|
||||
ConnectToJackpotSocket();
|
||||
// ConnectToJackpotSocket();
|
||||
|
||||
eventBus.on("jackpotGameTik", (data) => {
|
||||
try {
|
||||
|
||||
@@ -297,7 +297,7 @@ export default {
|
||||
}
|
||||
});
|
||||
} catch (e) {
|
||||
console.error('Error in Percentage', e);
|
||||
//console.error('Error in Percentage', e);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -330,7 +330,7 @@ export default {
|
||||
this.offEventPointers = false
|
||||
let AnswerServer
|
||||
|
||||
let LimitClicked = this.amountCrystals
|
||||
//let LimitClicked = this.amountCrystals
|
||||
let DepositDiamonds = this.amountDeposit
|
||||
|
||||
const X_Cordinates = value[this.gamesCircle]
|
||||
@@ -365,10 +365,10 @@ export default {
|
||||
})
|
||||
}
|
||||
catch (e) {
|
||||
console.error(e)
|
||||
//console.error(e)
|
||||
}
|
||||
|
||||
console.log(LimitClicked, DepositDiamonds, X_Cordinates)
|
||||
//console.log(LimitClicked, DepositDiamonds, X_Cordinates)
|
||||
this.gamesCircle = this.gamesCircle + 1
|
||||
this.offEventPointers = true
|
||||
if (AnswerServer === 'You dead') {
|
||||
@@ -457,7 +457,7 @@ export default {
|
||||
this.getBalanceUser()
|
||||
}
|
||||
catch (e) {
|
||||
console.error('Error in GetData', e)
|
||||
//console.error('Error in GetData', e)
|
||||
}
|
||||
}
|
||||
else {
|
||||
@@ -507,7 +507,7 @@ export default {
|
||||
})
|
||||
}
|
||||
catch (e) {
|
||||
console.error(e)
|
||||
//console.error(e)
|
||||
}
|
||||
},
|
||||
async claimWinningAmount() {
|
||||
@@ -528,7 +528,7 @@ export default {
|
||||
return eventBus.emit('Updatebalance')
|
||||
}
|
||||
catch (e) {
|
||||
console.error(e)
|
||||
//console.error(e)
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
@@ -72,6 +72,12 @@
|
||||
font-family: Montserrat Alternates;
|
||||
font-size: 18px;
|
||||
font-weight: 700;
|
||||
transition: 250ms;
|
||||
}
|
||||
|
||||
.header_other_text_menu:hover {
|
||||
color: #EF4444;
|
||||
|
||||
}
|
||||
|
||||
.flex-container {
|
||||
|
||||