145 Commits

Author SHA1 Message Date
Dmitriy yawaflua Andreev
bded15f76d Adding more mobile features 2024-05-13 13:11:50 +03:00
Dima yawaflua Andreev
108709b24f Adding user in balance page for mobile 2024-05-13 12:09:10 +03:00
Hepatica
850a62626f Merge pull request #36 from danilt2000/DevelopMadara
he remembered Nick in a game , and he remembered Nick in a game.
2024-05-01 17:37:42 +02:00
Madara0330E
2a37eea433 he remembered Nick in a game , and he remembered Nick in a game.
he remembered Nick in a game , and he remembered Nick in a game.
2024-05-01 18:36:30 +05:00
Hepatica
a8a3e73004 turn on site 2024-04-29 18:51:04 +02:00
Hepatica
cab760e151 Merge pull request #34 from yawaflua/patch-1
Update index.html
2024-04-27 21:00:31 +02:00
rafael1209
aed79c1bfb turn off 2024-04-27 21:27:10 +03:00
Dima yawaflua Andreev
e1e0e38d2f Update index.html 2024-04-27 17:46:46 +03:00
Hepatica
bf7746abfd Merge pull request #35 from danilt2000/DevelopMadara
Change url for madara card in about page
2024-04-27 12:35:20 +02:00
Madara0330E
27fc9df170 ghfhfh
hgfhh
2024-04-27 15:32:22 +05:00
Dima yawaflua Andreev
be025b54cf Update index.html 2024-04-27 00:03:40 +03:00
Rafael Chasman
e5bca083f3 Merge pull request #33 from danilt2000/DevelopMadara
выаыаыаыауккк
2024-04-24 22:16:58 +03:00
Madara0330E
f8f15ada28 выаыаыаыауккк 2024-04-24 21:35:17 +05:00
Hepatica
4648607e3a add timer for updating game money on crash 2024-04-21 16:11:26 +02:00
Hepatica
70b8937ef3 add timer for updating balance on crash 2024-04-21 15:59:53 +02:00
Hepatica
c7671237e1 delete console log 2024-04-21 15:50:44 +02:00
Hepatica
f2573a5f3b Revert "Add checking for correct status in crash game"
This reverts commit 3912f4c313.
2024-04-21 15:31:04 +02:00
Hepatica
3912f4c313 Add checking for correct status in crash game 2024-04-21 15:27:25 +02:00
Swino4ka
6ab6c881b4 Merge pull request #31 from danilt2000/Swino4ka
added spacebar
2024-04-18 12:33:02 +02:00
Swino4ka
c6ccf9f368 added spacebar 2024-04-18 12:32:49 +02:00
Swino4ka
8d84a39351 Merge pull request #30 from danilt2000/Swino4ka
Added professions to mine card, fixed some code
2024-04-18 12:31:29 +02:00
Swino4ka
a3b078c7c2 Added professions to mine card, fixed some code 2024-04-18 12:31:11 +02:00
Swino4ka
9ac77a2fe0 Merge pull request #29 from danilt2000/Swino4ka
Reverted, fixed problems
2024-04-17 22:14:36 +02:00
Swino4ka
e3122f477a Reverted, fixed problems 2024-04-17 22:12:11 +02:00
Swino4ka
8f083fb7d2 Merge pull request #28 from danilt2000/Swino4ka
Deleted crash history
2024-04-17 18:26:49 +02:00
Swino4ka
5f9ae77b9f Deleted crash history 2024-04-17 18:26:19 +02:00
Swino4ka
ed3e5b6a93 Merge pull request #27 from danilt2000/Swino4ka
Swino4ka
2024-04-17 18:21:40 +02:00
Swino4ka
1df75ba3ee Fixed chat symbols bug
Короче баг был, который при отсылании миллиарда символов чат схлопывал.
Бл, Рафаелло постоянно просил переделывать, наконец то сделал то, что он принял и залил, всем спасибо за внимание
2024-04-17 18:19:57 +02:00
Swino4ka
327dd6c7e9 Merge branch 'main' into Swino4ka 2024-04-17 17:05:57 +02:00
rafael1209
c90f249eb6 fix 2024-04-17 17:39:02 +03:00
rafael1209
8b6a3b03e0 added embed 2024-04-14 17:16:17 +03:00
Kostya
59565dc1c0 added jackpot-history page 2024-04-13 20:21:35 +03:00
Hepatica
4f467e83b8 Merge pull request #26 from danilt2000/DevelopMadara
homelogoDuable
2024-04-13 17:52:55 +02:00
Madara0330E
88a869569c homelogoDuable
homelogoDuable
2024-04-13 20:50:02 +05:00
Hepatica
756ece2026 Merge pull request #25 from danilt2000/DevelopMadara
DevelopCard`12`1
2024-04-13 17:38:51 +02:00
Madara0330E
552da1b8af Merge branch 'main' of https://github.com/danilt2000/LuckyDiamond into DevelopMadara 2024-04-13 20:29:34 +05:00
Madara0330E
df7c571fea developcard remeick2
developcard remeick2
2024-04-13 18:43:19 +05:00
Madara0330E
c35276b403 developcard remeick
developcard remeick
2024-04-13 18:41:08 +05:00
Swino4ka
73efda2f93 I can't 2024-04-10 18:17:09 +02:00
Rafael Chasman
285fad1374 Merge pull request #23 from danilt2000/DevelopMadara
ficksing erorr
2024-04-10 18:35:26 +03:00
Madara0330E
fce510eb51 ficksing erorr
erorr
2024-04-10 20:31:50 +05:00
rafael1209
f7ca16c635 updated games info links 2024-04-09 20:49:00 +03:00
Rafael Chasman
6c5f587a1e Merge pull request #22 from danilt2000/DevelopMadara
Develop madara
2024-04-09 20:04:18 +03:00
Madara0330E
eab559ef33 ываыа
авыа
2024-04-09 22:02:34 +05:00
Madara0330E
70cdf1fafa уфаошаыфыа
dsfsff
2024-04-09 22:02:08 +05:00
rafael1209
0573f605b2 turn off 2024-04-09 12:13:01 +03:00
rafael1209
e872684b30 turn on 2024-04-09 00:23:28 +03:00
Kostya
66af95b9e2 added normal version for game history 2024-04-09 00:14:38 +03:00
rafael1209
6601ec2cc9 Reapply "Merge branch 'main' into DevelopCkutls"
This reverts commit 26ee6ded22.
2024-04-08 23:45:01 +03:00
rafael1209
87816193a2 resolve merge conflin after wrong merge ckyls change 2024-04-08 23:42:56 +03:00
rafael1209
935ac5dc52 Update ProfilePage.vue 2024-04-08 21:46:41 +03:00
Swino4ka
3215d994be I'm done 2024-04-08 20:18:30 +02:00
rafael1209
26ee6ded22 Revert "Merge branch 'main' into DevelopCkutls"
This reverts commit f0ef1fc13e, reversing
changes made to 052bc12b39.
2024-04-08 21:05:41 +03:00
rafael1209
2d65e4cd74 Revert "Merge pull request #21 from danilt2000/DevelopCkutls"
This reverts commit 25c8bab94f, reversing
changes made to 3b06b7ef2d.
2024-04-08 21:05:36 +03:00
rafael1209
cf57aaa54c Reapply "Merge pull request #20 from danilt2000/Swino4ka"
This reverts commit 49819e061a.
2024-04-08 21:05:33 +03:00
rafael1209
49819e061a Revert "Merge pull request #20 from danilt2000/Swino4ka"
This reverts commit 3b06b7ef2d, reversing
changes made to c4761cec13.
2024-04-08 21:05:08 +03:00
Rafael Chasman
25c8bab94f Merge pull request #21 from danilt2000/DevelopCkutls
Develop ckutls
2024-04-08 20:52:38 +03:00
Rafael Chasman
f0ef1fc13e Merge branch 'main' into DevelopCkutls 2024-04-08 20:49:55 +03:00
Rafael Chasman
3b06b7ef2d Merge pull request #20 from danilt2000/Swino4ka
Swino4ka
2024-04-08 20:12:16 +03:00
Swino4ka
630f8645a7 Polished referrals, now they are done! 2024-04-08 19:11:30 +02:00
rafael1209
c4761cec13 turn off 2024-04-07 23:57:43 +03:00
rafael1209
387e2c9db5 turn on 2024-04-07 23:55:36 +03:00
Kostya
052bc12b39 added normal version for game history 2024-04-07 19:47:30 +03:00
rafael1209
0e9d7cbb42 turn off 2024-04-07 19:39:49 +03:00
Swino4ka
d342617a13 Fix so it is not collapsing when value is 0, added withdraw 2024-04-07 18:28:43 +02:00
rafael1209
c54c94e327 turn on 2024-04-07 18:40:27 +03:00
Hepatica
c1fc92a807 turn of site 2024-04-07 04:13:00 +02:00
Hepatica
b778721ba8 add animation for double 2024-04-07 04:12:43 +02:00
Hepatica
df62d26a3b delete alerts for double 2024-04-07 03:53:07 +02:00
Hepatica
d58772127f add alert for double 2024-04-07 03:50:35 +02:00
Hepatica
5d7e3db011 turn on site 2024-04-07 03:19:40 +02:00
Hepatica
38c4e317be Merge branch 'DevelopMadara' 2024-04-07 03:12:57 +02:00
Hepatica
b93f23deaa add double 2024-04-07 03:04:02 +02:00
Swino4ka
82b32794b8 Referalls done (waiting backend for payment) 2024-04-06 20:43:17 +02:00
rafael1209
4154d3dba6 Update ReferalModal.vue
connected referral system
2024-04-06 21:06:19 +03:00
Swino4ka
29a1ac9d37 Referral creation on page load, api things 2024-04-06 19:40:04 +02:00
Hepatica
43c090693b preparing user list object for red layer in double 2024-04-06 19:15:15 +02:00
Hepatica
dace90acdf add double 2024-04-06 18:59:02 +02:00
Hepatica
b08a88d8a0 turn off site that was turn of by incident 2024-04-06 16:26:27 +02:00
Swino4ka
b8275abac9 Merge pull request #18 from danilt2000/Swino4ka
add turn on site for swino4ka testing
2024-04-06 16:24:59 +02:00
Kostya
8294cc8e97 123123213 2024-04-06 17:13:21 +03:00
Kostya
2f424a8e4e added api connect, refactor styles 2024-04-06 16:52:12 +03:00
Hepatica
e3916071d9 add turn on site for swino4ka testing 2024-04-04 21:02:59 +02:00
Swino4ka
419bed3cdf Рефералы кнопка работать хорошо 2024-04-04 20:44:04 +02:00
Madara0330E
02deed48b6 I ve converted the button to roulette soon 2024-04-02 18:12:15 +05:00
Hepatica
41734a0e9a Add styles for displaying red green black labels on display active member in game 2024-04-02 00:36:22 +02:00
Hepatica
a96636635a Add main styles for double members elementsz 2024-04-01 23:57:52 +02:00
Hepatica
782540f358 resolve merge conf1 april 2024-04-01 23:21:44 +02:00
Hepatica
22b398ed5e Add members showing in game 2024-04-01 23:19:14 +02:00
rafael1209
4f8715db07 Revert "Merge branch 'Swino4ka'"
This reverts commit 68d655d2bf, reversing
changes made to 74fa487f02.
2024-04-02 00:11:14 +03:00
rafael1209
a80af0f6c2 Revert "aprol joke"
This reverts commit 47b540b4d0.
2024-04-02 00:11:12 +03:00
rafael1209
385a8a841c Revert "updated swinota skin"
This reverts commit 752692db2f.
2024-04-02 00:11:09 +03:00
rafael1209
f3cad0278c Revert "Update DevelopComponent.vue"
This reverts commit acf06941fa.
2024-04-02 00:11:03 +03:00
rafael1209
69cdb9368d Revert "Update main.js"
This reverts commit 3033014929.
2024-04-02 00:10:29 +03:00
rafael1209
acf06941fa Update DevelopComponent.vue 2024-04-01 17:24:24 +03:00
rafael1209
752692db2f updated swinota skin 2024-04-01 15:26:33 +03:00
rafael1209
47b540b4d0 aprol joke 2024-04-01 15:23:13 +03:00
rafael1209
68d655d2bf Merge branch 'Swino4ka' 2024-04-01 15:21:56 +03:00
rafael1209
5b04a37fe1 april joke 2024-04-01 15:19:46 +03:00
Swino4ka
371fc1c36b LUCKY LUCKY BRAWL STARS DIAMOND
ПЕРВОЕ АПРЕЛЯ
2024-04-01 14:10:56 +02:00
Kostya
d8977ae282 added template for jackpot-history 2024-03-31 21:24:43 +03:00
Kostya
7c0616710d added router for jackop-history 2024-03-31 20:52:37 +03:00
rafael1209
74fa487f02 Update main.js 2024-03-31 17:35:48 +03:00
rafael1209
3033014929 Update main.js 2024-03-31 17:31:11 +03:00
rafael1209
207d99edec d 2024-03-31 17:11:37 +03:00
Hepatica
b812ea5e97 Add set temeout for double history games 2024-03-31 08:47:27 +02:00
Hepatica
4c49d143ae Add history for double games 2024-03-31 08:37:39 +02:00
Hepatica
13e026e702 Stable version of double 2.0.0 2024-03-31 07:41:49 +02:00
Hepatica
a18eca3d8c Add stable version of double 2024-03-31 07:24:35 +02:00
Hepatica
b1a98f704b Add game start form and producing frontend part for double 2024-03-31 01:22:34 +01:00
Rafael Chasman
c327fee572 Update README.md 2024-03-28 16:44:24 +02:00
rafael1209
90f2c466ba turn off site 2024-03-26 17:45:11 +02:00
rafael1209
612a6c6f01 site turned on for test 2024-03-26 17:42:01 +02:00
Hepatica
9d8c545528 Revert "Revert "Turn of website""
This reverts commit b80d5f4070.
2024-03-24 16:07:52 +01:00
Hepatica
b80d5f4070 Revert "Turn of website"
This reverts commit f5785d143c.
2024-03-24 15:53:44 +01:00
Hepatica
f5f1128da7 Add + 1 green color 2024-03-23 18:36:12 +01:00
Kostya
407c535ee5 added logic for get timetogame and object doubledata 2024-03-23 20:28:52 +03:00
Kostya
fc4e3f460c fixed conflict 2024-03-23 19:57:37 +03:00
Kostya
93d48f6867 added logic for added slides automat 2024-03-23 19:56:20 +03:00
Hepatica
067b47de06 Add doube void for error handeling 2024-03-23 17:43:33 +01:00
Kostya
63d8066e18 added code-logic for listening websocket-double 2024-03-23 19:35:47 +03:00
Kostya
34f577f140 added code for listening event doubleGame, but he dont work 2024-03-23 19:11:31 +03:00
Kostya
b6034d8f36 refactor code to composition api 2024-03-23 18:54:08 +03:00
Hepatica
a03be74a85 turn off button in setting to turn of chat 2024-03-23 16:39:02 +01:00
Hepatica
be2cf10eac fix chat displayning names 2024-03-23 16:36:36 +01:00
Hepatica
032b229a97 Add event for hande step carousel 2024-03-23 16:30:52 +01:00
Hepatica
f5785d143c Turn of website 2024-03-20 19:15:28 +01:00
Hepatica
270c6dbce6 add double page 2024-03-19 20:57:21 +01:00
Hepatica
864215e989 add double 2024-03-19 20:48:05 +01:00
Hepatica
f40a2ade8b Add carousel element 2024-03-17 21:37:28 +01:00
Madara0330E
2fe6c054f0 crete button mute 2024-03-16 20:59:31 +03:00
Madara0330E
7de74e533b create duple game 2024-03-16 16:43:38 +03:00
Swino4ka
1bda90f3d8 Рефералы кнопка работать хорошо 2024-03-14 20:47:43 +01:00
Hepatica
3eac45d056 Казино временно не работает 2024-03-14 17:46:12 +01:00
Swino4ka
aed7d1acb4 ! 2024-03-13 23:36:06 +01:00
Hepatica
1ecdabfdf4 Merge pull request #16 from Swino4ka/Swino4ka
Важная хрень
2024-03-13 23:15:56 +01:00
Swino4ka
1df840c050 Важная хрень 2024-03-13 22:49:20 +01:00
Hepatica
b0eb2984ad change time of sending message to chat to 1 second 2024-03-12 19:13:28 +01:00
Hepatica
4d09d7dd21 change chat muting time to 100 mil from 2 second 2024-03-12 19:03:41 +01:00
Hepatica
0c7440440f Merge pull request #15 from Swino4ka/Swino4ka
Modal for refferals
2024-03-12 18:05:20 +01:00
Swino4ka
c0017f0b81 Modal for refferals
Модал для реффералов бахнул, спать надо, поэтому не сделал вёрстку сорян
2024-03-11 21:25:08 +01:00
Kostya
31a83bba1d added connect for payments-modal, added event-bus for upd-money in profile and header 2024-03-05 21:52:56 +03:00
Kostya
5dc51486a5 added connect for profile 2024-03-05 20:51:18 +03:00
Kostya
7e5cd1bbdc added connect for header and fixed menu 2024-03-05 20:36:17 +03:00
Kostya
f9abb597be fixed margin in menu-mobile, fixed home-text 2024-03-05 19:51:48 +03:00
62 changed files with 2943 additions and 191 deletions

363
.gitignore vendored Normal file
View 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

View File

@@ -39,6 +39,7 @@
[Вдохновление](https://cs.fail/en/) [Вдохновление](https://cs.fail/en/)
## Наша Команда ## Наша Команда
![team](https://cdn.discordapp.com/attachments/1175674631684898866/1208428357952348170/Group_92.png?ex=65e33f9c&is=65d0ca9c&hm=9279223a5486b16e30267bced4fd1f7cc63ff59292cb5e29d741914b5902e5e0&) ![Group 65](https://github.com/danilt2000/LuckyDiamond/assets/96600211/fb41b4fa-24d4-4372-8b58-089d1c9d4ca4)

View File

@@ -21,6 +21,15 @@
<link rel="stylesheet" href="dist/css/bootstrap-grid.min.css" /> <link rel="stylesheet" href="dist/css/bootstrap-grid.min.css" />
<link rel="stylesheet" href="//cdn.jsdelivr.net/gh/dmhendricks/bootstrap-grid-css@4.1.3/dist/css/bootstrap-grid.min.css" /> <link rel="stylesheet" href="//cdn.jsdelivr.net/gh/dmhendricks/bootstrap-grid-css@4.1.3/dist/css/bootstrap-grid.min.css" />
<title>LuckyDiamond</title> <title>LuckyDiamond</title>
<meta property="og:title" content="LuckyDiamond" />
<meta property="og:type" content="rich" />
<meta property="og:url" content="lucky-diamonds.ru" />
<meta property="og:image" content="https://cdn.discordapp.com/attachments/1208431882044448769/1208432176614604820/Logo.png?ex=662dbfea&is=662c6e6a&hm=840608b1659515ab1103ef63aa041146bb89c204408ff9e880b984ca6aa17b13&" />
<meta property="og:description"
content="Лучшее онлайн-казино на сервере СПм" />
<meta property="og:locale" content="ru_RU" />
<meta property="og:site_name" content="lucky-diamonds.ru" />
<meta name="robots" content="all">
</head> </head>
<body> <body>
@@ -39,4 +48,4 @@
<script src="https://cdn.jsdelivr.net/npm/@vuelidate/core"></script> <script src="https://cdn.jsdelivr.net/npm/@vuelidate/core"></script>
<script src="https://cdn.jsdelivr.net/npm/@vuelidate/validators"></script> <script src="https://cdn.jsdelivr.net/npm/@vuelidate/validators"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.bundle.min.js" integrity="sha384-MrcW6ZMFYlzcLA8Nl+NtUVF0sA7MsXsP1UyJoMp4YLEuNSfAP+JcXn/tWtIaxVXM" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.bundle.min.js" integrity="sha384-MrcW6ZMFYlzcLA8Nl+NtUVF0sA7MsXsP1UyJoMp4YLEuNSfAP+JcXn/tWtIaxVXM" crossorigin="anonymous"></script>
</html> </html>

View File

@@ -28,14 +28,14 @@
.menu__content--chest-icon { .menu__content--chest-icon {
margin-left: -1px; margin-left: -1px;
transition: 250ms; transition: 250ms;
width: 100%; width: 80px;
height: 100%; height: 80px;
} }
.menu__content--chest-icon:hover { .menu__content--chest-icon:hover {
margin-left: -5px; margin-left: -2px;
height: 125%; height: 100px;
width: 125%; width: 100px;
} }
.menu__btn--home { .menu__btn--home {

View File

@@ -4,10 +4,10 @@
align-items: center; align-items: center;
display: flex; display: flex;
justify-content: center; justify-content: center;
width: 1332px; width: 100%;
height: 732px; height: 732px;
margin-top: 10px; margin-top: 10px;
margin-left: 65px;
} }
.bottom_card { .bottom_card {
width: 1332px; width: 1332px;
@@ -18,8 +18,7 @@
margin-left: 295px; margin-left: 295px;
} }
.top_card { .top_card {
width: 1204px; width: 100%;
height: 443px;
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
margin-left: 287px; margin-left: 287px;
@@ -397,12 +396,119 @@
display: flex; display: flex;
} }
/*the and FUpir_card 1*/ /*the and FUpir_card 1*/
/*beginning Swino4ka_card 1*/
.Swino4ka_card {
width: 250px;
height: 443px;
background-color: #6b4d3f;
border: 3px solid #595959 ;
border-color: #595959;
border-radius: 22px;
}
.Swino4ka_text_2 {
width: 244px;
height: 219.7px;
display: inline-block;
flex-flow: column-reverse;
}
.Swino4ka_aboutinfo_2 {
margin-top: 30px;
margin-left: 19px;
}
.Swino4ka_aboutinfo_2 p {
font-family: 'Montserrat';
color: white;
font-size: 14px;
width: 79px;
height: 19px;
margin-left: 4px;
}
.Swino4ka_aboutinfo_2 h1 {
font-family: 'Montserrat';
color: white;
font-size: 32px;
width: 177px;
height: 37px;
line-height: 30px;
}
.Swino4ka_whatjob_1 {
display: flex;
width: 183px;
height: 16px;
margin-left: 19px;
font-family: 'Montserrat';
margin-top: 30px;
}
.Swino4ka_whatjob_1 img {
width: 15px;
height: 17px;
}
.Swino4ka_whatjob_1 p {
margin-left: 3px;
}
.Swino4ka__whatjob_2 {
display: flex;
width: 183px;
height: 16px;
margin-left: 19px;
font-family: 'Montserrat';
margin-top: 10px;
}
.Swino4ka__whatjob_2 img {
width: 15px;
height: 17px;
}
.Swino4ka__whatjob_2 p {
margin-left: 3px;
}
.Swino4ka__whatjob_3 {
display: flex;
width: 183px;
height: 16px;
margin-left: 19px;
font-family: 'Montserrat';
margin-top: 9px;
}
.Swino4ka__whatjob_3 img {
width: 17px;
height: 15px;
}
.Swino4ka__whatjob_3 p {
margin-left: 3px;
}
.Swino4ka_skin_2 {
width: 244px;
height: 221.5px;
display: inline-block;
display: flex;
align-items: center;
justify-content: center;
}
.Swino4ka_skin_2_skin {
width: 212px;
height: 212px;
background-image: url(https://avatar.spworlds.ru/front/212/Swino4ka.png);
justify-content: space-around;
display: flex;
align-items: flex-end;
margin-bottom: 3px;
}
.Swino4ka_skinicons1 {
justify-content: space-around;
display: flex;
}
/*the and Swino4ka_card 1*/
/*beginning busha888_card 1*/ /*beginning busha888_card 1*/
.busha888_card { .busha888_card {
width: 422px; width: 422px;
height: 269px; height: 269px;
flex-shrink: 0;
border-radius: 22px; border-radius: 22px;
border: 3px solid #595959 ; border: 3px solid #595959 ;
border-color: #595959; border-color: #595959;
@@ -413,7 +519,7 @@
} }
.text { .text {
width: 211px; width: 200px;
height: 269px; height: 269px;
@@ -428,7 +534,7 @@
font-family: 'Montserrat'; font-family: 'Montserrat';
color: white; color: white;
font-size: 14px; font-size: 14px;
width: 97px; width: 200px;
height: 16px; height: 16px;
} }
.aboutinfo h1 { .aboutinfo h1 {
@@ -473,22 +579,24 @@
} }
.skin { .skin {
margin-right: 13px;
margin-top: 51px; margin-top: 51px;
margin-bottom: 3px; margin-bottom: 3px;
display: flex;
width: 212px;
height: 212px;
} }
.skin img { .skin img {
width: 212px; width: 212px;
height: 212px; height: 212px;
} }
/*the and busha888_card 1*/ /*the and busha888_card 1*/
/*beginning megatntmega_card 1*/ /*beginning GEDPOOL31_card 1*/
.megatntmega_card { .GEDPOOL31_card {
width: 422px; width: 422px;
height: 269px; height: 269px;
flex-direction: row;
border-radius: 22px; border-radius: 22px;
border: 3px solid #595959 ; border: 3px solid #595959 ;
border-color: #595959; border-color: #595959;
@@ -498,32 +606,33 @@
} }
.megatntmega_text { .GEDPOOL31_text {
width: 211px; width: 200px;
height: 269px; height: 269px;
} }
.megatntmega_aboutinfo { .GEDPOOL31_aboutinfo {
margin-top: 30px; margin-top: 30px;
margin-left: 15px; margin-left: 15px;
} }
.megatntmega_aboutinfo p { .GEDPOOL31_aboutinfo p {
font-family: 'Montserrat'; font-family: 'Montserrat';
color: white; color: white;
font-size: 14px; font-size: 14px;
width: 200px;
height: 16px; height: 16px;
} }
.megatntmega_aboutinfo h1 { .GEDPOOL31_aboutinfo h1 {
font-family: 'Montserrat'; font-family: 'Montserrat';
color: white; color: white;
font-size: 32px; font-size: 32px;
} }
.megatntmega_whatjob { .GEDPOOL31_whatjob {
display: flex; display: flex;
width: 183px; width: 183px;
height: 16px; height: 16px;
@@ -533,15 +642,15 @@
margin-top: 30px; margin-top: 30px;
} }
.megatntmega_whatjob p { .GEDPOOL31_whatjob p {
margin-left: 3px; margin-left: 3px;
margin-top: 3px; margin-top: 3px;
} }
.megatntmega_whatjob img { .GEDPOOL31_whatjob img {
width: 25px; width: 25px;
height: 24px; height: 25px;
} }
.megatntmega_icons { .GEDPOOL31_icons {
width: 79px; width: 79px;
height: 36px; height: 36px;
justify-content: space-around; justify-content: space-around;
@@ -550,23 +659,23 @@
margin-left: 72px; margin-left: 72px;
margin-bottom: 11px; margin-bottom: 11px;
} }
.megatntmega_icons img { .GEDPOOL31_icons img {
display: flex;
width: 36px; width: 36px;
height: 36px; height: 36px;
} }
.megatntmega_skin { .GEDPOOL31_skin {
margin-top: 51px; margin-top: 51px;
margin-bottom: 3px; margin-bottom: 3px;
display: flex; display: flex;
width: 212px; width: 212px;
height: 212px; height: 212px;
background-image: url(https://avatar.spworlds.ru/front/212/megatntmega.png);
} }
.megatntmega_skin img { .GEDPOOL31_skin img {
width: 212px; width: 212px;
height: 212px; height: 212px;
} }
/*the and megatntmega_card 1*/ /*the and GEDPOOL31_card 1*/
/*beginning CLARFFY_card 1*/ /*beginning CLARFFY_card 1*/
.CLARFFY_card { .CLARFFY_card {
@@ -659,11 +768,15 @@
align-items: center; align-items: center;
display: flex; display: flex;
justify-content: center; justify-content: center;
width: 1332px; width: 100%;
height: 732px; height: 732px;
margin-top: 80px; margin-top: 80px;
margin-left: 142px;
}
.top_card {
width: 90%;
} }
} }

View File

@@ -53,6 +53,12 @@
left: 10%; left: 10%;
} }
.referal-icon-diamond img {
position: absolute;
top: 35.5%;
left: 10%;
}
.deposit-icon__input .promo-input, .deposit-icon__input .promo-input,
.deposit-icon__input .deposit-amount__input, .deposit-icon__input .deposit-amount__input,
.withdraw-input .with-input{ .withdraw-input .with-input{

View File

@@ -1,3 +1,12 @@
.classMenegerCrash {
display: flex;
flex-direction: row;
}
.classNoMenegerCrash {
margin-top: 7.4vh;
margin-left: 1vh;
}
.crash-content { .crash-content {
display: grid; display: grid;
grid-template-columns: repeat(6, 1fr); grid-template-columns: repeat(6, 1fr);
@@ -168,7 +177,30 @@
font-weight: 700; font-weight: 700;
} }
/* /Crash-Graph */ /* /Crash-History */
.crash__history {
background: linear-gradient(90deg, rgba(34, 37, 47, 0.8) -0.54%, rgba(34, 37, 47, 0.8) 83.03%, rgba(73, 59, 74, 0.64) 103.54%);
width: 66%;
height: 50px;
border-radius: 18px;
margin-left: 455px;
display: grid;
grid-template-columns: auto auto auto;
gap: 10px;
}
.grid-item {
background-color: rgba(255, 255, 255, 0.8);
border: 1px solid rgba(0, 0, 0, 0.8);
text-align: center;
}
.crash-history__element {
height: 80%;
border-radius: 18px;
background: rgba(34, 37, 47, 0.8);
}
/* Crash-Players */ /* Crash-Players */

View 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;
}

View File

@@ -11,7 +11,21 @@
/* margin-top: 2.6%; */ /* margin-top: 2.6%; */
margin: 2.6%; margin: 2.6%;
} }
.classMeneger {
display: flex;
flex-direction: row;
}
.classNoMeneger {
margin-left: 1vh;
margin-top: 2.4vh;
}
.IstoriaMenedger {
margin-left: 85px;
margin-top: 7px;
width: 30px;
height: 30px;
}
.jackpot-loading-bar { .jackpot-loading-bar {
z-index: 1; z-index: 1;
/* margin-left: 5%; */ /* margin-left: 5%; */
@@ -47,17 +61,12 @@
.carousel-arrow { .carousel-arrow {
position: absolute; position: absolute;
bottom: -20px; bottom: -20px;
/* Регулируйте положение стрелки относительно нижнего края карусели */
left: 50%; left: 50%;
/* Центрирование стрелки по горизонтали */
transform: translateX(-50%); transform: translateX(-50%);
/* Дополнительное центрирование, чтобы точка указывала точно на центр */
color: #728DF8; color: #728DF8;
/* Цвет стрелки */
font-size: 24px; font-size: 24px;
/* Размер стрелки */
/* Добавьте любые дополнительные стили, такие как цвет фона, границы и т.д. */
} }
.jackpot-useringame-list{ .jackpot-useringame-list{
margin-top: 3.5%; margin-top: 3.5%;
overflow-y: auto; overflow-y: auto;
@@ -383,4 +392,10 @@
padding-left: 0; padding-left: 0;
padding-right: 0; padding-right: 0;
} }
.IstoriaMenedger {
margin-left: 20px;
margin-top: 7px;
width: 30px;
height: 30px;
}
} }

View File

@@ -6,7 +6,15 @@
backdrop-filter: blur(100px); backdrop-filter: blur(100px);
box-shadow: 0px 4px 4px 0px rgba(0, 0, 0, 0.25); box-shadow: 0px 4px 4px 0px rgba(0, 0, 0, 0.25);
} }
.classMenegerSaper {
display: flex;
flex-direction: row;
}
.classNoMenegerSaper {
margin-left: 1vh;
margin-top: 2.4vh;
}
.bg { .bg {
background: #293561; background: #293561;
filter: blur(120px); filter: blur(120px);
@@ -150,7 +158,8 @@
#diamonds-input { #diamonds-input {
/* width: 347px; /* width: 347px;
height: 38px; */ height: 38px; */
width: 37vh; /* width: 37vh; */
width: 36vh;
height: 4vh; height: 4vh;
} }

View File

@@ -37,6 +37,7 @@
text-transform: uppercase; text-transform: uppercase;
} }
@keyframes RaindowAnimate { @keyframes RaindowAnimate {
from { from {
color: #6EEB21; color: #6EEB21;
@@ -90,6 +91,7 @@
} }
.bg-card { .bg-card {
border-radius: 40px; border-radius: 40px;
background: #EF4444; background: #EF4444;
box-shadow: 4px 4px 4px 0px rgba(0, 0, 0, 0.25); box-shadow: 4px 4px 4px 0px rgba(0, 0, 0, 0.25);
@@ -97,8 +99,9 @@
.bg-early{ .bg-early{
border-radius: 40px; border-radius: 40px;
background: #969B9E; background: #EF4444;
box-shadow: 4px 4px 4px 0px rgba(0, 0, 0, 0.25); box-shadow: 4px 4px 4px 0px rgba(0, 0, 0, 0.25);
height: 21.5vh;
} }
.gamemode__main { .gamemode__main {
@@ -260,6 +263,29 @@
position: relative; position: relative;
bottom: 5%; bottom: 5%;
left: 2%; left: 2%;
transition: 250ms;
height: 7vh;
}
.line__btn--doubl {
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%;
height: 7.4vh;
width: 16vh;
transition: 250ms; transition: 250ms;
} }
@@ -268,6 +294,7 @@
opacity: 0; opacity: 0;
transition: 250ms; transition: 250ms;
right: 20; right: 20;
} }
.line__btn--crash:hover span:after { .line__btn--crash:hover span:after {
@@ -281,7 +308,28 @@
} }
.line__btn--crash:active { .line__btn--crash:active {
left: 5%; left: 2%;
}
.line__btn--doubl span:after {
content: '\00bb';
opacity: 0;
transition: 250ms;
right: 0;
}
.line__btn--doubl:hover span:after {
opacity: 1;
right: 0;
padding-right: 0px;
}
.line__btn--doubl:hover {
padding:11px 11px 11px 22px ;
width: 20vh;
}
.line__btn--doubl-:active {
left: 2%;
} }
.line__btn__jackpot { .line__btn__jackpot {
@@ -325,6 +373,7 @@
.line__btn--elm { .line__btn--elm {
color: #000; color: #000;
font-size: 38px ; font-size: 38px ;
} }
.line__btn--elm--saper { .line__btn--elm--saper {
@@ -357,7 +406,7 @@
.gamemode__twoline--first__element { .gamemode__twoline--first__element {
width: 100%; width: 100%;
margin: 2% 3.6% 0 5.5%; margin: 2% 3.6% 0 5.5%;
min-height: 180px; min-height: 209px;
} }
.linecontent-3 { .linecontent-3 {
@@ -370,35 +419,40 @@
color: #fff; color: #fff;
text-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25); text-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25);
font-family: Montserrat Alternates; font-family: Montserrat Alternates;
font-size: 80px; font-size: 60px;
font-weight: 700; font-weight: 700;
text-transform: uppercase; text-transform: uppercase;
padding: 4.5% 2.2%; 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 { .gamemode__twoline--two__element {
margin-top: 2%; margin-top: 2%;
width: 100%; width: 100%;
min-height: 180px; min-height: 180px;
height:22.3vh ;
} }
.container {}
.gamemode__twoline--two__element .container { .gamemode__twoline--two__element .container {
display: flex; display: flex;
justify-content: center; justify-content: center;
}
.linecontent-4 {
}
.iconsGame {
bottom: 20px;
height: 20vh;
}
.ButtonPlayDouble {
width: 20vh;
margin-top: 1.6vh;
} }
.gamemode__twoline--two__element .container a { .gamemode__twoline--two__element .container a {
margin-right: 10%; margin-right: 10%;
} }
@@ -406,6 +460,21 @@
.cumming_soon--img { .cumming_soon--img {
margin-bottom: 4%; 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 */ /* /GameMode */
@@ -430,7 +499,7 @@
} }
.title-twoline { .title-twoline {
font-size: 60px; font-size: 40px;
} }
.line__img__jackpot { .line__img__jackpot {
@@ -472,11 +541,7 @@
width: 80px; width: 80px;
} }
.gamemode__twoline--first__element .container a {
margin-right: 10%;
padding: 2px 11px 11px 11px;
margin-bottom: 3%;
}
.line__btn__jackpot { .line__btn__jackpot {
border-radius: 16px; border-radius: 16px;
@@ -490,8 +555,8 @@
} }
.crash--img { .crash--img {
height: 60px; height: 128px;
width: 60px; width: 128px;
} }
.line__content { .line__content {
@@ -506,7 +571,7 @@
} }
.title-twoline { .title-twoline {
font-size: 40px; font-size: 20px;
} }
.line__img__jackpot { .line__img__jackpot {
@@ -549,11 +614,7 @@
width: 80px; width: 80px;
} }
.gamemode__twoline--first__element .container a {
margin-right: 10%;
padding: 2px 11px 11px 11px;
margin-bottom: 3%;
}
.line__btn__jackpot { .line__btn__jackpot {
border-radius: 10px; border-radius: 10px;
@@ -575,15 +636,16 @@
height: 265px; height: 265px;
} }
.gamemode__twoline--first__element {
width: 100%;
margin: 0 3.6% 0 5.5%;
min-height: 60px;
}
.gamemode__twoline--two__element { .gamemode__twoline--two__element {
margin-top: 0; margin-top: 0;
width: 100%; width: 100%;
min-height: 60px; min-height: 60px;
} }
.gamemode__twoline--first__element {
margin-top: 0;
width: 100%;
min-height: 60px;
}
} }

View File

@@ -0,0 +1,67 @@
.jackpot-history__content {
display: flex;
max-height: 800px;
overflow-y: auto;
margin: 0 auto;
}
.jackpot-history__element {
display: flex;
flex-direction: column;
flex-wrap: wrap;
margin: 15px;
}
.abc {
}
.element-info {
display: flex;
align-items: center;
}
.element-info .element-info__icon img {
height: 50px;
}
.element-info .element-info__user-info {
margin-left: 4px;
}
.element-info .element-info__user-info .username {
color: #515D83;
font-family: 'Montserrat';
font-weight: 700;
font-size: 20px;
}
.element-info .element-info__user-info .user-deposit {
font-family: 'Montserrat';
font-weight: 700;
font-size: 20px;
}
.element-info .element-info__user-info .img-width img {
width: 16px;
height: 16px;
}
.element-chance {
margin-top: 10px;
}
.element-chance h2 {
font-family: 'Montserrat';
font-weight: 700;
font-size: 18px;
text-align: center;
background: #27345C;
border-radius: 7px;
}
.element-chance .chance-style {
color: #EF4444;
margin-left: 2px;
}

View File

@@ -88,6 +88,17 @@
background: #EF4444; background: #EF4444;
} }
.referal {
padding: 3.8% 46% 3% 14%;
margin-top: 12px;
background: #2D6AE0;
}
.referal img {
height: 20px;
width: 22px;
}
.playerandvid { .playerandvid {
margin-right: 10vh; margin-right: 10vh;
} }
@@ -264,6 +275,9 @@
.withdraw { .withdraw {
padding-right: 56%; padding-right: 56%;
} }
.referal {
padding-right: 56%;
}
.withdraw-color h3 { .withdraw-color h3 {
color: #EA3D38; color: #EA3D38;
margin-right: 1vh; margin-right: 1vh;
@@ -334,6 +348,9 @@
.withdraw { .withdraw {
padding-right: 66%; padding-right: 66%;
} }
.referal {
padding-right: 66%;
}
} }
@media screen and (min-device-width: 1921px) { @media screen and (min-device-width: 1921px) {

View File

@@ -76,3 +76,56 @@
background: red; /* Цвет фона трека для Firefox */ background: red; /* Цвет фона трека для Firefox */
height: 8px; /* Высота трека для 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;
}

View File

@@ -109,6 +109,38 @@ button {
grid-gap: 0.625rem; grid-gap: 0.625rem;
} }
.content-grid--double {
display: grid;
grid-auto-columns: 1fr;
grid-template-columns: 0.35fr repeat(5, 1fr) 1fr;
grid-template-rows: auto 0fr repeat(4, 1fr);
grid-template-areas:
"menu header header header header header header"
"menu double double double double double chat"
"menu double double double double double chat"
"menu double double double double double chat"
"menu double double double double double chat"
"menu double double double double double chat"
"menu double double double double double chat";
grid-gap: 0.625rem;
}
.jackpot-history__content-grid {
display: grid;
grid-auto-columns: 1fr;
grid-template-columns: 0.35fr repeat(5, 1fr) 1fr;
grid-template-rows: auto 0fr repeat(4, 1fr);
grid-template-areas:
"menu header header header header header header"
"menu jackpot-history jackpot-history jackpot-history jackpot-history jackpot-history chat"
"menu jackpot-history jackpot-history jackpot-history jackpot-history jackpot-history chat"
"menu jackpot-history jackpot-history jackpot-history jackpot-history jackpot-history chat"
"menu jackpot-history jackpot-history jackpot-history jackpot-history jackpot-history chat"
"menu jackpot-history jackpot-history jackpot-history jackpot-history jackpot-history chat"
"menu jackpot-history jackpot-history jackpot-history jackpot-history jackpot-history chat";
grid-gap: 0.625rem;
}
.grid-crash { .grid-crash {
display: grid; display: grid;
grid-template-columns: 0.35fr repeat(5, 1fr) 1fr; grid-template-columns: 0.35fr repeat(5, 1fr) 1fr;
@@ -163,7 +195,7 @@ button {
height: 86vh; height: 86vh;
position: relative; position: relative;
z-index: 3; z-index: 3;
} }
/* /Chat */ /* /Chat */
@@ -211,9 +243,22 @@ button {
margin: 0.625rem 2.438rem 1.125rem 1.125rem; */ margin: 0.625rem 2.438rem 1.125rem 1.125rem; */
} }
.jackpot-history {
grid-area: jackpot-history;
background: #17181C;
border-radius: 20px;
height: 97%;
}
.double {
display: flex;
grid-area: double;
}
.about { .about {
grid-area: about; grid-area: about;
} }
@@ -279,7 +324,7 @@ button {
grid-area: help; grid-area: help;
display: flex; display: flex;
/* height:99%; */ /* height:99%; */
height:86vh; height: 86vh;
border-radius: 3.125rem; border-radius: 3.125rem;
background: #17181C; background: #17181C;
box-shadow: 0.25rem 0.25rem 0.25rem 0px rgba(0, 0, 0, 0.25); box-shadow: 0.25rem 0.25rem 0.25rem 0px rgba(0, 0, 0, 0.25);
@@ -287,7 +332,7 @@ button {
/*height: 96.2%;*/ /*height: 96.2%;*/
width: 1000px; width: 1000px;
margin: 0 auto; margin: 0 auto;
} }
@@ -314,8 +359,9 @@ button {
height: 35%; height: 35%;
z-index: 0; z-index: 0;
} }
/* /Crash */ /* /Crash */
/* Media */ /* Media */
/* /Media */ /* /Media */

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 751 B

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 855 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 824 B

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 124 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 195 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 624 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 751 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 690 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

View File

@@ -0,0 +1,3 @@
<svg width="30" height="30" viewBox="0 0 30 30" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M30 14.9717C30.0153 23.2362 23.2754 29.9942 15.0109 30C11.4414 30.0025 8.16271 28.7583 5.58616 26.6788C4.91619 26.138 4.8661 25.1339 5.47493 24.5251L6.15641 23.8436C6.67711 23.3229 7.5084 23.266 8.0853 23.7236C9.98358 25.23 12.3859 26.1291 15 26.1291C21.1515 26.1291 26.129 21.1506 26.129 15C26.129 8.8485 21.1505 3.87098 15 3.87098C12.0475 3.87098 9.36598 5.0183 7.37491 6.89106L10.4447 9.96087C11.0544 10.5705 10.6226 11.6129 9.76046 11.6129H0.967741C0.433246 11.6129 0 11.1797 0 10.6452V1.85244C0 0.990304 1.04238 0.558509 1.65205 1.16813L4.63826 4.15434C7.33118 1.58081 10.981 0 15 0C23.2748 0 29.9847 6.70042 30 14.9717ZM19.0577 19.7368L19.6519 18.9729C20.1441 18.3401 20.0301 17.428 19.3972 16.9359L16.9355 15.0211V8.70969C16.9355 7.90798 16.2856 7.25808 15.4839 7.25808H14.5161C13.7144 7.25808 13.0645 7.90798 13.0645 8.70969V16.9144L17.0207 19.9915C17.6535 20.4836 18.5655 20.3697 19.0577 19.7368Z" fill="#B8B8B8"/>
</svg>

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

@@ -0,0 +1,9 @@
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<rect width="20" height="20" fill="url(#pattern0_3764_2)"/>
<defs>
<pattern id="pattern0_3764_2" patternContentUnits="objectBoundingBox" width="1" height="1">
<use xlink:href="#image0_3764_2" transform="scale(0.0078125)"/>
</pattern>
<image id="image0_3764_2" width="128" height="128" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAACXBIWXMAAAsTAAALEwEAmpwYAAAHQklEQVR4nO1dS2xUVRhGBd8PLOLbrdG1iRtfRJuIBjRGgRgT1iaQYEw0gYXdYowLN0pBUUBdzKrOq7czNePCB9YRxYIuXbQ+VghLoFK/b3ponHY6M525Z/7/3PN/yZdBLNP7f9937z33nHPPWbPGYDAYDAaDwWAwGAwGg8FgMBgyg4mJiRuSJLkPfAB/fmh8fHwYfN5xmH/H/8ef4c9KH6+hR8DAIRj4DEx9HRzFf9fAv8D5VfJP928P8Lv4nfxu6foMS8Cz1Z3N+8E6TPq3B7O7Jb/7NIMFbqvVauul648SuVzuOhjwMswo4fOiR8PbEr/7Aj6L4A6E4VppXTIPnO2PQ/SPIPg5KdPbhOEsPg/h8zFpnTKF+fn5K2D8Vgh7XNrkVYThJ3zuHBkZuVJav2BB8Wg8hPxR2tA+gjDNIOD2sFZaz6AA45+EeL9JG5gi2XDcJK2rehSLxTsh1lGIdUmBaT6uCIVyuXyvtM7qwMs9xNmTKGzceQgBG4u72baR1l0FcEZshCjj0sYIcJJXPGn9RQHzn4D3fygwQ+pq8Dc7saR9GDh4yYcAb4Fz0iZIkx1Z4L5obgl8JELBh6WFV8hj9Xp9nbQ/XuH67csKxNbK6tjY2E3SPnkBihuC+d8oEFk7p/L5/G3SfqUKFoTCTisQNwiyB7FarW6Q9i0VwPzr7czvKQTfo710o7R/fYGNGrvn98VqLpe7WtrHnsDHGpj/iQIRgyY0/CzIUcVk4TlfXMAsECHYK+3nqsAevsQ6edIMwMVgJprgWf/2mLt3PXJG/eOhG9WbUCBWJskGter2gBvSFRcqy4TGu6R9bgkObbqxbnGRMs5z0Pkuab+XAQf2uQJxoiACcETa7yZwDp+0KF3wO77M0Q35swqOt10ALnGKvLTvDeRyuatwQL9Ki9IFc93WxJ9VcLydQjCtokGIg3lFWowYA+BCsN2ntx3hununpYWIOAA/i84kKpfLL0iLEHMASL4849PjTkJNSQsQewA4bOzT4xXBVqh08RaABeJK/KhPr1vCvaUrXrwFoHEVOOjT62Xgu/D4pf9IF24BWAzAWa6Z4NPzJrjFGcQLtwA0hWCbT8+bEOg0r6wHIO/T80WgwXGz5LIsxhUDcGEgk0jxy7ZIF2tckZsHEYB3FRRqbM23BxGAEwoKNbYgbgM/+DZ/KPG7Dp+xP84Vi8VbvQUADcBnFRRpbE9/7QAumaqgQGMbcl6mzwCMShdo7BiA970FAL/gK+kCjR0D8KXPAPSy6rZxsJz1Yj57mRQU1w9nkoUu3m44o+B4eyInjPKV/NQDwAUOpYvrk5keC1gSgvTfG6hUKg9KF2YB6I6lUun+1AOAL35YujALQHfk9jepByCQlz8sAEnjFrAp9QBwcyXpwiwAXQfgOQuABSBd2C0gHHq5BSTWCAyGXhqB9hgYDr08BlpHUDj00hGUga7gKALgrSvYCRPyYFAUAUh8DQY5YUIeDo4iAF6HgwOfEBJLAPxNCAl8SlgsAfA3JcxtoS5epAWgbQCe9haAJOxp4TEEwO+0cCdOqHv5xhCAKZ/eN4BLzDsKCrUAtCC82e/T+wYCfjkkhgD4u/9fBrc146vI0sVaAJbxPLfl8+n9/wUqKijYAtDMMZ+eLxVoh4KCLQDNfNGn502wRaJ0ceCLRDmRDkkXbgFY5AGfXrcENzFSULgFIGnMAHrEp9fthPpWuvjYA4AT8bhPj9sisJnCmQwAuMWnx23BpcpxAL8oECHKAIgvF08EtGpo5gKAe/9LPr3tCtwyJglja/isBeCkii1jCL6IwMmICkRpx0xtGiWyRHw74KA+lRYmIn4s7fcyTE5O3hFg72CIPMP9maX9bgkc3G4FAmWaOMlelfZ5RbhdxPLSImWYJfHHvk5A42QjDnRWgVhZo/7t4y+DG0rZngLpkVqK9ff3Chz0PmnhskJo+aa0n6uGaw8clhYvAzym/r6/Eur1+joUUFIgYpDECVSo1WprpX3sC5ypgkK+lhYzNHKYd2CTPH2jWq1uQFGnpEUNiBxhHZL2LVXwlSW7EnQmz/xgHvdWC65ckYQ5pXxQ5he8re6hBW74+ENpsbUR5h9ho1nan4HAPSLutc6ihU4e8I1gH/X6QbKw9uDv0iYIcia4Hr60wQZPEmFfAe/3fDqS1l8F3C1hVyTzCc5wSDfKS34n8IzgQlQBTC/r5YxnTUfVTubQBDeaOC1tWoo8qW4On3ZwxiuCsJX74SowsFeyR28nH32l9QwaCMFwonym7hKe4Oxiu8+nDF5GIexBpY1FNu5Go3+sGwTc+gTb+SglvFzNefALvqGDcF4jrUuUYN85bxFcIYuDTZ4DMYfvr+PzPV7i8dRyi3T9hiXgqCMM2gy+Bn7AxZOT3iapzrp/y+/YwxW4cOVZL12foUfwSlEoFO7hbhrcUgWX7Kf4ejvJP/Pv+P8qlcrdmR+RMxgMBoPBYDAYDAaDwWAwGAyR4T8v9J98K6ZdvgAAAABJRU5ErkJggg=="/>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

View 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));
}

View File

@@ -29,10 +29,14 @@ export function ConnectToChat() {
return; return;
} }
if (dataObject.MessageType == 'DoubleGameState') {
eventBus.emit('doubleGame', event.data)
return;
}
if (dataObject.MessageType == "CrashGameState") { if (dataObject.MessageType == "CrashGameState") {
eventBus.emit('crash', event.data); eventBus.emit('crash', event.data);
return; return;
} }
if (Array.isArray(dataObject.CurrentGame.PlayerList)) { if (Array.isArray(dataObject.CurrentGame.PlayerList)) {
@@ -41,7 +45,7 @@ export function ConnectToChat() {
} }
} catch (error) { } catch (error) {
void(error); void (error);
} }
}; };

View 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')
}
}

View File

@@ -85,3 +85,25 @@ export async function JoinJackpotGame(userData, amount) {
console.log('Fetch error') console.log('Fetch error')
} }
} }
export async function getJackpotHistoryGame () {
try {
const response = await fetch(`${BackendApiUrl}/GameJackpot/GetNewestJackpotGames`, {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
redirect: "follow"
})
if (!response.ok) {
console.log('Fetch error:', response.status)
}
console.log(response)
return await response.json()
}
catch (error) {
console.log('Fetch error')
}
}

View File

@@ -9,7 +9,7 @@
<!-- <div class="fotosloti"><a href="#"><img src="../assets/icons-menu/slots-icon.svg" ></a></div> --> <!-- <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: '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="#" @click="$router.push({ name: 'crash' })"><img class="menu__content--cruch-icon" src="../assets/icons-menu/crush-icon.svg"></a>
<a href="#"><img class="menu__content--chest-icon" 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/duable-icons.svg"></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> -->
<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> </div>

View File

@@ -29,6 +29,8 @@
</li> </li>
</transition-group> </transition-group>
</ul> </ul>
</div> </div>
<writechat-component @send="ClaimDatamsg"></writechat-component> <writechat-component @send="ClaimDatamsg"></writechat-component>
<!-- <div class="chat__mute-button"> <!-- <div class="chat__mute-button">
@@ -67,14 +69,37 @@ export default {
return msg.msg.includes(GetCookie("SpUserName")); return msg.msg.includes(GetCookie("SpUserName"));
}, },
ClaimDatamsg(msg) { ClaimDatamsg(msg) {
const now = Date.now(); const now = Date.now();
if (!this.lastMsgTime || now - this.lastMsgTime >= 2000) { if (!this.lastMsgTime || now - this.lastMsgTime >= 1000) {
SendMessageToChat(msg[0]); const processedMsg = this.processMessage(msg[0]);
this.lastMsgTime = now;
} else { SendMessageToChat(processedMsg);
alert("Вы не можете отправлять сообщения чаще, чем раз в 2 секунды."); this.lastMsgTime = now;
} } else {
}, alert("Вы не можете отправлять сообщения так часто");
}
},
processMessage(message) {
const maxLength = 5; // Тут макс допустимых символов писать
const processedMessage = [];
let currentSymbol = "";
let count = 0;
for (let i = 0; i < message.length; i++) {
if (message[i] === currentSymbol) {
count++;
} else {
currentSymbol = message[i];
count = 1;
}
if (count <= maxLength) {
processedMessage.push(message[i]);
}
}
return processedMessage.join("");
},
muteChat() { muteChat() {
// Mute the chat by disabling the event listener for incoming messages. // Mute the chat by disabling the event listener for incoming messages.
this.eventBus.$off("dataChat"); this.eventBus.$off("dataChat");
@@ -108,32 +133,54 @@ export default {
}); });
}, },
created() { created() {
GetChatHistory().then((response) => { GetChatHistory().then((response) => {
if (response && response.length) { if (response && response.length) {
response.forEach((element) => { response.forEach((element) => {
let imageUrl = let imageUrl =
"https://avatar.spworlds.ru/face/55/" + element.userName; "https://avatar.spworlds.ru/face/55/" + element.userName;
const MsgUser = { const processedMsg = this.processMessage(element.message); // Process the message
id: this.id + 1,
msg: element.message,
username: element.userName,
icon: imageUrl,
};
if (MsgUser.username === "🛠️ System") { const MsgUser = {
MsgUser.icon = "https://avatar.spworlds.ru/face/55/CONSOLE"; id: this.id + 1,
} msg: processedMsg, // Use the processed message
username: element.userName,
icon: imageUrl,
};
this.array.push(MsgUser); if (MsgUser.username === "🛠️ System") {
}); MsgUser.icon = "https://avatar.spworlds.ru/face/55/CONSOLE";
this.ScrollToBottom(); }
}
}); this.array.push(MsgUser);
}, });
this.ScrollToBottom();
}
});
},
processMessage(message) {
const maxLength = 5; // Тут макс допустимых символов писать
const processedMessage = [];
let currentSymbol = "";
let count = 0;
for (let i = 0; i < message.length; i++) {
if (message[i] === currentSymbol) {
count++;
} else {
currentSymbol = message[i];
count = 1;
}
if (count <= maxLength) {
processedMessage.push(message[i]);
}
}
return processedMessage.join("");
},
}; };
</script> </script>
<style scoped> <style scoped>
</style> </style>

View File

@@ -60,7 +60,7 @@
</div> </div>
<div class="Ckutls__whatjob_1"> <div class="Ckutls__whatjob_1">
<img src="@/assets/icons-developcard/html.png" alt="html"> <img src="@/assets/icons-developcard/html.png" alt="html">
<p>HTML 5,CSS</p> <p>HTML 5, CSS</p>
</div> </div>
<div class="Ckutls__whatjob_2"> <div class="Ckutls__whatjob_2">
<img src="@/assets/icons-developcard/js.png" alt="html"> <img src="@/assets/icons-developcard/js.png" alt="html">
@@ -106,46 +106,78 @@
</div> </div>
</div> </div>
<div class="Swino4ka_card">
<div class="Swino4ka_text_2">
<div class="Swino4ka_aboutinfo_2">
<p>Фронтэндер</p>
<h1>Swino4ka</h1>
</div>
<div class="Swino4ka_whatjob_1">
<img src="@/assets/icons-developcard/html.png" alt="html">
<p>HTML 5, CSS</p>
</div>
<div class="Swino4ka__whatjob_2">
<img src="@/assets/icons-developcard/js.png" alt="html">
<p>JavaScript</p>
</div>
<div class="Swino4ka__whatjob_3">
<img src="@/assets/icons-developcard/Vue.png" alt="html">
<p>Vue 3</p>
</div>
</div>
<div class="Swino4ka_skin_2">
<div class="Swino4ka_skin_2_skin">
<div class="Swino4ka_skinicons1">
<a href="https://t.me/Swino4ka_pon" target="_blank" ><img src="@/assets/icons-developcard/telegram.png" alt=""></a>
<a href="https://discordapp.com/users/472393576010088449" target="_blank" ><img src="@/assets/icons-developcard/discord.png" alt=""></a>
<a href="https://github.com/swino4ka/" target="_blank" ><img src="@/assets/icons-developcard/github.png" alt=""></a>
</div>
</div>
</div>
</div>
</div> </div>
<div class="bottom_card"> <div class="bottom_card">
<div class="megatntmega_card"> <div class="GEDPOOL31_card">
<div class="megatntmega_text"> <div class="GEDPOOL31_text">
<div class="megatntmega_aboutinfo"> <div class="GEDPOOL31_aboutinfo">
<p>Дизайнер</p> <p>Техническая поддержка</p>
<h1>megatntmega</h1> <h1>GEDPOOL31</h1>
</div> </div>
<div class="megatntmega_whatjob"> <div class="GEDPOOL31_whatjob">
<img src="@/assets/icons-developcard/Figma.png" alt="html"> <img src="@/assets/icons-developcard/tech-support.svg" alt="html">
<p>Designer</p> <p>Tech-Support</p>
</div> </div>
<div class="megatntmega_icons"> <div class="GEDPOOL31_icons">
<a href="https://t.me/random_ak" target="_blank" ><img src="@/assets/icons-developcard/telegram.png" alt=""></a> <a href="https://t.me/GEDPOOL31" target="_blank" ><img src="@/assets/icons-developcard/telegram.png" alt=""></a>
<a href="https://discordapp.com/users/531420425255911424" target="_blank" ><img src="@/assets/icons-developcard/discord.png" alt=""></a> <a href="https://discord.com/users/1044186204884701227" target="_blank" ><img src="@/assets/icons-developcard/discord.png" alt=""></a>
</div> </div>
</div> </div>
<div class="megatntmega_skin"> <div class="GEDPOOL31_skin">
<img src="https://avatar.spworlds.ru/front/212/GEDPOOL31.png" alt="">
</div> </div>
</div> </div>
<div class="busha888_card"> <div class="busha888_card">
<div class="text"> <div class="text">
<div class="aboutinfo"> <div class="aboutinfo">
<p>Фронтэндер</p> <p>Фронтэндер</p>
<h1>busha888</h1> <h1>Madara0330H</h1>
</div> </div>
<div class="whatjob"> <div class="whatjob">
<img src="@/assets/icons-developcard/html.png" alt="html"> <img src="@/assets/icons-developcard/html.png" alt="html">
<p>HTML 5,CSS</p> <p>HTML 5, CSS</p>
</div> </div>
<div class="icons"> <div class="icons">
<a href="https://www.youtube.com/watch?v=dQw4w9WgXcQ" target="_blank" ><img src="@/assets/icons-developcard/odniclasniki.png" alt=""></a> <a href="https://www.youtube.com/watch?v=dQw4w9WgXcQ" target="_blank" ><img src="@/assets/icons-developcard/odniclasniki.png" alt=""></a>
<a href="https://t.me/Slayyyyyyyyyyyyyyyyy" target="_blank" ><img src="@/assets/icons-developcard/telegram.png" alt=""></a> <a href="https://t.me/Slayyyyyyyyyyyyyyyyy" target="_blank" ><img src="@/assets/icons-developcard/telegram.png" alt=""></a>
<a href="https://www.youtube.com/@busha1/featured" target="_blank" ><img src="@/assets/icons-developcard/like.png" alt=""></a> <a href="https://www.youtube.com/" target="_blank" ><img src="@/assets/icons-developcard/like.png" alt=""></a>
<a href="https://github.com/Madara0330E" target="_blank" ><img src="@/assets/icons-developcard/github.png" alt=""></a> <a href="https://github.com/Madara0330E" target="_blank" ><img src="@/assets/icons-developcard/github.png" alt=""></a>
</div> </div>
</div> </div>
<div class="skin"> <div class="skin">
<img src="https://avatar.spworlds.ru/front/212/busha888.png" alt=""> <img src="https://avatar.spworlds.ru/front/212/Madara0330H.png" alt="">
</div> </div>
</div> </div>
<div class="CLARFFY_card"> <div class="CLARFFY_card">

View File

@@ -1,7 +1,7 @@
<template> <template>
<div class="notification" v-if="notification"> <div class="notification" v-if="notification">
<div class="notification__content"> <div class="notification__content">
<h3>Операция вывода отправлена</h3> <h3>{{ text }}</h3>
</div> </div>
</div> </div>
</template> </template>
@@ -11,7 +11,8 @@ import '@/assets/css/ComponentsStyles/notification.css'
export default { export default {
props: { props: {
notification: Boolean notification: Boolean,
text: String,
}, },
emits: ['notificationremove'], emits: ['notificationremove'],
methods: { methods: {

View File

@@ -68,7 +68,7 @@
type="checkbox" type="checkbox"
:class="{ 'animate-start-btn': errorAgree }" :class="{ 'animate-start-btn': errorAgree }"
/> />
<h3>Я согласен с <a href="https://docs.google.com/document/d/1lU_zTWJdD1lcMlIAFDIVz-DlZAoq3a-OFkoO8WBIkzo/edit?usp=sharing">пользовательским соглашением</a></h3> <h3>Я согласен с <a href="https://docs.google.com/document/d/1ytKHnXr67o7mu5TKqlpgRjO8DEvQDRHNnaphhzbr_sg/edit?usp=sharing">пользовательским соглашением</a></h3>
</div> </div>
<div <div
class="btn-deposit btn-text-style btn-display-deposit btn-style-payments" class="btn-deposit btn-text-style btn-display-deposit btn-style-payments"
@@ -115,7 +115,7 @@
</div> </div>
<div class="withdraw-checkbox checkbox-styles"> <div class="withdraw-checkbox checkbox-styles">
<input @click="agreeUser = !agreeUser" type="checkbox" /> <input @click="agreeUser = !agreeUser" type="checkbox" />
<h3>Я согласен с пользовательским соглашением.</h3> <h3>Я согласен <a href="https://docs.google.com/document/d/1ytKHnXr67o7mu5TKqlpgRjO8DEvQDRHNnaphhzbr_sg/edit?usp=sharing">пользовательским соглашением</a></h3>
</div> </div>
<div class="error-captcha" v-if="errorCaptcha && agreeUser === true"> <div class="error-captcha" v-if="errorCaptcha && agreeUser === true">
<h2>Пройдите проверку!</h2> <h2>Пройдите проверку!</h2>

View 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/1ytKHnXr67o7mu5TKqlpgRjO8DEvQDRHNnaphhzbr_sg/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>

View File

@@ -8,7 +8,7 @@
<div class="header-mobile__balance"> <div class="header-mobile__balance">
<div class="header-mobile__balance--content"> <div class="header-mobile__balance--content">
<div class="header-mobile__card card-display card-text card-img"> <div class="header-mobile__card card-display card-text card-img">
<h2><img src="@/assets/icons-adaptive/home-adaptive/icon-diamond-ore.png">999</h2> <h2><img src="@/assets/icons-adaptive/home-adaptive/icon-diamond-ore.png">{{ this.balance}}</h2>
</div> </div>
<div class="header-mobile__btn--balance btn-card btn-card__margin"> <div class="header-mobile__btn--balance btn-card btn-card__margin">
<a href="#" @click="$router.push({ name: 'profile' })"><img src="@/assets/icons-adaptive/home-adaptive/icon-wallet.svg"></a> <a href="#" @click="$router.push({ name: 'profile' })"><img src="@/assets/icons-adaptive/home-adaptive/icon-wallet.svg"></a>
@@ -16,7 +16,7 @@
</div> </div>
</div> </div>
<div class="header-mobile__user-icon user-icon"> <div class="header-mobile__user-icon user-icon">
<img src="@/assets/icons-test/person-icon-profile-userinfo.png"> <img :src="this.imageUrl">
</div> </div>
</div> </div>
</div> </div>
@@ -25,8 +25,117 @@
<script> <script>
import '@/assets/css/ComponentsStyles/AdaptiveStyles/headermobile.css' import '@/assets/css/ComponentsStyles/AdaptiveStyles/headermobile.css'
export default { import { LogIn } from "@/assets/js/authentication/AuthService.js";
import { GetCurrentMoney } from "@/assets/js/rest/RestMethods.js";
import { eventBus } from "@/main";
import {
SetCookie,
GetCookie,
DeleteAllCookie,
} from "@/assets/js/storage/CookieStorage.js";
export default {
methods: {
logout() {
this.auth = false;
this.balance = 0;
this.authtoken = "";
DeleteAllCookie();
},
updateBalanceMethod() {
GetCurrentMoney(GetCookie("AUTHTOKEN"), GetCookie("SearchToken")).then(
(response) => {
this.balance = response.currentMoney;
}
);
eventBus.emit("Updatebalance-saper");
},
},
data() {
return {
balance: 0,
auth: false,
authtoken: "",
imageUrl: "https://avatar.spworlds.ru/face/55/",
userName: "",
};
},
mounted() {
eventBus.on("Updatebalance", () => {
this.updateBalanceMethod();
});
},
created() {
try {
let authCode = this.$route.query.code;
if (authCode) {
LogIn(authCode)
.then((response) => {
SetCookie("UserId", response.userId);
SetCookie("SpUserName", response.spUserName);
SetCookie("AUTHTOKEN", response.authtoken);
SetCookie("SearchToken", response.searchToken);
this.imageUrl = this.imageUrl + `${response.spUserName}.png`;
this.userName = response.spUserName;
this.auth = true;
this.authtoken = response.authtoken;
GetCurrentMoney(GetCookie("AUTHTOKEN"), GetCookie("SearchToken"))
.then((response) => {
this.balance = response.currentMoney;
})
.catch((error) => {
console.error(error);
});
})
.catch(() => {
let currentUserName = GetCookie("SpUserName");
GetCurrentMoney(GetCookie("AUTHTOKEN"), GetCookie("SearchToken"))
.then((response) => {
this.balance = response.currentMoney;
console.log(response);
})
.catch((error) => {
console.error(error);
});
if (currentUserName) {
this.imageUrl = this.imageUrl + `${currentUserName}.png`;
this.userName = GetCookie("SpUserName");
this.auth = true;
this.authtoken = GetCookie("AUTHTOKEN");
} else {
this.auth = false;
this.balance = 0;
}
});
} else {
let currentUserName = GetCookie("SpUserName");
GetCurrentMoney(GetCookie("AUTHTOKEN"), GetCookie("SearchToken"))
.then((response) => {
this.balance = response.currentMoney;
})
.catch((error) => {
// Обработка ошибки
console.error(error);
});
if (currentUserName) {
this.imageUrl = this.imageUrl + `${currentUserName}.png`;
this.userName = GetCookie("SpUserName");
this.auth = true;
this.authtoken = GetCookie("AUTHTOKEN");
} else {
this.auth = false;
this.balance = 0;
}
}
} catch (error) {
console.error("Auth Code error:", error);
}
},
} }
</script> </script>

View File

@@ -2,12 +2,18 @@
<footer class="footer-mobile"> <footer class="footer-mobile">
<div class="footer-mobile__content"> <div class="footer-mobile__content">
<div class="footer-mobile__icons icons-size"> <div class="footer-mobile__icons icons-size">
<a href="#"><img class="icon-start" src="@/assets/icons-adaptive/home-adaptive/icon-home-menu.png"></a> <a href="#" @click="$router.push({ name: 'home' })"><img class="icon-start" src="@/assets/icons-adaptive/home-adaptive/icon-home-menu.png"></a>
<a href="#" @click="$router.push({ name: 'profile' })"><img class="icon-center" src="@/assets/icons-adaptive/home-adaptive/icon-wallet-menu.svg"></a> <a href="#" @click="$router.push({ name: 'profile' })"><img class="icon-center" src="@/assets/icons-adaptive/home-adaptive/icon-wallet-menu.svg"></a>
<a href="#"><img class="icon-center" src="@/assets/icons-adaptive/home-adaptive/icon-chat-menu.png"></a> <a href="#" @click="this.chatOpened = !this.chatOpened"><img class="icon-center" src="@/assets/icons-adaptive/home-adaptive/icon-chat-menu.png"></a>
<a href="#"><img class="icon-center" src="@/assets/icons-adaptive/home-adaptive/icon-info-menu.png"></a> <a href="#" @click="$router.push({ name: 'about'})"><img class="icon-center" src="@/assets/icons-adaptive/home-adaptive/icon-info-menu.png"></a>
<a href="#"><img class="icon-end" src="@/assets/icons-adaptive/home-adaptive/icon-menu.png"></a>
<a href="#" @click="this.menuOpened = !this.menuOpened"><img class="icon-end" src="@/assets/icons-adaptive/home-adaptive/icon-menu.png"></a>
</div> </div>
<notiicationwindow-component @notificationremove="NotificationMethod" :notification="menuOpened == true" :text="Тест"></notiicationwindow-component>
<div class="chat-component" v-if="chatOpened == true">
<chat-component></chat-component>
</div>
</div> </div>
</footer> </footer>
</template> </template>
@@ -15,7 +21,12 @@
<script> <script>
import '@/assets/css/ComponentsStyles/AdaptiveStyles/menumobile.css' import '@/assets/css/ComponentsStyles/AdaptiveStyles/menumobile.css'
export default { export default {
data() {
return {
chatOpened: false,
menuOpened: false
}
}
} }
</script> </script>

View File

@@ -1,9 +1,17 @@
import { createApp } from 'vue' import { createApp } from 'vue'
import App from './App.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 = false;
import router from "@/router/router"; import router from "@/router/router";
import mitt from 'mitt' import mitt from 'mitt'
import { Mixins } from "@/mixins/mixin"; import { Mixins } from "@/mixins/mixin";
import { import {
ConnectToChat ConnectToChat
} from "@/assets/js/chat/ChatLogic.js"; } from "@/assets/js/chat/ChatLogic.js";
@@ -11,12 +19,35 @@ import '@/assets/css/global.css'
export const eventBus = mitt() 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.use(router)
app.mixin(Mixins) app.mixin(Mixins)
app.mount('#app') app.mount('#app')
app.provide(eventBus) // app.provide(eventBus)
ConnectToChat(); ConnectToChat();

View File

@@ -79,15 +79,23 @@
<div class="gamemode__twolines"> <div class="gamemode__twolines">
<div class="gamemode__twoline--first__element bg-early"> <div class="gamemode__twoline--first__element bg-early">
<ul> <ul>
<li v-for="mode in twolinefirstelementGameMode" :key="mode"> <li v-for="mode in twolinetwoelementGameMode" :key="mode.id">
<div :class="'linecontent-' + mode.id"> <div :class="'linecontent-' + mode.id">
<h3 class="title-twoline">скоро</h3> <h3 class="title-twoline">рулетка</h3>
</div> </div>
<div class="container"> <div class="container">
<a href="#" class="cumming_soon_btn" <!-- <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 >play <span class="line__btn--elm"></span></a
> >
<img src="@/assets/icons-gamemodes/slots-icon.png" class="cumming_soon--img" />
<img class="double--img" src="@/assets/icons-games/double-game/DoubleLogo.svg" />
</div> </div>
</li> </li>
</ul> </ul>
@@ -106,6 +114,7 @@
class="line__btn--crash" class="line__btn--crash"
>play <span class="line__btn--elm"></span></a >play <span class="line__btn--elm"></span></a
> >
<img class="crash--img" src="@/assets/icons-gamemodes/crush-icon.svg" /> <img class="crash--img" src="@/assets/icons-gamemodes/crush-icon.svg" />
</div> </div>
</li> </li>

View File

@@ -0,0 +1,70 @@
t<template>
<div class="jackpot-history__content-grid">
<aside-bar-element/>
<chat-component/>
<header-element-page/>
<div class="jackpot-history">
<div class="jackpot-history__content">
<ul class="jackpot-history__element">
<li v-for="(game, index) in historyGame" :key="index">
<div class="abc">
<div class="jackpot-history__element">
<div class="element-info">
<div class="element-info__icon">
<img :src="`https://avatar.spworlds.ru/face/55/${game.winnerUserName}`">
</div>
<div class="element-info__user-info">
<h2 class="username">{{ game.winnerUserName }}</h2>
<h2 class="user-deposit">
{{ game.winStake.toFixed(2) }}
<span class="img-width"><img src="@/assets/icons-profile/icon-diamond-ore.png"></span>
</h2>
</div>
</div>
<div class="element-chance">
<h2>
Шанс <span class="chance-style">{{ game.winnerPercentage.toFixed(2) }}%</span>
</h2>
</div>
</div>
</div>
</li>
</ul>
</div>
</div>
</div>
</template>
<script>
import { onMounted, reactive } from "vue";
import ChatComponent from "@/components/ChatComponent.vue";
import AsideBarElement from "@/components/AsidebarComponent.vue";
import HeaderElementPage from "@/components/HeaderComponent.vue";
import '@/assets/css/PagesStyles/jackpot-history.css'
import {getJackpotHistoryGame} from "@/assets/js/jackpot/JackpotLogic";
export default {
components: {HeaderElementPage, ChatComponent, AsideBarElement},
setup() {
let historyGame = reactive({})
onMounted(() => {
getJackpotHistoryGame()
.then(response => {
Object.assign(historyGame, response)
})
})
return { historyGame }
}
}
</script>
<style>
</style>

View File

@@ -0,0 +1,70 @@
t<template>
<div class="jackpot-history__content-grid">
<aside-bar-element/>
<chat-component/>
<header-element-page/>
<div class="jackpot-history">
<div class="jackpot-history__content">
<ul class="jackpot-history__element">
<li v-for="(game, index) in historyGame" :key="index">
<div class="abc">
<div class="jackpot-history__element">
<div class="element-info">
<div class="element-info__icon">
<img :src="`https://avatar.spworlds.ru/face/55/${game.winnerUserName}`">
</div>
<div class="element-info__user-info">
<h2 class="username">{{ game.winnerUserName }}</h2>
<h2 class="user-deposit">
{{ game.winStake.toFixed(2) }}
<span class="img-width"><img src="@/assets/icons-profile/icon-diamond-ore.png"></span>
</h2>
</div>
</div>
<div class="element-chance">
<h2>
Шанс <span class="chance-style">{{ game.winnerPercentage.toFixed(2) }}%</span>
</h2>
</div>
</div>
</div>
</li>
</ul>
</div>
</div>
</div>
</template>
<script>
import { onMounted, reactive } from "vue";
import ChatComponent from "@/components/ChatComponent.vue";
import AsideBarElement from "@/components/AsidebarComponent.vue";
import HeaderElementPage from "@/components/HeaderComponent.vue";
import '@/assets/css/PagesStyles/jackpot-history.css'
import {getJackpotHistoryGame} from "@/assets/js/jackpot/JackpotLogic";
export default {
components: {HeaderElementPage, ChatComponent, AsideBarElement},
setup() {
let historyGame = reactive({})
onMounted(() => {
getJackpotHistoryGame()
.then(response => {
Object.assign(historyGame, response)
})
})
return { historyGame }
}
}
</script>
<style>
</style>

View File

@@ -14,6 +14,7 @@
<div class="profile__btns--payments"> <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="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="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> </div>
<div class="payments"> <div class="payments">
@@ -57,8 +58,9 @@
</div> </div>
</div> </div>
</section> </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> <payments-modal v-if="openModal" @notifacetionmoney="NotificationEventListener" @closemodal="openModal = false" :payments="payments"></payments-modal>
<notiicationwindow-component @notificationremove="NotificationMethod" :notification="notification"></notiicationwindow-component> <notiicationwindow-component @notificationremove="NotificationMethod" :notification="notification" text="Операция проведена успешно"></notiicationwindow-component>
</div> </div>
</template> </template>
<script> <script>
@@ -67,13 +69,14 @@ import axios from 'axios';
import ChatComponent from "@/components/ChatComponent.vue"; import ChatComponent from "@/components/ChatComponent.vue";
import HeaderComponent from "@/components/HeaderComponent.vue"; import HeaderComponent from "@/components/HeaderComponent.vue";
import PaymentsModal from "@/components/PaymentsModal.vue"; import PaymentsModal from "@/components/PaymentsModal.vue";
import ReferalModal from "@/components/ReferalModal.vue";
import ProfilemobilePage from "@/pages/adaptive-pages/ProfilemobilePage.vue"; import ProfilemobilePage from "@/pages/adaptive-pages/ProfilemobilePage.vue";
import NotiicationwindowComponent from "@/components/NotiicationwindowComponent.vue"; import NotiicationwindowComponent from "@/components/NotiicationwindowComponent.vue";
import { GetCookie } from "@/assets/js/storage/CookieStorage"; import { GetCookie } from "@/assets/js/storage/CookieStorage";
import '@/assets/css/PagesStyles/profile.css' import '@/assets/css/PagesStyles/profile.css'
import {GetCurrentMoney} from "@/assets/js/rest/RestMethods"; import {GetCurrentMoney} from "@/assets/js/rest/RestMethods";
export default { export default {
components: {ProfilemobilePage, HeaderComponent, AsideBarComponent, ChatComponent, PaymentsModal, NotiicationwindowComponent }, components: {ProfilemobilePage, HeaderComponent, AsideBarComponent, ChatComponent, PaymentsModal, ReferalModal, NotiicationwindowComponent },
data() { data() {
return { return {
username: 'Artemka', username: 'Artemka',
@@ -82,11 +85,12 @@ export default {
balance: 0, balance: 0,
mobile: false, mobile: false,
openModal: false, openModal: false,
openRef: false,
payments: true, payments: true,
arrayHistory: [], arrayHistory: [],
} }
}, },
emits: ['notificationremove'], emits: ['notificationremove'],
mounted() { mounted() {
this.checkWindowSize() this.checkWindowSize()
@@ -96,6 +100,57 @@ export default {
this.RemoveWindowListener() this.RemoveWindowListener()
}, },
created() { 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', { axios.post('https://spsystemcore20231122004605.azurewebsites.net/api/Payment/GetPaymentHistory', {
searchToken: GetCookie('SearchToken'), searchToken: GetCookie('SearchToken'),
authtoken: GetCookie('AUTHTOKEN') authtoken: GetCookie('AUTHTOKEN')
@@ -129,10 +184,16 @@ export default {
depositClick() { depositClick() {
this.openModal = true this.openModal = true
this.payments = true this.payments = true
this.openRef = false
}, },
withdrawClick() { withdrawClick() {
this.openModal = true this.openModal = true
this.payments = false this.payments = false
this.openRef = false
},
referalClick() {
this.openModal = false
this.openRef = true
}, },
NotificationEventListener() { NotificationEventListener() {
this.notification = true this.notification = true

View File

@@ -12,19 +12,32 @@
<button id="volume-down" @click="volumeDown">-</button> <button id="volume-down" @click="volumeDown">-</button>
</div> </div>
--> -->
<div class="volume-section"> <div class="classssboxxxx">
<h1 class="volume-text">Звук</h1> <div class="volume-section">
<input <h1 class="volume-text">Звук</h1>
id="volumeControl" <input
type="range" id="volumeControl"
min="0" type="range"
max="10" min="0"
v-model="volume" max="10"
@input="handleVolumeChange" v-model="volume"
ref="volumeControl" @input="handleVolumeChange"
/> ref="volumeControl"
<h1 class="volume-text--grey">Данная страница находится в разработке, и будет полностью переделанна</h1> />
</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> </div>
</section> </section>
</div> </div>

View File

@@ -6,10 +6,10 @@
<div class="profile-mobile__content"> <div class="profile-mobile__content">
<div class="macroinfo-profile text-default-mobile img-margin"> <div class="macroinfo-profile text-default-mobile img-margin">
<h2>Профиль</h2> <h2>Профиль</h2>
<img src="@/assets/icons-test/person-icon-profile-userinfo.png"> <img :src="this.imageUrl">
</div> </div>
<div class="info-profile"> <div class="info-profile">
<h3 class="text-nickname-user">Artmeka</h3> <h3 class="text-nickname-user">{{this.userName}}</h3>
<h3 class="balance-border balance-display balance-text"><img src="@/assets/icons-profile/icon-diamond-ore.png">999</h3> <h3 class="balance-border balance-display balance-text"><img src="@/assets/icons-profile/icon-diamond-ore.png">999</h3>
<div class="profile-mobile__btns-payments"> <div class="profile-mobile__btns-payments">
<a href="#" @click="paymetsCall('dep')" class="deposit-button"><img class="icon-margin-deposit-withdraw" src="@/assets/icons-profile/icon-deposit.svg"> Пополнить</a> <a href="#" @click="paymetsCall('dep')" class="deposit-button"><img class="icon-margin-deposit-withdraw" src="@/assets/icons-profile/icon-deposit.svg"> Пополнить</a>
@@ -24,22 +24,16 @@
</template> </template>
<script> <script>
import { GetCurrentMoney } from "@/assets/js/rest/RestMethods";
import { GetCookie } from "@/assets/js/storage/CookieStorage";
import HeaderMobileComponent from "@/components/adaptive-components/HeaderMobileComponent.vue"; import HeaderMobileComponent from "@/components/adaptive-components/HeaderMobileComponent.vue";
import MenuMobileComponent from "@/components/adaptive-components/MenuMobileComponent.vue"; import MenuMobileComponent from "@/components/adaptive-components/MenuMobileComponent.vue";
import PaymentsMobile from "@/components/adaptive-components/PaymentsMobile.vue"; import PaymentsMobile from "@/components/adaptive-components/PaymentsMobile.vue";
import {eventBus} from "@/main"
import '@/assets/css/PagesStyles/adaptive-pages/profilemobile.css' import '@/assets/css/PagesStyles/adaptive-pages/profilemobile.css'
export default { export default {
components: { HeaderMobileComponent, MenuMobileComponent, PaymentsMobile },
data () {
return {
payments: {
paymentsWindow: false,
paymentsView: false
},
}
},
methods: { methods: {
paymetsCall(view) { paymetsCall(view) {
this.payments.paymentsWindow = true this.payments.paymentsWindow = true
@@ -47,8 +41,49 @@ export default {
}, },
paymentsClose() { paymentsClose() {
this.payments.paymentsWindow = false this.payments.paymentsWindow = false
} },
} },
data() {
return {
balance: 0,
auth: false,
authtoken: "",
imageUrl: "https://avatar.spworlds.ru/face/55/",
userName: "",
payments: {
paymentsWindow: false,
paymentsView: false
},
};
},
mounted() {
eventBus.on("Updatebalance", () => {
this.updateBalanceMethod();
});
},
created() {
let currentUserName = GetCookie("SpUserName");
GetCurrentMoney(GetCookie("AUTHTOKEN"), GetCookie("SearchToken"))
.then((response) => {
this.balance = response.currentMoney;
})
.catch((error) => {
// Обработка ошибки
console.error(error);
});
if (currentUserName) {
this.imageUrl = this.imageUrl + `${currentUserName}.png`;
this.userName = GetCookie("SpUserName");
this.auth = true;
this.authtoken = GetCookie("AUTHTOKEN");
} else {
this.auth = false;
this.balance = 0;
}
},
components: { HeaderMobileComponent, MenuMobileComponent, PaymentsMobile },
} }
</script> </script>

View File

@@ -11,7 +11,16 @@
<section class="crash-game"> <section class="crash-game">
<div class="crash-game__content"> <div class="crash-game__content">
<div class="crash-game__start-window"> <div class="crash-game__start-window">
<h2 class="crash__game-name">Краш</h2> <div class="classMenegerCrash">
<h2 class="crash__game-name">Краш</h2>
<div class="classNoMenegerCrash">
<a href="https://docs.google.com/document/d/13jJx5IC0AC8pOpbSG5CU1i9tIQof0Vb0IUFzcR0aKcE" target="_blank">
<img src="@/assets/icons-games/double-game/info.svg" alt="" />
</a>
</div>
</div>
<p>Жди момента и забирай выигрыш</p> <p>Жди момента и забирай выигрыш</p>
<div class="crash-game-window__inputs"> <div class="crash-game-window__inputs">
<div class="crash-deposit"> <div class="crash-deposit">
@@ -129,7 +138,6 @@ export default {
const dataCrashParse = JSON.parse(dataCrash) const dataCrashParse = JSON.parse(dataCrash)
this.crashObject = dataCrashParse this.crashObject = dataCrashParse
// console.log(this.crashObject)
} }
catch (e) { catch (e) {
console.error(e) console.error(e)
@@ -137,7 +145,9 @@ export default {
if (this.crashObject.Status === 'GameEnd' && this.startGame === true && this.crashObject.Players.some(player => player.UserName === GetCookie('SpUserName'))) { if (this.crashObject.Status === 'GameEnd' && this.startGame === true && this.crashObject.Players.some(player => player.UserName === GetCookie('SpUserName'))) {
this.startGame = false this.startGame = false
this.updateUserMoney() setTimeout(() => {
this.updateUserMoney();
}, 3000);
} }
if ( if (
this.crashObject.Players.some(player => this.crashObject.Players.some(player =>
@@ -295,8 +305,9 @@ export default {
.then((response) => { .then((response) => {
console.log(response) console.log(response)
this.startGame = false this.startGame = false
setTimeout(() => {
this.updateUserMoney() this.updateUserMoney();
}, 3000);
}) })
} }
}, },

View File

@@ -0,0 +1,715 @@
<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"
>
<div class="classMenegerDouble">
<h2>Рулетка</h2>
<div class="classNoMenegerDouble">
<a href="https://docs.google.com/document/d/1oeL3kHp_5Mjcgsb2i87yMgjjNO2HdUa0_5TK1mJk9S0" target="_blank">
<img src="@/assets/icons-games/double-game/info.svg" alt="" />
</a>
</div>
</div>
<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;
}
.classMenegerDouble {
display: flex;
flex-direction: row;
}
.classNoMenegerDouble {
margin-left: 1vh;
margin-top: 2.4vh;
}
.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>

View File

@@ -43,8 +43,22 @@
<div <div
class="jackpot-start__content title-saper padding-elements-jackpot" class="jackpot-start__content title-saper padding-elements-jackpot"
> >
<div class="classMeneger">
<h2>Джекпот</h2> <h2>Джекпот</h2>
<div class="classNoMeneger">
<a href="https://docs.google.com/document/d/1kW8bPmIZPrjK9EtKo6xsPLv989uOkgUn4wFk_uYOCUI/edit?usp=sharing" target="_blank">
<img src="@/assets/icons-games/double-game/info.svg" alt="" />
</a>
</div>
<div class="IstoriaMenedger">
<a href="#" @click="$router.push({ name: 'jackpot-history' })"><img class="IstoriaMenedger" src="@/assets/icons-games/double-game/Vector.svg"></a>
</div>
</div>
<p>Больше ставь, больше побеждай!</p> <p>Больше ставь, больше побеждай!</p>
<div class="saper-start__choises diamonds diamonds-input__margin"> <div class="saper-start__choises diamonds diamonds-input__margin">
<h3>Сумма депозита</h3> <h3>Сумма депозита</h3>

View File

@@ -11,7 +11,16 @@
<div class="bg-two"></div> <div class="bg-two"></div>
<div class="saper-start" :class="{ 'game-start__menu-off' : gameStart }"> <div class="saper-start" :class="{ 'game-start__menu-off' : gameStart }">
<div class="saper-start__content title-saper padding-elements"> <div class="saper-start__content title-saper padding-elements">
<h2>Сапёр</h2> <div class="classMenegerSaper">
<h2>Сапёр</h2>
<div class="classNoMenegerSaper">
<a href="https://docs.google.com/document/d/1aoN7tqLxWxOBJ-NXUs4GHK8Nl2n2Q-Kw6JHzmujku6A" target="_blank">
<img src="@/assets/icons-games/double-game/info.svg" alt="" />
</a>
</div>
</div>
<p>Находи изумруды на поле и избегай кристалы</p> <p>Находи изумруды на поле и избегай кристалы</p>
<div class="saper-start__choises crystals"> <div class="saper-start__choises crystals">
<h3>Количество кристалов</h3> <h3>Количество кристалов</h3>

View File

@@ -6,6 +6,8 @@ import SapergamePage from "@/pages/games-pages/SapergamePage.vue";
import SettingsPage from "@/pages/SettingsPage.vue"; import SettingsPage from "@/pages/SettingsPage.vue";
import CrashGamePage from "@/pages/games-pages/CrashgamePage.vue"; import CrashGamePage from "@/pages/games-pages/CrashgamePage.vue";
import JackpotPage from "@/pages/games-pages/JackpotPage.vue"; import JackpotPage from "@/pages/games-pages/JackpotPage.vue";
import JackopthistoryPage from "@/pages/JackopthistoryPage.vue";
import DoublePage from "@/pages/games-pages/DoublePage.vue";
import AboutPage from "@/pages/AboutPage.vue"; import AboutPage from "@/pages/AboutPage.vue";
import HelpPage from "@/pages/HelpPage.vue" ; import HelpPage from "@/pages/HelpPage.vue" ;
@@ -17,6 +19,8 @@ export default createRouter({
{ path: '/game/saper', component: SapergamePage, name: 'saper' }, { path: '/game/saper', component: SapergamePage, name: 'saper' },
{ path: '/game/crash', component: CrashGamePage, name: 'crash' }, { path: '/game/crash', component: CrashGamePage, name: 'crash' },
{ path: '/game/jackpot', component: JackpotPage, name: 'jackpot' }, { path: '/game/jackpot', component: JackpotPage, name: 'jackpot' },
{ path: '/game/jackpot/history', component: JackopthistoryPage, name: 'jackpot-history' },
{ path: '/game/double', component: DoublePage, name: 'double' },
{ path: '/settings', component: SettingsPage, name: 'settings' }, { path: '/settings', component: SettingsPage, name: 'settings' },
{ path: '/about', component: AboutPage, name: 'about' }, { path: '/about', component: AboutPage, name: 'about' },
{ path: '/help', component: HelpPage, name: 'help' }, { path: '/help', component: HelpPage, name: 'help' },