commit 9487728656b919164d777a95bbc0cc242648b37b Author: Andrey Sharshov Date: Sun Nov 16 18:54:31 2025 +0100 initial diff --git a/.babelrc b/.babelrc new file mode 100644 index 0000000..ec5ce6e --- /dev/null +++ b/.babelrc @@ -0,0 +1,12 @@ +{ + "plugins": ["@babel/transform-runtime", ["@babel/plugin-proposal-decorators", { "version": "2023-05"}]], + "presets": [ + [ + "@babel/preset-env", + { + "useBuiltIns": "usage", + "corejs": "3.22" + } + ] + ] +} diff --git a/.browserslistrc b/.browserslistrc new file mode 100644 index 0000000..024cf84 --- /dev/null +++ b/.browserslistrc @@ -0,0 +1,6 @@ +> 0.5% +last 2 versions +Firefox ESR +not dead +iOS >= 13 +Safari >= 13 diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..8096499 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,14 @@ +# This file is for unifying the coding style for different editors and IDEs. +# More information at http://EditorConfig.org +root = true + +[*] +end_of_line = lf +insert_final_newline = true +trim_trailing_whitespace = true +indent_style = space +indent_size = 2 + +[{package.json,bower.json,.github/workflows/*.yml}] + +indent_size = 2 diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100644 index 0000000..a1b7db7 --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,34 @@ +module.exports = { + "env": { + "browser": true, + "es2021": true + }, + "extends": "eslint:recommended", + "overrides": [ + { + "env": { + "node": true + }, + "files": [ + ".eslintrc.{js,cjs}" + ], + "parserOptions": { + "sourceType": "script" + } + } + ], + "parserOptions": { + "ecmaVersion": "latest", + "sourceType": "module" + }, + "rules": { + "object-curly-spacing": ["always"], + "no-unused-vars": ["warn"], + "no-console": "off", + "indent": ["error", 2, { "SwitchCase": 1 }], + "no-trailing-spaces": ["warn"], + "no-multi-spaces": ["warn"], + "space-infix-ops": ["warn"], + "keyword-spacing": ["warn"] + } +}; diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ac6d140 --- /dev/null +++ b/.gitignore @@ -0,0 +1,8 @@ +/node_modules/ +.idea +/dist/ +.DS_Store +.env +/yalc.lock +/.yalc/ +.npmrc \ No newline at end of file diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000..632616e --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,4 @@ +include: + - project: infrastructure/gitlab_ci_templates + file: entrypoints/front/front-entrypoint.gitlab-ci.yml + ref: main \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..eb2370c --- /dev/null +++ b/README.md @@ -0,0 +1,17 @@ +# Amazon City of Gold + +## Description +Area 69 reskin + +## Features +- Sticky wild +- Expanding multipliers + +## Installation +```npm install``` + +```npm run dev``` + +```npm run staging``` - to build for staging + +```npm run prod``` - to build for prod diff --git a/art/.gitkeep b/art/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/art/Popups/images/fs/15.png b/art/Popups/images/fs/15.png new file mode 100644 index 0000000..d14b095 Binary files /dev/null and b/art/Popups/images/fs/15.png differ diff --git a/art/Popups/images/fs/YOU WON.png b/art/Popups/images/fs/YOU WON.png new file mode 100644 index 0000000..af11336 Binary files /dev/null and b/art/Popups/images/fs/YOU WON.png differ diff --git a/art/Popups/images/fs/additional.png b/art/Popups/images/fs/additional.png new file mode 100644 index 0000000..2979357 Binary files /dev/null and b/art/Popups/images/fs/additional.png differ diff --git a/art/Popups/images/fs/free spins.png b/art/Popups/images/fs/free spins.png new file mode 100644 index 0000000..5a4a6a2 Binary files /dev/null and b/art/Popups/images/fs/free spins.png differ diff --git a/art/Popups/images/fs/fs_bg.png b/art/Popups/images/fs/fs_bg.png new file mode 100644 index 0000000..790b6e9 Binary files /dev/null and b/art/Popups/images/fs/fs_bg.png differ diff --git a/art/Popups/images/fs/fs_bg_half.png b/art/Popups/images/fs/fs_bg_half.png new file mode 100644 index 0000000..b544e87 Binary files /dev/null and b/art/Popups/images/fs/fs_bg_half.png differ diff --git a/art/Popups/images/fs/fs_column_left.png b/art/Popups/images/fs/fs_column_left.png new file mode 100644 index 0000000..5aeb0f5 Binary files /dev/null and b/art/Popups/images/fs/fs_column_left.png differ diff --git a/art/Popups/images/fs/fs_column_right.png b/art/Popups/images/fs/fs_column_right.png new file mode 100644 index 0000000..ddc63b0 Binary files /dev/null and b/art/Popups/images/fs/fs_column_right.png differ diff --git a/art/Popups/images/fs/fs_glow1.png b/art/Popups/images/fs/fs_glow1.png new file mode 100644 index 0000000..867c753 Binary files /dev/null and b/art/Popups/images/fs/fs_glow1.png differ diff --git a/art/Popups/images/fs/fs_glow1_half.png b/art/Popups/images/fs/fs_glow1_half.png new file mode 100644 index 0000000..453124d Binary files /dev/null and b/art/Popups/images/fs/fs_glow1_half.png differ diff --git a/art/Popups/images/fs/fs_glow2.png b/art/Popups/images/fs/fs_glow2.png new file mode 100644 index 0000000..99a9e83 Binary files /dev/null and b/art/Popups/images/fs/fs_glow2.png differ diff --git a/art/Popups/images/fs/fs_glow2_half.png b/art/Popups/images/fs/fs_glow2_half.png new file mode 100644 index 0000000..20254c8 Binary files /dev/null and b/art/Popups/images/fs/fs_glow2_half.png differ diff --git a/art/Popups/images/fs/fs_light.png b/art/Popups/images/fs/fs_light.png new file mode 100644 index 0000000..c09f903 Binary files /dev/null and b/art/Popups/images/fs/fs_light.png differ diff --git a/art/Popups/images/fs/fs_light_half.png b/art/Popups/images/fs/fs_light_half.png new file mode 100644 index 0000000..44304f2 Binary files /dev/null and b/art/Popups/images/fs/fs_light_half.png differ diff --git a/art/Popups/images/fs/fs_stand.png b/art/Popups/images/fs/fs_stand.png new file mode 100644 index 0000000..d71bc9a Binary files /dev/null and b/art/Popups/images/fs/fs_stand.png differ diff --git a/art/Popups/images/fs/fs_stand_half.png b/art/Popups/images/fs/fs_stand_half.png new file mode 100644 index 0000000..fa5869d Binary files /dev/null and b/art/Popups/images/fs/fs_stand_half.png differ diff --git a/art/Popups/images/fs/fs_whell.png b/art/Popups/images/fs/fs_whell.png new file mode 100644 index 0000000..68af515 Binary files /dev/null and b/art/Popups/images/fs/fs_whell.png differ diff --git a/art/Popups/images/fs/fs_whell_half.png b/art/Popups/images/fs/fs_whell_half.png new file mode 100644 index 0000000..02d2d06 Binary files /dev/null and b/art/Popups/images/fs/fs_whell_half.png differ diff --git a/art/Popups/images/fs/left.png b/art/Popups/images/fs/left.png new file mode 100644 index 0000000..153fd78 Binary files /dev/null and b/art/Popups/images/fs/left.png differ diff --git a/art/Popups/images/fs/placeholder.png b/art/Popups/images/fs/placeholder.png new file mode 100644 index 0000000..87b8ed8 Binary files /dev/null and b/art/Popups/images/fs/placeholder.png differ diff --git a/art/Popups/images/fs/tap to start.png b/art/Popups/images/fs/tap to start.png new file mode 100644 index 0000000..b183836 Binary files /dev/null and b/art/Popups/images/fs/tap to start.png differ diff --git a/art/Popups/images/fs_abduction/15.png b/art/Popups/images/fs_abduction/15.png new file mode 100644 index 0000000..abaad6f Binary files /dev/null and b/art/Popups/images/fs_abduction/15.png differ diff --git a/art/Popups/images/fs_abduction/free spins.png b/art/Popups/images/fs_abduction/free spins.png new file mode 100644 index 0000000..6d3d50e Binary files /dev/null and b/art/Popups/images/fs_abduction/free spins.png differ diff --git a/art/Popups/images/fs_abduction/fs_exw1_l.png b/art/Popups/images/fs_abduction/fs_exw1_l.png new file mode 100644 index 0000000..6fd9c19 Binary files /dev/null and b/art/Popups/images/fs_abduction/fs_exw1_l.png differ diff --git a/art/Popups/images/fs_abduction/fs_exw2_r.png b/art/Popups/images/fs_abduction/fs_exw2_r.png new file mode 100644 index 0000000..e1438e2 Binary files /dev/null and b/art/Popups/images/fs_abduction/fs_exw2_r.png differ diff --git a/art/Popups/images/fs_abduction/fs_exw3_top.png b/art/Popups/images/fs_abduction/fs_exw3_top.png new file mode 100644 index 0000000..7eb1dec Binary files /dev/null and b/art/Popups/images/fs_abduction/fs_exw3_top.png differ diff --git a/art/Popups/images/fs_abduction/fs_exw_shadow.png b/art/Popups/images/fs_abduction/fs_exw_shadow.png new file mode 100644 index 0000000..2562208 Binary files /dev/null and b/art/Popups/images/fs_abduction/fs_exw_shadow.png differ diff --git a/art/Popups/images/fs_abduction/fs_frame.png b/art/Popups/images/fs_abduction/fs_frame.png new file mode 100644 index 0000000..42439a4 Binary files /dev/null and b/art/Popups/images/fs_abduction/fs_frame.png differ diff --git a/art/Popups/images/fs_abduction/fs_glow copy.png b/art/Popups/images/fs_abduction/fs_glow copy.png new file mode 100644 index 0000000..5d01e75 Binary files /dev/null and b/art/Popups/images/fs_abduction/fs_glow copy.png differ diff --git a/art/Popups/images/fs_abduction/fs_rays copy.png b/art/Popups/images/fs_abduction/fs_rays copy.png new file mode 100644 index 0000000..27abbb9 Binary files /dev/null and b/art/Popups/images/fs_abduction/fs_rays copy.png differ diff --git a/art/Popups/images/fs_abduction/fs_stone_l.png b/art/Popups/images/fs_abduction/fs_stone_l.png new file mode 100644 index 0000000..b11cc91 Binary files /dev/null and b/art/Popups/images/fs_abduction/fs_stone_l.png differ diff --git a/art/Popups/images/fs_abduction/fs_stone_r.png b/art/Popups/images/fs_abduction/fs_stone_r.png new file mode 100644 index 0000000..d551896 Binary files /dev/null and b/art/Popups/images/fs_abduction/fs_stone_r.png differ diff --git a/art/Popups/images/fs_abduction/fs_stone_top.png b/art/Popups/images/fs_abduction/fs_stone_top.png new file mode 100644 index 0000000..5085e0e Binary files /dev/null and b/art/Popups/images/fs_abduction/fs_stone_top.png differ diff --git a/art/Popups/images/fs_abduction/fs_stone_top_s.png b/art/Popups/images/fs_abduction/fs_stone_top_s.png new file mode 100644 index 0000000..a8d5751 Binary files /dev/null and b/art/Popups/images/fs_abduction/fs_stone_top_s.png differ diff --git a/art/Popups/images/fs_hangover/hangover.png b/art/Popups/images/fs_hangover/hangover.png new file mode 100644 index 0000000..610901b Binary files /dev/null and b/art/Popups/images/fs_hangover/hangover.png differ diff --git a/art/Popups/images/fs_hangover/hg_glow.png b/art/Popups/images/fs_hangover/hg_glow.png new file mode 100644 index 0000000..d224b61 Binary files /dev/null and b/art/Popups/images/fs_hangover/hg_glow.png differ diff --git a/art/Popups/images/fs_hangover/hg_rays.png b/art/Popups/images/fs_hangover/hg_rays.png new file mode 100644 index 0000000..74465ed Binary files /dev/null and b/art/Popups/images/fs_hangover/hg_rays.png differ diff --git a/art/Popups/images/fs_hangover/hg_stone_left.png b/art/Popups/images/fs_hangover/hg_stone_left.png new file mode 100644 index 0000000..d2fc212 Binary files /dev/null and b/art/Popups/images/fs_hangover/hg_stone_left.png differ diff --git a/art/Popups/images/fs_hangover/hg_stone_right.png b/art/Popups/images/fs_hangover/hg_stone_right.png new file mode 100644 index 0000000..00a4ec7 Binary files /dev/null and b/art/Popups/images/fs_hangover/hg_stone_right.png differ diff --git a/art/Popups/images/fs_hangover/hg_stone_top.png b/art/Popups/images/fs_hangover/hg_stone_top.png new file mode 100644 index 0000000..ed67d38 Binary files /dev/null and b/art/Popups/images/fs_hangover/hg_stone_top.png differ diff --git a/art/Popups/images/fs_hangover/hg_stone_top_s.png b/art/Popups/images/fs_hangover/hg_stone_top_s.png new file mode 100644 index 0000000..9044741 Binary files /dev/null and b/art/Popups/images/fs_hangover/hg_stone_top_s.png differ diff --git a/art/Popups/images/fs_hangover/hg_wild_1.png b/art/Popups/images/fs_hangover/hg_wild_1.png new file mode 100644 index 0000000..f210bd6 Binary files /dev/null and b/art/Popups/images/fs_hangover/hg_wild_1.png differ diff --git a/art/Popups/images/fs_hangover/hg_wild_2.png b/art/Popups/images/fs_hangover/hg_wild_2.png new file mode 100644 index 0000000..485f7ae Binary files /dev/null and b/art/Popups/images/fs_hangover/hg_wild_2.png differ diff --git a/art/Popups/images/fs_hangover/hg_wild_3.png b/art/Popups/images/fs_hangover/hg_wild_3.png new file mode 100644 index 0000000..66cd76f Binary files /dev/null and b/art/Popups/images/fs_hangover/hg_wild_3.png differ diff --git a/art/Popups/images/fs_hangover/placeholder2.png b/art/Popups/images/fs_hangover/placeholder2.png new file mode 100644 index 0000000..87b8ed8 Binary files /dev/null and b/art/Popups/images/fs_hangover/placeholder2.png differ diff --git a/art/Popups/popups.spine b/art/Popups/popups.spine new file mode 100644 index 0000000..18981d5 Binary files /dev/null and b/art/Popups/popups.spine differ diff --git a/art/anticipation/anticip_bg.png b/art/anticipation/anticip_bg.png new file mode 100644 index 0000000..74a7671 Binary files /dev/null and b/art/anticipation/anticip_bg.png differ diff --git a/art/anticipation/anticip_bg_half.png b/art/anticipation/anticip_bg_half.png new file mode 100644 index 0000000..1658623 Binary files /dev/null and b/art/anticipation/anticip_bg_half.png differ diff --git a/art/anticipation/anticip_circle_SAMPLE.png b/art/anticipation/anticip_circle_SAMPLE.png new file mode 100644 index 0000000..b6e42af Binary files /dev/null and b/art/anticipation/anticip_circle_SAMPLE.png differ diff --git a/art/anticipation/anticip_circle_whole_source.png b/art/anticipation/anticip_circle_whole_source.png new file mode 100644 index 0000000..6d97252 Binary files /dev/null and b/art/anticipation/anticip_circle_whole_source.png differ diff --git a/art/anticipation/anticip_circle_whole_source_1.4.png b/art/anticipation/anticip_circle_whole_source_1.4.png new file mode 100644 index 0000000..a1e3e11 Binary files /dev/null and b/art/anticipation/anticip_circle_whole_source_1.4.png differ diff --git a/art/anticipation/anticip_frame.png b/art/anticipation/anticip_frame.png new file mode 100644 index 0000000..6440c97 Binary files /dev/null and b/art/anticipation/anticip_frame.png differ diff --git a/art/anticipation/anticip_frame1_half.png b/art/anticipation/anticip_frame1_half.png new file mode 100644 index 0000000..6aa3e8d Binary files /dev/null and b/art/anticipation/anticip_frame1_half.png differ diff --git a/art/anticipation/anticip_frame2_half.png b/art/anticipation/anticip_frame2_half.png new file mode 100644 index 0000000..4a196ae Binary files /dev/null and b/art/anticipation/anticip_frame2_half.png differ diff --git a/art/anticipation/anticip_frame_glow.png b/art/anticipation/anticip_frame_glow.png new file mode 100644 index 0000000..726f3ad Binary files /dev/null and b/art/anticipation/anticip_frame_glow.png differ diff --git a/art/anticipation/anticip_frame_glow1_half.png b/art/anticipation/anticip_frame_glow1_half.png new file mode 100644 index 0000000..e80e309 Binary files /dev/null and b/art/anticipation/anticip_frame_glow1_half.png differ diff --git a/art/anticipation/anticip_frame_glow2_half.png b/art/anticipation/anticip_frame_glow2_half.png new file mode 100644 index 0000000..70e8f68 Binary files /dev/null and b/art/anticipation/anticip_frame_glow2_half.png differ diff --git a/art/anticipation/anticip_glow.png b/art/anticipation/anticip_glow.png new file mode 100644 index 0000000..9801108 Binary files /dev/null and b/art/anticipation/anticip_glow.png differ diff --git a/art/anticipation/anticipation.spine b/art/anticipation/anticipation.spine new file mode 100644 index 0000000..278c00e Binary files /dev/null and b/art/anticipation/anticipation.spine differ diff --git a/art/anticipation/gameview_m_reels_symb.png b/art/anticipation/gameview_m_reels_symb.png new file mode 100644 index 0000000..1f9bf59 Binary files /dev/null and b/art/anticipation/gameview_m_reels_symb.png differ diff --git a/art/anticipation/symbols.png b/art/anticipation/symbols.png new file mode 100644 index 0000000..1ffb0ce Binary files /dev/null and b/art/anticipation/symbols.png differ diff --git a/art/gameviews/README.txt b/art/gameviews/README.txt new file mode 100644 index 0000000..d18b621 --- /dev/null +++ b/art/gameviews/README.txt @@ -0,0 +1,32 @@ + - main game + main_game_background + reels / skin: main + main_character_placeholder + placeholder + main_character [embeded spine] + main_game_front + + +- respins game + respins_game_background + reels / skin: respins + bonus_indicator_placeholder + bonus_indicator + respins_character_placeholder + placeholder + respins_character [embeded spine] + respins_game_front + + +- freespins game + freespins_game_background + reels / skin: freespins + freespins_character_placeholder + placeholder_left + freespins_character_left [embeded spine] + placeholder_right + freespins_character_right [embeded spine] + freespins_game_front + + + \ No newline at end of file diff --git a/art/gameviews/characters/freespins_character/freespins_character_left.spine b/art/gameviews/characters/freespins_character/freespins_character_left.spine new file mode 100644 index 0000000..146c67c Binary files /dev/null and b/art/gameviews/characters/freespins_character/freespins_character_left.spine differ diff --git a/art/gameviews/characters/freespins_character/freespins_character_right.spine b/art/gameviews/characters/freespins_character/freespins_character_right.spine new file mode 100644 index 0000000..291bc82 Binary files /dev/null and b/art/gameviews/characters/freespins_character/freespins_character_right.spine differ diff --git a/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_beads.png b/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_beads.png new file mode 100644 index 0000000..86a0d24 Binary files /dev/null and b/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_beads.png differ diff --git a/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_beads_s.png b/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_beads_s.png new file mode 100644 index 0000000..bfcdc2b Binary files /dev/null and b/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_beads_s.png differ diff --git a/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_belt1.png b/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_belt1.png new file mode 100644 index 0000000..35f0755 Binary files /dev/null and b/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_belt1.png differ diff --git a/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_belt2.png b/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_belt2.png new file mode 100644 index 0000000..9867c37 Binary files /dev/null and b/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_belt2.png differ diff --git a/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_belt2_s.png b/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_belt2_s.png new file mode 100644 index 0000000..0aa18e8 Binary files /dev/null and b/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_belt2_s.png differ diff --git a/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_earring.png b/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_earring.png new file mode 100644 index 0000000..50ee2f9 Binary files /dev/null and b/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_earring.png differ diff --git a/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_earring_l.png b/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_earring_l.png new file mode 100644 index 0000000..2733c52 Binary files /dev/null and b/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_earring_l.png differ diff --git a/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_eye_l.png b/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_eye_l.png new file mode 100644 index 0000000..66f7976 Binary files /dev/null and b/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_eye_l.png differ diff --git a/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_eye_r.png b/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_eye_r.png new file mode 100644 index 0000000..32f76fc Binary files /dev/null and b/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_eye_r.png differ diff --git a/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_eyebrow_l.png b/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_eyebrow_l.png new file mode 100644 index 0000000..f718b3e Binary files /dev/null and b/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_eyebrow_l.png differ diff --git a/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_eyebrow_r.png b/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_eyebrow_r.png new file mode 100644 index 0000000..8c48f83 Binary files /dev/null and b/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_eyebrow_r.png differ diff --git a/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_face.png b/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_face.png new file mode 100644 index 0000000..7939086 Binary files /dev/null and b/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_face.png differ diff --git a/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_feathers.png b/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_feathers.png new file mode 100644 index 0000000..32d8499 Binary files /dev/null and b/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_feathers.png differ diff --git a/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_fell_l.png b/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_fell_l.png new file mode 100644 index 0000000..e933cef Binary files /dev/null and b/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_fell_l.png differ diff --git a/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_fell_l_s.png b/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_fell_l_s.png new file mode 100644 index 0000000..9632899 Binary files /dev/null and b/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_fell_l_s.png differ diff --git a/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_fell_r.png b/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_fell_r.png new file mode 100644 index 0000000..271a6df Binary files /dev/null and b/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_fell_r.png differ diff --git a/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_fell_r_s.png b/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_fell_r_s.png new file mode 100644 index 0000000..ef51728 Binary files /dev/null and b/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_fell_r_s.png differ diff --git a/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_finger_l.png b/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_finger_l.png new file mode 100644 index 0000000..21eb952 Binary files /dev/null and b/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_finger_l.png differ diff --git a/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_finger_r.png b/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_finger_r.png new file mode 100644 index 0000000..a532e4e Binary files /dev/null and b/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_finger_r.png differ diff --git a/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_fringe_l.png b/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_fringe_l.png new file mode 100644 index 0000000..507e1d2 Binary files /dev/null and b/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_fringe_l.png differ diff --git a/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_fringe_r.png b/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_fringe_r.png new file mode 100644 index 0000000..23fe716 Binary files /dev/null and b/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_fringe_r.png differ diff --git a/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_hair_back.png b/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_hair_back.png new file mode 100644 index 0000000..0e199d5 Binary files /dev/null and b/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_hair_back.png differ diff --git a/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_hand1_l.png b/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_hand1_l.png new file mode 100644 index 0000000..d4d83b2 Binary files /dev/null and b/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_hand1_l.png differ diff --git a/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_hand1_r.png b/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_hand1_r.png new file mode 100644 index 0000000..b50db74 Binary files /dev/null and b/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_hand1_r.png differ diff --git a/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_hand2_r.png b/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_hand2_r.png new file mode 100644 index 0000000..d7e39c1 Binary files /dev/null and b/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_hand2_r.png differ diff --git a/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_hand2_rl.png b/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_hand2_rl.png new file mode 100644 index 0000000..3eb0285 Binary files /dev/null and b/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_hand2_rl.png differ diff --git a/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_hide.png b/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_hide.png new file mode 100644 index 0000000..a243997 Binary files /dev/null and b/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_hide.png differ diff --git a/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_hoop.png b/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_hoop.png new file mode 100644 index 0000000..ffbc5fa Binary files /dev/null and b/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_hoop.png differ diff --git a/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_leg1_l.png b/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_leg1_l.png new file mode 100644 index 0000000..598d886 Binary files /dev/null and b/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_leg1_l.png differ diff --git a/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_leg1_r.png b/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_leg1_r.png new file mode 100644 index 0000000..25ae7ad Binary files /dev/null and b/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_leg1_r.png differ diff --git a/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_leg2_l.png b/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_leg2_l.png new file mode 100644 index 0000000..6a8a691 Binary files /dev/null and b/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_leg2_l.png differ diff --git a/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_leg2_r.png b/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_leg2_r.png new file mode 100644 index 0000000..a7afdd8 Binary files /dev/null and b/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_leg2_r.png differ diff --git a/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_neck.png b/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_neck.png new file mode 100644 index 0000000..76bf9a2 Binary files /dev/null and b/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_neck.png differ diff --git a/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_neckline.png b/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_neckline.png new file mode 100644 index 0000000..dac9cb4 Binary files /dev/null and b/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_neckline.png differ diff --git a/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_palm_l.png b/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_palm_l.png new file mode 100644 index 0000000..0874c69 Binary files /dev/null and b/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_palm_l.png differ diff --git a/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_palm_r.png b/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_palm_r.png new file mode 100644 index 0000000..e626f59 Binary files /dev/null and b/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_palm_r.png differ diff --git a/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_s.png b/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_s.png new file mode 100644 index 0000000..5bdab39 Binary files /dev/null and b/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_s.png differ diff --git a/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_skirt.png b/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_skirt.png new file mode 100644 index 0000000..59054de Binary files /dev/null and b/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_skirt.png differ diff --git a/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_skirt_s.png b/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_skirt_s.png new file mode 100644 index 0000000..3be3dd3 Binary files /dev/null and b/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_skirt_s.png differ diff --git a/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_tassel.png b/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_tassel.png new file mode 100644 index 0000000..f6d7300 Binary files /dev/null and b/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_tassel.png differ diff --git a/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_torso.png b/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_torso.png new file mode 100644 index 0000000..2625f8d Binary files /dev/null and b/art/gameviews/characters/freespins_character/images/female/gameview_b2_char_f_torso.png differ diff --git a/art/gameviews/characters/freespins_character/images/female/ritual_character_female.json b/art/gameviews/characters/freespins_character/images/female/ritual_character_female.json new file mode 100644 index 0000000..4ce01cf --- /dev/null +++ b/art/gameviews/characters/freespins_character/images/female/ritual_character_female.json @@ -0,0 +1,177 @@ +{ "skeleton": { "images": "C:/THE POSO/99.Amazon City of Gold/Ritual/images/female/" }, +"PhotoshopToSpine": { "scale": 1, "padding": 1, "trim": true }, +"bones": [ + { "name": "root" } +], +"slots": [ + { "name": "gameview_b2_char_f_s", "bone": "root", "attachment": "gameview_b2_char_f_s" }, + { "name": "gameview_b2_char_f_hide", "bone": "root", "attachment": "gameview_b2_char_f_hide" }, + { "name": "gameview_b2_char_f_hair_back", "bone": "root", "attachment": "gameview_b2_char_f_hair_back" }, + { "name": "gameview_b2_char_f_leg2_l", "bone": "root", "attachment": "gameview_b2_char_f_leg2_l" }, + { "name": "gameview_b2_char_f_leg1_l", "bone": "root", "attachment": "gameview_b2_char_f_leg1_l" }, + { "name": "gameview_b2_char_f_fringe_l", "bone": "root", "attachment": "gameview_b2_char_f_fringe_l" }, + { "name": "gameview_b2_char_f_leg2_r", "bone": "root", "attachment": "gameview_b2_char_f_leg2_r" }, + { "name": "gameview_b2_char_f_leg1_r", "bone": "root", "attachment": "gameview_b2_char_f_leg1_r" }, + { "name": "gameview_b2_char_f_fringe_r", "bone": "root", "attachment": "gameview_b2_char_f_fringe_r" }, + { "name": "gameview_b2_char_f_torso", "bone": "root", "attachment": "gameview_b2_char_f_torso" }, + { "name": "gameview_b2_char_f_palm_l", "bone": "root", "attachment": "gameview_b2_char_f_palm_l" }, + { "name": "gameview_b2_char_f_finger_l", "bone": "root", "attachment": "gameview_b2_char_f_finger_l" }, + { "name": "gameview_b2_char_f_hand2_rl", "bone": "root", "attachment": "gameview_b2_char_f_hand2_rl" }, + { "name": "gameview_b2_char_f_hand1_l", "bone": "root", "attachment": "gameview_b2_char_f_hand1_l" }, + { "name": "gameview_b2_char_f_neckline", "bone": "root", "attachment": "gameview_b2_char_f_neckline" }, + { "name": "gameview_b2_char_f_skirt_s", "bone": "root", "attachment": "gameview_b2_char_f_skirt_s" }, + { "name": "gameview_b2_char_f_skirt", "bone": "root", "attachment": "gameview_b2_char_f_skirt" }, + { "name": "gameview_b2_char_f_palm_r", "bone": "root", "attachment": "gameview_b2_char_f_palm_r" }, + { "name": "gameview_b2_char_f_finger_r", "bone": "root", "attachment": "gameview_b2_char_f_finger_r" }, + { "name": "gameview_b2_char_f_hand2_r", "bone": "root", "attachment": "gameview_b2_char_f_hand2_r" }, + { "name": "gameview_b2_char_f_hand1_r", "bone": "root", "attachment": "gameview_b2_char_f_hand1_r" }, + { "name": "gameview_b2_char_f_tassel", "bone": "root", "attachment": "gameview_b2_char_f_tassel" }, + { "name": "gameview_b2_char_f_belt2_s", "bone": "root", "attachment": "gameview_b2_char_f_belt2_s" }, + { "name": "gameview_b2_char_f_belt2", "bone": "root", "attachment": "gameview_b2_char_f_belt2" }, + { "name": "gameview_b2_char_f_belt1", "bone": "root", "attachment": "gameview_b2_char_f_belt1" }, + { "name": "gameview_b2_char_f_fell_l_s", "bone": "root", "attachment": "gameview_b2_char_f_fell_l_s" }, + { "name": "gameview_b2_char_f_fell_l", "bone": "root", "attachment": "gameview_b2_char_f_fell_l" }, + { "name": "gameview_b2_char_f_fell_r_s", "bone": "root", "attachment": "gameview_b2_char_f_fell_r_s" }, + { "name": "gameview_b2_char_f_fell_r", "bone": "root", "attachment": "gameview_b2_char_f_fell_r" }, + { "name": "gameview_b2_char_f_neck", "bone": "root", "attachment": "gameview_b2_char_f_neck" }, + { "name": "gameview_b2_char_f_beads_s", "bone": "root", "attachment": "gameview_b2_char_f_beads_s" }, + { "name": "gameview_b2_char_f_beads", "bone": "root", "attachment": "gameview_b2_char_f_beads" }, + { "name": "gameview_b2_char_f_earring_l", "bone": "root", "attachment": "gameview_b2_char_f_earring_l" }, + { "name": "gameview_b2_char_f_eye_l", "bone": "root", "attachment": "gameview_b2_char_f_eye_l" }, + { "name": "gameview_b2_char_f_eye_r", "bone": "root", "attachment": "gameview_b2_char_f_eye_r" }, + { "name": "gameview_b2_char_f_face", "bone": "root", "attachment": "gameview_b2_char_f_face" }, + { "name": "gameview_b2_char_f_eyebrow_l", "bone": "root", "attachment": "gameview_b2_char_f_eyebrow_l" }, + { "name": "gameview_b2_char_f_eyebrow_r", "bone": "root", "attachment": "gameview_b2_char_f_eyebrow_r" }, + { "name": "gameview_b2_char_f_earring", "bone": "root", "attachment": "gameview_b2_char_f_earring" }, + { "name": "gameview_b2_char_f_feathers", "bone": "root", "attachment": "gameview_b2_char_f_feathers" }, + { "name": "gameview_b2_char_f_hoop", "bone": "root", "attachment": "gameview_b2_char_f_hoop" } +], +"skins": { + "default": { + "gameview_b2_char_f_s": { + "gameview_b2_char_f_s": { "x": 0, "y": -251.5, "width": 524, "height": 285 } + }, + "gameview_b2_char_f_hide": { + "gameview_b2_char_f_hide": { "x": -76.5, "y": 115.5, "width": 297, "height": 301 } + }, + "gameview_b2_char_f_hair_back": { + "gameview_b2_char_f_hair_back": { "x": -58.5, "y": 306, "width": 97, "height": 122 } + }, + "gameview_b2_char_f_leg2_l": { + "gameview_b2_char_f_leg2_l": { "x": -138.5, "y": -72, "width": 89, "height": 230 } + }, + "gameview_b2_char_f_leg1_l": { + "gameview_b2_char_f_leg1_l": { "x": -153, "y": -260, "width": 114, "height": 154 } + }, + "gameview_b2_char_f_fringe_l": { + "gameview_b2_char_f_fringe_l": { "x": -121, "y": -189, "width": 82, "height": 110 } + }, + "gameview_b2_char_f_leg2_r": { + "gameview_b2_char_f_leg2_r": { "x": -34, "y": -63, "width": 150, "height": 250 } + }, + "gameview_b2_char_f_leg1_r": { + "gameview_b2_char_f_leg1_r": { "x": 36.5, "y": -254.5, "width": 87, "height": 195 } + }, + "gameview_b2_char_f_fringe_r": { + "gameview_b2_char_f_fringe_r": { "x": 19.5, "y": -173.5, "width": 89, "height": 133 } + }, + "gameview_b2_char_f_torso": { + "gameview_b2_char_f_torso": { "x": -100, "y": 126, "width": 128, "height": 122 } + }, + "gameview_b2_char_f_palm_l": { + "gameview_b2_char_f_palm_l": { "x": -238, "y": 357.5, "width": 32, "height": 73 } + }, + "gameview_b2_char_f_finger_l": { + "gameview_b2_char_f_finger_l": { "x": -219, "y": 348.5, "width": 30, "height": 37 } + }, + "gameview_b2_char_f_hand2_rl": { + "gameview_b2_char_f_hand2_rl": { "x": -232.5, "y": 282.5, "width": 59, "height": 105 } + }, + "gameview_b2_char_f_hand1_l": { + "gameview_b2_char_f_hand1_l": { "x": -168.5, "y": 242, "width": 143, "height": 52 } + }, + "gameview_b2_char_f_neckline": { + "gameview_b2_char_f_neckline": { "x": -79, "y": 210.5, "width": 160, "height": 121 } + }, + "gameview_b2_char_f_skirt_s": { + "gameview_b2_char_f_skirt_s": { "x": -104, "y": -3.5, "width": 168, "height": 71 } + }, + "gameview_b2_char_f_skirt": { + "gameview_b2_char_f_skirt": { "x": -107, "y": 42.5, "width": 182, "height": 151 } + }, + "gameview_b2_char_f_palm_r": { + "gameview_b2_char_f_palm_r": { "x": 124.5, "y": 325.5, "width": 71, "height": 77 } + }, + "gameview_b2_char_f_finger_r": { + "gameview_b2_char_f_finger_r": { "x": 104, "y": 329, "width": 18, "height": 40 } + }, + "gameview_b2_char_f_hand2_r": { + "gameview_b2_char_f_hand2_r": { "x": 81.5, "y": 261.5, "width": 83, "height": 105 } + }, + "gameview_b2_char_f_hand1_r": { + "gameview_b2_char_f_hand1_r": { "x": 21.5, "y": 225.5, "width": 101, "height": 55 } + }, + "gameview_b2_char_f_tassel": { + "gameview_b2_char_f_tassel": { "x": -201, "y": -42, "width": 112, "height": 120 } + }, + "gameview_b2_char_f_belt2_s": { + "gameview_b2_char_f_belt2_s": { "x": -123, "y": 3, "width": 128, "height": 144 } + }, + "gameview_b2_char_f_belt2": { + "gameview_b2_char_f_belt2": { "x": -123, "y": 11.5, "width": 122, "height": 143 } + }, + "gameview_b2_char_f_belt1": { + "gameview_b2_char_f_belt1": { "x": -103, "y": 88, "width": 148, "height": 86 } + }, + "gameview_b2_char_f_fell_l_s": { + "gameview_b2_char_f_fell_l_s": { "x": -117.5, "y": 242.5, "width": 67, "height": 49 } + }, + "gameview_b2_char_f_fell_l": { + "gameview_b2_char_f_fell_l": { "x": -124, "y": 249, "width": 74, "height": 54 } + }, + "gameview_b2_char_f_fell_r_s": { + "gameview_b2_char_f_fell_r_s": { "x": -28, "y": 230, "width": 66, "height": 68 } + }, + "gameview_b2_char_f_fell_r": { + "gameview_b2_char_f_fell_r": { "x": -20, "y": 236, "width": 78, "height": 70 } + }, + "gameview_b2_char_f_neck": { + "gameview_b2_char_f_neck": { "x": -76, "y": 272.5, "width": 68, "height": 77 } + }, + "gameview_b2_char_f_beads_s": { + "gameview_b2_char_f_beads_s": { "x": -74.5, "y": 249, "width": 89, "height": 52 } + }, + "gameview_b2_char_f_beads": { + "gameview_b2_char_f_beads": { "x": -74.5, "y": 252.5, "width": 83, "height": 45 } + }, + "gameview_b2_char_f_earring_l": { + "gameview_b2_char_f_earring_l": { "x": -105.5, "y": 285, "width": 11, "height": 28 } + }, + "gameview_b2_char_f_eye_l": { + "gameview_b2_char_f_eye_l": { "x": -94, "y": 340, "width": 16, "height": 18 } + }, + "gameview_b2_char_f_eye_r": { + "gameview_b2_char_f_eye_r": { "x": -67.5, "y": 342.5, "width": 19, "height": 19 } + }, + "gameview_b2_char_f_face": { + "gameview_b2_char_f_face": { "x": -69, "y": 326, "width": 80, "height": 78 } + }, + "gameview_b2_char_f_eyebrow_l": { + "gameview_b2_char_f_eyebrow_l": { "x": -91.5, "y": 351, "width": 15, "height": 10 } + }, + "gameview_b2_char_f_eyebrow_r": { + "gameview_b2_char_f_eyebrow_r": { "x": -64.5, "y": 350, "width": 27, "height": 12 } + }, + "gameview_b2_char_f_earring": { + "gameview_b2_char_f_earring": { "x": -42.5, "y": 285.5, "width": 15, "height": 31 } + }, + "gameview_b2_char_f_feathers": { + "gameview_b2_char_f_feathers": { "x": -57, "y": 373.5, "width": 56, "height": 29 } + }, + "gameview_b2_char_f_hoop": { + "gameview_b2_char_f_hoop": { "x": -65, "y": 352.5, "width": 70, "height": 41 } + } + } +}, +"animations": { "animation": {} } +} \ No newline at end of file diff --git a/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_belt.png b/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_belt.png new file mode 100644 index 0000000..1ab0c60 Binary files /dev/null and b/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_belt.png differ diff --git a/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_eye_l.png b/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_eye_l.png new file mode 100644 index 0000000..ce6dd4a Binary files /dev/null and b/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_eye_l.png differ diff --git a/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_eye_r.png b/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_eye_r.png new file mode 100644 index 0000000..9f8bf1e Binary files /dev/null and b/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_eye_r.png differ diff --git a/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_eyebrow_l.png b/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_eyebrow_l.png new file mode 100644 index 0000000..3d4b18f Binary files /dev/null and b/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_eyebrow_l.png differ diff --git a/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_eyebrow_r.png b/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_eyebrow_r.png new file mode 100644 index 0000000..31967c5 Binary files /dev/null and b/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_eyebrow_r.png differ diff --git a/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_eyelid_l.png b/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_eyelid_l.png new file mode 100644 index 0000000..7d0aad7 Binary files /dev/null and b/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_eyelid_l.png differ diff --git a/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_eyelid_r.png b/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_eyelid_r.png new file mode 100644 index 0000000..e06b1ce Binary files /dev/null and b/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_eyelid_r.png differ diff --git a/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_feather_big.png b/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_feather_big.png new file mode 100644 index 0000000..b5a3d34 Binary files /dev/null and b/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_feather_big.png differ diff --git a/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_feather_small.png b/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_feather_small.png new file mode 100644 index 0000000..f9c9672 Binary files /dev/null and b/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_feather_small.png differ diff --git a/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_hair_l.png b/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_hair_l.png new file mode 100644 index 0000000..7b87bf8 Binary files /dev/null and b/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_hair_l.png differ diff --git a/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_hair_top.png b/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_hair_top.png new file mode 100644 index 0000000..cc45f21 Binary files /dev/null and b/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_hair_top.png differ diff --git a/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_hand1_r.png b/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_hand1_r.png new file mode 100644 index 0000000..ded168f Binary files /dev/null and b/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_hand1_r.png differ diff --git a/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_hand2_l.png b/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_hand2_l.png new file mode 100644 index 0000000..b3df146 Binary files /dev/null and b/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_hand2_l.png differ diff --git a/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_hand2_r.png b/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_hand2_r.png new file mode 100644 index 0000000..876ddda Binary files /dev/null and b/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_hand2_r.png differ diff --git a/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_hand_s_r.png b/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_hand_s_r.png new file mode 100644 index 0000000..72572ed Binary files /dev/null and b/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_hand_s_r.png differ diff --git a/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_head.png b/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_head.png new file mode 100644 index 0000000..12944cc Binary files /dev/null and b/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_head.png differ diff --git a/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_head_leaves.png b/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_head_leaves.png new file mode 100644 index 0000000..a6e9982 Binary files /dev/null and b/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_head_leaves.png differ diff --git a/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_headpiece_fthr1.png b/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_headpiece_fthr1.png new file mode 100644 index 0000000..a02539e Binary files /dev/null and b/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_headpiece_fthr1.png differ diff --git a/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_headpiece_gld.png b/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_headpiece_gld.png new file mode 100644 index 0000000..8137e9b Binary files /dev/null and b/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_headpiece_gld.png differ diff --git a/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_leaves1.png b/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_leaves1.png new file mode 100644 index 0000000..56f5e5f Binary files /dev/null and b/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_leaves1.png differ diff --git a/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_leaves2.png b/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_leaves2.png new file mode 100644 index 0000000..f9c536a Binary files /dev/null and b/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_leaves2.png differ diff --git a/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_leg1_l.png b/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_leg1_l.png new file mode 100644 index 0000000..64a1d33 Binary files /dev/null and b/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_leg1_l.png differ diff --git a/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_leg1_r.png b/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_leg1_r.png new file mode 100644 index 0000000..20abd69 Binary files /dev/null and b/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_leg1_r.png differ diff --git a/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_leg2_l.png b/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_leg2_l.png new file mode 100644 index 0000000..47e107a Binary files /dev/null and b/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_leg2_l.png differ diff --git a/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_leg2_r.png b/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_leg2_r.png new file mode 100644 index 0000000..4ef04ef Binary files /dev/null and b/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_leg2_r.png differ diff --git a/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_leg3_l.png b/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_leg3_l.png new file mode 100644 index 0000000..153090b Binary files /dev/null and b/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_leg3_l.png differ diff --git a/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_leg3_r.png b/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_leg3_r.png new file mode 100644 index 0000000..42e0d9d Binary files /dev/null and b/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_leg3_r.png differ diff --git a/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_leg4_l.png b/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_leg4_l.png new file mode 100644 index 0000000..bc72d60 Binary files /dev/null and b/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_leg4_l.png differ diff --git a/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_leg4_r.png b/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_leg4_r.png new file mode 100644 index 0000000..79429e4 Binary files /dev/null and b/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_leg4_r.png differ diff --git a/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_neck.png b/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_neck.png new file mode 100644 index 0000000..ec03afd Binary files /dev/null and b/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_neck.png differ diff --git a/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_necklaces.png b/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_necklaces.png new file mode 100644 index 0000000..5b6a138 Binary files /dev/null and b/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_necklaces.png differ diff --git a/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_necklaces_s.png b/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_necklaces_s.png new file mode 100644 index 0000000..685a4ac Binary files /dev/null and b/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_necklaces_s.png differ diff --git a/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_ribbons.png b/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_ribbons.png new file mode 100644 index 0000000..cb5ba88 Binary files /dev/null and b/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_ribbons.png differ diff --git a/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_s.png b/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_s.png new file mode 100644 index 0000000..91bdb1c Binary files /dev/null and b/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_s.png differ diff --git a/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_shield.png b/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_shield.png new file mode 100644 index 0000000..836d2b3 Binary files /dev/null and b/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_shield.png differ diff --git a/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_skirt1.png b/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_skirt1.png new file mode 100644 index 0000000..463f3b3 Binary files /dev/null and b/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_skirt1.png differ diff --git a/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_skirt2.png b/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_skirt2.png new file mode 100644 index 0000000..3fedff5 Binary files /dev/null and b/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_skirt2.png differ diff --git a/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_skirt3.png b/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_skirt3.png new file mode 100644 index 0000000..ffe1a84 Binary files /dev/null and b/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_skirt3.png differ diff --git a/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_skirt_top.png b/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_skirt_top.png new file mode 100644 index 0000000..8e7de22 Binary files /dev/null and b/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_skirt_top.png differ diff --git a/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_stick.png b/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_stick.png new file mode 100644 index 0000000..60e959e Binary files /dev/null and b/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_stick.png differ diff --git a/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_stick_s.png b/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_stick_s.png new file mode 100644 index 0000000..ad33d8a Binary files /dev/null and b/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_stick_s.png differ diff --git a/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_torso.png b/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_torso.png new file mode 100644 index 0000000..eb310ca Binary files /dev/null and b/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_torso.png differ diff --git a/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_torso_shoulder.png b/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_torso_shoulder.png new file mode 100644 index 0000000..aa9fb81 Binary files /dev/null and b/art/gameviews/characters/freespins_character/images/male/gameview_b2_char_m_torso_shoulder.png differ diff --git a/art/gameviews/characters/freespins_character/images/male/ritual_character_male.json b/art/gameviews/characters/freespins_character/images/male/ritual_character_male.json new file mode 100644 index 0000000..68a40e6 --- /dev/null +++ b/art/gameviews/characters/freespins_character/images/male/ritual_character_male.json @@ -0,0 +1,185 @@ +{ "skeleton": { "images": "C:/THE POSO/99.Amazon City of Gold/Ritual/images/male/" }, +"PhotoshopToSpine": { "scale": 1, "padding": 1, "trim": true }, +"bones": [ + { "name": "root" } +], +"slots": [ + { "name": "gameview_b2_char_m_s", "bone": "root", "attachment": "gameview_b2_char_m_s" }, + { "name": "gameview_b2_char_m_ribbons", "bone": "root", "attachment": "gameview_b2_char_m_ribbons" }, + { "name": "gameview_b2_char_m_skirt3", "bone": "root", "attachment": "gameview_b2_char_m_skirt3" }, + { "name": "gameview_b2_char_m_leg4_l", "bone": "root", "attachment": "gameview_b2_char_m_leg4_l" }, + { "name": "gameview_b2_char_m_leg3_l", "bone": "root", "attachment": "gameview_b2_char_m_leg3_l" }, + { "name": "gameview_b2_char_m_leg2_l", "bone": "root", "attachment": "gameview_b2_char_m_leg2_l" }, + { "name": "gameview_b2_char_m_leg1_l", "bone": "root", "attachment": "gameview_b2_char_m_leg1_l" }, + { "name": "gameview_b2_char_m_leg4_r", "bone": "root", "attachment": "gameview_b2_char_m_leg4_r" }, + { "name": "gameview_b2_char_m_leg3_r", "bone": "root", "attachment": "gameview_b2_char_m_leg3_r" }, + { "name": "gameview_b2_char_m_leg2_r", "bone": "root", "attachment": "gameview_b2_char_m_leg2_r" }, + { "name": "gameview_b2_char_m_leg1_r", "bone": "root", "attachment": "gameview_b2_char_m_leg1_r" }, + { "name": "gameview_b2_char_m_skirt1", "bone": "root", "attachment": "gameview_b2_char_m_skirt1" }, + { "name": "gameview_b2_char_m_skirt2", "bone": "root", "attachment": "gameview_b2_char_m_skirt2" }, + { "name": "gameview_b2_char_m_skirt_top", "bone": "root", "attachment": "gameview_b2_char_m_skirt_top" }, + { "name": "gameview_b2_char_m_neck", "bone": "root", "attachment": "gameview_b2_char_m_neck" }, + { "name": "gameview_b2_char_m_hand2_l", "bone": "root", "attachment": "gameview_b2_char_m_hand2_l" }, + { "name": "gameview_b2_char_m_torso", "bone": "root", "attachment": "gameview_b2_char_m_torso" }, + { "name": "gameview_b2_char_m_belt", "bone": "root", "attachment": "gameview_b2_char_m_belt" }, + { "name": "gameview_b2_char_m_shield", "bone": "root", "attachment": "gameview_b2_char_m_shield" }, + { "name": "gameview_b2_char_m_stick_s", "bone": "root", "attachment": "gameview_b2_char_m_stick_s" }, + { "name": "gameview_b2_char_m_stick", "bone": "root", "attachment": "gameview_b2_char_m_stick" }, + { "name": "gameview_b2_char_m_hand_s_r", "bone": "root", "attachment": "gameview_b2_char_m_hand_s_r" }, + { "name": "gameview_b2_char_m_hand2_r", "bone": "root", "attachment": "gameview_b2_char_m_hand2_r" }, + { "name": "gameview_b2_char_m_hand1_r", "bone": "root", "attachment": "gameview_b2_char_m_hand1_r" }, + { "name": "gameview_b2_char_m_torso_shoulder", "bone": "root", "attachment": "gameview_b2_char_m_torso_shoulder" }, + { "name": "gameview_b2_char_m_necklaces_s", "bone": "root", "attachment": "gameview_b2_char_m_necklaces_s" }, + { "name": "gameview_b2_char_m_necklaces", "bone": "root", "attachment": "gameview_b2_char_m_necklaces" }, + { "name": "gameview_b2_char_m_head_leaves", "bone": "root", "attachment": "gameview_b2_char_m_head_leaves" }, + { "name": "gameview_b2_char_m_leaves2", "bone": "root", "attachment": "gameview_b2_char_m_leaves2" }, + { "name": "gameview_b2_char_m_leaves1", "bone": "root", "attachment": "gameview_b2_char_m_leaves1" }, + { "name": "gameview_b2_char_m_feather_big", "bone": "root", "attachment": "gameview_b2_char_m_feather_big" }, + { "name": "gameview_b2_char_m_headpiece_fthr1", "bone": "root", "attachment": "gameview_b2_char_m_headpiece_fthr1" }, + { "name": "gameview_b2_char_m_headpiece_gld", "bone": "root", "attachment": "gameview_b2_char_m_headpiece_gld" }, + { "name": "gameview_b2_char_m_eye_l", "bone": "root", "attachment": "gameview_b2_char_m_eye_l" }, + { "name": "gameview_b2_char_m_eye_r", "bone": "root", "attachment": "gameview_b2_char_m_eye_r" }, + { "name": "gameview_b2_char_m_head", "bone": "root", "attachment": "gameview_b2_char_m_head" }, + { "name": "gameview_b2_char_m_hair_l", "bone": "root", "attachment": "gameview_b2_char_m_hair_l" }, + { "name": "gameview_b2_char_m_hair_top", "bone": "root", "attachment": "gameview_b2_char_m_hair_top" }, + { "name": "gameview_b2_char_m_eyebrow_l", "bone": "root", "attachment": "gameview_b2_char_m_eyebrow_l" }, + { "name": "gameview_b2_char_m_eyebrow_r", "bone": "root", "attachment": "gameview_b2_char_m_eyebrow_r" }, + { "name": "gameview_b2_char_m_eyelid_l", "bone": "root", "attachment": "gameview_b2_char_m_eyelid_l" }, + { "name": "gameview_b2_char_m_eyelid_r", "bone": "root", "attachment": "gameview_b2_char_m_eyelid_r" }, + { "name": "gameview_b2_char_m_feather_small", "bone": "root", "attachment": "gameview_b2_char_m_feather_small" } +], +"skins": { + "default": { + "gameview_b2_char_m_s": { + "gameview_b2_char_m_s": { "x": 7, "y": -279, "width": 468, "height": 434 } + }, + "gameview_b2_char_m_ribbons": { + "gameview_b2_char_m_ribbons": { "x": 68, "y": 161.5, "width": 142, "height": 317 } + }, + "gameview_b2_char_m_skirt3": { + "gameview_b2_char_m_skirt3": { "x": 76.5, "y": 34, "width": 121, "height": 152 } + }, + "gameview_b2_char_m_leg4_l": { + "gameview_b2_char_m_leg4_l": { "x": -85, "y": -363.5, "width": 114, "height": 105 } + }, + "gameview_b2_char_m_leg3_l": { + "gameview_b2_char_m_leg3_l": { "x": -60, "y": -298, "width": 74, "height": 114 } + }, + "gameview_b2_char_m_leg2_l": { + "gameview_b2_char_m_leg2_l": { "x": -60.5, "y": -226, "width": 89, "height": 104 } + }, + "gameview_b2_char_m_leg1_l": { + "gameview_b2_char_m_leg1_l": { "x": -47, "y": -94.5, "width": 136, "height": 251 } + }, + "gameview_b2_char_m_leg4_r": { + "gameview_b2_char_m_leg4_r": { "x": 166.5, "y": -351, "width": 103, "height": 90 } + }, + "gameview_b2_char_m_leg3_r": { + "gameview_b2_char_m_leg3_r": { "x": 118.5, "y": -275.5, "width": 87, "height": 143 } + }, + "gameview_b2_char_m_leg2_r": { + "gameview_b2_char_m_leg2_r": { "x": 111, "y": -191.5, "width": 92, "height": 133 } + }, + "gameview_b2_char_m_leg1_r": { + "gameview_b2_char_m_leg1_r": { "x": 78, "y": -90.5, "width": 152, "height": 219 } + }, + "gameview_b2_char_m_skirt1": { + "gameview_b2_char_m_skirt1": { "x": -63.5, "y": 3.5, "width": 137, "height": 177 } + }, + "gameview_b2_char_m_skirt2": { + "gameview_b2_char_m_skirt2": { "x": 3, "y": -10, "width": 116, "height": 180 } + }, + "gameview_b2_char_m_skirt_top": { + "gameview_b2_char_m_skirt_top": { "x": 67.5, "y": 22, "width": 113, "height": 160 } + }, + "gameview_b2_char_m_neck": { + "gameview_b2_char_m_neck": { "x": 9.5, "y": 163.5, "width": 165, "height": 301 } + }, + "gameview_b2_char_m_hand2_l": { + "gameview_b2_char_m_hand2_l": { "x": -142.5, "y": 217.5, "width": 109, "height": 169 } + }, + "gameview_b2_char_m_torso": { + "gameview_b2_char_m_torso": { "x": -32, "y": 192.5, "width": 236, "height": 267 } + }, + "gameview_b2_char_m_belt": { + "gameview_b2_char_m_belt": { "x": 0.5, "y": 86, "width": 183, "height": 68 } + }, + "gameview_b2_char_m_shield": { + "gameview_b2_char_m_shield": { "x": -138, "y": 97.5, "width": 204, "height": 215 } + }, + "gameview_b2_char_m_stick_s": { + "gameview_b2_char_m_stick_s": { "x": -95.5, "y": 69, "width": 113, "height": 130 } + }, + "gameview_b2_char_m_stick": { + "gameview_b2_char_m_stick": { "x": -75.5, "y": 104.5, "width": 81, "height": 125 } + }, + "gameview_b2_char_m_hand_s_r": { + "gameview_b2_char_m_hand_s_r": { "x": 18.5, "y": 164.5, "width": 193, "height": 241 } + }, + "gameview_b2_char_m_hand2_r": { + "gameview_b2_char_m_hand2_r": { "x": 75.5, "y": 208.5, "width": 83, "height": 201 } + }, + "gameview_b2_char_m_hand1_r": { + "gameview_b2_char_m_hand1_r": { "x": 9, "y": 108.5, "width": 200, "height": 113 } + }, + "gameview_b2_char_m_torso_shoulder": { + "gameview_b2_char_m_torso_shoulder": { "x": 24.5, "y": 233.5, "width": 87, "height": 173 } + }, + "gameview_b2_char_m_necklaces_s": { + "gameview_b2_char_m_necklaces_s": { "x": -22, "y": 255, "width": 122, "height": 106 } + }, + "gameview_b2_char_m_necklaces": { + "gameview_b2_char_m_necklaces": { "x": -22, "y": 263.5, "width": 118, "height": 91 } + }, + "gameview_b2_char_m_head_leaves": { + "gameview_b2_char_m_head_leaves": { "x": -37.5, "y": 409.5, "width": 253, "height": 171 } + }, + "gameview_b2_char_m_leaves2": { + "gameview_b2_char_m_leaves2": { "x": -95.5, "y": 347.5, "width": 83, "height": 69 } + }, + "gameview_b2_char_m_leaves1": { + "gameview_b2_char_m_leaves1": { "x": 25.5, "y": 328.5, "width": 35, "height": 47 } + }, + "gameview_b2_char_m_feather_big": { + "gameview_b2_char_m_feather_big": { "x": 23.5, "y": 273, "width": 39, "height": 110 } + }, + "gameview_b2_char_m_headpiece_fthr1": { + "gameview_b2_char_m_headpiece_fthr1": { "x": 58, "y": 346, "width": 76, "height": 72 } + }, + "gameview_b2_char_m_headpiece_gld": { + "gameview_b2_char_m_headpiece_gld": { "x": -29.5, "y": 393.5, "width": 105, "height": 89 } + }, + "gameview_b2_char_m_eye_l": { + "gameview_b2_char_m_eye_l": { "x": -22.5, "y": 332.5, "width": 21, "height": 21 } + }, + "gameview_b2_char_m_eye_r": { + "gameview_b2_char_m_eye_r": { "x": 12, "y": 333.5, "width": 20, "height": 21 } + }, + "gameview_b2_char_m_head": { + "gameview_b2_char_m_head": { "x": -21, "y": 339, "width": 110, "height": 150 } + }, + "gameview_b2_char_m_hair_l": { + "gameview_b2_char_m_hair_l": { "x": -46, "y": 317.5, "width": 52, "height": 97 } + }, + "gameview_b2_char_m_hair_top": { + "gameview_b2_char_m_hair_top": { "x": -17.5, "y": 381.5, "width": 107, "height": 65 } + }, + "gameview_b2_char_m_eyebrow_l": { + "gameview_b2_char_m_eyebrow_l": { "x": -22.5, "y": 338.5, "width": 39, "height": 19 } + }, + "gameview_b2_char_m_eyebrow_r": { + "gameview_b2_char_m_eyebrow_r": { "x": 10, "y": 338.5, "width": 30, "height": 19 } + }, + "gameview_b2_char_m_eyelid_l": { + "gameview_b2_char_m_eyelid_l": { "x": -24, "y": 333.5, "width": 22, "height": 15 } + }, + "gameview_b2_char_m_eyelid_r": { + "gameview_b2_char_m_eyelid_r": { "x": 10.5, "y": 332.5, "width": 19, "height": 13 } + }, + "gameview_b2_char_m_feather_small": { + "gameview_b2_char_m_feather_small": { "x": -85.5, "y": 292, "width": 37, "height": 38 } + } + } +}, +"animations": { "animation": {} } +} \ No newline at end of file diff --git a/art/gameviews/characters/main_character/images/gameview_m_char_belt_back.png b/art/gameviews/characters/main_character/images/gameview_m_char_belt_back.png new file mode 100644 index 0000000..1856e1d Binary files /dev/null and b/art/gameviews/characters/main_character/images/gameview_m_char_belt_back.png differ diff --git a/art/gameviews/characters/main_character/images/gameview_m_char_belt_decor1.png b/art/gameviews/characters/main_character/images/gameview_m_char_belt_decor1.png new file mode 100644 index 0000000..7453bc4 Binary files /dev/null and b/art/gameviews/characters/main_character/images/gameview_m_char_belt_decor1.png differ diff --git a/art/gameviews/characters/main_character/images/gameview_m_char_belt_decor1_s.png b/art/gameviews/characters/main_character/images/gameview_m_char_belt_decor1_s.png new file mode 100644 index 0000000..b77f44e Binary files /dev/null and b/art/gameviews/characters/main_character/images/gameview_m_char_belt_decor1_s.png differ diff --git a/art/gameviews/characters/main_character/images/gameview_m_char_belt_decor3.png b/art/gameviews/characters/main_character/images/gameview_m_char_belt_decor3.png new file mode 100644 index 0000000..6b5fed1 Binary files /dev/null and b/art/gameviews/characters/main_character/images/gameview_m_char_belt_decor3.png differ diff --git a/art/gameviews/characters/main_character/images/gameview_m_char_belt_feathers1_l.png b/art/gameviews/characters/main_character/images/gameview_m_char_belt_feathers1_l.png new file mode 100644 index 0000000..c47835c Binary files /dev/null and b/art/gameviews/characters/main_character/images/gameview_m_char_belt_feathers1_l.png differ diff --git a/art/gameviews/characters/main_character/images/gameview_m_char_belt_feathers1_r.png b/art/gameviews/characters/main_character/images/gameview_m_char_belt_feathers1_r.png new file mode 100644 index 0000000..dd59971 Binary files /dev/null and b/art/gameviews/characters/main_character/images/gameview_m_char_belt_feathers1_r.png differ diff --git a/art/gameviews/characters/main_character/images/gameview_m_char_belt_feathers2_l.png b/art/gameviews/characters/main_character/images/gameview_m_char_belt_feathers2_l.png new file mode 100644 index 0000000..20daf3b Binary files /dev/null and b/art/gameviews/characters/main_character/images/gameview_m_char_belt_feathers2_l.png differ diff --git a/art/gameviews/characters/main_character/images/gameview_m_char_belt_feathers2_r.png b/art/gameviews/characters/main_character/images/gameview_m_char_belt_feathers2_r.png new file mode 100644 index 0000000..934b5e9 Binary files /dev/null and b/art/gameviews/characters/main_character/images/gameview_m_char_belt_feathers2_r.png differ diff --git a/art/gameviews/characters/main_character/images/gameview_m_char_cane.png b/art/gameviews/characters/main_character/images/gameview_m_char_cane.png new file mode 100644 index 0000000..f1252d5 Binary files /dev/null and b/art/gameviews/characters/main_character/images/gameview_m_char_cane.png differ diff --git a/art/gameviews/characters/main_character/images/gameview_m_char_hair_l.png b/art/gameviews/characters/main_character/images/gameview_m_char_hair_l.png new file mode 100644 index 0000000..bc3ced8 Binary files /dev/null and b/art/gameviews/characters/main_character/images/gameview_m_char_hair_l.png differ diff --git a/art/gameviews/characters/main_character/images/gameview_m_char_hair_r.png b/art/gameviews/characters/main_character/images/gameview_m_char_hair_r.png new file mode 100644 index 0000000..2d30c03 Binary files /dev/null and b/art/gameviews/characters/main_character/images/gameview_m_char_hair_r.png differ diff --git a/art/gameviews/characters/main_character/images/gameview_m_char_hand_l1.png b/art/gameviews/characters/main_character/images/gameview_m_char_hand_l1.png new file mode 100644 index 0000000..ab2a1c5 Binary files /dev/null and b/art/gameviews/characters/main_character/images/gameview_m_char_hand_l1.png differ diff --git a/art/gameviews/characters/main_character/images/gameview_m_char_hand_l2.png b/art/gameviews/characters/main_character/images/gameview_m_char_hand_l2.png new file mode 100644 index 0000000..1b7cbfb Binary files /dev/null and b/art/gameviews/characters/main_character/images/gameview_m_char_hand_l2.png differ diff --git a/art/gameviews/characters/main_character/images/gameview_m_char_hand_r1.png b/art/gameviews/characters/main_character/images/gameview_m_char_hand_r1.png new file mode 100644 index 0000000..d1fd94b Binary files /dev/null and b/art/gameviews/characters/main_character/images/gameview_m_char_hand_r1.png differ diff --git a/art/gameviews/characters/main_character/images/gameview_m_char_hand_r2.png b/art/gameviews/characters/main_character/images/gameview_m_char_hand_r2.png new file mode 100644 index 0000000..96836c1 Binary files /dev/null and b/art/gameviews/characters/main_character/images/gameview_m_char_hand_r2.png differ diff --git a/art/gameviews/characters/main_character/images/gameview_m_char_hand_r3.png b/art/gameviews/characters/main_character/images/gameview_m_char_hand_r3.png new file mode 100644 index 0000000..3c78cff Binary files /dev/null and b/art/gameviews/characters/main_character/images/gameview_m_char_hand_r3.png differ diff --git a/art/gameviews/characters/main_character/images/gameview_m_char_hand_rs.png b/art/gameviews/characters/main_character/images/gameview_m_char_hand_rs.png new file mode 100644 index 0000000..78fee1e Binary files /dev/null and b/art/gameviews/characters/main_character/images/gameview_m_char_hand_rs.png differ diff --git a/art/gameviews/characters/main_character/images/gameview_m_char_head.png b/art/gameviews/characters/main_character/images/gameview_m_char_head.png new file mode 100644 index 0000000..5b1732e Binary files /dev/null and b/art/gameviews/characters/main_character/images/gameview_m_char_head.png differ diff --git a/art/gameviews/characters/main_character/images/gameview_m_char_head_brows.png b/art/gameviews/characters/main_character/images/gameview_m_char_head_brows.png new file mode 100644 index 0000000..0fee005 Binary files /dev/null and b/art/gameviews/characters/main_character/images/gameview_m_char_head_brows.png differ diff --git a/art/gameviews/characters/main_character/images/gameview_m_char_head_earring_l.png b/art/gameviews/characters/main_character/images/gameview_m_char_head_earring_l.png new file mode 100644 index 0000000..fe39c36 Binary files /dev/null and b/art/gameviews/characters/main_character/images/gameview_m_char_head_earring_l.png differ diff --git a/art/gameviews/characters/main_character/images/gameview_m_char_head_earring_r.png b/art/gameviews/characters/main_character/images/gameview_m_char_head_earring_r.png new file mode 100644 index 0000000..9cf1f97 Binary files /dev/null and b/art/gameviews/characters/main_character/images/gameview_m_char_head_earring_r.png differ diff --git a/art/gameviews/characters/main_character/images/gameview_m_char_head_eye_l.png b/art/gameviews/characters/main_character/images/gameview_m_char_head_eye_l.png new file mode 100644 index 0000000..e260221 Binary files /dev/null and b/art/gameviews/characters/main_character/images/gameview_m_char_head_eye_l.png differ diff --git a/art/gameviews/characters/main_character/images/gameview_m_char_head_eye_r.png b/art/gameviews/characters/main_character/images/gameview_m_char_head_eye_r.png new file mode 100644 index 0000000..e0d1b2d Binary files /dev/null and b/art/gameviews/characters/main_character/images/gameview_m_char_head_eye_r.png differ diff --git a/art/gameviews/characters/main_character/images/gameview_m_char_head_eyelid_l.png b/art/gameviews/characters/main_character/images/gameview_m_char_head_eyelid_l.png new file mode 100644 index 0000000..7ec6732 Binary files /dev/null and b/art/gameviews/characters/main_character/images/gameview_m_char_head_eyelid_l.png differ diff --git a/art/gameviews/characters/main_character/images/gameview_m_char_head_eyelid_r.png b/art/gameviews/characters/main_character/images/gameview_m_char_head_eyelid_r.png new file mode 100644 index 0000000..f9c33ce Binary files /dev/null and b/art/gameviews/characters/main_character/images/gameview_m_char_head_eyelid_r.png differ diff --git a/art/gameviews/characters/main_character/images/gameview_m_char_head_fthr_;.png b/art/gameviews/characters/main_character/images/gameview_m_char_head_fthr_;.png new file mode 100644 index 0000000..c54546a Binary files /dev/null and b/art/gameviews/characters/main_character/images/gameview_m_char_head_fthr_;.png differ diff --git a/art/gameviews/characters/main_character/images/gameview_m_char_head_fthr_r.png b/art/gameviews/characters/main_character/images/gameview_m_char_head_fthr_r.png new file mode 100644 index 0000000..f62b5cf Binary files /dev/null and b/art/gameviews/characters/main_character/images/gameview_m_char_head_fthr_r.png differ diff --git a/art/gameviews/characters/main_character/images/gameview_m_char_head_fthr_top_l.png b/art/gameviews/characters/main_character/images/gameview_m_char_head_fthr_top_l.png new file mode 100644 index 0000000..74898e6 Binary files /dev/null and b/art/gameviews/characters/main_character/images/gameview_m_char_head_fthr_top_l.png differ diff --git a/art/gameviews/characters/main_character/images/gameview_m_char_head_fthr_top_r.png b/art/gameviews/characters/main_character/images/gameview_m_char_head_fthr_top_r.png new file mode 100644 index 0000000..29a303c Binary files /dev/null and b/art/gameviews/characters/main_character/images/gameview_m_char_head_fthr_top_r.png differ diff --git a/art/gameviews/characters/main_character/images/gameview_m_char_head_helmet.png b/art/gameviews/characters/main_character/images/gameview_m_char_head_helmet.png new file mode 100644 index 0000000..49b017c Binary files /dev/null and b/art/gameviews/characters/main_character/images/gameview_m_char_head_helmet.png differ diff --git a/art/gameviews/characters/main_character/images/gameview_m_char_head_helmet_s.png b/art/gameviews/characters/main_character/images/gameview_m_char_head_helmet_s.png new file mode 100644 index 0000000..41633e0 Binary files /dev/null and b/art/gameviews/characters/main_character/images/gameview_m_char_head_helmet_s.png differ diff --git a/art/gameviews/characters/main_character/images/gameview_m_char_head_l_s.png b/art/gameviews/characters/main_character/images/gameview_m_char_head_l_s.png new file mode 100644 index 0000000..f8cfb5c Binary files /dev/null and b/art/gameviews/characters/main_character/images/gameview_m_char_head_l_s.png differ diff --git a/art/gameviews/characters/main_character/images/gameview_m_char_head_r_s.png b/art/gameviews/characters/main_character/images/gameview_m_char_head_r_s.png new file mode 100644 index 0000000..0129281 Binary files /dev/null and b/art/gameviews/characters/main_character/images/gameview_m_char_head_r_s.png differ diff --git a/art/gameviews/characters/main_character/images/gameview_m_char_leg_l1.png b/art/gameviews/characters/main_character/images/gameview_m_char_leg_l1.png new file mode 100644 index 0000000..39b877c Binary files /dev/null and b/art/gameviews/characters/main_character/images/gameview_m_char_leg_l1.png differ diff --git a/art/gameviews/characters/main_character/images/gameview_m_char_leg_l2.png b/art/gameviews/characters/main_character/images/gameview_m_char_leg_l2.png new file mode 100644 index 0000000..5fe6dbe Binary files /dev/null and b/art/gameviews/characters/main_character/images/gameview_m_char_leg_l2.png differ diff --git a/art/gameviews/characters/main_character/images/gameview_m_char_leg_r1.png b/art/gameviews/characters/main_character/images/gameview_m_char_leg_r1.png new file mode 100644 index 0000000..07925be Binary files /dev/null and b/art/gameviews/characters/main_character/images/gameview_m_char_leg_r1.png differ diff --git a/art/gameviews/characters/main_character/images/gameview_m_char_leg_r2.png b/art/gameviews/characters/main_character/images/gameview_m_char_leg_r2.png new file mode 100644 index 0000000..013a42d Binary files /dev/null and b/art/gameviews/characters/main_character/images/gameview_m_char_leg_r2.png differ diff --git a/art/gameviews/characters/main_character/images/gameview_m_char_s.png b/art/gameviews/characters/main_character/images/gameview_m_char_s.png new file mode 100644 index 0000000..f7eb0a8 Binary files /dev/null and b/art/gameviews/characters/main_character/images/gameview_m_char_s.png differ diff --git a/art/gameviews/characters/main_character/images/gameview_m_char_shoulder_l.png b/art/gameviews/characters/main_character/images/gameview_m_char_shoulder_l.png new file mode 100644 index 0000000..0372470 Binary files /dev/null and b/art/gameviews/characters/main_character/images/gameview_m_char_shoulder_l.png differ diff --git a/art/gameviews/characters/main_character/images/gameview_m_char_shoulder_r.png b/art/gameviews/characters/main_character/images/gameview_m_char_shoulder_r.png new file mode 100644 index 0000000..d8ca3df Binary files /dev/null and b/art/gameviews/characters/main_character/images/gameview_m_char_shoulder_r.png differ diff --git a/art/gameviews/characters/main_character/images/gameview_m_char_skirt1.png b/art/gameviews/characters/main_character/images/gameview_m_char_skirt1.png new file mode 100644 index 0000000..034d235 Binary files /dev/null and b/art/gameviews/characters/main_character/images/gameview_m_char_skirt1.png differ diff --git a/art/gameviews/characters/main_character/images/gameview_m_char_skirt1_s.png b/art/gameviews/characters/main_character/images/gameview_m_char_skirt1_s.png new file mode 100644 index 0000000..e3bac88 Binary files /dev/null and b/art/gameviews/characters/main_character/images/gameview_m_char_skirt1_s.png differ diff --git a/art/gameviews/characters/main_character/images/gameview_m_char_skirt2.png b/art/gameviews/characters/main_character/images/gameview_m_char_skirt2.png new file mode 100644 index 0000000..e6573d1 Binary files /dev/null and b/art/gameviews/characters/main_character/images/gameview_m_char_skirt2.png differ diff --git a/art/gameviews/characters/main_character/images/gameview_m_char_skirt3.png b/art/gameviews/characters/main_character/images/gameview_m_char_skirt3.png new file mode 100644 index 0000000..75a1d0f Binary files /dev/null and b/art/gameviews/characters/main_character/images/gameview_m_char_skirt3.png differ diff --git a/art/gameviews/characters/main_character/images/gameview_m_char_skirt_back.png b/art/gameviews/characters/main_character/images/gameview_m_char_skirt_back.png new file mode 100644 index 0000000..290b089 Binary files /dev/null and b/art/gameviews/characters/main_character/images/gameview_m_char_skirt_back.png differ diff --git a/art/gameviews/characters/main_character/images/gameview_m_char_torso.png b/art/gameviews/characters/main_character/images/gameview_m_char_torso.png new file mode 100644 index 0000000..79b9334 Binary files /dev/null and b/art/gameviews/characters/main_character/images/gameview_m_char_torso.png differ diff --git a/art/gameviews/characters/main_character/images/gameview_m_char_torso_s.png b/art/gameviews/characters/main_character/images/gameview_m_char_torso_s.png new file mode 100644 index 0000000..672b2b0 Binary files /dev/null and b/art/gameviews/characters/main_character/images/gameview_m_char_torso_s.png differ diff --git a/art/gameviews/characters/main_character/images/main_gameview_character.json b/art/gameviews/characters/main_character/images/main_gameview_character.json new file mode 100644 index 0000000..c98ea4e --- /dev/null +++ b/art/gameviews/characters/main_character/images/main_gameview_character.json @@ -0,0 +1,201 @@ +{ "skeleton": { "images": "C:/THE POSO/99.Amazon City of Gold/gameview/images/" }, +"PhotoshopToSpine": { "scale": 1, "padding": 1, "trim": true }, +"bones": [ + { "name": "root" } +], +"slots": [ + { "name": "gameview_m_char_s", "bone": "root", "attachment": "gameview_m_char_s" }, + { "name": "gameview_m_char_hand_l2", "bone": "root", "attachment": "gameview_m_char_hand_l2" }, + { "name": "gameview_m_char_hand_l1", "bone": "root", "attachment": "gameview_m_char_hand_l1" }, + { "name": "gameview_m_char_torso", "bone": "root", "attachment": "gameview_m_char_torso" }, + { "name": "gameview_m_char_torso_s", "bone": "root", "attachment": "gameview_m_char_torso_s" }, + { "name": "gameview_m_char_skirt_back", "bone": "root", "attachment": "gameview_m_char_skirt_back" }, + { "name": "gameview_m_char_leg_r2", "bone": "root", "attachment": "gameview_m_char_leg_r2" }, + { "name": "gameview_m_char_leg_r1", "bone": "root", "attachment": "gameview_m_char_leg_r1" }, + { "name": "gameview_m_char_leg_l2", "bone": "root", "attachment": "gameview_m_char_leg_l2" }, + { "name": "gameview_m_char_leg_l1", "bone": "root", "attachment": "gameview_m_char_leg_l1" }, + { "name": "gameview_m_char_hand_r2", "bone": "root", "attachment": "gameview_m_char_hand_r2" }, + { "name": "gameview_m_char_hand_r1", "bone": "root", "attachment": "gameview_m_char_hand_r1" }, + { "name": "gameview_m_char_cane", "bone": "root", "attachment": "gameview_m_char_cane" }, + { "name": "gameview_m_char_hand_rs", "bone": "root", "attachment": "gameview_m_char_hand_rs" }, + { "name": "gameview_m_char_hand_r3", "bone": "root", "attachment": "gameview_m_char_hand_r3" }, + { "name": "gameview_m_char_hair_l", "bone": "root", "attachment": "gameview_m_char_hair_l" }, + { "name": "gameview_m_char_hair_r", "bone": "root", "attachment": "gameview_m_char_hair_r" }, + { "name": "gameview_m_char_shoulder_r", "bone": "root", "attachment": "gameview_m_char_shoulder_r" }, + { "name": "gameview_m_char_shoulder_l", "bone": "root", "attachment": "gameview_m_char_shoulder_l" }, + { "name": "gameview_m_char_skirt3", "bone": "root", "attachment": "gameview_m_char_skirt3" }, + { "name": "gameview_m_char_skirt2", "bone": "root", "attachment": "gameview_m_char_skirt2" }, + { "name": "gameview_m_char_skirt1_s", "bone": "root", "attachment": "gameview_m_char_skirt1_s" }, + { "name": "gameview_m_char_skirt1", "bone": "root", "attachment": "gameview_m_char_skirt1" }, + { "name": "gameview_m_char_belt_decor3", "bone": "root", "attachment": "gameview_m_char_belt_decor3" }, + { "name": "gameview_m_char_belt_back", "bone": "root", "attachment": "gameview_m_char_belt_back" }, + { "name": "gameview_m_char_belt_feathers2_l", "bone": "root", "attachment": "gameview_m_char_belt_feathers2_l" }, + { "name": "gameview_m_char_belt_feathers1_l", "bone": "root", "attachment": "gameview_m_char_belt_feathers1_l" }, + { "name": "gameview_m_char_belt_feathers2_r", "bone": "root", "attachment": "gameview_m_char_belt_feathers2_r" }, + { "name": "gameview_m_char_belt_feathers1_r", "bone": "root", "attachment": "gameview_m_char_belt_feathers1_r" }, + { "name": "gameview_m_char_belt_decor1_s", "bone": "root", "attachment": "gameview_m_char_belt_decor1_s" }, + { "name": "gameview_m_char_belt_decor1", "bone": "root", "attachment": "gameview_m_char_belt_decor1" }, + { "name": "gameview_m_char_head_fthr_;", "bone": "root", "attachment": "gameview_m_char_head_fthr_;" }, + { "name": "gameview_m_char_head_l_s", "bone": "root", "attachment": "gameview_m_char_head_l_s" }, + { "name": "gameview_m_char_head_fthr_top_l", "bone": "root", "attachment": "gameview_m_char_head_fthr_top_l" }, + { "name": "gameview_m_char_head_fthr_r", "bone": "root", "attachment": "gameview_m_char_head_fthr_r" }, + { "name": "gameview_m_char_head_r_s", "bone": "root", "attachment": "gameview_m_char_head_r_s" }, + { "name": "gameview_m_char_head_fthr_top_r", "bone": "root", "attachment": "gameview_m_char_head_fthr_top_r" }, + { "name": "gameview_m_char_head_eye_l", "bone": "root", "attachment": "gameview_m_char_head_eye_l" }, + { "name": "gameview_m_char_head_eye_r", "bone": "root", "attachment": "gameview_m_char_head_eye_r" }, + { "name": "gameview_m_char_head", "bone": "root", "attachment": "gameview_m_char_head" }, + { "name": "gameview_m_char_head_eyelid_l", "bone": "root", "attachment": "gameview_m_char_head_eyelid_l" }, + { "name": "gameview_m_char_head_eyelid_r", "bone": "root", "attachment": "gameview_m_char_head_eyelid_r" }, + { "name": "gameview_m_char_head_brows", "bone": "root", "attachment": "gameview_m_char_head_brows" }, + { "name": "gameview_m_char_head_helmet_s", "bone": "root", "attachment": "gameview_m_char_head_helmet_s" }, + { "name": "gameview_m_char_head_helmet", "bone": "root", "attachment": "gameview_m_char_head_helmet" }, + { "name": "gameview_m_char_head_earring_r", "bone": "root", "attachment": "gameview_m_char_head_earring_r" }, + { "name": "gameview_m_char_head_earring_l", "bone": "root", "attachment": "gameview_m_char_head_earring_l" } +], +"skins": { + "default": { + "gameview_m_char_s": { + "gameview_m_char_s": { "x": -35, "y": -407, "width": 396, "height": 228 } + }, + "gameview_m_char_hand_l2": { + "gameview_m_char_hand_l2": { "x": 133.5, "y": 224.5, "width": 61, "height": 89 } + }, + "gameview_m_char_hand_l1": { + "gameview_m_char_hand_l1": { "x": 168.5, "y": 107, "width": 131, "height": 230 } + }, + "gameview_m_char_torso": { + "gameview_m_char_torso": { "x": 64.5, "y": 245.5, "width": 181, "height": 295 } + }, + "gameview_m_char_torso_s": { + "gameview_m_char_torso_s": { "x": 64.5, "y": 300, "width": 181, "height": 124 } + }, + "gameview_m_char_skirt_back": { + "gameview_m_char_skirt_back": { "x": 26.5, "y": -136, "width": 267, "height": 448 } + }, + "gameview_m_char_leg_r2": { + "gameview_m_char_leg_r2": { "x": 90, "y": -108, "width": 120, "height": 288 } + }, + "gameview_m_char_leg_r1": { + "gameview_m_char_leg_r1": { "x": 82, "y": -347, "width": 80, "height": 250 } + }, + "gameview_m_char_leg_l2": { + "gameview_m_char_leg_l2": { "x": 40, "y": -97.5, "width": 98, "height": 317 } + }, + "gameview_m_char_leg_l1": { + "gameview_m_char_leg_l1": { "x": 61, "y": -345, "width": 104, "height": 280 } + }, + "gameview_m_char_hand_r2": { + "gameview_m_char_hand_r2": { "x": -44, "y": 221, "width": 80, "height": 168 } + }, + "gameview_m_char_hand_r1": { + "gameview_m_char_hand_r1": { "x": -98, "y": 208.5, "width": 100, "height": 145 } + }, + "gameview_m_char_cane": { + "gameview_m_char_cane": { "x": -113.5, "y": 24, "width": 63, "height": 970 } + }, + "gameview_m_char_hand_rs": { + "gameview_m_char_hand_rs": { "x": -112.5, "y": 297, "width": 21, "height": 96 } + }, + "gameview_m_char_hand_r3": { + "gameview_m_char_hand_r3": { "x": -131.5, "y": 299, "width": 61, "height": 96 } + }, + "gameview_m_char_hair_l": { + "gameview_m_char_hair_l": { "x": 28, "y": 344.5, "width": 56, "height": 113 } + }, + "gameview_m_char_hair_r": { + "gameview_m_char_hair_r": { "x": 104.5, "y": 344, "width": 57, "height": 114 } + }, + "gameview_m_char_shoulder_r": { + "gameview_m_char_shoulder_r": { "x": 177.5, "y": 304.5, "width": 105, "height": 109 } + }, + "gameview_m_char_shoulder_l": { + "gameview_m_char_shoulder_l": { "x": -32.5, "y": 304.5, "width": 143, "height": 97 } + }, + "gameview_m_char_skirt3": { + "gameview_m_char_skirt3": { "x": 96.5, "y": -111.5, "width": 121, "height": 401 } + }, + "gameview_m_char_skirt2": { + "gameview_m_char_skirt2": { "x": 90.5, "y": -33, "width": 215, "height": 216 } + }, + "gameview_m_char_skirt1_s": { + "gameview_m_char_skirt1_s": { "x": 59, "y": 3, "width": 256, "height": 206 } + }, + "gameview_m_char_skirt1": { + "gameview_m_char_skirt1": { "x": 58, "y": 3.5, "width": 238, "height": 181 } + }, + "gameview_m_char_belt_decor3": { + "gameview_m_char_belt_decor3": { "x": 97.5, "y": 30.5, "width": 81, "height": 89 } + }, + "gameview_m_char_belt_back": { + "gameview_m_char_belt_back": { "x": 66, "y": 101, "width": 188, "height": 112 } + }, + "gameview_m_char_belt_feathers2_l": { + "gameview_m_char_belt_feathers2_l": { "x": 28, "y": 87.5, "width": 72, "height": 79 } + }, + "gameview_m_char_belt_feathers1_l": { + "gameview_m_char_belt_feathers1_l": { "x": 17, "y": 92.5, "width": 66, "height": 71 } + }, + "gameview_m_char_belt_feathers2_r": { + "gameview_m_char_belt_feathers2_r": { "x": 148.5, "y": 86.5, "width": 55, "height": 73 } + }, + "gameview_m_char_belt_feathers1_r": { + "gameview_m_char_belt_feathers1_r": { "x": 155, "y": 91.5, "width": 58, "height": 65 } + }, + "gameview_m_char_belt_decor1_s": { + "gameview_m_char_belt_decor1_s": { "x": 95, "y": 78, "width": 138, "height": 136 } + }, + "gameview_m_char_belt_decor1": { + "gameview_m_char_belt_decor1": { "x": 94.5, "y": 81, "width": 129, "height": 128 } + }, + "gameview_m_char_head_fthr_;": { + "gameview_m_char_head_fthr_;": { "x": -24, "y": 428.5, "width": 140, "height": 163 } + }, + "gameview_m_char_head_l_s": { + "gameview_m_char_head_l_s": { "x": -8, "y": 428.5, "width": 108, "height": 119 } + }, + "gameview_m_char_head_fthr_top_l": { + "gameview_m_char_head_fthr_top_l": { "x": -6, "y": 430.5, "width": 106, "height": 117 } + }, + "gameview_m_char_head_fthr_r": { + "gameview_m_char_head_fthr_r": { "x": 139, "y": 431.5, "width": 130, "height": 151 } + }, + "gameview_m_char_head_r_s": { + "gameview_m_char_head_r_s": { "x": 124.5, "y": 431.5, "width": 101, "height": 111 } + }, + "gameview_m_char_head_fthr_top_r": { + "gameview_m_char_head_fthr_top_r": { "x": 122.5, "y": 433.5, "width": 99, "height": 109 } + }, + "gameview_m_char_head_eye_l": { + "gameview_m_char_head_eye_l": { "x": 46, "y": 416, "width": 22, "height": 20 } + }, + "gameview_m_char_head_eye_r": { + "gameview_m_char_head_eye_r": { "x": 81.5, "y": 415.5, "width": 21, "height": 21 } + }, + "gameview_m_char_head": { + "gameview_m_char_head": { "x": 63, "y": 415, "width": 104, "height": 124 } + }, + "gameview_m_char_head_eyelid_l": { + "gameview_m_char_head_eyelid_l": { "x": 46.5, "y": 418.5, "width": 25, "height": 15 } + }, + "gameview_m_char_head_eyelid_r": { + "gameview_m_char_head_eyelid_r": { "x": 81.5, "y": 420, "width": 25, "height": 16 } + }, + "gameview_m_char_head_brows": { + "gameview_m_char_head_brows": { "x": 65, "y": 427, "width": 60, "height": 8 } + }, + "gameview_m_char_head_helmet_s": { + "gameview_m_char_head_helmet_s": { "x": 62.5, "y": 421.5, "width": 99, "height": 67 } + }, + "gameview_m_char_head_helmet": { + "gameview_m_char_head_helmet": { "x": 59.5, "y": 455.5, "width": 153, "height": 125 } + }, + "gameview_m_char_head_earring_r": { + "gameview_m_char_head_earring_r": { "x": 110.5, "y": 376.5, "width": 47, "height": 51 } + }, + "gameview_m_char_head_earring_l": { + "gameview_m_char_head_earring_l": { "x": 16.5, "y": 374, "width": 49, "height": 58 } + } + } +}, +"animations": { "animation": {} } +} \ No newline at end of file diff --git a/art/gameviews/characters/main_character/main_character.spine b/art/gameviews/characters/main_character/main_character.spine new file mode 100644 index 0000000..1ed2e06 Binary files /dev/null and b/art/gameviews/characters/main_character/main_character.spine differ diff --git a/art/gameviews/characters/respins_character/images/bg_bonus1_desktop (1).png b/art/gameviews/characters/respins_character/images/bg_bonus1_desktop (1).png new file mode 100644 index 0000000..7ef502b Binary files /dev/null and b/art/gameviews/characters/respins_character/images/bg_bonus1_desktop (1).png differ diff --git a/art/gameviews/characters/respins_character/images/gameview_b1_char_belt.png b/art/gameviews/characters/respins_character/images/gameview_b1_char_belt.png new file mode 100644 index 0000000..dd7f9f0 Binary files /dev/null and b/art/gameviews/characters/respins_character/images/gameview_b1_char_belt.png differ diff --git a/art/gameviews/characters/respins_character/images/gameview_b1_char_belt_s.png b/art/gameviews/characters/respins_character/images/gameview_b1_char_belt_s.png new file mode 100644 index 0000000..5279e82 Binary files /dev/null and b/art/gameviews/characters/respins_character/images/gameview_b1_char_belt_s.png differ diff --git a/art/gameviews/characters/respins_character/images/gameview_b1_char_chestpiece.png b/art/gameviews/characters/respins_character/images/gameview_b1_char_chestpiece.png new file mode 100644 index 0000000..692307e Binary files /dev/null and b/art/gameviews/characters/respins_character/images/gameview_b1_char_chestpiece.png differ diff --git a/art/gameviews/characters/respins_character/images/gameview_b1_char_chestpiece_decor.png b/art/gameviews/characters/respins_character/images/gameview_b1_char_chestpiece_decor.png new file mode 100644 index 0000000..3a610c2 Binary files /dev/null and b/art/gameviews/characters/respins_character/images/gameview_b1_char_chestpiece_decor.png differ diff --git a/art/gameviews/characters/respins_character/images/gameview_b1_char_chestpiece_decor_s.png b/art/gameviews/characters/respins_character/images/gameview_b1_char_chestpiece_decor_s.png new file mode 100644 index 0000000..3ffa504 Binary files /dev/null and b/art/gameviews/characters/respins_character/images/gameview_b1_char_chestpiece_decor_s.png differ diff --git a/art/gameviews/characters/respins_character/images/gameview_b1_char_chestpiece_s.png b/art/gameviews/characters/respins_character/images/gameview_b1_char_chestpiece_s.png new file mode 100644 index 0000000..b338361 Binary files /dev/null and b/art/gameviews/characters/respins_character/images/gameview_b1_char_chestpiece_s.png differ diff --git a/art/gameviews/characters/respins_character/images/gameview_b1_char_cloak_back.png b/art/gameviews/characters/respins_character/images/gameview_b1_char_cloak_back.png new file mode 100644 index 0000000..b0a48e0 Binary files /dev/null and b/art/gameviews/characters/respins_character/images/gameview_b1_char_cloak_back.png differ diff --git a/art/gameviews/characters/respins_character/images/gameview_b1_char_eye_l.png b/art/gameviews/characters/respins_character/images/gameview_b1_char_eye_l.png new file mode 100644 index 0000000..ecbc780 Binary files /dev/null and b/art/gameviews/characters/respins_character/images/gameview_b1_char_eye_l.png differ diff --git a/art/gameviews/characters/respins_character/images/gameview_b1_char_eye_r.png b/art/gameviews/characters/respins_character/images/gameview_b1_char_eye_r.png new file mode 100644 index 0000000..f0d627d Binary files /dev/null and b/art/gameviews/characters/respins_character/images/gameview_b1_char_eye_r.png differ diff --git a/art/gameviews/characters/respins_character/images/gameview_b1_char_eyelid_l.png b/art/gameviews/characters/respins_character/images/gameview_b1_char_eyelid_l.png new file mode 100644 index 0000000..5f5479b Binary files /dev/null and b/art/gameviews/characters/respins_character/images/gameview_b1_char_eyelid_l.png differ diff --git a/art/gameviews/characters/respins_character/images/gameview_b1_char_eyelid_r.png b/art/gameviews/characters/respins_character/images/gameview_b1_char_eyelid_r.png new file mode 100644 index 0000000..fc00b61 Binary files /dev/null and b/art/gameviews/characters/respins_character/images/gameview_b1_char_eyelid_r.png differ diff --git a/art/gameviews/characters/respins_character/images/gameview_b1_char_hair_back.png b/art/gameviews/characters/respins_character/images/gameview_b1_char_hair_back.png new file mode 100644 index 0000000..bae5189 Binary files /dev/null and b/art/gameviews/characters/respins_character/images/gameview_b1_char_hair_back.png differ diff --git a/art/gameviews/characters/respins_character/images/gameview_b1_char_hair_decor.png b/art/gameviews/characters/respins_character/images/gameview_b1_char_hair_decor.png new file mode 100644 index 0000000..bbc40d8 Binary files /dev/null and b/art/gameviews/characters/respins_character/images/gameview_b1_char_hair_decor.png differ diff --git a/art/gameviews/characters/respins_character/images/gameview_b1_char_hair_decor_eff.png b/art/gameviews/characters/respins_character/images/gameview_b1_char_hair_decor_eff.png new file mode 100644 index 0000000..adce4f6 Binary files /dev/null and b/art/gameviews/characters/respins_character/images/gameview_b1_char_hair_decor_eff.png differ diff --git a/art/gameviews/characters/respins_character/images/gameview_b1_char_hand1_l.png b/art/gameviews/characters/respins_character/images/gameview_b1_char_hand1_l.png new file mode 100644 index 0000000..1a29806 Binary files /dev/null and b/art/gameviews/characters/respins_character/images/gameview_b1_char_hand1_l.png differ diff --git a/art/gameviews/characters/respins_character/images/gameview_b1_char_hand1_r.png b/art/gameviews/characters/respins_character/images/gameview_b1_char_hand1_r.png new file mode 100644 index 0000000..b9cdc13 Binary files /dev/null and b/art/gameviews/characters/respins_character/images/gameview_b1_char_hand1_r.png differ diff --git a/art/gameviews/characters/respins_character/images/gameview_b1_char_hand2_l.png b/art/gameviews/characters/respins_character/images/gameview_b1_char_hand2_l.png new file mode 100644 index 0000000..9f7ba2c Binary files /dev/null and b/art/gameviews/characters/respins_character/images/gameview_b1_char_hand2_l.png differ diff --git a/art/gameviews/characters/respins_character/images/gameview_b1_char_hand2_l_glow.png b/art/gameviews/characters/respins_character/images/gameview_b1_char_hand2_l_glow.png new file mode 100644 index 0000000..667e36a Binary files /dev/null and b/art/gameviews/characters/respins_character/images/gameview_b1_char_hand2_l_glow.png differ diff --git a/art/gameviews/characters/respins_character/images/gameview_b1_char_hand2_r.png b/art/gameviews/characters/respins_character/images/gameview_b1_char_hand2_r.png new file mode 100644 index 0000000..49c2c93 Binary files /dev/null and b/art/gameviews/characters/respins_character/images/gameview_b1_char_hand2_r.png differ diff --git a/art/gameviews/characters/respins_character/images/gameview_b1_char_hand2_r_glow.png b/art/gameviews/characters/respins_character/images/gameview_b1_char_hand2_r_glow.png new file mode 100644 index 0000000..e337e3b Binary files /dev/null and b/art/gameviews/characters/respins_character/images/gameview_b1_char_hand2_r_glow.png differ diff --git a/art/gameviews/characters/respins_character/images/gameview_b1_char_hand3_r.png b/art/gameviews/characters/respins_character/images/gameview_b1_char_hand3_r.png new file mode 100644 index 0000000..20e2ca1 Binary files /dev/null and b/art/gameviews/characters/respins_character/images/gameview_b1_char_hand3_r.png differ diff --git a/art/gameviews/characters/respins_character/images/gameview_b1_char_head.png b/art/gameviews/characters/respins_character/images/gameview_b1_char_head.png new file mode 100644 index 0000000..1801d7b Binary files /dev/null and b/art/gameviews/characters/respins_character/images/gameview_b1_char_head.png differ diff --git a/art/gameviews/characters/respins_character/images/gameview_b1_char_head_bandage.png b/art/gameviews/characters/respins_character/images/gameview_b1_char_head_bandage.png new file mode 100644 index 0000000..cd04c67 Binary files /dev/null and b/art/gameviews/characters/respins_character/images/gameview_b1_char_head_bandage.png differ diff --git a/art/gameviews/characters/respins_character/images/gameview_b1_char_head_bandage_s.png b/art/gameviews/characters/respins_character/images/gameview_b1_char_head_bandage_s.png new file mode 100644 index 0000000..56edbeb Binary files /dev/null and b/art/gameviews/characters/respins_character/images/gameview_b1_char_head_bandage_s.png differ diff --git a/art/gameviews/characters/respins_character/images/gameview_b1_char_head_feathers1.png b/art/gameviews/characters/respins_character/images/gameview_b1_char_head_feathers1.png new file mode 100644 index 0000000..8cbafaf Binary files /dev/null and b/art/gameviews/characters/respins_character/images/gameview_b1_char_head_feathers1.png differ diff --git a/art/gameviews/characters/respins_character/images/gameview_b1_char_head_feathers1_eff.png b/art/gameviews/characters/respins_character/images/gameview_b1_char_head_feathers1_eff.png new file mode 100644 index 0000000..efce5bc Binary files /dev/null and b/art/gameviews/characters/respins_character/images/gameview_b1_char_head_feathers1_eff.png differ diff --git a/art/gameviews/characters/respins_character/images/gameview_b1_char_head_feathers2_back.png b/art/gameviews/characters/respins_character/images/gameview_b1_char_head_feathers2_back.png new file mode 100644 index 0000000..18a6158 Binary files /dev/null and b/art/gameviews/characters/respins_character/images/gameview_b1_char_head_feathers2_back.png differ diff --git a/art/gameviews/characters/respins_character/images/gameview_b1_char_head_leopard.png b/art/gameviews/characters/respins_character/images/gameview_b1_char_head_leopard.png new file mode 100644 index 0000000..cb45a91 Binary files /dev/null and b/art/gameviews/characters/respins_character/images/gameview_b1_char_head_leopard.png differ diff --git a/art/gameviews/characters/respins_character/images/gameview_b1_char_head_leopard_s.png b/art/gameviews/characters/respins_character/images/gameview_b1_char_head_leopard_s.png new file mode 100644 index 0000000..b7584a9 Binary files /dev/null and b/art/gameviews/characters/respins_character/images/gameview_b1_char_head_leopard_s.png differ diff --git a/art/gameviews/characters/respins_character/images/gameview_b1_char_head_s.png b/art/gameviews/characters/respins_character/images/gameview_b1_char_head_s.png new file mode 100644 index 0000000..9c89fa3 Binary files /dev/null and b/art/gameviews/characters/respins_character/images/gameview_b1_char_head_s.png differ diff --git a/art/gameviews/characters/respins_character/images/gameview_b1_char_legs1_l.png b/art/gameviews/characters/respins_character/images/gameview_b1_char_legs1_l.png new file mode 100644 index 0000000..9aec16b Binary files /dev/null and b/art/gameviews/characters/respins_character/images/gameview_b1_char_legs1_l.png differ diff --git a/art/gameviews/characters/respins_character/images/gameview_b1_char_legs1_l_glow.png b/art/gameviews/characters/respins_character/images/gameview_b1_char_legs1_l_glow.png new file mode 100644 index 0000000..359310a Binary files /dev/null and b/art/gameviews/characters/respins_character/images/gameview_b1_char_legs1_l_glow.png differ diff --git a/art/gameviews/characters/respins_character/images/gameview_b1_char_legs2_l.png b/art/gameviews/characters/respins_character/images/gameview_b1_char_legs2_l.png new file mode 100644 index 0000000..9388970 Binary files /dev/null and b/art/gameviews/characters/respins_character/images/gameview_b1_char_legs2_l.png differ diff --git a/art/gameviews/characters/respins_character/images/gameview_b1_char_legs_r.png b/art/gameviews/characters/respins_character/images/gameview_b1_char_legs_r.png new file mode 100644 index 0000000..6f27663 Binary files /dev/null and b/art/gameviews/characters/respins_character/images/gameview_b1_char_legs_r.png differ diff --git a/art/gameviews/characters/respins_character/images/gameview_b1_char_legs_r_glow.png b/art/gameviews/characters/respins_character/images/gameview_b1_char_legs_r_glow.png new file mode 100644 index 0000000..13b8206 Binary files /dev/null and b/art/gameviews/characters/respins_character/images/gameview_b1_char_legs_r_glow.png differ diff --git a/art/gameviews/characters/respins_character/images/gameview_b1_char_necklace.png b/art/gameviews/characters/respins_character/images/gameview_b1_char_necklace.png new file mode 100644 index 0000000..986f2da Binary files /dev/null and b/art/gameviews/characters/respins_character/images/gameview_b1_char_necklace.png differ diff --git a/art/gameviews/characters/respins_character/images/gameview_b1_char_necklace_s.png b/art/gameviews/characters/respins_character/images/gameview_b1_char_necklace_s.png new file mode 100644 index 0000000..e0ad653 Binary files /dev/null and b/art/gameviews/characters/respins_character/images/gameview_b1_char_necklace_s.png differ diff --git a/art/gameviews/characters/respins_character/images/gameview_b1_char_s.png b/art/gameviews/characters/respins_character/images/gameview_b1_char_s.png new file mode 100644 index 0000000..9694d3a Binary files /dev/null and b/art/gameviews/characters/respins_character/images/gameview_b1_char_s.png differ diff --git a/art/gameviews/characters/respins_character/images/gameview_b1_char_shield.png b/art/gameviews/characters/respins_character/images/gameview_b1_char_shield.png new file mode 100644 index 0000000..34121b1 Binary files /dev/null and b/art/gameviews/characters/respins_character/images/gameview_b1_char_shield.png differ diff --git a/art/gameviews/characters/respins_character/images/gameview_b1_char_shield_leaves1.png b/art/gameviews/characters/respins_character/images/gameview_b1_char_shield_leaves1.png new file mode 100644 index 0000000..d81d058 Binary files /dev/null and b/art/gameviews/characters/respins_character/images/gameview_b1_char_shield_leaves1.png differ diff --git a/art/gameviews/characters/respins_character/images/gameview_b1_char_shield_leaves2.png b/art/gameviews/characters/respins_character/images/gameview_b1_char_shield_leaves2.png new file mode 100644 index 0000000..6bf8c1e Binary files /dev/null and b/art/gameviews/characters/respins_character/images/gameview_b1_char_shield_leaves2.png differ diff --git a/art/gameviews/characters/respins_character/images/gameview_b1_char_shield_leaves3.png b/art/gameviews/characters/respins_character/images/gameview_b1_char_shield_leaves3.png new file mode 100644 index 0000000..561157a Binary files /dev/null and b/art/gameviews/characters/respins_character/images/gameview_b1_char_shield_leaves3.png differ diff --git a/art/gameviews/characters/respins_character/images/gameview_b1_char_shield_leaves4.png b/art/gameviews/characters/respins_character/images/gameview_b1_char_shield_leaves4.png new file mode 100644 index 0000000..5a531cd Binary files /dev/null and b/art/gameviews/characters/respins_character/images/gameview_b1_char_shield_leaves4.png differ diff --git a/art/gameviews/characters/respins_character/images/gameview_b1_char_shield_leaves5.png b/art/gameviews/characters/respins_character/images/gameview_b1_char_shield_leaves5.png new file mode 100644 index 0000000..263c22b Binary files /dev/null and b/art/gameviews/characters/respins_character/images/gameview_b1_char_shield_leaves5.png differ diff --git a/art/gameviews/characters/respins_character/images/gameview_b1_char_shield_leaves6.png b/art/gameviews/characters/respins_character/images/gameview_b1_char_shield_leaves6.png new file mode 100644 index 0000000..e8e6df8 Binary files /dev/null and b/art/gameviews/characters/respins_character/images/gameview_b1_char_shield_leaves6.png differ diff --git a/art/gameviews/characters/respins_character/images/gameview_b1_char_skirt.png b/art/gameviews/characters/respins_character/images/gameview_b1_char_skirt.png new file mode 100644 index 0000000..09569d8 Binary files /dev/null and b/art/gameviews/characters/respins_character/images/gameview_b1_char_skirt.png differ diff --git a/art/gameviews/characters/respins_character/images/gameview_b1_char_skirt_back.png b/art/gameviews/characters/respins_character/images/gameview_b1_char_skirt_back.png new file mode 100644 index 0000000..8ef18a9 Binary files /dev/null and b/art/gameviews/characters/respins_character/images/gameview_b1_char_skirt_back.png differ diff --git a/art/gameviews/characters/respins_character/images/gameview_b1_char_torso.png b/art/gameviews/characters/respins_character/images/gameview_b1_char_torso.png new file mode 100644 index 0000000..0392cfd Binary files /dev/null and b/art/gameviews/characters/respins_character/images/gameview_b1_char_torso.png differ diff --git a/art/gameviews/characters/respins_character/images/gameview_b1_char_torso_glow.png b/art/gameviews/characters/respins_character/images/gameview_b1_char_torso_glow.png new file mode 100644 index 0000000..afe44f9 Binary files /dev/null and b/art/gameviews/characters/respins_character/images/gameview_b1_char_torso_glow.png differ diff --git a/art/gameviews/characters/respins_character/images/hangover_gameview_character.json b/art/gameviews/characters/respins_character/images/hangover_gameview_character.json new file mode 100644 index 0000000..ac1a248 --- /dev/null +++ b/art/gameviews/characters/respins_character/images/hangover_gameview_character.json @@ -0,0 +1,209 @@ +{ "skeleton": { "images": "C:/THE POSO/99.Amazon City of Gold/Warrior's path/images/" }, +"PhotoshopToSpine": { "scale": 1, "padding": 1, "trim": true }, +"bones": [ + { "name": "root" } +], +"slots": [ + { "name": "gameview_b1_char_s", "bone": "root", "attachment": "gameview_b1_char_s" }, + { "name": "gameview_b1_char_hair_decor", "bone": "root", "attachment": "gameview_b1_char_hair_decor" }, + { "name": "gameview_b1_char_hair_decor_eff", "bone": "root", "attachment": "gameview_b1_char_hair_decor_eff" }, + { "name": "gameview_b1_char_cloak_back", "bone": "root", "attachment": "gameview_b1_char_cloak_back" }, + { "name": "gameview_b1_char_hand3_r", "bone": "root", "attachment": "gameview_b1_char_hand3_r" }, + { "name": "gameview_b1_char_hand2_r", "bone": "root", "attachment": "gameview_b1_char_hand2_r" }, + { "name": "gameview_b1_char_hand2_r_glow", "bone": "root", "attachment": "gameview_b1_char_hand2_r_glow" }, + { "name": "gameview_b1_char_hand1_r", "bone": "root", "attachment": "gameview_b1_char_hand1_r" }, + { "name": "gameview_b1_char_torso", "bone": "root", "attachment": "gameview_b1_char_torso" }, + { "name": "gameview_b1_char_torso_glow", "bone": "root", "attachment": "gameview_b1_char_torso_glow" }, + { "name": "gameview_b1_char_skirt_back", "bone": "root", "attachment": "gameview_b1_char_skirt_back" }, + { "name": "gameview_b1_char_legs_r", "bone": "root", "attachment": "gameview_b1_char_legs_r" }, + { "name": "gameview_b1_char_legs2_l", "bone": "root", "attachment": "gameview_b1_char_legs2_l" }, + { "name": "gameview_b1_char_legs1_l", "bone": "root", "attachment": "gameview_b1_char_legs1_l" }, + { "name": "gameview_b1_char_legs1_l_glow", "bone": "root", "attachment": "gameview_b1_char_legs1_l_glow" }, + { "name": "gameview_b1_char_legs_r_glow", "bone": "root", "attachment": "gameview_b1_char_legs_r_glow" }, + { "name": "gameview_b1_char_skirt", "bone": "root", "attachment": "gameview_b1_char_skirt" }, + { "name": "gameview_b1_char_belt_s", "bone": "root", "attachment": "gameview_b1_char_belt_s" }, + { "name": "gameview_b1_char_belt", "bone": "root", "attachment": "gameview_b1_char_belt" }, + { "name": "gameview_b1_char_hand2_l", "bone": "root", "attachment": "gameview_b1_char_hand2_l" }, + { "name": "gameview_b1_char_hand2_l_glow", "bone": "root", "attachment": "gameview_b1_char_hand2_l_glow" }, + { "name": "gameview_b1_char_hand1_l", "bone": "root", "attachment": "gameview_b1_char_hand1_l" }, + { "name": "gameview_b1_char_shield_leaves6", "bone": "root", "attachment": "gameview_b1_char_shield_leaves6" }, + { "name": "gameview_b1_char_shield_leaves5", "bone": "root", "attachment": "gameview_b1_char_shield_leaves5" }, + { "name": "gameview_b1_char_shield_leaves4", "bone": "root", "attachment": "gameview_b1_char_shield_leaves4" }, + { "name": "gameview_b1_char_shield_leaves3", "bone": "root", "attachment": "gameview_b1_char_shield_leaves3" }, + { "name": "gameview_b1_char_shield_leaves2", "bone": "root", "attachment": "gameview_b1_char_shield_leaves2" }, + { "name": "gameview_b1_char_shield_leaves1", "bone": "root", "attachment": "gameview_b1_char_shield_leaves1" }, + { "name": "gameview_b1_char_shield", "bone": "root", "attachment": "gameview_b1_char_shield" }, + { "name": "gameview_b1_char_chestpiece_s", "bone": "root", "attachment": "gameview_b1_char_chestpiece_s" }, + { "name": "gameview_b1_char_chestpiece", "bone": "root", "attachment": "gameview_b1_char_chestpiece" }, + { "name": "gameview_b1_char_necklace_s", "bone": "root", "attachment": "gameview_b1_char_necklace_s" }, + { "name": "gameview_b1_char_necklace", "bone": "root", "attachment": "gameview_b1_char_necklace" }, + { "name": "gameview_b1_char_chestpiece_decor_s", "bone": "root", "attachment": "gameview_b1_char_chestpiece_decor_s" }, + { "name": "gameview_b1_char_chestpiece_decor", "bone": "root", "attachment": "gameview_b1_char_chestpiece_decor" }, + { "name": "gameview_b1_char_head_feathers2_back", "bone": "root", "attachment": "gameview_b1_char_head_feathers2_back" }, + { "name": "gameview_b1_char_hair_back", "bone": "root", "attachment": "gameview_b1_char_hair_back" }, + { "name": "gameview_b1_char_eye_l", "bone": "root", "attachment": "gameview_b1_char_eye_l" }, + { "name": "gameview_b1_char_eye_r", "bone": "root", "attachment": "gameview_b1_char_eye_r" }, + { "name": "gameview_b1_char_head_s", "bone": "root", "attachment": "gameview_b1_char_head_s" }, + { "name": "gameview_b1_char_head", "bone": "root", "attachment": "gameview_b1_char_head" }, + { "name": "gameview_b1_char_eyelid_r", "bone": "root", "attachment": "gameview_b1_char_eyelid_r" }, + { "name": "gameview_b1_char_eyelid_l", "bone": "root", "attachment": "gameview_b1_char_eyelid_l" }, + { "name": "gameview_b1_char_head_feathers1", "bone": "root", "attachment": "gameview_b1_char_head_feathers1" }, + { "name": "gameview_b1_char_head_feathers1_eff", "bone": "root", "attachment": "gameview_b1_char_head_feathers1_eff" }, + { "name": "gameview_b1_char_head_bandage_s", "bone": "root", "attachment": "gameview_b1_char_head_bandage_s" }, + { "name": "gameview_b1_char_head_bandage", "bone": "root", "attachment": "gameview_b1_char_head_bandage" }, + { "name": "gameview_b1_char_head_leopard_s", "bone": "root", "attachment": "gameview_b1_char_head_leopard_s" }, + { "name": "gameview_b1_char_head_leopard", "bone": "root", "attachment": "gameview_b1_char_head_leopard" } +], +"skins": { + "default": { + "gameview_b1_char_s": { + "gameview_b1_char_s": { "x": -41, "y": -441.5, "width": 670, "height": 353 } + }, + "gameview_b1_char_hair_decor": { + "gameview_b1_char_hair_decor": { "x": 9.5, "y": 342.5, "width": 303, "height": 267 } + }, + "gameview_b1_char_hair_decor_eff": { + "gameview_b1_char_hair_decor_eff": { "x": 9.5, "y": 342.5, "width": 303, "height": 267 } + }, + "gameview_b1_char_cloak_back": { + "gameview_b1_char_cloak_back": { "x": -12.5, "y": 90, "width": 103, "height": 248 } + }, + "gameview_b1_char_hand3_r": { + "gameview_b1_char_hand3_r": { "x": 138.5, "y": 205.5, "width": 71, "height": 221 } + }, + "gameview_b1_char_hand2_r": { + "gameview_b1_char_hand2_r": { "x": 174, "y": 97.5, "width": 106, "height": 117 } + }, + "gameview_b1_char_hand2_r_glow": { + "gameview_b1_char_hand2_r_glow": { "x": 158.5, "y": 191, "width": 35, "height": 112 } + }, + "gameview_b1_char_hand1_r": { + "gameview_b1_char_hand1_r": { "x": 281, "y": 155.5, "width": 190, "height": 419 } + }, + "gameview_b1_char_torso": { + "gameview_b1_char_torso": { "x": 49.5, "y": 222, "width": 231, "height": 348 } + }, + "gameview_b1_char_torso_glow": { + "gameview_b1_char_torso_glow": { "x": 63, "y": 211, "width": 174, "height": 308 } + }, + "gameview_b1_char_skirt_back": { + "gameview_b1_char_skirt_back": { "x": 66, "y": -81.5, "width": 246, "height": 79 } + }, + "gameview_b1_char_legs_r": { + "gameview_b1_char_legs_r": { "x": 145, "y": -229.5, "width": 214, "height": 545 } + }, + "gameview_b1_char_legs2_l": { + "gameview_b1_char_legs2_l": { "x": -61, "y": -370.5, "width": 110, "height": 383 } + }, + "gameview_b1_char_legs1_l": { + "gameview_b1_char_legs1_l": { "x": 6, "y": -162.5, "width": 136, "height": 225 } + }, + "gameview_b1_char_legs1_l_glow": { + "gameview_b1_char_legs1_l_glow": { "x": -4.5, "y": -168, "width": 99, "height": 134 } + }, + "gameview_b1_char_legs_r_glow": { + "gameview_b1_char_legs_r_glow": { "x": 156, "y": -149.5, "width": 52, "height": 91 } + }, + "gameview_b1_char_skirt": { + "gameview_b1_char_skirt": { "x": 65, "y": -18, "width": 248, "height": 180 } + }, + "gameview_b1_char_belt_s": { + "gameview_b1_char_belt_s": { "x": 98.5, "y": -11, "width": 91, "height": 158 } + }, + "gameview_b1_char_belt": { + "gameview_b1_char_belt": { "x": 96, "y": -58.5, "width": 80, "height": 261 } + }, + "gameview_b1_char_hand2_l": { + "gameview_b1_char_hand2_l": { "x": -54.5, "y": 213.5, "width": 123, "height": 207 } + }, + "gameview_b1_char_hand2_l_glow": { + "gameview_b1_char_hand2_l_glow": { "x": -50.5, "y": 216, "width": 77, "height": 128 } + }, + "gameview_b1_char_hand1_l": { + "gameview_b1_char_hand1_l": { "x": -88, "y": 36, "width": 74, "height": 248 } + }, + "gameview_b1_char_shield_leaves6": { + "gameview_b1_char_shield_leaves6": { "x": -220.5, "y": 34.5, "width": 125, "height": 163 } + }, + "gameview_b1_char_shield_leaves5": { + "gameview_b1_char_shield_leaves5": { "x": -236.5, "y": 135, "width": 73, "height": 122 } + }, + "gameview_b1_char_shield_leaves4": { + "gameview_b1_char_shield_leaves4": { "x": -204.5, "y": 175, "width": 43, "height": 132 } + }, + "gameview_b1_char_shield_leaves3": { + "gameview_b1_char_shield_leaves3": { "x": -43.5, "y": 58.5, "width": 89, "height": 159 } + }, + "gameview_b1_char_shield_leaves2": { + "gameview_b1_char_shield_leaves2": { "x": -82, "y": 136.5, "width": 82, "height": 125 } + }, + "gameview_b1_char_shield_leaves1": { + "gameview_b1_char_shield_leaves1": { "x": -150.5, "y": 194, "width": 51, "height": 126 } + }, + "gameview_b1_char_shield": { + "gameview_b1_char_shield": { "x": -126.5, "y": 8, "width": 209, "height": 286 } + }, + "gameview_b1_char_chestpiece_s": { + "gameview_b1_char_chestpiece_s": { "x": 50, "y": 258.5, "width": 230, "height": 123 } + }, + "gameview_b1_char_chestpiece": { + "gameview_b1_char_chestpiece": { "x": 44, "y": 274, "width": 246, "height": 142 } + }, + "gameview_b1_char_necklace_s": { + "gameview_b1_char_necklace_s": { "x": 66, "y": 299, "width": 128, "height": 78 } + }, + "gameview_b1_char_necklace": { + "gameview_b1_char_necklace": { "x": 66, "y": 301.5, "width": 120, "height": 71 } + }, + "gameview_b1_char_chestpiece_decor_s": { + "gameview_b1_char_chestpiece_decor_s": { "x": 102, "y": 222.5, "width": 84, "height": 85 } + }, + "gameview_b1_char_chestpiece_decor": { + "gameview_b1_char_chestpiece_decor": { "x": 103, "y": 224, "width": 76, "height": 76 } + }, + "gameview_b1_char_head_feathers2_back": { + "gameview_b1_char_head_feathers2_back": { "x": 140, "y": 470, "width": 76, "height": 116 } + }, + "gameview_b1_char_hair_back": { + "gameview_b1_char_hair_back": { "x": 1, "y": 428, "width": 94, "height": 180 } + }, + "gameview_b1_char_eye_l": { + "gameview_b1_char_eye_l": { "x": 75.5, "y": 406.5, "width": 27, "height": 27 } + }, + "gameview_b1_char_eye_r": { + "gameview_b1_char_eye_r": { "x": 108.5, "y": 406, "width": 19, "height": 20 } + }, + "gameview_b1_char_head_s": { + "gameview_b1_char_head_s": { "x": 65.5, "y": 341, "width": 73, "height": 62 } + }, + "gameview_b1_char_head": { + "gameview_b1_char_head": { "x": 63.5, "y": 402, "width": 111, "height": 154 } + }, + "gameview_b1_char_eyelid_r": { + "gameview_b1_char_eyelid_r": { "x": 109.5, "y": 407.5, "width": 17, "height": 11 } + }, + "gameview_b1_char_eyelid_l": { + "gameview_b1_char_eyelid_l": { "x": 75, "y": 409.5, "width": 24, "height": 13 } + }, + "gameview_b1_char_head_feathers1": { + "gameview_b1_char_head_feathers1": { "x": -29.5, "y": 507, "width": 355, "height": 222 } + }, + "gameview_b1_char_head_feathers1_eff": { + "gameview_b1_char_head_feathers1_eff": { "x": -30, "y": 514.5, "width": 354, "height": 207 } + }, + "gameview_b1_char_head_bandage_s": { + "gameview_b1_char_head_bandage_s": { "x": 80.5, "y": 427, "width": 85, "height": 26 } + }, + "gameview_b1_char_head_bandage": { + "gameview_b1_char_head_bandage": { "x": 86.5, "y": 437, "width": 75, "height": 38 } + }, + "gameview_b1_char_head_leopard_s": { + "gameview_b1_char_head_leopard_s": { "x": 76.5, "y": 409, "width": 99, "height": 96 } + }, + "gameview_b1_char_head_leopard": { + "gameview_b1_char_head_leopard": { "x": 65, "y": 418.5, "width": 132, "height": 123 } + } + } +}, +"animations": { "animation": {} } +} \ No newline at end of file diff --git a/art/gameviews/characters/respins_character/respins_character.spine b/art/gameviews/characters/respins_character/respins_character.spine new file mode 100644 index 0000000..8041b5e Binary files /dev/null and b/art/gameviews/characters/respins_character/respins_character.spine differ diff --git a/art/gameviews/gameview.spine b/art/gameviews/gameview.spine new file mode 100644 index 0000000..05c1d9a Binary files /dev/null and b/art/gameviews/gameview.spine differ diff --git a/art/gameviews/images/1000.png b/art/gameviews/images/1000.png new file mode 100644 index 0000000..6b9580c Binary files /dev/null and b/art/gameviews/images/1000.png differ diff --git a/art/gameviews/images/430x932_bonus1.png b/art/gameviews/images/430x932_bonus1.png new file mode 100644 index 0000000..884e8d8 Binary files /dev/null and b/art/gameviews/images/430x932_bonus1.png differ diff --git a/art/gameviews/images/430x932_main.png b/art/gameviews/images/430x932_main.png new file mode 100644 index 0000000..934b648 Binary files /dev/null and b/art/gameviews/images/430x932_main.png differ diff --git a/art/gameviews/images/alien_abduction_gameview_landscape.json b/art/gameviews/images/alien_abduction_gameview_landscape.json new file mode 100644 index 0000000..29e3b76 --- /dev/null +++ b/art/gameviews/images/alien_abduction_gameview_landscape.json @@ -0,0 +1,189 @@ +{ "skeleton": { "images": "C:/THE POSO/99.Amazon City of Gold/gameview/background/images/" }, +"PhotoshopToSpine": { "scale": 1, "padding": 1, "trim": true }, +"bones": [ + { "name": "root" } +], +"slots": [ + { "name": "gameview_b2_base4", "bone": "root", "attachment": "gameview_b2_base4" }, + { "name": "gameview_b2_base3", "bone": "root", "attachment": "gameview_b2_base3" }, + { "name": "gameview_b2_base2", "bone": "root", "attachment": "gameview_b2_base2" }, + { "name": "gameview_b2_base1", "bone": "root", "attachment": "gameview_b2_base1" }, + { "name": "gameview_bonus2_mist_source", "bone": "root" }, + { "name": "gameview_bonus2_mist_sample", "bone": "root" }, + { "name": "gameview_b2_gld_eff", "bone": "root" }, + { "name": "gameview_b2_palm6", "bone": "root" }, + { "name": "gameview_b2_palm5", "bone": "root" }, + { "name": "gameview_b2_palm4", "bone": "root" }, + { "name": "gameview_b2_palm3", "bone": "root" }, + { "name": "gameview_b2_palm1", "bone": "root" }, + { "name": "gameview_b2_palm2", "bone": "root" }, + { "name": "gameview_b2_char_m", "bone": "root" }, + { "name": "gameview_b2_char_f", "bone": "root" }, + { "name": "gameview_b2_bushes_r24", "bone": "root", "attachment": "gameview_b2_bushes_r24" }, + { "name": "gameview_b2_bushes_r23", "bone": "root", "attachment": "gameview_b2_bushes_r23" }, + { "name": "gameview_b2_bushes_r22", "bone": "root", "attachment": "gameview_b2_bushes_r22" }, + { "name": "gameview_b2_bushes_r21", "bone": "root", "attachment": "gameview_b2_bushes_r21" }, + { "name": "gameview_b2_bushes_small_r1", "bone": "root", "attachment": "gameview_b2_bushes_small_r1" }, + { "name": "gameview_b2_bushes_l37", "bone": "root", "attachment": "gameview_b2_bushes_l37" }, + { "name": "gameview_b2_bushes_l36", "bone": "root", "attachment": "gameview_b2_bushes_l36" }, + { "name": "gameview_b2_bushes_l35", "bone": "root", "attachment": "gameview_b2_bushes_l35" }, + { "name": "gameview_b2_bushes_l34", "bone": "root", "attachment": "gameview_b2_bushes_l34" }, + { "name": "gameview_b2_bushes_l33", "bone": "root", "attachment": "gameview_b2_bushes_l33" }, + { "name": "gameview_b2_bushes_l32", "bone": "root", "attachment": "gameview_b2_bushes_l32" }, + { "name": "gameview_b2_bushes_l31", "bone": "root", "attachment": "gameview_b2_bushes_l31" }, + { "name": "gameview_b2_bushes_small_l12", "bone": "root", "attachment": "gameview_b2_bushes_small_l12" }, + { "name": "gameview_b2_bushes_small_l22", "bone": "root", "attachment": "gameview_b2_bushes_small_l22" }, + { "name": "gameview_b2_bushes_l_front", "bone": "root", "attachment": "gameview_b2_bushes_l_front" }, + { "name": "gameview_b2_reels_s", "bone": "root" }, + { "name": "gameview_b2_reel_glow_l", "bone": "root" }, + { "name": "gameview_b2_reel_glow_r", "bone": "root" }, + { "name": "gameview_b2_reels_bg", "bone": "root" }, + { "name": "gameview_b2_reels_frame_d", "bone": "root" }, + { "name": "gameview_b2_reels_frame_u", "bone": "root" }, + { "name": "gameview_b2_reels_frame_l", "bone": "root" }, + { "name": "gameview_b2_reels_frame_r", "bone": "root" }, + { "name": "gameview_b2_reels_frame_gld_l", "bone": "root" }, + { "name": "gameview_b2_reels_frame_gld_r", "bone": "root" }, + { "name": "gameview_b2_reels_frame_gld_u", "bone": "root" }, + { "name": "gameview_b2_reels_frame_mask_eff_r", "bone": "root" }, + { "name": "gameview_b2_reels_frame_mask_eff_l", "bone": "root" }, + { "name": "gameview_b2_reels_symb", "bone": "root" } +], +"skins": { + "default": { + "gameview_b2_base4": { + "gameview_b2_base4": { "x": 797, "y": -434, "width": 1658, "height": 934 } + }, + "gameview_b2_base3": { + "gameview_b2_base3": { "x": -797, "y": -434, "width": 1658, "height": 934 } + }, + "gameview_b2_base2": { + "gameview_b2_base2": { "x": 797, "y": 434, "width": 1658, "height": 934 } + }, + "gameview_b2_base1": { + "gameview_b2_base1": { "x": -797, "y": 434, "width": 1658, "height": 934 } + }, + "gameview_bonus2_mist_source": { + "gameview_bonus2_mist_source": { "x": -1154, "y": 549, "width": 516, "height": 518 } + }, + "gameview_bonus2_mist_sample": { + "gameview_bonus2_mist_sample": { "x": 0, "y": -176.5, "width": 3252, "height": 791 } + }, + "gameview_b2_gld_eff": { + "gameview_b2_gld_eff": { "x": 132, "y": -580.5, "width": 2994, "height": 655 } + }, + "gameview_b2_palm6": { + "gameview_b2_palm6": { "x": 1592, "y": 412, "width": 176, "height": 522 } + }, + "gameview_b2_palm5": { + "gameview_b2_palm5": { "x": 1498.5, "y": 408.5, "width": 397, "height": 507 } + }, + "gameview_b2_palm4": { + "gameview_b2_palm4": { "x": 1428.5, "y": 444.5, "width": 401, "height": 385 } + }, + "gameview_b2_palm3": { + "gameview_b2_palm3": { "x": 1488.5, "y": 718, "width": 383, "height": 376 } + }, + "gameview_b2_palm1": { + "gameview_b2_palm1": { "x": 1416, "y": 602, "width": 502, "height": 310 } + }, + "gameview_b2_palm2": { + "gameview_b2_palm2": { "x": 1551.5, "y": 524.5, "width": 251, "height": 275 } + }, + "gameview_b2_char_m": { + "gameview_b2_char_m": { "x": -994.5, "y": -211.5, "width": 481, "height": 991 } + }, + "gameview_b2_char_f": { + "gameview_b2_char_f": { "x": 1116, "y": -203, "width": 524, "height": 788 } + }, + "gameview_b2_bushes_r24": { + "gameview_b2_bushes_r24": { "x": -1396.5, "y": -547, "width": 387, "height": 270 } + }, + "gameview_b2_bushes_r23": { + "gameview_b2_bushes_r23": { "x": -1505.5, "y": -544, "width": 241, "height": 316 } + }, + "gameview_b2_bushes_r22": { + "gameview_b2_bushes_r22": { "x": -1364, "y": -656, "width": 442, "height": 102 } + }, + "gameview_b2_bushes_r21": { + "gameview_b2_bushes_r21": { "x": -1427.5, "y": -779.5, "width": 333, "height": 153 } + }, + "gameview_b2_bushes_small_r1": { + "gameview_b2_bushes_small_r1": { "x": -1501.5, "y": -810.5, "width": 377, "height": 221 } + }, + "gameview_b2_bushes_l37": { + "gameview_b2_bushes_l37": { "x": 1472, "y": -544, "width": 140, "height": 34 } + }, + "gameview_b2_bushes_l36": { + "gameview_b2_bushes_l36": { "x": 1524, "y": -386, "width": 134, "height": 204 } + }, + "gameview_b2_bushes_l35": { + "gameview_b2_bushes_l35": { "x": 1451, "y": -472.5, "width": 266, "height": 227 } + }, + "gameview_b2_bushes_l34": { + "gameview_b2_bushes_l34": { "x": 1476, "y": -425, "width": 208, "height": 272 } + }, + "gameview_b2_bushes_l33": { + "gameview_b2_bushes_l33": { "x": 1405.5, "y": -516.5, "width": 287, "height": 95 } + }, + "gameview_b2_bushes_l32": { + "gameview_b2_bushes_l32": { "x": 1416, "y": -506.5, "width": 332, "height": 211 } + }, + "gameview_b2_bushes_l31": { + "gameview_b2_bushes_l31": { "x": 1604, "y": -503.5, "width": 98, "height": 243 } + }, + "gameview_b2_bushes_small_l12": { + "gameview_b2_bushes_small_l12": { "x": 1381.5, "y": -619, "width": 313, "height": 224 } + }, + "gameview_b2_bushes_small_l22": { + "gameview_b2_bushes_small_l22": { "x": 1515.5, "y": -658, "width": 363, "height": 240 } + }, + "gameview_b2_bushes_l_front": { + "gameview_b2_bushes_l_front": { "x": 1419, "y": -855, "width": 722, "height": 394 } + }, + "gameview_b2_reels_s": { + "gameview_b2_reels_s": { "x": -1, "y": -588, "width": 2104, "height": 192 } + }, + "gameview_b2_reel_glow_l": { + "gameview_b2_reel_glow_l": { "x": 827.5, "y": -8, "width": 275, "height": 1426 } + }, + "gameview_b2_reel_glow_r": { + "gameview_b2_reel_glow_r": { "x": -825.5, "y": 15, "width": 245, "height": 1396 } + }, + "gameview_b2_reels_bg": { + "gameview_b2_reels_bg": { "x": 0, "y": -13, "width": 1454, "height": 1212 } + }, + "gameview_b2_reels_frame_d": { + "gameview_b2_reels_frame_d": { "x": -4, "y": -588, "width": 1372, "height": 82 } + }, + "gameview_b2_reels_frame_u": { + "gameview_b2_reels_frame_u": { "x": -1.5, "y": 602, "width": 1325, "height": 82 } + }, + "gameview_b2_reels_frame_l": { + "gameview_b2_reels_frame_l": { "x": 798, "y": 34.5, "width": 322, "height": 1327 } + }, + "gameview_b2_reels_frame_r": { + "gameview_b2_reels_frame_r": { "x": -805, "y": 34.5, "width": 322, "height": 1327 } + }, + "gameview_b2_reels_frame_gld_l": { + "gameview_b2_reels_frame_gld_l": { "x": 833.5, "y": -107.5, "width": 217, "height": 991 } + }, + "gameview_b2_reels_frame_gld_r": { + "gameview_b2_reels_frame_gld_r": { "x": -840.5, "y": -108, "width": 217, "height": 990 } + }, + "gameview_b2_reels_frame_gld_u": { + "gameview_b2_reels_frame_gld_u": { "x": -2.5, "y": 602, "width": 1309, "height": 38 } + }, + "gameview_b2_reels_frame_mask_eff_r": { + "gameview_b2_reels_frame_mask_eff_r": { "x": -755.5, "y": 528, "width": 227, "height": 352 } + }, + "gameview_b2_reels_frame_mask_eff_l": { + "gameview_b2_reels_frame_mask_eff_l": { "x": 747.5, "y": 528, "width": 227, "height": 352 } + }, + "gameview_b2_reels_symb": { + "gameview_b2_reels_symb": { "x": -12, "y": 10, "width": 1376, "height": 1128 } + } + } +}, +"animations": { "animation": {} } +} \ No newline at end of file diff --git a/art/gameviews/images/alien_abduction_gameview_portrait.png b/art/gameviews/images/alien_abduction_gameview_portrait.png new file mode 100644 index 0000000..c14dc33 Binary files /dev/null and b/art/gameviews/images/alien_abduction_gameview_portrait.png differ diff --git a/art/gameviews/images/frames.json b/art/gameviews/images/frames.json new file mode 100644 index 0000000..425c5f1 --- /dev/null +++ b/art/gameviews/images/frames.json @@ -0,0 +1,133 @@ +{ "skeleton": { "images": "C:/THE POSO/99.Amazon City of Gold/local - gameviews/images/" }, +"PhotoshopToSpine": { "scale": 1, "padding": 1, "trim": true }, +"bones": [ + { "name": "root" } +], +"slots": [ + { "name": "gameview_m_reels_frame_d_back", "bone": "root", "attachment": "gameview_m_reels_frame_d_back" }, + { "name": "gameview_m_reels_frame_u_back", "bone": "root", "attachment": "gameview_m_reels_frame_u_back" }, + { "name": "gameview_m_reels_frame_l_back", "bone": "root", "attachment": "gameview_m_reels_frame_l_back" }, + { "name": "gameview_m_reels_frame_r_back", "bone": "root", "attachment": "gameview_m_reels_frame_r_back" }, + { "name": "gameview_m_reels_symb", "bone": "root", "attachment": "gameview_m_reels_symb" }, + { "name": "gameview_m_reels_frame_d", "bone": "root", "attachment": "gameview_m_reels_frame_d" }, + { "name": "gameview_m_reels_frame_u", "bone": "root", "attachment": "gameview_m_reels_frame_u" }, + { "name": "gameview_m_reels_frame_l", "bone": "root", "attachment": "gameview_m_reels_frame_l" }, + { "name": "gameview_m_reels_frame_r", "bone": "root", "attachment": "gameview_m_reels_frame_r" }, + { "name": "gameview_b1_reels_frame_l_back", "bone": "root", "attachment": "gameview_b1_reels_frame_l_back" }, + { "name": "gameview_b1_reels_frame_r_back", "bone": "root", "attachment": "gameview_b1_reels_frame_r_back" }, + { "name": "gameview_b1_reels_frame_angle2_back", "bone": "root", "attachment": "gameview_b1_reels_frame_angle2_back" }, + { "name": "gameview_b1_reels_frame_angle_back", "bone": "root", "attachment": "gameview_b1_reels_frame_angle_back" }, + { "name": "gameview_b1_reels_frame_u_back", "bone": "root", "attachment": "gameview_b1_reels_frame_u_back" }, + { "name": "gameview_b1_reels_frame_d_back", "bone": "root", "attachment": "gameview_b1_reels_frame_d_back" }, + { "name": "gameview_b1_reels_symb", "bone": "root", "attachment": "gameview_b1_reels_symb" }, + { "name": "gameview_b1_reels_frame_l", "bone": "root", "attachment": "gameview_b1_reels_frame_l" }, + { "name": "gameview_b1_reels_frame_r", "bone": "root", "attachment": "gameview_b1_reels_frame_r" }, + { "name": "gameview_b1_reels_frame_angle2", "bone": "root", "attachment": "gameview_b1_reels_frame_angle2" }, + { "name": "gameview_b1_reels_frame_angle1", "bone": "root", "attachment": "gameview_b1_reels_frame_angle1" }, + { "name": "gameview_b1_reels_frame_u", "bone": "root", "attachment": "gameview_b1_reels_frame_u" }, + { "name": "gameview_b1_reels_frame_d", "bone": "root", "attachment": "gameview_b1_reels_frame_d" }, + { "name": "gameview_b2_reels_frame_u_back", "bone": "root", "attachment": "gameview_b2_reels_frame_u_back" }, + { "name": "gameview_b2_reels_frame_l_back", "bone": "root", "attachment": "gameview_b2_reels_frame_l_back" }, + { "name": "gameview_b2_reels_frame_r_back", "bone": "root", "attachment": "gameview_b2_reels_frame_r_back" }, + { "name": "gameview_b2_reels_symb", "bone": "root", "attachment": "gameview_b2_reels_symb" }, + { "name": "gameview_b2_reels_frame_d", "bone": "root", "attachment": "gameview_b2_reels_frame_d" }, + { "name": "gameview_b2_reels_frame_u", "bone": "root", "attachment": "gameview_b2_reels_frame_u" }, + { "name": "gameview_b2_reels_frame_l", "bone": "root", "attachment": "gameview_b2_reels_frame_l" }, + { "name": "gameview_b2_reels_frame_r", "bone": "root", "attachment": "gameview_b2_reels_frame_r" } +], +"skins": { + "default": { + "gameview_m_reels_frame_d_back": { + "gameview_m_reels_frame_d_back": { "x": -2, "y": -553.5, "width": 1536, "height": 19 } + }, + "gameview_m_reels_frame_u_back": { + "gameview_m_reels_frame_u_back": { "x": -2, "y": 566, "width": 1536, "height": 24 } + }, + "gameview_m_reels_frame_l_back": { + "gameview_m_reels_frame_l_back": { "x": 698, "y": -0.5, "width": 20, "height": 1277 } + }, + "gameview_m_reels_frame_r_back": { + "gameview_m_reels_frame_r_back": { "x": -706, "y": 2.5, "width": 20, "height": 1275 } + }, + "gameview_m_reels_symb": { + "gameview_m_reels_symb": { "x": -12, "y": 10, "width": 1376, "height": 1128 } + }, + "gameview_m_reels_frame_d": { + "gameview_m_reels_frame_d": { "x": -2.5, "y": -595, "width": 1537, "height": 90 } + }, + "gameview_m_reels_frame_u": { + "gameview_m_reels_frame_u": { "x": -2.5, "y": 609, "width": 1537, "height": 84 } + }, + "gameview_m_reels_frame_l": { + "gameview_m_reels_frame_l": { "x": 731.5, "y": 0, "width": 69, "height": 1280 } + }, + "gameview_m_reels_frame_r": { + "gameview_m_reels_frame_r": { "x": -735.5, "y": 2.5, "width": 71, "height": 1275 } + }, + "gameview_b1_reels_frame_l_back": { + "gameview_b1_reels_frame_l_back": { "x": 719.5, "y": -86, "width": 39, "height": 1044 } + }, + "gameview_b1_reels_frame_r_back": { + "gameview_b1_reels_frame_r_back": { "x": -734.5, "y": -71.5, "width": 37, "height": 1073 } + }, + "gameview_b1_reels_frame_angle2_back": { + "gameview_b1_reels_frame_angle2_back": { "x": 628.5, "y": 500.5, "width": 217, "height": 177 } + }, + "gameview_b1_reels_frame_angle_back": { + "gameview_b1_reels_frame_angle_back": { "x": -632.5, "y": 513, "width": 215, "height": 154 } + }, + "gameview_b1_reels_frame_u_back": { + "gameview_b1_reels_frame_u_back": { "x": -8.5, "y": 579.5, "width": 1099, "height": 29 } + }, + "gameview_b1_reels_frame_d_back": { + "gameview_b1_reels_frame_d_back": { "x": 9.5, "y": -591.5, "width": 1555, "height": 75 } + }, + "gameview_b1_reels_symb": { + "gameview_b1_reels_symb": { "x": 7, "y": 0, "width": 1414, "height": 1128 } + }, + "gameview_b1_reels_frame_l": { + "gameview_b1_reels_frame_l": { "x": 771, "y": -83.5, "width": 128, "height": 1049 } + }, + "gameview_b1_reels_frame_r": { + "gameview_b1_reels_frame_r": { "x": -786.5, "y": -56.5, "width": 123, "height": 1071 } + }, + "gameview_b1_reels_frame_angle2": { + "gameview_b1_reels_frame_angle2": { "x": 662, "y": 536, "width": 284, "height": 244 } + }, + "gameview_b1_reels_frame_angle1": { + "gameview_b1_reels_frame_angle1": { "x": -667, "y": 550.5, "width": 284, "height": 227 } + }, + "gameview_b1_reels_frame_u": { + "gameview_b1_reels_frame_u": { "x": -8.5, "y": 620, "width": 1099, "height": 92 } + }, + "gameview_b1_reels_frame_d": { + "gameview_b1_reels_frame_d": { "x": 9.5, "y": -592.5, "width": 1555, "height": 73 } + }, + "gameview_b2_reels_frame_u_back": { + "gameview_b2_reels_frame_u_back": { "x": -1.5, "y": 572.5, "width": 1325, "height": 23 } + }, + "gameview_b2_reels_frame_l_back": { + "gameview_b2_reels_frame_l_back": { "x": 697.5, "y": -53.5, "width": 67, "height": 1049 } + }, + "gameview_b2_reels_frame_r_back": { + "gameview_b2_reels_frame_r_back": { "x": -703, "y": -51, "width": 66, "height": 1054 } + }, + "gameview_b2_reels_symb": { + "gameview_b2_reels_symb": { "x": -12, "y": 10, "width": 1376, "height": 1128 } + }, + "gameview_b2_reels_frame_d": { + "gameview_b2_reels_frame_d": { "x": -4, "y": -594, "width": 1372, "height": 70 } + }, + "gameview_b2_reels_frame_u": { + "gameview_b2_reels_frame_u": { "x": -1.5, "y": 608, "width": 1325, "height": 70 } + }, + "gameview_b2_reels_frame_l": { + "gameview_b2_reels_frame_l": { "x": 798, "y": 34.5, "width": 322, "height": 1327 } + }, + "gameview_b2_reels_frame_r": { + "gameview_b2_reels_frame_r": { "x": -805, "y": 34.5, "width": 322, "height": 1327 } + } + } +}, +"animations": { "animation": {} } +} \ No newline at end of file diff --git a/art/gameviews/images/gameview_b1_base1.png b/art/gameviews/images/gameview_b1_base1.png new file mode 100644 index 0000000..ac46911 Binary files /dev/null and b/art/gameviews/images/gameview_b1_base1.png differ diff --git a/art/gameviews/images/gameview_b1_base2.png b/art/gameviews/images/gameview_b1_base2.png new file mode 100644 index 0000000..cb18fe2 Binary files /dev/null and b/art/gameviews/images/gameview_b1_base2.png differ diff --git a/art/gameviews/images/gameview_b1_base3.png b/art/gameviews/images/gameview_b1_base3.png new file mode 100644 index 0000000..ba001ca Binary files /dev/null and b/art/gameviews/images/gameview_b1_base3.png differ diff --git a/art/gameviews/images/gameview_b1_base4.png b/art/gameviews/images/gameview_b1_base4.png new file mode 100644 index 0000000..8343341 Binary files /dev/null and b/art/gameviews/images/gameview_b1_base4.png differ diff --git a/art/gameviews/images/gameview_b1_bushes_l1.png b/art/gameviews/images/gameview_b1_bushes_l1.png new file mode 100644 index 0000000..ca6ee12 Binary files /dev/null and b/art/gameviews/images/gameview_b1_bushes_l1.png differ diff --git a/art/gameviews/images/gameview_b1_bushes_l2.png b/art/gameviews/images/gameview_b1_bushes_l2.png new file mode 100644 index 0000000..be7fbb3 Binary files /dev/null and b/art/gameviews/images/gameview_b1_bushes_l2.png differ diff --git a/art/gameviews/images/gameview_b1_bushes_l3.png b/art/gameviews/images/gameview_b1_bushes_l3.png new file mode 100644 index 0000000..85d5a7c Binary files /dev/null and b/art/gameviews/images/gameview_b1_bushes_l3.png differ diff --git a/art/gameviews/images/gameview_b1_bushes_l4.png b/art/gameviews/images/gameview_b1_bushes_l4.png new file mode 100644 index 0000000..a258b6f Binary files /dev/null and b/art/gameviews/images/gameview_b1_bushes_l4.png differ diff --git a/art/gameviews/images/gameview_b1_bushes_l_s.png b/art/gameviews/images/gameview_b1_bushes_l_s.png new file mode 100644 index 0000000..79ac86b Binary files /dev/null and b/art/gameviews/images/gameview_b1_bushes_l_s.png differ diff --git a/art/gameviews/images/gameview_b1_bushes_r1.png b/art/gameviews/images/gameview_b1_bushes_r1.png new file mode 100644 index 0000000..f95657d Binary files /dev/null and b/art/gameviews/images/gameview_b1_bushes_r1.png differ diff --git a/art/gameviews/images/gameview_b1_bushes_r2.png b/art/gameviews/images/gameview_b1_bushes_r2.png new file mode 100644 index 0000000..51ebed0 Binary files /dev/null and b/art/gameviews/images/gameview_b1_bushes_r2.png differ diff --git a/art/gameviews/images/gameview_b1_bushes_r3.png b/art/gameviews/images/gameview_b1_bushes_r3.png new file mode 100644 index 0000000..0434090 Binary files /dev/null and b/art/gameviews/images/gameview_b1_bushes_r3.png differ diff --git a/art/gameviews/images/gameview_b1_bushes_r4.png b/art/gameviews/images/gameview_b1_bushes_r4.png new file mode 100644 index 0000000..4263e37 Binary files /dev/null and b/art/gameviews/images/gameview_b1_bushes_r4.png differ diff --git a/art/gameviews/images/gameview_b1_bushes_r5.png b/art/gameviews/images/gameview_b1_bushes_r5.png new file mode 100644 index 0000000..70c10ec Binary files /dev/null and b/art/gameviews/images/gameview_b1_bushes_r5.png differ diff --git a/art/gameviews/images/gameview_b1_bushes_r6.png b/art/gameviews/images/gameview_b1_bushes_r6.png new file mode 100644 index 0000000..a1e4a82 Binary files /dev/null and b/art/gameviews/images/gameview_b1_bushes_r6.png differ diff --git a/art/gameviews/images/gameview_b1_bushes_r_s.png b/art/gameviews/images/gameview_b1_bushes_r_s.png new file mode 100644 index 0000000..208d448 Binary files /dev/null and b/art/gameviews/images/gameview_b1_bushes_r_s.png differ diff --git a/art/gameviews/images/gameview_b1_char.png b/art/gameviews/images/gameview_b1_char.png new file mode 100644 index 0000000..beb463f Binary files /dev/null and b/art/gameviews/images/gameview_b1_char.png differ diff --git a/art/gameviews/images/gameview_b1_indicator_bg.png b/art/gameviews/images/gameview_b1_indicator_bg.png new file mode 100644 index 0000000..551f43f Binary files /dev/null and b/art/gameviews/images/gameview_b1_indicator_bg.png differ diff --git a/art/gameviews/images/gameview_b1_indicator_bg_s.png b/art/gameviews/images/gameview_b1_indicator_bg_s.png new file mode 100644 index 0000000..4f5cffc Binary files /dev/null and b/art/gameviews/images/gameview_b1_indicator_bg_s.png differ diff --git a/art/gameviews/images/gameview_b1_indicator_stone1_bg.png b/art/gameviews/images/gameview_b1_indicator_stone1_bg.png new file mode 100644 index 0000000..113ed67 Binary files /dev/null and b/art/gameviews/images/gameview_b1_indicator_stone1_bg.png differ diff --git a/art/gameviews/images/gameview_b1_indicator_stone1_gem_off.png b/art/gameviews/images/gameview_b1_indicator_stone1_gem_off.png new file mode 100644 index 0000000..3b43ab2 Binary files /dev/null and b/art/gameviews/images/gameview_b1_indicator_stone1_gem_off.png differ diff --git a/art/gameviews/images/gameview_b1_indicator_stone1_gem_on.png b/art/gameviews/images/gameview_b1_indicator_stone1_gem_on.png new file mode 100644 index 0000000..66b8043 Binary files /dev/null and b/art/gameviews/images/gameview_b1_indicator_stone1_gem_on.png differ diff --git a/art/gameviews/images/gameview_b1_indicator_stone1_gem_on_eff.png b/art/gameviews/images/gameview_b1_indicator_stone1_gem_on_eff.png new file mode 100644 index 0000000..fefeaf9 Binary files /dev/null and b/art/gameviews/images/gameview_b1_indicator_stone1_gem_on_eff.png differ diff --git a/art/gameviews/images/gameview_b1_indicator_stone2_bg.png b/art/gameviews/images/gameview_b1_indicator_stone2_bg.png new file mode 100644 index 0000000..4c84773 Binary files /dev/null and b/art/gameviews/images/gameview_b1_indicator_stone2_bg.png differ diff --git a/art/gameviews/images/gameview_b1_indicator_stone2_gem_off.png b/art/gameviews/images/gameview_b1_indicator_stone2_gem_off.png new file mode 100644 index 0000000..38e7da6 Binary files /dev/null and b/art/gameviews/images/gameview_b1_indicator_stone2_gem_off.png differ diff --git a/art/gameviews/images/gameview_b1_indicator_stone2_gem_on.png b/art/gameviews/images/gameview_b1_indicator_stone2_gem_on.png new file mode 100644 index 0000000..dfc9ac6 Binary files /dev/null and b/art/gameviews/images/gameview_b1_indicator_stone2_gem_on.png differ diff --git a/art/gameviews/images/gameview_b1_indicator_stone2_gem_on_eff.png b/art/gameviews/images/gameview_b1_indicator_stone2_gem_on_eff.png new file mode 100644 index 0000000..4a2e8ee Binary files /dev/null and b/art/gameviews/images/gameview_b1_indicator_stone2_gem_on_eff.png differ diff --git a/art/gameviews/images/gameview_b1_indicator_stone3_bg.png b/art/gameviews/images/gameview_b1_indicator_stone3_bg.png new file mode 100644 index 0000000..fcf1882 Binary files /dev/null and b/art/gameviews/images/gameview_b1_indicator_stone3_bg.png differ diff --git a/art/gameviews/images/gameview_b1_indicator_stone3_gem_off.png b/art/gameviews/images/gameview_b1_indicator_stone3_gem_off.png new file mode 100644 index 0000000..1d820dc Binary files /dev/null and b/art/gameviews/images/gameview_b1_indicator_stone3_gem_off.png differ diff --git a/art/gameviews/images/gameview_b1_indicator_stone3_gem_on.png b/art/gameviews/images/gameview_b1_indicator_stone3_gem_on.png new file mode 100644 index 0000000..a30ce70 Binary files /dev/null and b/art/gameviews/images/gameview_b1_indicator_stone3_gem_on.png differ diff --git a/art/gameviews/images/gameview_b1_indicator_stone3_gem_on_eff.png b/art/gameviews/images/gameview_b1_indicator_stone3_gem_on_eff.png new file mode 100644 index 0000000..7c81f53 Binary files /dev/null and b/art/gameviews/images/gameview_b1_indicator_stone3_gem_on_eff.png differ diff --git a/art/gameviews/images/gameview_b1_reels_bg.png b/art/gameviews/images/gameview_b1_reels_bg.png new file mode 100644 index 0000000..6d3573f Binary files /dev/null and b/art/gameviews/images/gameview_b1_reels_bg.png differ diff --git a/art/gameviews/images/gameview_b1_reels_bg_feather.png b/art/gameviews/images/gameview_b1_reels_bg_feather.png new file mode 100644 index 0000000..7530486 Binary files /dev/null and b/art/gameviews/images/gameview_b1_reels_bg_feather.png differ diff --git a/art/gameviews/images/gameview_b1_reels_frame_angle1.png b/art/gameviews/images/gameview_b1_reels_frame_angle1.png new file mode 100644 index 0000000..f092a04 Binary files /dev/null and b/art/gameviews/images/gameview_b1_reels_frame_angle1.png differ diff --git a/art/gameviews/images/gameview_b1_reels_frame_angle2.png b/art/gameviews/images/gameview_b1_reels_frame_angle2.png new file mode 100644 index 0000000..d6e9144 Binary files /dev/null and b/art/gameviews/images/gameview_b1_reels_frame_angle2.png differ diff --git a/art/gameviews/images/gameview_b1_reels_frame_angle2_back.png b/art/gameviews/images/gameview_b1_reels_frame_angle2_back.png new file mode 100644 index 0000000..1ddf416 Binary files /dev/null and b/art/gameviews/images/gameview_b1_reels_frame_angle2_back.png differ diff --git a/art/gameviews/images/gameview_b1_reels_frame_angle_back.png b/art/gameviews/images/gameview_b1_reels_frame_angle_back.png new file mode 100644 index 0000000..8cd22c1 Binary files /dev/null and b/art/gameviews/images/gameview_b1_reels_frame_angle_back.png differ diff --git a/art/gameviews/images/gameview_b1_reels_frame_d.png b/art/gameviews/images/gameview_b1_reels_frame_d.png new file mode 100644 index 0000000..19170cc Binary files /dev/null and b/art/gameviews/images/gameview_b1_reels_frame_d.png differ diff --git a/art/gameviews/images/gameview_b1_reels_frame_d_back.png b/art/gameviews/images/gameview_b1_reels_frame_d_back.png new file mode 100644 index 0000000..0a4756f Binary files /dev/null and b/art/gameviews/images/gameview_b1_reels_frame_d_back.png differ diff --git a/art/gameviews/images/gameview_b1_reels_frame_gld_eff_angle1.png b/art/gameviews/images/gameview_b1_reels_frame_gld_eff_angle1.png new file mode 100644 index 0000000..3406bb7 Binary files /dev/null and b/art/gameviews/images/gameview_b1_reels_frame_gld_eff_angle1.png differ diff --git a/art/gameviews/images/gameview_b1_reels_frame_gld_eff_angle2.png b/art/gameviews/images/gameview_b1_reels_frame_gld_eff_angle2.png new file mode 100644 index 0000000..8ecd3ec Binary files /dev/null and b/art/gameviews/images/gameview_b1_reels_frame_gld_eff_angle2.png differ diff --git a/art/gameviews/images/gameview_b1_reels_frame_gld_eff_l.png b/art/gameviews/images/gameview_b1_reels_frame_gld_eff_l.png new file mode 100644 index 0000000..d1e06b3 Binary files /dev/null and b/art/gameviews/images/gameview_b1_reels_frame_gld_eff_l.png differ diff --git a/art/gameviews/images/gameview_b1_reels_frame_gld_eff_r.png b/art/gameviews/images/gameview_b1_reels_frame_gld_eff_r.png new file mode 100644 index 0000000..aaf6f6b Binary files /dev/null and b/art/gameviews/images/gameview_b1_reels_frame_gld_eff_r.png differ diff --git a/art/gameviews/images/gameview_b1_reels_frame_gld_eff_u1.png b/art/gameviews/images/gameview_b1_reels_frame_gld_eff_u1.png new file mode 100644 index 0000000..77461c7 Binary files /dev/null and b/art/gameviews/images/gameview_b1_reels_frame_gld_eff_u1.png differ diff --git a/art/gameviews/images/gameview_b1_reels_frame_gld_eff_u2.png b/art/gameviews/images/gameview_b1_reels_frame_gld_eff_u2.png new file mode 100644 index 0000000..2b2f342 Binary files /dev/null and b/art/gameviews/images/gameview_b1_reels_frame_gld_eff_u2.png differ diff --git a/art/gameviews/images/gameview_b1_reels_frame_l.png b/art/gameviews/images/gameview_b1_reels_frame_l.png new file mode 100644 index 0000000..e59dcb4 Binary files /dev/null and b/art/gameviews/images/gameview_b1_reels_frame_l.png differ diff --git a/art/gameviews/images/gameview_b1_reels_frame_l_back.png b/art/gameviews/images/gameview_b1_reels_frame_l_back.png new file mode 100644 index 0000000..a96e54e Binary files /dev/null and b/art/gameviews/images/gameview_b1_reels_frame_l_back.png differ diff --git a/art/gameviews/images/gameview_b1_reels_frame_r.png b/art/gameviews/images/gameview_b1_reels_frame_r.png new file mode 100644 index 0000000..41b59b2 Binary files /dev/null and b/art/gameviews/images/gameview_b1_reels_frame_r.png differ diff --git a/art/gameviews/images/gameview_b1_reels_frame_r_back.png b/art/gameviews/images/gameview_b1_reels_frame_r_back.png new file mode 100644 index 0000000..4a5aa46 Binary files /dev/null and b/art/gameviews/images/gameview_b1_reels_frame_r_back.png differ diff --git a/art/gameviews/images/gameview_b1_reels_frame_u.png b/art/gameviews/images/gameview_b1_reels_frame_u.png new file mode 100644 index 0000000..2bb4902 Binary files /dev/null and b/art/gameviews/images/gameview_b1_reels_frame_u.png differ diff --git a/art/gameviews/images/gameview_b1_reels_frame_u_back.png b/art/gameviews/images/gameview_b1_reels_frame_u_back.png new file mode 100644 index 0000000..cac5f98 Binary files /dev/null and b/art/gameviews/images/gameview_b1_reels_frame_u_back.png differ diff --git a/art/gameviews/images/gameview_b1_reels_glow_l.png b/art/gameviews/images/gameview_b1_reels_glow_l.png new file mode 100644 index 0000000..0ceda70 Binary files /dev/null and b/art/gameviews/images/gameview_b1_reels_glow_l.png differ diff --git a/art/gameviews/images/gameview_b1_reels_glow_r.png b/art/gameviews/images/gameview_b1_reels_glow_r.png new file mode 100644 index 0000000..3a14852 Binary files /dev/null and b/art/gameviews/images/gameview_b1_reels_glow_r.png differ diff --git a/art/gameviews/images/gameview_b1_reels_s.png b/art/gameviews/images/gameview_b1_reels_s.png new file mode 100644 index 0000000..7ef8a89 Binary files /dev/null and b/art/gameviews/images/gameview_b1_reels_s.png differ diff --git a/art/gameviews/images/gameview_b1_reels_symb.png b/art/gameviews/images/gameview_b1_reels_symb.png new file mode 100644 index 0000000..891abbb Binary files /dev/null and b/art/gameviews/images/gameview_b1_reels_symb.png differ diff --git a/art/gameviews/images/gameview_b1_temple_front_vines.png b/art/gameviews/images/gameview_b1_temple_front_vines.png new file mode 100644 index 0000000..73ab2ad Binary files /dev/null and b/art/gameviews/images/gameview_b1_temple_front_vines.png differ diff --git a/art/gameviews/images/gameview_b2_base1.png b/art/gameviews/images/gameview_b2_base1.png new file mode 100644 index 0000000..df96a7c Binary files /dev/null and b/art/gameviews/images/gameview_b2_base1.png differ diff --git a/art/gameviews/images/gameview_b2_base2.png b/art/gameviews/images/gameview_b2_base2.png new file mode 100644 index 0000000..2b5761d Binary files /dev/null and b/art/gameviews/images/gameview_b2_base2.png differ diff --git a/art/gameviews/images/gameview_b2_base3.png b/art/gameviews/images/gameview_b2_base3.png new file mode 100644 index 0000000..dca84cb Binary files /dev/null and b/art/gameviews/images/gameview_b2_base3.png differ diff --git a/art/gameviews/images/gameview_b2_base4.png b/art/gameviews/images/gameview_b2_base4.png new file mode 100644 index 0000000..c012185 Binary files /dev/null and b/art/gameviews/images/gameview_b2_base4.png differ diff --git a/art/gameviews/images/gameview_b2_bushes_l31.png b/art/gameviews/images/gameview_b2_bushes_l31.png new file mode 100644 index 0000000..8364890 Binary files /dev/null and b/art/gameviews/images/gameview_b2_bushes_l31.png differ diff --git a/art/gameviews/images/gameview_b2_bushes_l32.png b/art/gameviews/images/gameview_b2_bushes_l32.png new file mode 100644 index 0000000..aefe9dc Binary files /dev/null and b/art/gameviews/images/gameview_b2_bushes_l32.png differ diff --git a/art/gameviews/images/gameview_b2_bushes_l33.png b/art/gameviews/images/gameview_b2_bushes_l33.png new file mode 100644 index 0000000..d1e5416 Binary files /dev/null and b/art/gameviews/images/gameview_b2_bushes_l33.png differ diff --git a/art/gameviews/images/gameview_b2_bushes_l34.png b/art/gameviews/images/gameview_b2_bushes_l34.png new file mode 100644 index 0000000..9d7dcd2 Binary files /dev/null and b/art/gameviews/images/gameview_b2_bushes_l34.png differ diff --git a/art/gameviews/images/gameview_b2_bushes_l35.png b/art/gameviews/images/gameview_b2_bushes_l35.png new file mode 100644 index 0000000..c088747 Binary files /dev/null and b/art/gameviews/images/gameview_b2_bushes_l35.png differ diff --git a/art/gameviews/images/gameview_b2_bushes_l36.png b/art/gameviews/images/gameview_b2_bushes_l36.png new file mode 100644 index 0000000..d616511 Binary files /dev/null and b/art/gameviews/images/gameview_b2_bushes_l36.png differ diff --git a/art/gameviews/images/gameview_b2_bushes_l37.png b/art/gameviews/images/gameview_b2_bushes_l37.png new file mode 100644 index 0000000..9d6d21a Binary files /dev/null and b/art/gameviews/images/gameview_b2_bushes_l37.png differ diff --git a/art/gameviews/images/gameview_b2_bushes_l_front.png b/art/gameviews/images/gameview_b2_bushes_l_front.png new file mode 100644 index 0000000..3243834 Binary files /dev/null and b/art/gameviews/images/gameview_b2_bushes_l_front.png differ diff --git a/art/gameviews/images/gameview_b2_bushes_r21.png b/art/gameviews/images/gameview_b2_bushes_r21.png new file mode 100644 index 0000000..26aad89 Binary files /dev/null and b/art/gameviews/images/gameview_b2_bushes_r21.png differ diff --git a/art/gameviews/images/gameview_b2_bushes_r22.png b/art/gameviews/images/gameview_b2_bushes_r22.png new file mode 100644 index 0000000..fe8ba75 Binary files /dev/null and b/art/gameviews/images/gameview_b2_bushes_r22.png differ diff --git a/art/gameviews/images/gameview_b2_bushes_r23.png b/art/gameviews/images/gameview_b2_bushes_r23.png new file mode 100644 index 0000000..6e5a443 Binary files /dev/null and b/art/gameviews/images/gameview_b2_bushes_r23.png differ diff --git a/art/gameviews/images/gameview_b2_bushes_r24.png b/art/gameviews/images/gameview_b2_bushes_r24.png new file mode 100644 index 0000000..1df5c36 Binary files /dev/null and b/art/gameviews/images/gameview_b2_bushes_r24.png differ diff --git a/art/gameviews/images/gameview_b2_bushes_small_l12.png b/art/gameviews/images/gameview_b2_bushes_small_l12.png new file mode 100644 index 0000000..c41caab Binary files /dev/null and b/art/gameviews/images/gameview_b2_bushes_small_l12.png differ diff --git a/art/gameviews/images/gameview_b2_bushes_small_l22.png b/art/gameviews/images/gameview_b2_bushes_small_l22.png new file mode 100644 index 0000000..11b0412 Binary files /dev/null and b/art/gameviews/images/gameview_b2_bushes_small_l22.png differ diff --git a/art/gameviews/images/gameview_b2_bushes_small_r1.png b/art/gameviews/images/gameview_b2_bushes_small_r1.png new file mode 100644 index 0000000..13f2f2a Binary files /dev/null and b/art/gameviews/images/gameview_b2_bushes_small_r1.png differ diff --git a/art/gameviews/images/gameview_b2_char_f.png b/art/gameviews/images/gameview_b2_char_f.png new file mode 100644 index 0000000..2ccabba Binary files /dev/null and b/art/gameviews/images/gameview_b2_char_f.png differ diff --git a/art/gameviews/images/gameview_b2_char_m.png b/art/gameviews/images/gameview_b2_char_m.png new file mode 100644 index 0000000..82be6fb Binary files /dev/null and b/art/gameviews/images/gameview_b2_char_m.png differ diff --git a/art/gameviews/images/gameview_b2_gld_eff.png b/art/gameviews/images/gameview_b2_gld_eff.png new file mode 100644 index 0000000..87cfee5 Binary files /dev/null and b/art/gameviews/images/gameview_b2_gld_eff.png differ diff --git a/art/gameviews/images/gameview_b2_gld_eff_l.png b/art/gameviews/images/gameview_b2_gld_eff_l.png new file mode 100644 index 0000000..3432d18 Binary files /dev/null and b/art/gameviews/images/gameview_b2_gld_eff_l.png differ diff --git a/art/gameviews/images/gameview_b2_gld_eff_r.png b/art/gameviews/images/gameview_b2_gld_eff_r.png new file mode 100644 index 0000000..dd1ed65 Binary files /dev/null and b/art/gameviews/images/gameview_b2_gld_eff_r.png differ diff --git a/art/gameviews/images/gameview_b2_palm1.png b/art/gameviews/images/gameview_b2_palm1.png new file mode 100644 index 0000000..0c76ad6 Binary files /dev/null and b/art/gameviews/images/gameview_b2_palm1.png differ diff --git a/art/gameviews/images/gameview_b2_palm2.png b/art/gameviews/images/gameview_b2_palm2.png new file mode 100644 index 0000000..a6cbb8c Binary files /dev/null and b/art/gameviews/images/gameview_b2_palm2.png differ diff --git a/art/gameviews/images/gameview_b2_palm3.png b/art/gameviews/images/gameview_b2_palm3.png new file mode 100644 index 0000000..63668d1 Binary files /dev/null and b/art/gameviews/images/gameview_b2_palm3.png differ diff --git a/art/gameviews/images/gameview_b2_palm4.png b/art/gameviews/images/gameview_b2_palm4.png new file mode 100644 index 0000000..a1e2190 Binary files /dev/null and b/art/gameviews/images/gameview_b2_palm4.png differ diff --git a/art/gameviews/images/gameview_b2_palm5.png b/art/gameviews/images/gameview_b2_palm5.png new file mode 100644 index 0000000..ced5eba Binary files /dev/null and b/art/gameviews/images/gameview_b2_palm5.png differ diff --git a/art/gameviews/images/gameview_b2_palm6.png b/art/gameviews/images/gameview_b2_palm6.png new file mode 100644 index 0000000..08ae790 Binary files /dev/null and b/art/gameviews/images/gameview_b2_palm6.png differ diff --git a/art/gameviews/images/gameview_b2_reel_glow_l.png b/art/gameviews/images/gameview_b2_reel_glow_l.png new file mode 100644 index 0000000..2eacbce Binary files /dev/null and b/art/gameviews/images/gameview_b2_reel_glow_l.png differ diff --git a/art/gameviews/images/gameview_b2_reel_glow_r.png b/art/gameviews/images/gameview_b2_reel_glow_r.png new file mode 100644 index 0000000..113fe27 Binary files /dev/null and b/art/gameviews/images/gameview_b2_reel_glow_r.png differ diff --git a/art/gameviews/images/gameview_b2_reels_bg.png b/art/gameviews/images/gameview_b2_reels_bg.png new file mode 100644 index 0000000..fb47bfc Binary files /dev/null and b/art/gameviews/images/gameview_b2_reels_bg.png differ diff --git a/art/gameviews/images/gameview_b2_reels_frame_d.png b/art/gameviews/images/gameview_b2_reels_frame_d.png new file mode 100644 index 0000000..7b7cc02 Binary files /dev/null and b/art/gameviews/images/gameview_b2_reels_frame_d.png differ diff --git a/art/gameviews/images/gameview_b2_reels_frame_gld_l.png b/art/gameviews/images/gameview_b2_reels_frame_gld_l.png new file mode 100644 index 0000000..72ec5bc Binary files /dev/null and b/art/gameviews/images/gameview_b2_reels_frame_gld_l.png differ diff --git a/art/gameviews/images/gameview_b2_reels_frame_gld_r.png b/art/gameviews/images/gameview_b2_reels_frame_gld_r.png new file mode 100644 index 0000000..3fa5e9f Binary files /dev/null and b/art/gameviews/images/gameview_b2_reels_frame_gld_r.png differ diff --git a/art/gameviews/images/gameview_b2_reels_frame_gld_u.png b/art/gameviews/images/gameview_b2_reels_frame_gld_u.png new file mode 100644 index 0000000..14a96b1 Binary files /dev/null and b/art/gameviews/images/gameview_b2_reels_frame_gld_u.png differ diff --git a/art/gameviews/images/gameview_b2_reels_frame_l.png b/art/gameviews/images/gameview_b2_reels_frame_l.png new file mode 100644 index 0000000..0b1dabb Binary files /dev/null and b/art/gameviews/images/gameview_b2_reels_frame_l.png differ diff --git a/art/gameviews/images/gameview_b2_reels_frame_l_back.png b/art/gameviews/images/gameview_b2_reels_frame_l_back.png new file mode 100644 index 0000000..0f8d212 Binary files /dev/null and b/art/gameviews/images/gameview_b2_reels_frame_l_back.png differ diff --git a/art/gameviews/images/gameview_b2_reels_frame_mask_eff_l.png b/art/gameviews/images/gameview_b2_reels_frame_mask_eff_l.png new file mode 100644 index 0000000..3eafdd2 Binary files /dev/null and b/art/gameviews/images/gameview_b2_reels_frame_mask_eff_l.png differ diff --git a/art/gameviews/images/gameview_b2_reels_frame_mask_eff_r.png b/art/gameviews/images/gameview_b2_reels_frame_mask_eff_r.png new file mode 100644 index 0000000..bd262f9 Binary files /dev/null and b/art/gameviews/images/gameview_b2_reels_frame_mask_eff_r.png differ diff --git a/art/gameviews/images/gameview_b2_reels_frame_r.png b/art/gameviews/images/gameview_b2_reels_frame_r.png new file mode 100644 index 0000000..f211439 Binary files /dev/null and b/art/gameviews/images/gameview_b2_reels_frame_r.png differ diff --git a/art/gameviews/images/gameview_b2_reels_frame_r_back.png b/art/gameviews/images/gameview_b2_reels_frame_r_back.png new file mode 100644 index 0000000..83f8a26 Binary files /dev/null and b/art/gameviews/images/gameview_b2_reels_frame_r_back.png differ diff --git a/art/gameviews/images/gameview_b2_reels_frame_u.png b/art/gameviews/images/gameview_b2_reels_frame_u.png new file mode 100644 index 0000000..c0134f5 Binary files /dev/null and b/art/gameviews/images/gameview_b2_reels_frame_u.png differ diff --git a/art/gameviews/images/gameview_b2_reels_frame_u_back.png b/art/gameviews/images/gameview_b2_reels_frame_u_back.png new file mode 100644 index 0000000..bae6ca6 Binary files /dev/null and b/art/gameviews/images/gameview_b2_reels_frame_u_back.png differ diff --git a/art/gameviews/images/gameview_b2_reels_s.png b/art/gameviews/images/gameview_b2_reels_s.png new file mode 100644 index 0000000..34b3da8 Binary files /dev/null and b/art/gameviews/images/gameview_b2_reels_s.png differ diff --git a/art/gameviews/images/gameview_b2_reels_symb.png b/art/gameviews/images/gameview_b2_reels_symb.png new file mode 100644 index 0000000..dd25423 Binary files /dev/null and b/art/gameviews/images/gameview_b2_reels_symb.png differ diff --git a/art/gameviews/images/gameview_bonus2_mist_sample.png b/art/gameviews/images/gameview_bonus2_mist_sample.png new file mode 100644 index 0000000..886a48c Binary files /dev/null and b/art/gameviews/images/gameview_bonus2_mist_sample.png differ diff --git a/art/gameviews/images/gameview_bonus2_mist_source.png b/art/gameviews/images/gameview_bonus2_mist_source.png new file mode 100644 index 0000000..bab2ff9 Binary files /dev/null and b/art/gameviews/images/gameview_bonus2_mist_source.png differ diff --git a/art/gameviews/images/gameview_m_base1.png b/art/gameviews/images/gameview_m_base1.png new file mode 100644 index 0000000..f6be6df Binary files /dev/null and b/art/gameviews/images/gameview_m_base1.png differ diff --git a/art/gameviews/images/gameview_m_base2.png b/art/gameviews/images/gameview_m_base2.png new file mode 100644 index 0000000..55bc9fc Binary files /dev/null and b/art/gameviews/images/gameview_m_base2.png differ diff --git a/art/gameviews/images/gameview_m_base3.png b/art/gameviews/images/gameview_m_base3.png new file mode 100644 index 0000000..40177cb Binary files /dev/null and b/art/gameviews/images/gameview_m_base3.png differ diff --git a/art/gameviews/images/gameview_m_base4.png b/art/gameviews/images/gameview_m_base4.png new file mode 100644 index 0000000..5ab08d8 Binary files /dev/null and b/art/gameviews/images/gameview_m_base4.png differ diff --git a/art/gameviews/images/gameview_m_bushes_l1.png b/art/gameviews/images/gameview_m_bushes_l1.png new file mode 100644 index 0000000..d4da303 Binary files /dev/null and b/art/gameviews/images/gameview_m_bushes_l1.png differ diff --git a/art/gameviews/images/gameview_m_bushes_l2.png b/art/gameviews/images/gameview_m_bushes_l2.png new file mode 100644 index 0000000..302a5aa Binary files /dev/null and b/art/gameviews/images/gameview_m_bushes_l2.png differ diff --git a/art/gameviews/images/gameview_m_bushes_l3.png b/art/gameviews/images/gameview_m_bushes_l3.png new file mode 100644 index 0000000..0fb838f Binary files /dev/null and b/art/gameviews/images/gameview_m_bushes_l3.png differ diff --git a/art/gameviews/images/gameview_m_bushes_l4.png b/art/gameviews/images/gameview_m_bushes_l4.png new file mode 100644 index 0000000..769678e Binary files /dev/null and b/art/gameviews/images/gameview_m_bushes_l4.png differ diff --git a/art/gameviews/images/gameview_m_bushes_l5.png b/art/gameviews/images/gameview_m_bushes_l5.png new file mode 100644 index 0000000..90d963c Binary files /dev/null and b/art/gameviews/images/gameview_m_bushes_l5.png differ diff --git a/art/gameviews/images/gameview_m_bushes_l6.png b/art/gameviews/images/gameview_m_bushes_l6.png new file mode 100644 index 0000000..cd8545b Binary files /dev/null and b/art/gameviews/images/gameview_m_bushes_l6.png differ diff --git a/art/gameviews/images/gameview_m_bushes_l_s.png b/art/gameviews/images/gameview_m_bushes_l_s.png new file mode 100644 index 0000000..9114227 Binary files /dev/null and b/art/gameviews/images/gameview_m_bushes_l_s.png differ diff --git a/art/gameviews/images/gameview_m_bushes_r1.png b/art/gameviews/images/gameview_m_bushes_r1.png new file mode 100644 index 0000000..4bb270f Binary files /dev/null and b/art/gameviews/images/gameview_m_bushes_r1.png differ diff --git a/art/gameviews/images/gameview_m_bushes_r10.png b/art/gameviews/images/gameview_m_bushes_r10.png new file mode 100644 index 0000000..dded921 Binary files /dev/null and b/art/gameviews/images/gameview_m_bushes_r10.png differ diff --git a/art/gameviews/images/gameview_m_bushes_r11.png b/art/gameviews/images/gameview_m_bushes_r11.png new file mode 100644 index 0000000..b23c848 Binary files /dev/null and b/art/gameviews/images/gameview_m_bushes_r11.png differ diff --git a/art/gameviews/images/gameview_m_bushes_r12.png b/art/gameviews/images/gameview_m_bushes_r12.png new file mode 100644 index 0000000..23919be Binary files /dev/null and b/art/gameviews/images/gameview_m_bushes_r12.png differ diff --git a/art/gameviews/images/gameview_m_bushes_r13.png b/art/gameviews/images/gameview_m_bushes_r13.png new file mode 100644 index 0000000..b9cc03f Binary files /dev/null and b/art/gameviews/images/gameview_m_bushes_r13.png differ diff --git a/art/gameviews/images/gameview_m_bushes_r14.png b/art/gameviews/images/gameview_m_bushes_r14.png new file mode 100644 index 0000000..34d8d32 Binary files /dev/null and b/art/gameviews/images/gameview_m_bushes_r14.png differ diff --git a/art/gameviews/images/gameview_m_bushes_r15.png b/art/gameviews/images/gameview_m_bushes_r15.png new file mode 100644 index 0000000..e9477ad Binary files /dev/null and b/art/gameviews/images/gameview_m_bushes_r15.png differ diff --git a/art/gameviews/images/gameview_m_bushes_r16.png b/art/gameviews/images/gameview_m_bushes_r16.png new file mode 100644 index 0000000..2a0c2e6 Binary files /dev/null and b/art/gameviews/images/gameview_m_bushes_r16.png differ diff --git a/art/gameviews/images/gameview_m_bushes_r17.png b/art/gameviews/images/gameview_m_bushes_r17.png new file mode 100644 index 0000000..04a945c Binary files /dev/null and b/art/gameviews/images/gameview_m_bushes_r17.png differ diff --git a/art/gameviews/images/gameview_m_bushes_r2.png b/art/gameviews/images/gameview_m_bushes_r2.png new file mode 100644 index 0000000..52e0678 Binary files /dev/null and b/art/gameviews/images/gameview_m_bushes_r2.png differ diff --git a/art/gameviews/images/gameview_m_bushes_r3.png b/art/gameviews/images/gameview_m_bushes_r3.png new file mode 100644 index 0000000..3084e88 Binary files /dev/null and b/art/gameviews/images/gameview_m_bushes_r3.png differ diff --git a/art/gameviews/images/gameview_m_bushes_r4.png b/art/gameviews/images/gameview_m_bushes_r4.png new file mode 100644 index 0000000..01db995 Binary files /dev/null and b/art/gameviews/images/gameview_m_bushes_r4.png differ diff --git a/art/gameviews/images/gameview_m_bushes_r5.png b/art/gameviews/images/gameview_m_bushes_r5.png new file mode 100644 index 0000000..2ce8d0c Binary files /dev/null and b/art/gameviews/images/gameview_m_bushes_r5.png differ diff --git a/art/gameviews/images/gameview_m_bushes_r6.png b/art/gameviews/images/gameview_m_bushes_r6.png new file mode 100644 index 0000000..2bfccbb Binary files /dev/null and b/art/gameviews/images/gameview_m_bushes_r6.png differ diff --git a/art/gameviews/images/gameview_m_bushes_r7.png b/art/gameviews/images/gameview_m_bushes_r7.png new file mode 100644 index 0000000..9566a4e Binary files /dev/null and b/art/gameviews/images/gameview_m_bushes_r7.png differ diff --git a/art/gameviews/images/gameview_m_bushes_r8.png b/art/gameviews/images/gameview_m_bushes_r8.png new file mode 100644 index 0000000..fe2f83d Binary files /dev/null and b/art/gameviews/images/gameview_m_bushes_r8.png differ diff --git a/art/gameviews/images/gameview_m_bushes_r9.png b/art/gameviews/images/gameview_m_bushes_r9.png new file mode 100644 index 0000000..5fa34fd Binary files /dev/null and b/art/gameviews/images/gameview_m_bushes_r9.png differ diff --git a/art/gameviews/images/gameview_m_bushes_r_s.png b/art/gameviews/images/gameview_m_bushes_r_s.png new file mode 100644 index 0000000..fba9c10 Binary files /dev/null and b/art/gameviews/images/gameview_m_bushes_r_s.png differ diff --git a/art/gameviews/images/gameview_m_char.png b/art/gameviews/images/gameview_m_char.png new file mode 100644 index 0000000..2db2433 Binary files /dev/null and b/art/gameviews/images/gameview_m_char.png differ diff --git a/art/gameviews/images/gameview_m_reel_glow_l.png b/art/gameviews/images/gameview_m_reel_glow_l.png new file mode 100644 index 0000000..5607699 Binary files /dev/null and b/art/gameviews/images/gameview_m_reel_glow_l.png differ diff --git a/art/gameviews/images/gameview_m_reel_glow_r.png b/art/gameviews/images/gameview_m_reel_glow_r.png new file mode 100644 index 0000000..9ce7cd0 Binary files /dev/null and b/art/gameviews/images/gameview_m_reel_glow_r.png differ diff --git a/art/gameviews/images/gameview_m_reel_glow_u.png b/art/gameviews/images/gameview_m_reel_glow_u.png new file mode 100644 index 0000000..ea8b15f Binary files /dev/null and b/art/gameviews/images/gameview_m_reel_glow_u.png differ diff --git a/art/gameviews/images/gameview_m_reel_portrait_s.png b/art/gameviews/images/gameview_m_reel_portrait_s.png new file mode 100644 index 0000000..bdee7a8 Binary files /dev/null and b/art/gameviews/images/gameview_m_reel_portrait_s.png differ diff --git a/art/gameviews/images/gameview_m_reel_s.png b/art/gameviews/images/gameview_m_reel_s.png new file mode 100644 index 0000000..6032d77 Binary files /dev/null and b/art/gameviews/images/gameview_m_reel_s.png differ diff --git a/art/gameviews/images/gameview_m_reels_frame_base.png b/art/gameviews/images/gameview_m_reels_frame_base.png new file mode 100644 index 0000000..0d6be6f Binary files /dev/null and b/art/gameviews/images/gameview_m_reels_frame_base.png differ diff --git a/art/gameviews/images/gameview_m_reels_frame_d.png b/art/gameviews/images/gameview_m_reels_frame_d.png new file mode 100644 index 0000000..d646c0b Binary files /dev/null and b/art/gameviews/images/gameview_m_reels_frame_d.png differ diff --git a/art/gameviews/images/gameview_m_reels_frame_d_back.png b/art/gameviews/images/gameview_m_reels_frame_d_back.png new file mode 100644 index 0000000..8ec227c Binary files /dev/null and b/art/gameviews/images/gameview_m_reels_frame_d_back.png differ diff --git a/art/gameviews/images/gameview_m_reels_frame_glow_d.png b/art/gameviews/images/gameview_m_reels_frame_glow_d.png new file mode 100644 index 0000000..649ea1a Binary files /dev/null and b/art/gameviews/images/gameview_m_reels_frame_glow_d.png differ diff --git a/art/gameviews/images/gameview_m_reels_frame_glow_l.png b/art/gameviews/images/gameview_m_reels_frame_glow_l.png new file mode 100644 index 0000000..a8d35ad Binary files /dev/null and b/art/gameviews/images/gameview_m_reels_frame_glow_l.png differ diff --git a/art/gameviews/images/gameview_m_reels_frame_glow_r.png b/art/gameviews/images/gameview_m_reels_frame_glow_r.png new file mode 100644 index 0000000..46168d4 Binary files /dev/null and b/art/gameviews/images/gameview_m_reels_frame_glow_r.png differ diff --git a/art/gameviews/images/gameview_m_reels_frame_glow_u.png b/art/gameviews/images/gameview_m_reels_frame_glow_u.png new file mode 100644 index 0000000..2c67b3a Binary files /dev/null and b/art/gameviews/images/gameview_m_reels_frame_glow_u.png differ diff --git a/art/gameviews/images/gameview_m_reels_frame_l.png b/art/gameviews/images/gameview_m_reels_frame_l.png new file mode 100644 index 0000000..0b3c023 Binary files /dev/null and b/art/gameviews/images/gameview_m_reels_frame_l.png differ diff --git a/art/gameviews/images/gameview_m_reels_frame_l_back.png b/art/gameviews/images/gameview_m_reels_frame_l_back.png new file mode 100644 index 0000000..e7da524 Binary files /dev/null and b/art/gameviews/images/gameview_m_reels_frame_l_back.png differ diff --git a/art/gameviews/images/gameview_m_reels_frame_r.png b/art/gameviews/images/gameview_m_reels_frame_r.png new file mode 100644 index 0000000..ecb316c Binary files /dev/null and b/art/gameviews/images/gameview_m_reels_frame_r.png differ diff --git a/art/gameviews/images/gameview_m_reels_frame_r_back.png b/art/gameviews/images/gameview_m_reels_frame_r_back.png new file mode 100644 index 0000000..8914ffa Binary files /dev/null and b/art/gameviews/images/gameview_m_reels_frame_r_back.png differ diff --git a/art/gameviews/images/gameview_m_reels_frame_u.png b/art/gameviews/images/gameview_m_reels_frame_u.png new file mode 100644 index 0000000..1d93ab1 Binary files /dev/null and b/art/gameviews/images/gameview_m_reels_frame_u.png differ diff --git a/art/gameviews/images/gameview_m_reels_frame_u_back.png b/art/gameviews/images/gameview_m_reels_frame_u_back.png new file mode 100644 index 0000000..dd65ef4 Binary files /dev/null and b/art/gameviews/images/gameview_m_reels_frame_u_back.png differ diff --git a/art/gameviews/images/gameview_m_reels_symb.png b/art/gameviews/images/gameview_m_reels_symb.png new file mode 100644 index 0000000..424bc21 Binary files /dev/null and b/art/gameviews/images/gameview_m_reels_symb.png differ diff --git a/art/gameviews/images/gameview_m_temple.png b/art/gameviews/images/gameview_m_temple.png new file mode 100644 index 0000000..932a388 Binary files /dev/null and b/art/gameviews/images/gameview_m_temple.png differ diff --git a/art/gameviews/images/gameview_m_temple_fire1.png b/art/gameviews/images/gameview_m_temple_fire1.png new file mode 100644 index 0000000..f33605d Binary files /dev/null and b/art/gameviews/images/gameview_m_temple_fire1.png differ diff --git a/art/gameviews/images/gameview_m_temple_fire2.png b/art/gameviews/images/gameview_m_temple_fire2.png new file mode 100644 index 0000000..299e2ea Binary files /dev/null and b/art/gameviews/images/gameview_m_temple_fire2.png differ diff --git a/art/gameviews/images/gameview_m_temple_fire3.png b/art/gameviews/images/gameview_m_temple_fire3.png new file mode 100644 index 0000000..cf2525a Binary files /dev/null and b/art/gameviews/images/gameview_m_temple_fire3.png differ diff --git a/art/gameviews/images/gameview_m_temple_fire4.png b/art/gameviews/images/gameview_m_temple_fire4.png new file mode 100644 index 0000000..548630c Binary files /dev/null and b/art/gameviews/images/gameview_m_temple_fire4.png differ diff --git a/art/gameviews/images/gameview_m_temple_fire_particles1.png b/art/gameviews/images/gameview_m_temple_fire_particles1.png new file mode 100644 index 0000000..ddf4c25 Binary files /dev/null and b/art/gameviews/images/gameview_m_temple_fire_particles1.png differ diff --git a/art/gameviews/images/gameview_m_temple_fire_particles2.png b/art/gameviews/images/gameview_m_temple_fire_particles2.png new file mode 100644 index 0000000..0a2b880 Binary files /dev/null and b/art/gameviews/images/gameview_m_temple_fire_particles2.png differ diff --git a/art/gameviews/images/gameview_m_temple_fire_particles3.png b/art/gameviews/images/gameview_m_temple_fire_particles3.png new file mode 100644 index 0000000..005d6a8 Binary files /dev/null and b/art/gameviews/images/gameview_m_temple_fire_particles3.png differ diff --git a/art/gameviews/images/gameview_m_temple_glow.png b/art/gameviews/images/gameview_m_temple_glow.png new file mode 100644 index 0000000..f560f15 Binary files /dev/null and b/art/gameviews/images/gameview_m_temple_glow.png differ diff --git a/art/gameviews/images/hangover_gameview_landskape.json b/art/gameviews/images/hangover_gameview_landskape.json new file mode 100644 index 0000000..4ddb379 --- /dev/null +++ b/art/gameviews/images/hangover_gameview_landskape.json @@ -0,0 +1,17 @@ +{ "skeleton": { "images": "C:/THE POSO/99.Amazon City of Gold/local - gameviews/images/" }, +"PhotoshopToSpine": { "scale": 1, "padding": 1, "trim": true }, +"bones": [ + { "name": "root" } +], +"slots": [ + { "name": "gameview_b1_reels_bg_feather", "bone": "root", "attachment": "gameview_b1_reels_bg_feather" } +], +"skins": { + "default": { + "gameview_b1_reels_bg_feather": { + "gameview_b1_reels_bg_feather": { "x": 0.5, "y": -539, "width": 1485, "height": 62 } + } + } +}, +"animations": { "animation": {} } +} \ No newline at end of file diff --git a/art/gameviews/images/hangover_gameview_portrait.png b/art/gameviews/images/hangover_gameview_portrait.png new file mode 100644 index 0000000..934f4d9 Binary files /dev/null and b/art/gameviews/images/hangover_gameview_portrait.png differ diff --git a/art/gameviews/images/indicator_effect/effect_00000.png b/art/gameviews/images/indicator_effect/effect_00000.png new file mode 100644 index 0000000..9d073f1 Binary files /dev/null and b/art/gameviews/images/indicator_effect/effect_00000.png differ diff --git a/art/gameviews/images/indicator_effect/effect_00001.png b/art/gameviews/images/indicator_effect/effect_00001.png new file mode 100644 index 0000000..68c89cf Binary files /dev/null and b/art/gameviews/images/indicator_effect/effect_00001.png differ diff --git a/art/gameviews/images/indicator_effect/effect_00002.png b/art/gameviews/images/indicator_effect/effect_00002.png new file mode 100644 index 0000000..cdd810c Binary files /dev/null and b/art/gameviews/images/indicator_effect/effect_00002.png differ diff --git a/art/gameviews/images/indicator_effect/effect_00003.png b/art/gameviews/images/indicator_effect/effect_00003.png new file mode 100644 index 0000000..e62dd17 Binary files /dev/null and b/art/gameviews/images/indicator_effect/effect_00003.png differ diff --git a/art/gameviews/images/indicator_effect/effect_00004.png b/art/gameviews/images/indicator_effect/effect_00004.png new file mode 100644 index 0000000..94ec24d Binary files /dev/null and b/art/gameviews/images/indicator_effect/effect_00004.png differ diff --git a/art/gameviews/images/indicator_effect/effect_00005.png b/art/gameviews/images/indicator_effect/effect_00005.png new file mode 100644 index 0000000..9e4836f Binary files /dev/null and b/art/gameviews/images/indicator_effect/effect_00005.png differ diff --git a/art/gameviews/images/indicator_effect/effect_00006.png b/art/gameviews/images/indicator_effect/effect_00006.png new file mode 100644 index 0000000..f089caf Binary files /dev/null and b/art/gameviews/images/indicator_effect/effect_00006.png differ diff --git a/art/gameviews/images/indicator_effect/effect_00007.png b/art/gameviews/images/indicator_effect/effect_00007.png new file mode 100644 index 0000000..289c3b8 Binary files /dev/null and b/art/gameviews/images/indicator_effect/effect_00007.png differ diff --git a/art/gameviews/images/indicator_effect/effect_00008.png b/art/gameviews/images/indicator_effect/effect_00008.png new file mode 100644 index 0000000..5df5035 Binary files /dev/null and b/art/gameviews/images/indicator_effect/effect_00008.png differ diff --git a/art/gameviews/images/indicator_effect/effect_00009.png b/art/gameviews/images/indicator_effect/effect_00009.png new file mode 100644 index 0000000..a26be7e Binary files /dev/null and b/art/gameviews/images/indicator_effect/effect_00009.png differ diff --git a/art/gameviews/images/indicator_effect/effect_00010.png b/art/gameviews/images/indicator_effect/effect_00010.png new file mode 100644 index 0000000..bab6144 Binary files /dev/null and b/art/gameviews/images/indicator_effect/effect_00010.png differ diff --git a/art/gameviews/images/indicator_effect/effect_00011.png b/art/gameviews/images/indicator_effect/effect_00011.png new file mode 100644 index 0000000..5f0dfb5 Binary files /dev/null and b/art/gameviews/images/indicator_effect/effect_00011.png differ diff --git a/art/gameviews/images/indicator_effect/effect_00012.png b/art/gameviews/images/indicator_effect/effect_00012.png new file mode 100644 index 0000000..d7de4a5 Binary files /dev/null and b/art/gameviews/images/indicator_effect/effect_00012.png differ diff --git a/art/gameviews/images/indicator_effect/effect_00013.png b/art/gameviews/images/indicator_effect/effect_00013.png new file mode 100644 index 0000000..d7de4a5 Binary files /dev/null and b/art/gameviews/images/indicator_effect/effect_00013.png differ diff --git a/art/gameviews/images/indicator_effect/effect_00014.png b/art/gameviews/images/indicator_effect/effect_00014.png new file mode 100644 index 0000000..bf99587 Binary files /dev/null and b/art/gameviews/images/indicator_effect/effect_00014.png differ diff --git a/art/gameviews/images/indicator_effect/effect_00015.png b/art/gameviews/images/indicator_effect/effect_00015.png new file mode 100644 index 0000000..4b2e7eb Binary files /dev/null and b/art/gameviews/images/indicator_effect/effect_00015.png differ diff --git a/art/gameviews/images/indicator_effect/effect_00016.png b/art/gameviews/images/indicator_effect/effect_00016.png new file mode 100644 index 0000000..973d21c Binary files /dev/null and b/art/gameviews/images/indicator_effect/effect_00016.png differ diff --git a/art/gameviews/images/indicator_effect/effect_00017.png b/art/gameviews/images/indicator_effect/effect_00017.png new file mode 100644 index 0000000..cd80890 Binary files /dev/null and b/art/gameviews/images/indicator_effect/effect_00017.png differ diff --git a/art/gameviews/images/indicator_effect/effect_00018.png b/art/gameviews/images/indicator_effect/effect_00018.png new file mode 100644 index 0000000..cd80890 Binary files /dev/null and b/art/gameviews/images/indicator_effect/effect_00018.png differ diff --git a/art/gameviews/images/indicator_effect/effect_00019.png b/art/gameviews/images/indicator_effect/effect_00019.png new file mode 100644 index 0000000..41c4520 Binary files /dev/null and b/art/gameviews/images/indicator_effect/effect_00019.png differ diff --git a/art/gameviews/images/logo_bg.png b/art/gameviews/images/logo_bg.png new file mode 100644 index 0000000..04a166d Binary files /dev/null and b/art/gameviews/images/logo_bg.png differ diff --git a/art/gameviews/images/logo_frame.png b/art/gameviews/images/logo_frame.png new file mode 100644 index 0000000..eaf70db Binary files /dev/null and b/art/gameviews/images/logo_frame.png differ diff --git a/art/gameviews/images/logo_jag.png b/art/gameviews/images/logo_jag.png new file mode 100644 index 0000000..549856a Binary files /dev/null and b/art/gameviews/images/logo_jag.png differ diff --git a/art/gameviews/images/logo_jag_crwn.png b/art/gameviews/images/logo_jag_crwn.png new file mode 100644 index 0000000..4addd69 Binary files /dev/null and b/art/gameviews/images/logo_jag_crwn.png differ diff --git a/art/gameviews/images/logo_jag_crwn_s.png b/art/gameviews/images/logo_jag_crwn_s.png new file mode 100644 index 0000000..bfe23eb Binary files /dev/null and b/art/gameviews/images/logo_jag_crwn_s.png differ diff --git a/art/gameviews/images/logo_jag_eyes.png b/art/gameviews/images/logo_jag_eyes.png new file mode 100644 index 0000000..c778622 Binary files /dev/null and b/art/gameviews/images/logo_jag_eyes.png differ diff --git a/art/gameviews/images/logo_jag_eyes_glow.png b/art/gameviews/images/logo_jag_eyes_glow.png new file mode 100644 index 0000000..68c9f53 Binary files /dev/null and b/art/gameviews/images/logo_jag_eyes_glow.png differ diff --git a/art/gameviews/images/logo_jag_s.png b/art/gameviews/images/logo_jag_s.png new file mode 100644 index 0000000..7c1f8be Binary files /dev/null and b/art/gameviews/images/logo_jag_s.png differ diff --git a/art/gameviews/images/logo_s.png b/art/gameviews/images/logo_s.png new file mode 100644 index 0000000..f23ed76 Binary files /dev/null and b/art/gameviews/images/logo_s.png differ diff --git a/art/gameviews/images/logo_txt_amazon.png b/art/gameviews/images/logo_txt_amazon.png new file mode 100644 index 0000000..40e98d2 Binary files /dev/null and b/art/gameviews/images/logo_txt_amazon.png differ diff --git a/art/gameviews/images/logo_txt_amazon_eff.png b/art/gameviews/images/logo_txt_amazon_eff.png new file mode 100644 index 0000000..f0b750d Binary files /dev/null and b/art/gameviews/images/logo_txt_amazon_eff.png differ diff --git a/art/gameviews/images/logo_txt_city.png b/art/gameviews/images/logo_txt_city.png new file mode 100644 index 0000000..e8eb8cf Binary files /dev/null and b/art/gameviews/images/logo_txt_city.png differ diff --git a/art/gameviews/images/logo_txt_gold.png b/art/gameviews/images/logo_txt_gold.png new file mode 100644 index 0000000..d61ac58 Binary files /dev/null and b/art/gameviews/images/logo_txt_gold.png differ diff --git a/art/gameviews/images/logo_txt_of.png b/art/gameviews/images/logo_txt_of.png new file mode 100644 index 0000000..b5e5879 Binary files /dev/null and b/art/gameviews/images/logo_txt_of.png differ diff --git a/art/gameviews/images/main_gameview_landskape.json b/art/gameviews/images/main_gameview_landskape.json new file mode 100644 index 0000000..612c0cc --- /dev/null +++ b/art/gameviews/images/main_gameview_landskape.json @@ -0,0 +1,293 @@ +{ "skeleton": { "images": "C:/THE POSO/99.Amazon City of Gold/gameview/background/images/" }, +"PhotoshopToSpine": { "scale": 1, "padding": 1, "trim": true }, +"bones": [ + { "name": "root" } +], +"slots": [ + { "name": "gameview_m_base4", "bone": "root", "attachment": "gameview_m_base4" }, + { "name": "gameview_m_base3", "bone": "root", "attachment": "gameview_m_base3" }, + { "name": "gameview_m_base2", "bone": "root", "attachment": "gameview_m_base2" }, + { "name": "gameview_m_base1", "bone": "root", "attachment": "gameview_m_base1" }, + { "name": "gameview_m_temple", "bone": "root", "attachment": "gameview_m_temple" }, + { "name": "gameview_m_temple_glow", "bone": "root", "attachment": "gameview_m_temple_glow" }, + { "name": "gameview_m_temple_fire4", "bone": "root", "attachment": "gameview_m_temple_fire4" }, + { "name": "gameview_m_temple_fire3", "bone": "root", "attachment": "gameview_m_temple_fire3" }, + { "name": "gameview_m_temple_fire_particles3", "bone": "root", "attachment": "gameview_m_temple_fire_particles3" }, + { "name": "gameview_m_temple_fire2", "bone": "root", "attachment": "gameview_m_temple_fire2" }, + { "name": "gameview_m_temple_fire_particles2", "bone": "root", "attachment": "gameview_m_temple_fire_particles2" }, + { "name": "gameview_m_temple_fire1", "bone": "root", "attachment": "gameview_m_temple_fire1" }, + { "name": "gameview_m_temple_fire_particles1", "bone": "root", "attachment": "gameview_m_temple_fire_particles1" }, + { "name": "gameview_m_bushes_r_s", "bone": "root", "attachment": "gameview_m_bushes_r_s" }, + { "name": "gameview_m_bushes_r9", "bone": "root", "attachment": "gameview_m_bushes_r9" }, + { "name": "gameview_m_bushes_r6", "bone": "root", "attachment": "gameview_m_bushes_r6" }, + { "name": "gameview_m_bushes_r5", "bone": "root", "attachment": "gameview_m_bushes_r5" }, + { "name": "gameview_m_bushes_r4", "bone": "root", "attachment": "gameview_m_bushes_r4" }, + { "name": "gameview_m_bushes_r3", "bone": "root", "attachment": "gameview_m_bushes_r3" }, + { "name": "gameview_m_bushes_r2", "bone": "root", "attachment": "gameview_m_bushes_r2" }, + { "name": "gameview_m_bushes_r1", "bone": "root", "attachment": "gameview_m_bushes_r1" }, + { "name": "gameview_m_bushes_r8", "bone": "root", "attachment": "gameview_m_bushes_r8" }, + { "name": "gameview_m_bushes_r7", "bone": "root", "attachment": "gameview_m_bushes_r7" }, + { "name": "gameview_m_bushes_r17", "bone": "root", "attachment": "gameview_m_bushes_r17" }, + { "name": "gameview_m_bushes_r16", "bone": "root", "attachment": "gameview_m_bushes_r16" }, + { "name": "gameview_m_bushes_r15", "bone": "root", "attachment": "gameview_m_bushes_r15" }, + { "name": "gameview_m_bushes_r14", "bone": "root", "attachment": "gameview_m_bushes_r14" }, + { "name": "gameview_m_bushes_r13", "bone": "root", "attachment": "gameview_m_bushes_r13" }, + { "name": "gameview_m_bushes_r12", "bone": "root", "attachment": "gameview_m_bushes_r12" }, + { "name": "gameview_m_bushes_r11", "bone": "root", "attachment": "gameview_m_bushes_r11" }, + { "name": "gameview_m_bushes_r10", "bone": "root", "attachment": "gameview_m_bushes_r10" }, + { "name": "gameview_m_bushes_l_s", "bone": "root", "attachment": "gameview_m_bushes_l_s" }, + { "name": "gameview_m_bushes_l2", "bone": "root", "attachment": "gameview_m_bushes_l2" }, + { "name": "gameview_m_bushes_l1", "bone": "root", "attachment": "gameview_m_bushes_l1" }, + { "name": "gameview_m_bushes_l6", "bone": "root", "attachment": "gameview_m_bushes_l6" }, + { "name": "gameview_m_bushes_l5", "bone": "root", "attachment": "gameview_m_bushes_l5" }, + { "name": "gameview_m_bushes_l4", "bone": "root", "attachment": "gameview_m_bushes_l4" }, + { "name": "gameview_m_bushes_l3", "bone": "root", "attachment": "gameview_m_bushes_l3" }, + { "name": "gameview_m_reel_portrait_s", "bone": "root", "attachment": "gameview_m_reel_portrait_s" }, + { "name": "gameview_m_reel_s", "bone": "root", "attachment": "gameview_m_reel_s" }, + { "name": "gameview_m_reel_glow_u", "bone": "root", "attachment": "gameview_m_reel_glow_u" }, + { "name": "gameview_m_reel_glow_l", "bone": "root", "attachment": "gameview_m_reel_glow_l" }, + { "name": "gameview_m_reel_glow_r", "bone": "root", "attachment": "gameview_m_reel_glow_r" }, + { "name": "gameview_m_reels_frame_base", "bone": "root", "attachment": "gameview_m_reels_frame_base" }, + { "name": "gameview_m_reels_symb", "bone": "root", "attachment": "gameview_m_reels_symb" }, + { "name": "gameview_m_reels_frame_d", "bone": "root", "attachment": "gameview_m_reels_frame_d" }, + { "name": "gameview_m_reels_frame_u", "bone": "root", "attachment": "gameview_m_reels_frame_u" }, + { "name": "gameview_m_reels_frame_l", "bone": "root", "attachment": "gameview_m_reels_frame_l" }, + { "name": "gameview_m_reels_frame_r", "bone": "root", "attachment": "gameview_m_reels_frame_r" }, + { "name": "gameview_m_reels_frame_glow_d", "bone": "root", "attachment": "gameview_m_reels_frame_glow_d" }, + { "name": "gameview_m_reels_frame_glow_u", "bone": "root", "attachment": "gameview_m_reels_frame_glow_u" }, + { "name": "gameview_m_reels_frame_glow_l", "bone": "root", "attachment": "gameview_m_reels_frame_glow_l" }, + { "name": "gameview_m_reels_frame_glow_r", "bone": "root", "attachment": "gameview_m_reels_frame_glow_r" }, + { "name": "gameview_m_char", "bone": "root", "attachment": "gameview_m_char" }, + { "name": "logo_s", "bone": "root", "attachment": "logo_s" }, + { "name": "logo_bg", "bone": "root", "attachment": "logo_bg" }, + { "name": "logo_frame", "bone": "root", "attachment": "logo_frame" }, + { "name": "logo_txt_amazon", "bone": "root", "attachment": "logo_txt_amazon" }, + { "name": "logo_txt_amazon_eff", "bone": "root", "attachment": "logo_txt_amazon_eff" }, + { "name": "logo_txt_city", "bone": "root", "attachment": "logo_txt_city" }, + { "name": "logo_txt_of", "bone": "root", "attachment": "logo_txt_of" }, + { "name": "logo_txt_gold", "bone": "root", "attachment": "logo_txt_gold" }, + { "name": "logo_jag_s", "bone": "root", "attachment": "logo_jag_s" }, + { "name": "logo_jag_crwn", "bone": "root", "attachment": "logo_jag_crwn" }, + { "name": "logo_jag_crwn_s", "bone": "root", "attachment": "logo_jag_crwn_s" }, + { "name": "logo_jag", "bone": "root", "attachment": "logo_jag" }, + { "name": "logo_jag_eyes", "bone": "root", "attachment": "logo_jag_eyes" }, + { "name": "logo_jag_eyes_glow", "bone": "root", "attachment": "logo_jag_eyes_glow" }, + { "name": "1000", "bone": "root", "attachment": "1000" }, + { "name": "UI_Desktop+ActiveBtn", "bone": "root" } +], +"skins": { + "default": { + "gameview_m_base4": { + "gameview_m_base4": { "x": 797, "y": -434, "width": 1658, "height": 934 } + }, + "gameview_m_base3": { + "gameview_m_base3": { "x": -797, "y": -434, "width": 1658, "height": 934 } + }, + "gameview_m_base2": { + "gameview_m_base2": { "x": 797, "y": 434, "width": 1658, "height": 934 } + }, + "gameview_m_base1": { + "gameview_m_base1": { "x": -797, "y": 434, "width": 1658, "height": 934 } + }, + "gameview_m_temple": { + "gameview_m_temple": { "x": 888, "y": 44.5, "width": 984, "height": 597 } + }, + "gameview_m_temple_glow": { + "gameview_m_temple_glow": { "x": 1055.5, "y": 151, "width": 1141, "height": 706 } + }, + "gameview_m_temple_fire4": { + "gameview_m_temple_fire4": { "x": 935.5, "y": 30, "width": 173, "height": 366 } + }, + "gameview_m_temple_fire3": { + "gameview_m_temple_fire3": { "x": 1022, "y": 553.5, "width": 84, "height": 695 } + }, + "gameview_m_temple_fire_particles3": { + "gameview_m_temple_fire_particles3": { "x": 1027, "y": 500.5, "width": 48, "height": 427 } + }, + "gameview_m_temple_fire2": { + "gameview_m_temple_fire2": { "x": 933.5, "y": 603.5, "width": 93, "height": 595 } + }, + "gameview_m_temple_fire_particles2": { + "gameview_m_temple_fire_particles2": { "x": 932.5, "y": 547.5, "width": 37, "height": 395 } + }, + "gameview_m_temple_fire1": { + "gameview_m_temple_fire1": { "x": 824.5, "y": 577.5, "width": 81, "height": 647 } + }, + "gameview_m_temple_fire_particles1": { + "gameview_m_temple_fire_particles1": { "x": 826.5, "y": 454.5, "width": 45, "height": 343 } + }, + "gameview_m_bushes_r_s": { + "gameview_m_bushes_r_s": { "x": -1325, "y": -666, "width": 602, "height": 470 } + }, + "gameview_m_bushes_r9": { + "gameview_m_bushes_r9": { "x": -1593.5, "y": -365.5, "width": 511, "height": 369 } + }, + "gameview_m_bushes_r6": { + "gameview_m_bushes_r6": { "x": -1293, "y": -187, "width": 360, "height": 264 } + }, + "gameview_m_bushes_r5": { + "gameview_m_bushes_r5": { "x": -1433.5, "y": -59, "width": 177, "height": 320 } + }, + "gameview_m_bushes_r4": { + "gameview_m_bushes_r4": { "x": -1317.5, "y": -491.5, "width": 319, "height": 127 } + }, + "gameview_m_bushes_r3": { + "gameview_m_bushes_r3": { "x": -1239.5, "y": -441, "width": 431, "height": 202 } + }, + "gameview_m_bushes_r2": { + "gameview_m_bushes_r2": { "x": -1250.5, "y": -342, "width": 383, "height": 184 } + }, + "gameview_m_bushes_r1": { + "gameview_m_bushes_r1": { "x": -1510.5, "y": -444, "width": 163, "height": 218 } + }, + "gameview_m_bushes_r8": { + "gameview_m_bushes_r8": { "x": -1507, "y": -235.5, "width": 238, "height": 265 } + }, + "gameview_m_bushes_r7": { + "gameview_m_bushes_r7": { "x": -1583.5, "y": -80, "width": 155, "height": 204 } + }, + "gameview_m_bushes_r17": { + "gameview_m_bushes_r17": { "x": -1538.5, "y": -588, "width": 175, "height": 544 } + }, + "gameview_m_bushes_r16": { + "gameview_m_bushes_r16": { "x": -1391, "y": -805, "width": 320, "height": 192 } + }, + "gameview_m_bushes_r15": { + "gameview_m_bushes_r15": { "x": -1448.5, "y": -504, "width": 257, "height": 380 } + }, + "gameview_m_bushes_r14": { + "gameview_m_bushes_r14": { "x": -1370, "y": -524.5, "width": 296, "height": 323 } + }, + "gameview_m_bushes_r13": { + "gameview_m_bushes_r13": { "x": -1272, "y": -630.5, "width": 446, "height": 119 } + }, + "gameview_m_bushes_r12": { + "gameview_m_bushes_r12": { "x": -1307.5, "y": -581, "width": 411, "height": 252 } + }, + "gameview_m_bushes_r11": { + "gameview_m_bushes_r11": { "x": -1279, "y": -756, "width": 472, "height": 234 } + }, + "gameview_m_bushes_r10": { + "gameview_m_bushes_r10": { "x": -1464, "y": -584, "width": 198, "height": 250 } + }, + "gameview_m_bushes_l_s": { + "gameview_m_bushes_l_s": { "x": 1324, "y": -726.5, "width": 604, "height": 349 } + }, + "gameview_m_bushes_l2": { + "gameview_m_bushes_l2": { "x": 1280.5, "y": -532, "width": 667, "height": 374 } + }, + "gameview_m_bushes_l1": { + "gameview_m_bushes_l1": { "x": 1448.5, "y": -148.5, "width": 355, "height": 375 } + }, + "gameview_m_bushes_l6": { + "gameview_m_bushes_l6": { "x": 1428, "y": -710, "width": 396, "height": 382 } + }, + "gameview_m_bushes_l5": { + "gameview_m_bushes_l5": { "x": 1419, "y": -489, "width": 414, "height": 540 } + }, + "gameview_m_bushes_l4": { + "gameview_m_bushes_l4": { "x": 1495.5, "y": -551.5, "width": 261, "height": 243 } + }, + "gameview_m_bushes_l3": { + "gameview_m_bushes_l3": { "x": 1401, "y": -441, "width": 362, "height": 316 } + }, + "gameview_m_reel_portrait_s": { + "gameview_m_reel_portrait_s": { "x": -947, "y": -204, "width": 1082, "height": 1008 } + }, + "gameview_m_reel_s": { + "gameview_m_reel_s": { "x": -1, "y": -592.5, "width": 1706, "height": 173 } + }, + "gameview_m_reel_glow_u": { + "gameview_m_reel_glow_u": { "x": -54, "y": 621, "width": 1756, "height": 200 } + }, + "gameview_m_reel_glow_l": { + "gameview_m_reel_glow_l": { "x": 836.5, "y": -22.5, "width": 277, "height": 1305 } + }, + "gameview_m_reel_glow_r": { + "gameview_m_reel_glow_r": { "x": -836.5, "y": 27, "width": 263, "height": 1292 } + }, + "gameview_m_reels_frame_base": { + "gameview_m_reels_frame_base": { "x": -22.5, "y": 133, "width": 1677, "height": 1442 } + }, + "gameview_m_reels_symb": { + "gameview_m_reels_symb": { "x": -12, "y": 10, "width": 1376, "height": 1128 } + }, + "gameview_m_reels_frame_d": { + "gameview_m_reels_frame_d": { "x": -2.5, "y": -592, "width": 1537, "height": 96 } + }, + "gameview_m_reels_frame_u": { + "gameview_m_reels_frame_u": { "x": -2.5, "y": 602.5, "width": 1537, "height": 97 } + }, + "gameview_m_reels_frame_l": { + "gameview_m_reels_frame_l": { "x": 727, "y": 0, "width": 78, "height": 1280 } + }, + "gameview_m_reels_frame_r": { + "gameview_m_reels_frame_r": { "x": -733.5, "y": 2.5, "width": 75, "height": 1275 } + }, + "gameview_m_reels_frame_glow_d": { + "gameview_m_reels_frame_glow_d": { "x": -3, "y": -586.5, "width": 1430, "height": 83 } + }, + "gameview_m_reels_frame_glow_u": { + "gameview_m_reels_frame_glow_u": { "x": 0, "y": 602, "width": 1340, "height": 74 } + }, + "gameview_m_reels_frame_glow_l": { + "gameview_m_reels_frame_glow_l": { "x": 730, "y": 6, "width": 88, "height": 1268 } + }, + "gameview_m_reels_frame_glow_r": { + "gameview_m_reels_frame_glow_r": { "x": -735, "y": 6, "width": 86, "height": 1268 } + }, + "gameview_m_char": { + "gameview_m_char": { "x": -1023.5, "y": -156.5, "width": 467, "height": 1039 } + }, + "logo_s": { + "logo_s": { "x": -4, "y": 584.5, "width": 460, "height": 139 } + }, + "logo_bg": { + "logo_bg": { "x": -3, "y": 598.5, "width": 380, "height": 113 } + }, + "logo_frame": { + "logo_frame": { "x": -3.5, "y": 605, "width": 453, "height": 166 } + }, + "logo_txt_amazon": { + "logo_txt_amazon": { "x": -3.5, "y": 622.5, "width": 357, "height": 55 } + }, + "logo_txt_amazon_eff": { + "logo_txt_amazon_eff": { "x": -2.5, "y": 624, "width": 349, "height": 48 } + }, + "logo_txt_city": { + "logo_txt_city": { "x": -112.5, "y": 575, "width": 131, "height": 50 } + }, + "logo_txt_of": { + "logo_txt_of": { "x": -12.5, "y": 576, "width": 55, "height": 36 } + }, + "logo_txt_gold": { + "logo_txt_gold": { "x": 97, "y": 575, "width": 156, "height": 50 } + }, + "logo_jag_s": { + "logo_jag_s": { "x": -3, "y": 658, "width": 164, "height": 36 } + }, + "logo_jag_crwn": { + "logo_jag_crwn": { "x": -3.5, "y": 704.5, "width": 163, "height": 79 } + }, + "logo_jag_crwn_s": { + "logo_jag_crwn_s": { "x": -3, "y": 694, "width": 132, "height": 70 } + }, + "logo_jag": { + "logo_jag": { "x": -3, "y": 684, "width": 122, "height": 82 } + }, + "logo_jag_eyes": { + "logo_jag_eyes": { "x": -3.5, "y": 686, "width": 81, "height": 16 } + }, + "logo_jag_eyes_glow": { + "logo_jag_eyes_glow": { "x": -3, "y": 686.5, "width": 102, "height": 37 } + }, + "1000": { + "1000": { "x": -4, "y": 602, "width": 152, "height": 52 } + }, + "UI_Desktop+ActiveBtn": { + "UI_Desktop+ActiveBtn": { "x": 0, "y": 0, "width": 2252, "height": 1438 } + } + } +}, +"animations": { "animation": {} } +} \ No newline at end of file diff --git a/art/gameviews/images/main_gameview_portrait_logo.png b/art/gameviews/images/main_gameview_portrait_logo.png new file mode 100644 index 0000000..377cd9a Binary files /dev/null and b/art/gameviews/images/main_gameview_portrait_logo.png differ diff --git a/art/gameviews/images/placeholder.png b/art/gameviews/images/placeholder.png new file mode 100644 index 0000000..f48fbfa Binary files /dev/null and b/art/gameviews/images/placeholder.png differ diff --git a/art/gameviews/images/trans_bg_down.png b/art/gameviews/images/trans_bg_down.png new file mode 100644 index 0000000..a4c28a6 Binary files /dev/null and b/art/gameviews/images/trans_bg_down.png differ diff --git a/art/intro/images/SKIP INTRO.png b/art/intro/images/SKIP INTRO.png new file mode 100644 index 0000000..6a90a07 Binary files /dev/null and b/art/intro/images/SKIP INTRO.png differ diff --git a/art/intro/images/black_layer.png b/art/intro/images/black_layer.png new file mode 100644 index 0000000..6e856b6 Binary files /dev/null and b/art/intro/images/black_layer.png differ diff --git a/art/intro/images/gameview_b2_char_f_beads.png b/art/intro/images/gameview_b2_char_f_beads.png new file mode 100644 index 0000000..86a0d24 Binary files /dev/null and b/art/intro/images/gameview_b2_char_f_beads.png differ diff --git a/art/intro/images/gameview_b2_char_f_beads_s.png b/art/intro/images/gameview_b2_char_f_beads_s.png new file mode 100644 index 0000000..bfcdc2b Binary files /dev/null and b/art/intro/images/gameview_b2_char_f_beads_s.png differ diff --git a/art/intro/images/gameview_b2_char_f_belt1.png b/art/intro/images/gameview_b2_char_f_belt1.png new file mode 100644 index 0000000..35f0755 Binary files /dev/null and b/art/intro/images/gameview_b2_char_f_belt1.png differ diff --git a/art/intro/images/gameview_b2_char_f_belt2.png b/art/intro/images/gameview_b2_char_f_belt2.png new file mode 100644 index 0000000..9867c37 Binary files /dev/null and b/art/intro/images/gameview_b2_char_f_belt2.png differ diff --git a/art/intro/images/gameview_b2_char_f_belt2_s.png b/art/intro/images/gameview_b2_char_f_belt2_s.png new file mode 100644 index 0000000..0aa18e8 Binary files /dev/null and b/art/intro/images/gameview_b2_char_f_belt2_s.png differ diff --git a/art/intro/images/gameview_b2_char_f_earring.png b/art/intro/images/gameview_b2_char_f_earring.png new file mode 100644 index 0000000..50ee2f9 Binary files /dev/null and b/art/intro/images/gameview_b2_char_f_earring.png differ diff --git a/art/intro/images/gameview_b2_char_f_earring_l.png b/art/intro/images/gameview_b2_char_f_earring_l.png new file mode 100644 index 0000000..2733c52 Binary files /dev/null and b/art/intro/images/gameview_b2_char_f_earring_l.png differ diff --git a/art/intro/images/gameview_b2_char_f_eye_l.png b/art/intro/images/gameview_b2_char_f_eye_l.png new file mode 100644 index 0000000..66f7976 Binary files /dev/null and b/art/intro/images/gameview_b2_char_f_eye_l.png differ diff --git a/art/intro/images/gameview_b2_char_f_eye_r.png b/art/intro/images/gameview_b2_char_f_eye_r.png new file mode 100644 index 0000000..32f76fc Binary files /dev/null and b/art/intro/images/gameview_b2_char_f_eye_r.png differ diff --git a/art/intro/images/gameview_b2_char_f_eyebrow_l.png b/art/intro/images/gameview_b2_char_f_eyebrow_l.png new file mode 100644 index 0000000..f718b3e Binary files /dev/null and b/art/intro/images/gameview_b2_char_f_eyebrow_l.png differ diff --git a/art/intro/images/gameview_b2_char_f_eyebrow_r.png b/art/intro/images/gameview_b2_char_f_eyebrow_r.png new file mode 100644 index 0000000..8c48f83 Binary files /dev/null and b/art/intro/images/gameview_b2_char_f_eyebrow_r.png differ diff --git a/art/intro/images/gameview_b2_char_f_face.png b/art/intro/images/gameview_b2_char_f_face.png new file mode 100644 index 0000000..7939086 Binary files /dev/null and b/art/intro/images/gameview_b2_char_f_face.png differ diff --git a/art/intro/images/gameview_b2_char_f_feathers.png b/art/intro/images/gameview_b2_char_f_feathers.png new file mode 100644 index 0000000..32d8499 Binary files /dev/null and b/art/intro/images/gameview_b2_char_f_feathers.png differ diff --git a/art/intro/images/gameview_b2_char_f_fell_l.png b/art/intro/images/gameview_b2_char_f_fell_l.png new file mode 100644 index 0000000..e933cef Binary files /dev/null and b/art/intro/images/gameview_b2_char_f_fell_l.png differ diff --git a/art/intro/images/gameview_b2_char_f_fell_l_s.png b/art/intro/images/gameview_b2_char_f_fell_l_s.png new file mode 100644 index 0000000..9632899 Binary files /dev/null and b/art/intro/images/gameview_b2_char_f_fell_l_s.png differ diff --git a/art/intro/images/gameview_b2_char_f_fell_r.png b/art/intro/images/gameview_b2_char_f_fell_r.png new file mode 100644 index 0000000..271a6df Binary files /dev/null and b/art/intro/images/gameview_b2_char_f_fell_r.png differ diff --git a/art/intro/images/gameview_b2_char_f_fell_r_s.png b/art/intro/images/gameview_b2_char_f_fell_r_s.png new file mode 100644 index 0000000..ef51728 Binary files /dev/null and b/art/intro/images/gameview_b2_char_f_fell_r_s.png differ diff --git a/art/intro/images/gameview_b2_char_f_finger_l.png b/art/intro/images/gameview_b2_char_f_finger_l.png new file mode 100644 index 0000000..21eb952 Binary files /dev/null and b/art/intro/images/gameview_b2_char_f_finger_l.png differ diff --git a/art/intro/images/gameview_b2_char_f_finger_r.png b/art/intro/images/gameview_b2_char_f_finger_r.png new file mode 100644 index 0000000..a532e4e Binary files /dev/null and b/art/intro/images/gameview_b2_char_f_finger_r.png differ diff --git a/art/intro/images/gameview_b2_char_f_fringe_l.png b/art/intro/images/gameview_b2_char_f_fringe_l.png new file mode 100644 index 0000000..507e1d2 Binary files /dev/null and b/art/intro/images/gameview_b2_char_f_fringe_l.png differ diff --git a/art/intro/images/gameview_b2_char_f_fringe_r.png b/art/intro/images/gameview_b2_char_f_fringe_r.png new file mode 100644 index 0000000..23fe716 Binary files /dev/null and b/art/intro/images/gameview_b2_char_f_fringe_r.png differ diff --git a/art/intro/images/gameview_b2_char_f_hair_back.png b/art/intro/images/gameview_b2_char_f_hair_back.png new file mode 100644 index 0000000..0e199d5 Binary files /dev/null and b/art/intro/images/gameview_b2_char_f_hair_back.png differ diff --git a/art/intro/images/gameview_b2_char_f_hand1_l.png b/art/intro/images/gameview_b2_char_f_hand1_l.png new file mode 100644 index 0000000..d4d83b2 Binary files /dev/null and b/art/intro/images/gameview_b2_char_f_hand1_l.png differ diff --git a/art/intro/images/gameview_b2_char_f_hand1_r.png b/art/intro/images/gameview_b2_char_f_hand1_r.png new file mode 100644 index 0000000..b50db74 Binary files /dev/null and b/art/intro/images/gameview_b2_char_f_hand1_r.png differ diff --git a/art/intro/images/gameview_b2_char_f_hand2_r.png b/art/intro/images/gameview_b2_char_f_hand2_r.png new file mode 100644 index 0000000..d7e39c1 Binary files /dev/null and b/art/intro/images/gameview_b2_char_f_hand2_r.png differ diff --git a/art/intro/images/gameview_b2_char_f_hand2_rl.png b/art/intro/images/gameview_b2_char_f_hand2_rl.png new file mode 100644 index 0000000..3eb0285 Binary files /dev/null and b/art/intro/images/gameview_b2_char_f_hand2_rl.png differ diff --git a/art/intro/images/gameview_b2_char_f_hide.png b/art/intro/images/gameview_b2_char_f_hide.png new file mode 100644 index 0000000..a243997 Binary files /dev/null and b/art/intro/images/gameview_b2_char_f_hide.png differ diff --git a/art/intro/images/gameview_b2_char_f_hoop.png b/art/intro/images/gameview_b2_char_f_hoop.png new file mode 100644 index 0000000..ffbc5fa Binary files /dev/null and b/art/intro/images/gameview_b2_char_f_hoop.png differ diff --git a/art/intro/images/gameview_b2_char_f_leg1_l.png b/art/intro/images/gameview_b2_char_f_leg1_l.png new file mode 100644 index 0000000..598d886 Binary files /dev/null and b/art/intro/images/gameview_b2_char_f_leg1_l.png differ diff --git a/art/intro/images/gameview_b2_char_f_leg1_r.png b/art/intro/images/gameview_b2_char_f_leg1_r.png new file mode 100644 index 0000000..25ae7ad Binary files /dev/null and b/art/intro/images/gameview_b2_char_f_leg1_r.png differ diff --git a/art/intro/images/gameview_b2_char_f_leg2_l.png b/art/intro/images/gameview_b2_char_f_leg2_l.png new file mode 100644 index 0000000..6a8a691 Binary files /dev/null and b/art/intro/images/gameview_b2_char_f_leg2_l.png differ diff --git a/art/intro/images/gameview_b2_char_f_leg2_r.png b/art/intro/images/gameview_b2_char_f_leg2_r.png new file mode 100644 index 0000000..a7afdd8 Binary files /dev/null and b/art/intro/images/gameview_b2_char_f_leg2_r.png differ diff --git a/art/intro/images/gameview_b2_char_f_neck.png b/art/intro/images/gameview_b2_char_f_neck.png new file mode 100644 index 0000000..76bf9a2 Binary files /dev/null and b/art/intro/images/gameview_b2_char_f_neck.png differ diff --git a/art/intro/images/gameview_b2_char_f_neckline.png b/art/intro/images/gameview_b2_char_f_neckline.png new file mode 100644 index 0000000..dac9cb4 Binary files /dev/null and b/art/intro/images/gameview_b2_char_f_neckline.png differ diff --git a/art/intro/images/gameview_b2_char_f_palm_l.png b/art/intro/images/gameview_b2_char_f_palm_l.png new file mode 100644 index 0000000..0874c69 Binary files /dev/null and b/art/intro/images/gameview_b2_char_f_palm_l.png differ diff --git a/art/intro/images/gameview_b2_char_f_palm_r.png b/art/intro/images/gameview_b2_char_f_palm_r.png new file mode 100644 index 0000000..e626f59 Binary files /dev/null and b/art/intro/images/gameview_b2_char_f_palm_r.png differ diff --git a/art/intro/images/gameview_b2_char_f_s.png b/art/intro/images/gameview_b2_char_f_s.png new file mode 100644 index 0000000..5bdab39 Binary files /dev/null and b/art/intro/images/gameview_b2_char_f_s.png differ diff --git a/art/intro/images/gameview_b2_char_f_skirt.png b/art/intro/images/gameview_b2_char_f_skirt.png new file mode 100644 index 0000000..59054de Binary files /dev/null and b/art/intro/images/gameview_b2_char_f_skirt.png differ diff --git a/art/intro/images/gameview_b2_char_f_skirt_s.png b/art/intro/images/gameview_b2_char_f_skirt_s.png new file mode 100644 index 0000000..3be3dd3 Binary files /dev/null and b/art/intro/images/gameview_b2_char_f_skirt_s.png differ diff --git a/art/intro/images/gameview_b2_char_f_tassel.png b/art/intro/images/gameview_b2_char_f_tassel.png new file mode 100644 index 0000000..f6d7300 Binary files /dev/null and b/art/intro/images/gameview_b2_char_f_tassel.png differ diff --git a/art/intro/images/gameview_b2_char_f_torso.png b/art/intro/images/gameview_b2_char_f_torso.png new file mode 100644 index 0000000..2625f8d Binary files /dev/null and b/art/intro/images/gameview_b2_char_f_torso.png differ diff --git a/art/intro/images/gameview_b2_char_m_belt.png b/art/intro/images/gameview_b2_char_m_belt.png new file mode 100644 index 0000000..1ab0c60 Binary files /dev/null and b/art/intro/images/gameview_b2_char_m_belt.png differ diff --git a/art/intro/images/gameview_b2_char_m_eye_l.png b/art/intro/images/gameview_b2_char_m_eye_l.png new file mode 100644 index 0000000..ce6dd4a Binary files /dev/null and b/art/intro/images/gameview_b2_char_m_eye_l.png differ diff --git a/art/intro/images/gameview_b2_char_m_eye_r.png b/art/intro/images/gameview_b2_char_m_eye_r.png new file mode 100644 index 0000000..9f8bf1e Binary files /dev/null and b/art/intro/images/gameview_b2_char_m_eye_r.png differ diff --git a/art/intro/images/gameview_b2_char_m_eyebrow_l.png b/art/intro/images/gameview_b2_char_m_eyebrow_l.png new file mode 100644 index 0000000..3d4b18f Binary files /dev/null and b/art/intro/images/gameview_b2_char_m_eyebrow_l.png differ diff --git a/art/intro/images/gameview_b2_char_m_eyebrow_r.png b/art/intro/images/gameview_b2_char_m_eyebrow_r.png new file mode 100644 index 0000000..31967c5 Binary files /dev/null and b/art/intro/images/gameview_b2_char_m_eyebrow_r.png differ diff --git a/art/intro/images/gameview_b2_char_m_eyelid_l.png b/art/intro/images/gameview_b2_char_m_eyelid_l.png new file mode 100644 index 0000000..7d0aad7 Binary files /dev/null and b/art/intro/images/gameview_b2_char_m_eyelid_l.png differ diff --git a/art/intro/images/gameview_b2_char_m_eyelid_r.png b/art/intro/images/gameview_b2_char_m_eyelid_r.png new file mode 100644 index 0000000..e06b1ce Binary files /dev/null and b/art/intro/images/gameview_b2_char_m_eyelid_r.png differ diff --git a/art/intro/images/gameview_b2_char_m_feather_big.png b/art/intro/images/gameview_b2_char_m_feather_big.png new file mode 100644 index 0000000..b5a3d34 Binary files /dev/null and b/art/intro/images/gameview_b2_char_m_feather_big.png differ diff --git a/art/intro/images/gameview_b2_char_m_feather_small.png b/art/intro/images/gameview_b2_char_m_feather_small.png new file mode 100644 index 0000000..f9c9672 Binary files /dev/null and b/art/intro/images/gameview_b2_char_m_feather_small.png differ diff --git a/art/intro/images/gameview_b2_char_m_hair_l.png b/art/intro/images/gameview_b2_char_m_hair_l.png new file mode 100644 index 0000000..7b87bf8 Binary files /dev/null and b/art/intro/images/gameview_b2_char_m_hair_l.png differ diff --git a/art/intro/images/gameview_b2_char_m_hair_top.png b/art/intro/images/gameview_b2_char_m_hair_top.png new file mode 100644 index 0000000..cc45f21 Binary files /dev/null and b/art/intro/images/gameview_b2_char_m_hair_top.png differ diff --git a/art/intro/images/gameview_b2_char_m_hand1_r.png b/art/intro/images/gameview_b2_char_m_hand1_r.png new file mode 100644 index 0000000..ded168f Binary files /dev/null and b/art/intro/images/gameview_b2_char_m_hand1_r.png differ diff --git a/art/intro/images/gameview_b2_char_m_hand2_l.png b/art/intro/images/gameview_b2_char_m_hand2_l.png new file mode 100644 index 0000000..b3df146 Binary files /dev/null and b/art/intro/images/gameview_b2_char_m_hand2_l.png differ diff --git a/art/intro/images/gameview_b2_char_m_hand2_r.png b/art/intro/images/gameview_b2_char_m_hand2_r.png new file mode 100644 index 0000000..876ddda Binary files /dev/null and b/art/intro/images/gameview_b2_char_m_hand2_r.png differ diff --git a/art/intro/images/gameview_b2_char_m_hand_s_r.png b/art/intro/images/gameview_b2_char_m_hand_s_r.png new file mode 100644 index 0000000..72572ed Binary files /dev/null and b/art/intro/images/gameview_b2_char_m_hand_s_r.png differ diff --git a/art/intro/images/gameview_b2_char_m_head.png b/art/intro/images/gameview_b2_char_m_head.png new file mode 100644 index 0000000..12944cc Binary files /dev/null and b/art/intro/images/gameview_b2_char_m_head.png differ diff --git a/art/intro/images/gameview_b2_char_m_head_leaves.png b/art/intro/images/gameview_b2_char_m_head_leaves.png new file mode 100644 index 0000000..a6e9982 Binary files /dev/null and b/art/intro/images/gameview_b2_char_m_head_leaves.png differ diff --git a/art/intro/images/gameview_b2_char_m_headpiece_fthr1.png b/art/intro/images/gameview_b2_char_m_headpiece_fthr1.png new file mode 100644 index 0000000..a02539e Binary files /dev/null and b/art/intro/images/gameview_b2_char_m_headpiece_fthr1.png differ diff --git a/art/intro/images/gameview_b2_char_m_headpiece_gld.png b/art/intro/images/gameview_b2_char_m_headpiece_gld.png new file mode 100644 index 0000000..8137e9b Binary files /dev/null and b/art/intro/images/gameview_b2_char_m_headpiece_gld.png differ diff --git a/art/intro/images/gameview_b2_char_m_leaves1.png b/art/intro/images/gameview_b2_char_m_leaves1.png new file mode 100644 index 0000000..56f5e5f Binary files /dev/null and b/art/intro/images/gameview_b2_char_m_leaves1.png differ diff --git a/art/intro/images/gameview_b2_char_m_leaves2.png b/art/intro/images/gameview_b2_char_m_leaves2.png new file mode 100644 index 0000000..f9c536a Binary files /dev/null and b/art/intro/images/gameview_b2_char_m_leaves2.png differ diff --git a/art/intro/images/gameview_b2_char_m_leg1_l.png b/art/intro/images/gameview_b2_char_m_leg1_l.png new file mode 100644 index 0000000..64a1d33 Binary files /dev/null and b/art/intro/images/gameview_b2_char_m_leg1_l.png differ diff --git a/art/intro/images/gameview_b2_char_m_leg1_r.png b/art/intro/images/gameview_b2_char_m_leg1_r.png new file mode 100644 index 0000000..20abd69 Binary files /dev/null and b/art/intro/images/gameview_b2_char_m_leg1_r.png differ diff --git a/art/intro/images/gameview_b2_char_m_leg2_l.png b/art/intro/images/gameview_b2_char_m_leg2_l.png new file mode 100644 index 0000000..47e107a Binary files /dev/null and b/art/intro/images/gameview_b2_char_m_leg2_l.png differ diff --git a/art/intro/images/gameview_b2_char_m_leg2_r.png b/art/intro/images/gameview_b2_char_m_leg2_r.png new file mode 100644 index 0000000..4ef04ef Binary files /dev/null and b/art/intro/images/gameview_b2_char_m_leg2_r.png differ diff --git a/art/intro/images/gameview_b2_char_m_leg3_l.png b/art/intro/images/gameview_b2_char_m_leg3_l.png new file mode 100644 index 0000000..153090b Binary files /dev/null and b/art/intro/images/gameview_b2_char_m_leg3_l.png differ diff --git a/art/intro/images/gameview_b2_char_m_leg3_r.png b/art/intro/images/gameview_b2_char_m_leg3_r.png new file mode 100644 index 0000000..42e0d9d Binary files /dev/null and b/art/intro/images/gameview_b2_char_m_leg3_r.png differ diff --git a/art/intro/images/gameview_b2_char_m_leg4_l.png b/art/intro/images/gameview_b2_char_m_leg4_l.png new file mode 100644 index 0000000..bc72d60 Binary files /dev/null and b/art/intro/images/gameview_b2_char_m_leg4_l.png differ diff --git a/art/intro/images/gameview_b2_char_m_leg4_r.png b/art/intro/images/gameview_b2_char_m_leg4_r.png new file mode 100644 index 0000000..79429e4 Binary files /dev/null and b/art/intro/images/gameview_b2_char_m_leg4_r.png differ diff --git a/art/intro/images/gameview_b2_char_m_neck.png b/art/intro/images/gameview_b2_char_m_neck.png new file mode 100644 index 0000000..ec03afd Binary files /dev/null and b/art/intro/images/gameview_b2_char_m_neck.png differ diff --git a/art/intro/images/gameview_b2_char_m_necklaces.png b/art/intro/images/gameview_b2_char_m_necklaces.png new file mode 100644 index 0000000..5b6a138 Binary files /dev/null and b/art/intro/images/gameview_b2_char_m_necklaces.png differ diff --git a/art/intro/images/gameview_b2_char_m_necklaces_s.png b/art/intro/images/gameview_b2_char_m_necklaces_s.png new file mode 100644 index 0000000..685a4ac Binary files /dev/null and b/art/intro/images/gameview_b2_char_m_necklaces_s.png differ diff --git a/art/intro/images/gameview_b2_char_m_ribbons.png b/art/intro/images/gameview_b2_char_m_ribbons.png new file mode 100644 index 0000000..cb5ba88 Binary files /dev/null and b/art/intro/images/gameview_b2_char_m_ribbons.png differ diff --git a/art/intro/images/gameview_b2_char_m_s.png b/art/intro/images/gameview_b2_char_m_s.png new file mode 100644 index 0000000..91bdb1c Binary files /dev/null and b/art/intro/images/gameview_b2_char_m_s.png differ diff --git a/art/intro/images/gameview_b2_char_m_shield.png b/art/intro/images/gameview_b2_char_m_shield.png new file mode 100644 index 0000000..836d2b3 Binary files /dev/null and b/art/intro/images/gameview_b2_char_m_shield.png differ diff --git a/art/intro/images/gameview_b2_char_m_skirt1.png b/art/intro/images/gameview_b2_char_m_skirt1.png new file mode 100644 index 0000000..463f3b3 Binary files /dev/null and b/art/intro/images/gameview_b2_char_m_skirt1.png differ diff --git a/art/intro/images/gameview_b2_char_m_skirt2.png b/art/intro/images/gameview_b2_char_m_skirt2.png new file mode 100644 index 0000000..3fedff5 Binary files /dev/null and b/art/intro/images/gameview_b2_char_m_skirt2.png differ diff --git a/art/intro/images/gameview_b2_char_m_skirt3.png b/art/intro/images/gameview_b2_char_m_skirt3.png new file mode 100644 index 0000000..ffe1a84 Binary files /dev/null and b/art/intro/images/gameview_b2_char_m_skirt3.png differ diff --git a/art/intro/images/gameview_b2_char_m_skirt_top.png b/art/intro/images/gameview_b2_char_m_skirt_top.png new file mode 100644 index 0000000..8e7de22 Binary files /dev/null and b/art/intro/images/gameview_b2_char_m_skirt_top.png differ diff --git a/art/intro/images/gameview_b2_char_m_stick.png b/art/intro/images/gameview_b2_char_m_stick.png new file mode 100644 index 0000000..60e959e Binary files /dev/null and b/art/intro/images/gameview_b2_char_m_stick.png differ diff --git a/art/intro/images/gameview_b2_char_m_stick_s.png b/art/intro/images/gameview_b2_char_m_stick_s.png new file mode 100644 index 0000000..ad33d8a Binary files /dev/null and b/art/intro/images/gameview_b2_char_m_stick_s.png differ diff --git a/art/intro/images/gameview_b2_char_m_torso.png b/art/intro/images/gameview_b2_char_m_torso.png new file mode 100644 index 0000000..eb310ca Binary files /dev/null and b/art/intro/images/gameview_b2_char_m_torso.png differ diff --git a/art/intro/images/gameview_b2_char_m_torso_shoulder.png b/art/intro/images/gameview_b2_char_m_torso_shoulder.png new file mode 100644 index 0000000..aa9fb81 Binary files /dev/null and b/art/intro/images/gameview_b2_char_m_torso_shoulder.png differ diff --git a/art/intro/images/intro1_jungle_l.png b/art/intro/images/intro1_jungle_l.png new file mode 100644 index 0000000..8bd3190 Binary files /dev/null and b/art/intro/images/intro1_jungle_l.png differ diff --git a/art/intro/images/intro1_jungle_l2.png b/art/intro/images/intro1_jungle_l2.png new file mode 100644 index 0000000..4f022f3 Binary files /dev/null and b/art/intro/images/intro1_jungle_l2.png differ diff --git a/art/intro/images/intro1_jungle_l2_1.png b/art/intro/images/intro1_jungle_l2_1.png new file mode 100644 index 0000000..45a940d Binary files /dev/null and b/art/intro/images/intro1_jungle_l2_1.png differ diff --git a/art/intro/images/intro1_jungle_l2_2.png b/art/intro/images/intro1_jungle_l2_2.png new file mode 100644 index 0000000..158b0bd Binary files /dev/null and b/art/intro/images/intro1_jungle_l2_2.png differ diff --git a/art/intro/images/intro1_jungle_l2_3.png b/art/intro/images/intro1_jungle_l2_3.png new file mode 100644 index 0000000..fcb1aa0 Binary files /dev/null and b/art/intro/images/intro1_jungle_l2_3.png differ diff --git a/art/intro/images/intro1_jungle_l3.png b/art/intro/images/intro1_jungle_l3.png new file mode 100644 index 0000000..a8e1d62 Binary files /dev/null and b/art/intro/images/intro1_jungle_l3.png differ diff --git a/art/intro/images/intro1_jungle_l3_1.png b/art/intro/images/intro1_jungle_l3_1.png new file mode 100644 index 0000000..c41b686 Binary files /dev/null and b/art/intro/images/intro1_jungle_l3_1.png differ diff --git a/art/intro/images/intro1_jungle_l3_2.png b/art/intro/images/intro1_jungle_l3_2.png new file mode 100644 index 0000000..2f7c89f Binary files /dev/null and b/art/intro/images/intro1_jungle_l3_2.png differ diff --git a/art/intro/images/intro1_jungle_l_1.png b/art/intro/images/intro1_jungle_l_1.png new file mode 100644 index 0000000..b7480e5 Binary files /dev/null and b/art/intro/images/intro1_jungle_l_1.png differ diff --git a/art/intro/images/intro1_jungle_l_2.png b/art/intro/images/intro1_jungle_l_2.png new file mode 100644 index 0000000..19dd1d4 Binary files /dev/null and b/art/intro/images/intro1_jungle_l_2.png differ diff --git a/art/intro/images/intro1_jungle_l_3.png b/art/intro/images/intro1_jungle_l_3.png new file mode 100644 index 0000000..3e19a85 Binary files /dev/null and b/art/intro/images/intro1_jungle_l_3.png differ diff --git a/art/intro/images/intro1_jungle_r1.png b/art/intro/images/intro1_jungle_r1.png new file mode 100644 index 0000000..e7d8790 Binary files /dev/null and b/art/intro/images/intro1_jungle_r1.png differ diff --git a/art/intro/images/intro1_jungle_r1_1.png b/art/intro/images/intro1_jungle_r1_1.png new file mode 100644 index 0000000..678c44c Binary files /dev/null and b/art/intro/images/intro1_jungle_r1_1.png differ diff --git a/art/intro/images/intro1_jungle_r1_2.png b/art/intro/images/intro1_jungle_r1_2.png new file mode 100644 index 0000000..9a0329c Binary files /dev/null and b/art/intro/images/intro1_jungle_r1_2.png differ diff --git a/art/intro/images/intro1_jungle_r1_3.png b/art/intro/images/intro1_jungle_r1_3.png new file mode 100644 index 0000000..2b074ab Binary files /dev/null and b/art/intro/images/intro1_jungle_r1_3.png differ diff --git a/art/intro/images/intro1_jungle_r2.png b/art/intro/images/intro1_jungle_r2.png new file mode 100644 index 0000000..5a4e48f Binary files /dev/null and b/art/intro/images/intro1_jungle_r2.png differ diff --git a/art/intro/images/intro1_jungle_r2_1.png b/art/intro/images/intro1_jungle_r2_1.png new file mode 100644 index 0000000..5bf6fd7 Binary files /dev/null and b/art/intro/images/intro1_jungle_r2_1.png differ diff --git a/art/intro/images/intro1_jungle_r2_2.png b/art/intro/images/intro1_jungle_r2_2.png new file mode 100644 index 0000000..efb9a00 Binary files /dev/null and b/art/intro/images/intro1_jungle_r2_2.png differ diff --git a/art/intro/images/intro1_jungle_r3.png b/art/intro/images/intro1_jungle_r3.png new file mode 100644 index 0000000..d2e0cd6 Binary files /dev/null and b/art/intro/images/intro1_jungle_r3.png differ diff --git a/art/intro/images/intro1_jungle_r3_1.png b/art/intro/images/intro1_jungle_r3_1.png new file mode 100644 index 0000000..66688ab Binary files /dev/null and b/art/intro/images/intro1_jungle_r3_1.png differ diff --git a/art/intro/images/intro1_jungle_r3_2.png b/art/intro/images/intro1_jungle_r3_2.png new file mode 100644 index 0000000..78b2d08 Binary files /dev/null and b/art/intro/images/intro1_jungle_r3_2.png differ diff --git a/art/intro/images/intro1_stone.png b/art/intro/images/intro1_stone.png new file mode 100644 index 0000000..f0d7ca2 Binary files /dev/null and b/art/intro/images/intro1_stone.png differ diff --git a/art/intro/images/intro1_stone_s.png b/art/intro/images/intro1_stone_s.png new file mode 100644 index 0000000..c7bcf5b Binary files /dev/null and b/art/intro/images/intro1_stone_s.png differ diff --git a/art/intro/images/intro2_stone.png b/art/intro/images/intro2_stone.png new file mode 100644 index 0000000..3e27ff9 Binary files /dev/null and b/art/intro/images/intro2_stone.png differ diff --git a/art/intro/images/intro2_stone_eagle_eff.png b/art/intro/images/intro2_stone_eagle_eff.png new file mode 100644 index 0000000..fac1bbc Binary files /dev/null and b/art/intro/images/intro2_stone_eagle_eff.png differ diff --git a/art/intro/images/intro2_stone_jag_eff.png b/art/intro/images/intro2_stone_jag_eff.png new file mode 100644 index 0000000..e51903a Binary files /dev/null and b/art/intro/images/intro2_stone_jag_eff.png differ diff --git a/art/intro/images/intro2_stone_s2.png b/art/intro/images/intro2_stone_s2.png new file mode 100644 index 0000000..0f413d1 Binary files /dev/null and b/art/intro/images/intro2_stone_s2.png differ diff --git a/art/intro/images/intro2_sun_rays.png b/art/intro/images/intro2_sun_rays.png new file mode 100644 index 0000000..e396687 Binary files /dev/null and b/art/intro/images/intro2_sun_rays.png differ diff --git a/art/intro/images/intro5_logo_bg_pattern.png b/art/intro/images/intro5_logo_bg_pattern.png new file mode 100644 index 0000000..b790749 Binary files /dev/null and b/art/intro/images/intro5_logo_bg_pattern.png differ diff --git a/art/intro/images/intro6_logo_bg.png b/art/intro/images/intro6_logo_bg.png new file mode 100644 index 0000000..8417f4f Binary files /dev/null and b/art/intro/images/intro6_logo_bg.png differ diff --git a/art/intro/images/intro7_logo.png b/art/intro/images/intro7_logo.png new file mode 100644 index 0000000..d0563ed Binary files /dev/null and b/art/intro/images/intro7_logo.png differ diff --git a/art/intro/images/intro_bg1.png b/art/intro/images/intro_bg1.png new file mode 100644 index 0000000..ae76d47 Binary files /dev/null and b/art/intro/images/intro_bg1.png differ diff --git a/art/intro/images/intro_bg2.png b/art/intro/images/intro_bg2.png new file mode 100644 index 0000000..ec6cb75 Binary files /dev/null and b/art/intro/images/intro_bg2.png differ diff --git a/art/intro/images/intro_bg3.png b/art/intro/images/intro_bg3.png new file mode 100644 index 0000000..ea3ec09 Binary files /dev/null and b/art/intro/images/intro_bg3.png differ diff --git a/art/intro/images/intro_bg4.png b/art/intro/images/intro_bg4.png new file mode 100644 index 0000000..0b78935 Binary files /dev/null and b/art/intro/images/intro_bg4.png differ diff --git a/art/intro/images/intro_bg_s.png b/art/intro/images/intro_bg_s.png new file mode 100644 index 0000000..dc8b7ed Binary files /dev/null and b/art/intro/images/intro_bg_s.png differ diff --git a/art/intro/images/intro_logo_bg_pattern.png b/art/intro/images/intro_logo_bg_pattern.png new file mode 100644 index 0000000..0efc4cb Binary files /dev/null and b/art/intro/images/intro_logo_bg_pattern.png differ diff --git a/art/intro/images/intro_mist.png b/art/intro/images/intro_mist.png new file mode 100644 index 0000000..0954f3e Binary files /dev/null and b/art/intro/images/intro_mist.png differ diff --git a/art/intro/images/intro_tmpl.png b/art/intro/images/intro_tmpl.png new file mode 100644 index 0000000..33103d7 Binary files /dev/null and b/art/intro/images/intro_tmpl.png differ diff --git a/art/intro/images/intro_tmpl_bg_glow.png b/art/intro/images/intro_tmpl_bg_glow.png new file mode 100644 index 0000000..f6cc797 Binary files /dev/null and b/art/intro/images/intro_tmpl_bg_glow.png differ diff --git a/art/intro/images/intro_tmpl_fire1.png b/art/intro/images/intro_tmpl_fire1.png new file mode 100644 index 0000000..33c4e26 Binary files /dev/null and b/art/intro/images/intro_tmpl_fire1.png differ diff --git a/art/intro/images/intro_tmpl_fire2.png b/art/intro/images/intro_tmpl_fire2.png new file mode 100644 index 0000000..436d826 Binary files /dev/null and b/art/intro/images/intro_tmpl_fire2.png differ diff --git a/art/intro/images/intro_tmpl_fire3.png b/art/intro/images/intro_tmpl_fire3.png new file mode 100644 index 0000000..1c27bb6 Binary files /dev/null and b/art/intro/images/intro_tmpl_fire3.png differ diff --git a/art/intro/images/intro_tmpl_fire_particles1.png b/art/intro/images/intro_tmpl_fire_particles1.png new file mode 100644 index 0000000..093cd09 Binary files /dev/null and b/art/intro/images/intro_tmpl_fire_particles1.png differ diff --git a/art/intro/images/intro_tmpl_fire_particles2.png b/art/intro/images/intro_tmpl_fire_particles2.png new file mode 100644 index 0000000..ce46678 Binary files /dev/null and b/art/intro/images/intro_tmpl_fire_particles2.png differ diff --git a/art/intro/images/intro_tmpl_fire_particles3.png b/art/intro/images/intro_tmpl_fire_particles3.png new file mode 100644 index 0000000..5501fa2 Binary files /dev/null and b/art/intro/images/intro_tmpl_fire_particles3.png differ diff --git a/art/intro/images/intro_tmpl_front_glow.png b/art/intro/images/intro_tmpl_front_glow.png new file mode 100644 index 0000000..bb1d8da Binary files /dev/null and b/art/intro/images/intro_tmpl_front_glow.png differ diff --git a/art/intro/images/intro_tmpl_glow.png b/art/intro/images/intro_tmpl_glow.png new file mode 100644 index 0000000..0897f00 Binary files /dev/null and b/art/intro/images/intro_tmpl_glow.png differ diff --git a/art/intro/images/light_effect/light_effect_00003.png b/art/intro/images/light_effect/light_effect_00003.png new file mode 100644 index 0000000..3ea2588 Binary files /dev/null and b/art/intro/images/light_effect/light_effect_00003.png differ diff --git a/art/intro/images/light_effect/light_effect_00004.png b/art/intro/images/light_effect/light_effect_00004.png new file mode 100644 index 0000000..35ac3b3 Binary files /dev/null and b/art/intro/images/light_effect/light_effect_00004.png differ diff --git a/art/intro/images/light_effect/light_effect_00005.png b/art/intro/images/light_effect/light_effect_00005.png new file mode 100644 index 0000000..7e3f68b Binary files /dev/null and b/art/intro/images/light_effect/light_effect_00005.png differ diff --git a/art/intro/images/light_effect/light_effect_00006.png b/art/intro/images/light_effect/light_effect_00006.png new file mode 100644 index 0000000..279b28b Binary files /dev/null and b/art/intro/images/light_effect/light_effect_00006.png differ diff --git a/art/intro/images/light_effect/light_effect_00007.png b/art/intro/images/light_effect/light_effect_00007.png new file mode 100644 index 0000000..d07ad18 Binary files /dev/null and b/art/intro/images/light_effect/light_effect_00007.png differ diff --git a/art/intro/images/light_effect/light_effect_00008.png b/art/intro/images/light_effect/light_effect_00008.png new file mode 100644 index 0000000..7ba0e77 Binary files /dev/null and b/art/intro/images/light_effect/light_effect_00008.png differ diff --git a/art/intro/images/light_effect/light_effect_00009.png b/art/intro/images/light_effect/light_effect_00009.png new file mode 100644 index 0000000..9c4fe7b Binary files /dev/null and b/art/intro/images/light_effect/light_effect_00009.png differ diff --git a/art/intro/images/light_effect/light_effect_00010.png b/art/intro/images/light_effect/light_effect_00010.png new file mode 100644 index 0000000..9c4fe7b Binary files /dev/null and b/art/intro/images/light_effect/light_effect_00010.png differ diff --git a/art/intro/images/light_effect/light_effect_00011.png b/art/intro/images/light_effect/light_effect_00011.png new file mode 100644 index 0000000..9c4fe7b Binary files /dev/null and b/art/intro/images/light_effect/light_effect_00011.png differ diff --git a/art/intro/images/light_effect/light_effect_00012.png b/art/intro/images/light_effect/light_effect_00012.png new file mode 100644 index 0000000..b779987 Binary files /dev/null and b/art/intro/images/light_effect/light_effect_00012.png differ diff --git a/art/intro/images/light_effect/light_effect_00013.png b/art/intro/images/light_effect/light_effect_00013.png new file mode 100644 index 0000000..9c4fe7b Binary files /dev/null and b/art/intro/images/light_effect/light_effect_00013.png differ diff --git a/art/intro/images/light_effect/light_effect_00014.png b/art/intro/images/light_effect/light_effect_00014.png new file mode 100644 index 0000000..f377f39 Binary files /dev/null and b/art/intro/images/light_effect/light_effect_00014.png differ diff --git a/art/intro/images/light_effect/light_effect_00015.png b/art/intro/images/light_effect/light_effect_00015.png new file mode 100644 index 0000000..9c4fe7b Binary files /dev/null and b/art/intro/images/light_effect/light_effect_00015.png differ diff --git a/art/intro/images/smoke/smoke_00003.png b/art/intro/images/smoke/smoke_00003.png new file mode 100644 index 0000000..9c4fe7b Binary files /dev/null and b/art/intro/images/smoke/smoke_00003.png differ diff --git a/art/intro/images/smoke/smoke_00004.png b/art/intro/images/smoke/smoke_00004.png new file mode 100644 index 0000000..fd31b64 Binary files /dev/null and b/art/intro/images/smoke/smoke_00004.png differ diff --git a/art/intro/images/smoke/smoke_00005.png b/art/intro/images/smoke/smoke_00005.png new file mode 100644 index 0000000..1191533 Binary files /dev/null and b/art/intro/images/smoke/smoke_00005.png differ diff --git a/art/intro/images/smoke/smoke_00006.png b/art/intro/images/smoke/smoke_00006.png new file mode 100644 index 0000000..2553cc8 Binary files /dev/null and b/art/intro/images/smoke/smoke_00006.png differ diff --git a/art/intro/images/smoke/smoke_00007.png b/art/intro/images/smoke/smoke_00007.png new file mode 100644 index 0000000..b7003de Binary files /dev/null and b/art/intro/images/smoke/smoke_00007.png differ diff --git a/art/intro/images/smoke/smoke_00008.png b/art/intro/images/smoke/smoke_00008.png new file mode 100644 index 0000000..6427e28 Binary files /dev/null and b/art/intro/images/smoke/smoke_00008.png differ diff --git a/art/intro/images/smoke/smoke_00009.png b/art/intro/images/smoke/smoke_00009.png new file mode 100644 index 0000000..9d4e5ce Binary files /dev/null and b/art/intro/images/smoke/smoke_00009.png differ diff --git a/art/intro/images/smoke/smoke_00010.png b/art/intro/images/smoke/smoke_00010.png new file mode 100644 index 0000000..2b33844 Binary files /dev/null and b/art/intro/images/smoke/smoke_00010.png differ diff --git a/art/intro/images/smoke/smoke_00011.png b/art/intro/images/smoke/smoke_00011.png new file mode 100644 index 0000000..69331cc Binary files /dev/null and b/art/intro/images/smoke/smoke_00011.png differ diff --git a/art/intro/images/smoke/smoke_00012.png b/art/intro/images/smoke/smoke_00012.png new file mode 100644 index 0000000..7dfbf17 Binary files /dev/null and b/art/intro/images/smoke/smoke_00012.png differ diff --git a/art/intro/images/smoke/smoke_00013.png b/art/intro/images/smoke/smoke_00013.png new file mode 100644 index 0000000..a00b859 Binary files /dev/null and b/art/intro/images/smoke/smoke_00013.png differ diff --git a/art/intro/images/smoke/smoke_00014.png b/art/intro/images/smoke/smoke_00014.png new file mode 100644 index 0000000..7a9eb19 Binary files /dev/null and b/art/intro/images/smoke/smoke_00014.png differ diff --git a/art/intro/images/smoke/smoke_00015.png b/art/intro/images/smoke/smoke_00015.png new file mode 100644 index 0000000..b9c13ef Binary files /dev/null and b/art/intro/images/smoke/smoke_00015.png differ diff --git a/art/intro/images/smoke/smoke_00016.png b/art/intro/images/smoke/smoke_00016.png new file mode 100644 index 0000000..ecebeb2 Binary files /dev/null and b/art/intro/images/smoke/smoke_00016.png differ diff --git a/art/intro/images/smoke/smoke_00017.png b/art/intro/images/smoke/smoke_00017.png new file mode 100644 index 0000000..14e49e2 Binary files /dev/null and b/art/intro/images/smoke/smoke_00017.png differ diff --git a/art/intro/images/smoke/smoke_00018.png b/art/intro/images/smoke/smoke_00018.png new file mode 100644 index 0000000..d87f38f Binary files /dev/null and b/art/intro/images/smoke/smoke_00018.png differ diff --git a/art/intro/images/smoke/smoke_00019.png b/art/intro/images/smoke/smoke_00019.png new file mode 100644 index 0000000..ccd2c59 Binary files /dev/null and b/art/intro/images/smoke/smoke_00019.png differ diff --git a/art/intro/images/smoke/smoke_00020.png b/art/intro/images/smoke/smoke_00020.png new file mode 100644 index 0000000..24c9507 Binary files /dev/null and b/art/intro/images/smoke/smoke_00020.png differ diff --git a/art/intro/images/smoke/smoke_00021.png b/art/intro/images/smoke/smoke_00021.png new file mode 100644 index 0000000..d7c6309 Binary files /dev/null and b/art/intro/images/smoke/smoke_00021.png differ diff --git a/art/intro/images/smoke/smoke_00022.png b/art/intro/images/smoke/smoke_00022.png new file mode 100644 index 0000000..f5688e2 Binary files /dev/null and b/art/intro/images/smoke/smoke_00022.png differ diff --git a/art/intro/images/smoke/smoke_00023.png b/art/intro/images/smoke/smoke_00023.png new file mode 100644 index 0000000..097d6ac Binary files /dev/null and b/art/intro/images/smoke/smoke_00023.png differ diff --git a/art/intro/images/smoke/smoke_00024.png b/art/intro/images/smoke/smoke_00024.png new file mode 100644 index 0000000..a95154a Binary files /dev/null and b/art/intro/images/smoke/smoke_00024.png differ diff --git a/art/intro/images/smoke/smoke_00025.png b/art/intro/images/smoke/smoke_00025.png new file mode 100644 index 0000000..d90f332 Binary files /dev/null and b/art/intro/images/smoke/smoke_00025.png differ diff --git a/art/intro/images/smoke/smoke_00026.png b/art/intro/images/smoke/smoke_00026.png new file mode 100644 index 0000000..4f673ef Binary files /dev/null and b/art/intro/images/smoke/smoke_00026.png differ diff --git a/art/intro/images/smoke/smoke_00027.png b/art/intro/images/smoke/smoke_00027.png new file mode 100644 index 0000000..b42a91a Binary files /dev/null and b/art/intro/images/smoke/smoke_00027.png differ diff --git a/art/intro/images/smoke/smoke_00028.png b/art/intro/images/smoke/smoke_00028.png new file mode 100644 index 0000000..6e389f3 Binary files /dev/null and b/art/intro/images/smoke/smoke_00028.png differ diff --git a/art/intro/images/smoke/smoke_00029.png b/art/intro/images/smoke/smoke_00029.png new file mode 100644 index 0000000..d903961 Binary files /dev/null and b/art/intro/images/smoke/smoke_00029.png differ diff --git a/art/intro/images/smoke/smoke_00030.png b/art/intro/images/smoke/smoke_00030.png new file mode 100644 index 0000000..cb15c7a Binary files /dev/null and b/art/intro/images/smoke/smoke_00030.png differ diff --git a/art/intro/images/smoke/smoke_00031.png b/art/intro/images/smoke/smoke_00031.png new file mode 100644 index 0000000..c025536 Binary files /dev/null and b/art/intro/images/smoke/smoke_00031.png differ diff --git a/art/intro/images/smoke/smoke_00032.png b/art/intro/images/smoke/smoke_00032.png new file mode 100644 index 0000000..daf7edc Binary files /dev/null and b/art/intro/images/smoke/smoke_00032.png differ diff --git a/art/intro/images/smoke/smoke_00033.png b/art/intro/images/smoke/smoke_00033.png new file mode 100644 index 0000000..4981af5 Binary files /dev/null and b/art/intro/images/smoke/smoke_00033.png differ diff --git a/art/intro/images/smoke/smoke_00034.png b/art/intro/images/smoke/smoke_00034.png new file mode 100644 index 0000000..5ecb646 Binary files /dev/null and b/art/intro/images/smoke/smoke_00034.png differ diff --git a/art/intro/images/smoke/smoke_00035.png b/art/intro/images/smoke/smoke_00035.png new file mode 100644 index 0000000..48ca316 Binary files /dev/null and b/art/intro/images/smoke/smoke_00035.png differ diff --git a/art/intro/images/smoke/smoke_00036.png b/art/intro/images/smoke/smoke_00036.png new file mode 100644 index 0000000..562e797 Binary files /dev/null and b/art/intro/images/smoke/smoke_00036.png differ diff --git a/art/intro/images/smoke/smoke_00037.png b/art/intro/images/smoke/smoke_00037.png new file mode 100644 index 0000000..a037f37 Binary files /dev/null and b/art/intro/images/smoke/smoke_00037.png differ diff --git a/art/intro/images/smoke/smoke_00038.png b/art/intro/images/smoke/smoke_00038.png new file mode 100644 index 0000000..cec9732 Binary files /dev/null and b/art/intro/images/smoke/smoke_00038.png differ diff --git a/art/intro/intro_landscape.spine b/art/intro/intro_landscape.spine new file mode 100644 index 0000000..72581fc Binary files /dev/null and b/art/intro/intro_landscape.spine differ diff --git a/art/intro/intro_portrait.spine b/art/intro/intro_portrait.spine new file mode 100644 index 0000000..3d58f0e Binary files /dev/null and b/art/intro/intro_portrait.spine differ diff --git a/art/mini-paytable/book/glow1.png b/art/mini-paytable/book/glow1.png new file mode 100644 index 0000000..65496d1 Binary files /dev/null and b/art/mini-paytable/book/glow1.png differ diff --git a/art/mini-paytable/book/glow2.png b/art/mini-paytable/book/glow2.png new file mode 100644 index 0000000..be59ec8 Binary files /dev/null and b/art/mini-paytable/book/glow2.png differ diff --git a/art/mini-paytable/book/placeholder.png b/art/mini-paytable/book/placeholder.png new file mode 100644 index 0000000..befcd67 Binary files /dev/null and b/art/mini-paytable/book/placeholder.png differ diff --git a/art/mini-paytable/book/stone.png b/art/mini-paytable/book/stone.png new file mode 100644 index 0000000..87158f1 Binary files /dev/null and b/art/mini-paytable/book/stone.png differ diff --git a/art/mini-paytable/book/stone_shadow.png b/art/mini-paytable/book/stone_shadow.png new file mode 100644 index 0000000..5ee4679 Binary files /dev/null and b/art/mini-paytable/book/stone_shadow.png differ diff --git a/art/mini-paytable/mini-paytable.spine b/art/mini-paytable/mini-paytable.spine new file mode 100644 index 0000000..2cfd49a Binary files /dev/null and b/art/mini-paytable/mini-paytable.spine differ diff --git a/art/paytable/images/Xbutton_all.png b/art/paytable/images/Xbutton_all.png new file mode 100644 index 0000000..0e553b6 Binary files /dev/null and b/art/paytable/images/Xbutton_all.png differ diff --git a/art/paytable/images/arrow_l_button.png b/art/paytable/images/arrow_l_button.png new file mode 100644 index 0000000..7607833 Binary files /dev/null and b/art/paytable/images/arrow_l_button.png differ diff --git a/art/paytable/images/arrow_l_button_h.png b/art/paytable/images/arrow_l_button_h.png new file mode 100644 index 0000000..9fe27a9 Binary files /dev/null and b/art/paytable/images/arrow_l_button_h.png differ diff --git a/art/paytable/images/arrow_r_button.png b/art/paytable/images/arrow_r_button.png new file mode 100644 index 0000000..4e7b4ff Binary files /dev/null and b/art/paytable/images/arrow_r_button.png differ diff --git a/art/paytable/images/arrow_r_button_h.png b/art/paytable/images/arrow_r_button_h.png new file mode 100644 index 0000000..ca18a93 Binary files /dev/null and b/art/paytable/images/arrow_r_button_h.png differ diff --git a/art/paytable/images/bg.png b/art/paytable/images/bg.png new file mode 100644 index 0000000..96dbd8d Binary files /dev/null and b/art/paytable/images/bg.png differ diff --git a/art/paytable/images/iconScatter_symbols1.png b/art/paytable/images/iconScatter_symbols1.png new file mode 100755 index 0000000..3da8e39 Binary files /dev/null and b/art/paytable/images/iconScatter_symbols1.png differ diff --git a/art/paytable/images/iconWild_symbols1.png b/art/paytable/images/iconWild_symbols1.png new file mode 100755 index 0000000..a1e2a90 Binary files /dev/null and b/art/paytable/images/iconWild_symbols1.png differ diff --git a/art/paytable/images/icon_h1.png b/art/paytable/images/icon_h1.png new file mode 100755 index 0000000..8b0ced1 Binary files /dev/null and b/art/paytable/images/icon_h1.png differ diff --git a/art/paytable/images/icon_h2.png b/art/paytable/images/icon_h2.png new file mode 100755 index 0000000..ab6cf9a Binary files /dev/null and b/art/paytable/images/icon_h2.png differ diff --git a/art/paytable/images/icon_l1.png b/art/paytable/images/icon_l1.png new file mode 100755 index 0000000..5ccdd7f Binary files /dev/null and b/art/paytable/images/icon_l1.png differ diff --git a/art/paytable/images/icon_l2.png b/art/paytable/images/icon_l2.png new file mode 100755 index 0000000..2149bd9 Binary files /dev/null and b/art/paytable/images/icon_l2.png differ diff --git a/art/paytable/images/icon_l3.png b/art/paytable/images/icon_l3.png new file mode 100755 index 0000000..3807d4c Binary files /dev/null and b/art/paytable/images/icon_l3.png differ diff --git a/art/paytable/images/icon_l4.png b/art/paytable/images/icon_l4.png new file mode 100755 index 0000000..0445b61 Binary files /dev/null and b/art/paytable/images/icon_l4.png differ diff --git a/art/paytable/images/icon_l5.png b/art/paytable/images/icon_l5.png new file mode 100755 index 0000000..3305337 Binary files /dev/null and b/art/paytable/images/icon_l5.png differ diff --git a/art/paytable/images/icon_m1.png b/art/paytable/images/icon_m1.png new file mode 100755 index 0000000..14f510d Binary files /dev/null and b/art/paytable/images/icon_m1.png differ diff --git a/art/paytable/images/icon_m2.png b/art/paytable/images/icon_m2.png new file mode 100755 index 0000000..82015c6 Binary files /dev/null and b/art/paytable/images/icon_m2.png differ diff --git a/art/paytable/images/icon_m3.png b/art/paytable/images/icon_m3.png new file mode 100755 index 0000000..5330f27 Binary files /dev/null and b/art/paytable/images/icon_m3.png differ diff --git a/art/paytable/images/pagebuttons_features1.png b/art/paytable/images/pagebuttons_features1.png new file mode 100644 index 0000000..d65ad3f Binary files /dev/null and b/art/paytable/images/pagebuttons_features1.png differ diff --git a/art/paytable/images/pagebuttons_features2.png b/art/paytable/images/pagebuttons_features2.png new file mode 100644 index 0000000..a66a209 Binary files /dev/null and b/art/paytable/images/pagebuttons_features2.png differ diff --git a/art/paytable/images/pagebuttons_features3.png b/art/paytable/images/pagebuttons_features3.png new file mode 100644 index 0000000..27ec798 Binary files /dev/null and b/art/paytable/images/pagebuttons_features3.png differ diff --git a/art/paytable/images/pagebuttons_paylines.png b/art/paytable/images/pagebuttons_paylines.png new file mode 100644 index 0000000..19d1c0d Binary files /dev/null and b/art/paytable/images/pagebuttons_paylines.png differ diff --git a/art/paytable/images/pagebuttons_symbols1.png b/art/paytable/images/pagebuttons_symbols1.png new file mode 100644 index 0000000..df23097 Binary files /dev/null and b/art/paytable/images/pagebuttons_symbols1.png differ diff --git a/art/paytable/images/pagebuttons_symbols2.png b/art/paytable/images/pagebuttons_symbols2.png new file mode 100644 index 0000000..1eaf906 Binary files /dev/null and b/art/paytable/images/pagebuttons_symbols2.png differ diff --git a/art/paytable/images/paylines_1.png b/art/paytable/images/paylines_1.png new file mode 100644 index 0000000..49d75fd Binary files /dev/null and b/art/paytable/images/paylines_1.png differ diff --git a/art/paytable/images/paylines_10.png b/art/paytable/images/paylines_10.png new file mode 100644 index 0000000..198efc9 Binary files /dev/null and b/art/paytable/images/paylines_10.png differ diff --git a/art/paytable/images/paylines_11.png b/art/paytable/images/paylines_11.png new file mode 100644 index 0000000..2fac0b0 Binary files /dev/null and b/art/paytable/images/paylines_11.png differ diff --git a/art/paytable/images/paylines_12.png b/art/paytable/images/paylines_12.png new file mode 100644 index 0000000..585f67c Binary files /dev/null and b/art/paytable/images/paylines_12.png differ diff --git a/art/paytable/images/paylines_13.png b/art/paytable/images/paylines_13.png new file mode 100644 index 0000000..21f3bb1 Binary files /dev/null and b/art/paytable/images/paylines_13.png differ diff --git a/art/paytable/images/paylines_14.png b/art/paytable/images/paylines_14.png new file mode 100644 index 0000000..264be12 Binary files /dev/null and b/art/paytable/images/paylines_14.png differ diff --git a/art/paytable/images/paylines_15.png b/art/paytable/images/paylines_15.png new file mode 100644 index 0000000..74b1ec4 Binary files /dev/null and b/art/paytable/images/paylines_15.png differ diff --git a/art/paytable/images/paylines_16.png b/art/paytable/images/paylines_16.png new file mode 100644 index 0000000..90ff5c5 Binary files /dev/null and b/art/paytable/images/paylines_16.png differ diff --git a/art/paytable/images/paylines_2.png b/art/paytable/images/paylines_2.png new file mode 100644 index 0000000..ed4043f Binary files /dev/null and b/art/paytable/images/paylines_2.png differ diff --git a/art/paytable/images/paylines_3.png b/art/paytable/images/paylines_3.png new file mode 100644 index 0000000..85d52dd Binary files /dev/null and b/art/paytable/images/paylines_3.png differ diff --git a/art/paytable/images/paylines_4.png b/art/paytable/images/paylines_4.png new file mode 100644 index 0000000..b2ea5ce Binary files /dev/null and b/art/paytable/images/paylines_4.png differ diff --git a/art/paytable/images/paylines_5.png b/art/paytable/images/paylines_5.png new file mode 100644 index 0000000..ef0caea Binary files /dev/null and b/art/paytable/images/paylines_5.png differ diff --git a/art/paytable/images/paylines_6.png b/art/paytable/images/paylines_6.png new file mode 100644 index 0000000..9f350f6 Binary files /dev/null and b/art/paytable/images/paylines_6.png differ diff --git a/art/paytable/images/paylines_7.png b/art/paytable/images/paylines_7.png new file mode 100644 index 0000000..91c13b9 Binary files /dev/null and b/art/paytable/images/paylines_7.png differ diff --git a/art/paytable/images/paylines_8.png b/art/paytable/images/paylines_8.png new file mode 100644 index 0000000..d1071aa Binary files /dev/null and b/art/paytable/images/paylines_8.png differ diff --git a/art/paytable/images/paylines_9.png b/art/paytable/images/paylines_9.png new file mode 100644 index 0000000..e670dcd Binary files /dev/null and b/art/paytable/images/paylines_9.png differ diff --git a/art/paytable/images/paylines_paylines.png b/art/paytable/images/paylines_paylines.png new file mode 100644 index 0000000..db529e6 Binary files /dev/null and b/art/paytable/images/paylines_paylines.png differ diff --git a/art/paytable/images/picAlienAbduction_features3.png b/art/paytable/images/picAlienAbduction_features3.png new file mode 100644 index 0000000..e3ec8d0 Binary files /dev/null and b/art/paytable/images/picAlienAbduction_features3.png differ diff --git a/art/paytable/images/picWarriors_features2.png b/art/paytable/images/picWarriors_features2.png new file mode 100755 index 0000000..5cab507 Binary files /dev/null and b/art/paytable/images/picWarriors_features2.png differ diff --git a/art/paytable/images/picWildSpin_features1.png b/art/paytable/images/picWildSpin_features1.png new file mode 100755 index 0000000..3c365da Binary files /dev/null and b/art/paytable/images/picWildSpin_features1.png differ diff --git a/art/paytable/images/placeholder.png b/art/paytable/images/placeholder.png new file mode 100644 index 0000000..03b7d5f Binary files /dev/null and b/art/paytable/images/placeholder.png differ diff --git a/art/paytable/images/textPaytable_all.png b/art/paytable/images/textPaytable_all.png new file mode 100644 index 0000000..7003666 Binary files /dev/null and b/art/paytable/images/textPaytable_all.png differ diff --git a/art/paytable/images/underline_all.png b/art/paytable/images/underline_all.png new file mode 100644 index 0000000..bfa5208 Binary files /dev/null and b/art/paytable/images/underline_all.png differ diff --git a/art/paytable/paytable.spine b/art/paytable/paytable.spine new file mode 100644 index 0000000..5dba3b1 Binary files /dev/null and b/art/paytable/paytable.spine differ diff --git a/art/preloader/images/Popiplay_logo/Popiplay_logo00000.png b/art/preloader/images/Popiplay_logo/Popiplay_logo00000.png new file mode 100644 index 0000000..94f0520 Binary files /dev/null and b/art/preloader/images/Popiplay_logo/Popiplay_logo00000.png differ diff --git a/art/preloader/images/Popiplay_logo/Popiplay_logo00001.png b/art/preloader/images/Popiplay_logo/Popiplay_logo00001.png new file mode 100644 index 0000000..94f0520 Binary files /dev/null and b/art/preloader/images/Popiplay_logo/Popiplay_logo00001.png differ diff --git a/art/preloader/images/Popiplay_logo/Popiplay_logo00002.png b/art/preloader/images/Popiplay_logo/Popiplay_logo00002.png new file mode 100644 index 0000000..94f0520 Binary files /dev/null and b/art/preloader/images/Popiplay_logo/Popiplay_logo00002.png differ diff --git a/art/preloader/images/Popiplay_logo/Popiplay_logo00003.png b/art/preloader/images/Popiplay_logo/Popiplay_logo00003.png new file mode 100644 index 0000000..7f5c1fe Binary files /dev/null and b/art/preloader/images/Popiplay_logo/Popiplay_logo00003.png differ diff --git a/art/preloader/images/Popiplay_logo/Popiplay_logo00004.png b/art/preloader/images/Popiplay_logo/Popiplay_logo00004.png new file mode 100644 index 0000000..c393f33 Binary files /dev/null and b/art/preloader/images/Popiplay_logo/Popiplay_logo00004.png differ diff --git a/art/preloader/images/Popiplay_logo/Popiplay_logo00005.png b/art/preloader/images/Popiplay_logo/Popiplay_logo00005.png new file mode 100644 index 0000000..b0f9387 Binary files /dev/null and b/art/preloader/images/Popiplay_logo/Popiplay_logo00005.png differ diff --git a/art/preloader/images/Popiplay_logo/Popiplay_logo00006.png b/art/preloader/images/Popiplay_logo/Popiplay_logo00006.png new file mode 100644 index 0000000..7ad1803 Binary files /dev/null and b/art/preloader/images/Popiplay_logo/Popiplay_logo00006.png differ diff --git a/art/preloader/images/Popiplay_logo/Popiplay_logo00007.png b/art/preloader/images/Popiplay_logo/Popiplay_logo00007.png new file mode 100644 index 0000000..6ebf8c6 Binary files /dev/null and b/art/preloader/images/Popiplay_logo/Popiplay_logo00007.png differ diff --git a/art/preloader/images/Popiplay_logo/Popiplay_logo00008.png b/art/preloader/images/Popiplay_logo/Popiplay_logo00008.png new file mode 100644 index 0000000..bc714c5 Binary files /dev/null and b/art/preloader/images/Popiplay_logo/Popiplay_logo00008.png differ diff --git a/art/preloader/images/Popiplay_logo/Popiplay_logo00009.png b/art/preloader/images/Popiplay_logo/Popiplay_logo00009.png new file mode 100644 index 0000000..651c8c2 Binary files /dev/null and b/art/preloader/images/Popiplay_logo/Popiplay_logo00009.png differ diff --git a/art/preloader/images/Popiplay_logo/Popiplay_logo00010.png b/art/preloader/images/Popiplay_logo/Popiplay_logo00010.png new file mode 100644 index 0000000..354805c Binary files /dev/null and b/art/preloader/images/Popiplay_logo/Popiplay_logo00010.png differ diff --git a/art/preloader/images/Popiplay_logo/Popiplay_logo00011.png b/art/preloader/images/Popiplay_logo/Popiplay_logo00011.png new file mode 100644 index 0000000..9ed9f4a Binary files /dev/null and b/art/preloader/images/Popiplay_logo/Popiplay_logo00011.png differ diff --git a/art/preloader/images/Popiplay_logo/Popiplay_logo00012.png b/art/preloader/images/Popiplay_logo/Popiplay_logo00012.png new file mode 100644 index 0000000..a5281d9 Binary files /dev/null and b/art/preloader/images/Popiplay_logo/Popiplay_logo00012.png differ diff --git a/art/preloader/images/Popiplay_logo/Popiplay_logo00013.png b/art/preloader/images/Popiplay_logo/Popiplay_logo00013.png new file mode 100644 index 0000000..7074e62 Binary files /dev/null and b/art/preloader/images/Popiplay_logo/Popiplay_logo00013.png differ diff --git a/art/preloader/images/Popiplay_logo/Popiplay_logo00014.png b/art/preloader/images/Popiplay_logo/Popiplay_logo00014.png new file mode 100644 index 0000000..068b581 Binary files /dev/null and b/art/preloader/images/Popiplay_logo/Popiplay_logo00014.png differ diff --git a/art/preloader/images/Popiplay_logo/Popiplay_logo00015.png b/art/preloader/images/Popiplay_logo/Popiplay_logo00015.png new file mode 100644 index 0000000..fc1df2b Binary files /dev/null and b/art/preloader/images/Popiplay_logo/Popiplay_logo00015.png differ diff --git a/art/preloader/images/Popiplay_logo/Popiplay_logo00016.png b/art/preloader/images/Popiplay_logo/Popiplay_logo00016.png new file mode 100644 index 0000000..0a2dad3 Binary files /dev/null and b/art/preloader/images/Popiplay_logo/Popiplay_logo00016.png differ diff --git a/art/preloader/images/Popiplay_logo/Popiplay_logo00017.png b/art/preloader/images/Popiplay_logo/Popiplay_logo00017.png new file mode 100644 index 0000000..800ad6e Binary files /dev/null and b/art/preloader/images/Popiplay_logo/Popiplay_logo00017.png differ diff --git a/art/preloader/images/Popiplay_logo/Popiplay_logo00018.png b/art/preloader/images/Popiplay_logo/Popiplay_logo00018.png new file mode 100644 index 0000000..330e738 Binary files /dev/null and b/art/preloader/images/Popiplay_logo/Popiplay_logo00018.png differ diff --git a/art/preloader/images/Popiplay_logo/Popiplay_logo00019.png b/art/preloader/images/Popiplay_logo/Popiplay_logo00019.png new file mode 100644 index 0000000..7aa8c22 Binary files /dev/null and b/art/preloader/images/Popiplay_logo/Popiplay_logo00019.png differ diff --git a/art/preloader/images/Popiplay_logo/Popiplay_logo00020.png b/art/preloader/images/Popiplay_logo/Popiplay_logo00020.png new file mode 100644 index 0000000..6c4fa33 Binary files /dev/null and b/art/preloader/images/Popiplay_logo/Popiplay_logo00020.png differ diff --git a/art/preloader/images/Popiplay_logo/Popiplay_logo00021.png b/art/preloader/images/Popiplay_logo/Popiplay_logo00021.png new file mode 100644 index 0000000..0a8f347 Binary files /dev/null and b/art/preloader/images/Popiplay_logo/Popiplay_logo00021.png differ diff --git a/art/preloader/images/Popiplay_logo/Popiplay_logo00022.png b/art/preloader/images/Popiplay_logo/Popiplay_logo00022.png new file mode 100644 index 0000000..9407bba Binary files /dev/null and b/art/preloader/images/Popiplay_logo/Popiplay_logo00022.png differ diff --git a/art/preloader/images/Popiplay_logo/Popiplay_logo00023.png b/art/preloader/images/Popiplay_logo/Popiplay_logo00023.png new file mode 100644 index 0000000..aa8a77d Binary files /dev/null and b/art/preloader/images/Popiplay_logo/Popiplay_logo00023.png differ diff --git a/art/preloader/images/Popiplay_logo/Popiplay_logo00024.png b/art/preloader/images/Popiplay_logo/Popiplay_logo00024.png new file mode 100644 index 0000000..2d0960f Binary files /dev/null and b/art/preloader/images/Popiplay_logo/Popiplay_logo00024.png differ diff --git a/art/preloader/images/Popiplay_logo/Popiplay_logo00025.png b/art/preloader/images/Popiplay_logo/Popiplay_logo00025.png new file mode 100644 index 0000000..5a67ed5 Binary files /dev/null and b/art/preloader/images/Popiplay_logo/Popiplay_logo00025.png differ diff --git a/art/preloader/images/Popiplay_logo/Popiplay_logo00026.png b/art/preloader/images/Popiplay_logo/Popiplay_logo00026.png new file mode 100644 index 0000000..1a11418 Binary files /dev/null and b/art/preloader/images/Popiplay_logo/Popiplay_logo00026.png differ diff --git a/art/preloader/images/Popiplay_logo/Popiplay_logo00027.png b/art/preloader/images/Popiplay_logo/Popiplay_logo00027.png new file mode 100644 index 0000000..1f898a0 Binary files /dev/null and b/art/preloader/images/Popiplay_logo/Popiplay_logo00027.png differ diff --git a/art/preloader/images/Popiplay_logo/Popiplay_logo00028.png b/art/preloader/images/Popiplay_logo/Popiplay_logo00028.png new file mode 100644 index 0000000..79a153b Binary files /dev/null and b/art/preloader/images/Popiplay_logo/Popiplay_logo00028.png differ diff --git a/art/preloader/images/Popiplay_logo/Popiplay_logo00029.png b/art/preloader/images/Popiplay_logo/Popiplay_logo00029.png new file mode 100644 index 0000000..809be01 Binary files /dev/null and b/art/preloader/images/Popiplay_logo/Popiplay_logo00029.png differ diff --git a/art/preloader/images/Popiplay_logo/Popiplay_logo00030.png b/art/preloader/images/Popiplay_logo/Popiplay_logo00030.png new file mode 100644 index 0000000..de09ac2 Binary files /dev/null and b/art/preloader/images/Popiplay_logo/Popiplay_logo00030.png differ diff --git a/art/preloader/images/Popiplay_logo/Popiplay_logo00031.png b/art/preloader/images/Popiplay_logo/Popiplay_logo00031.png new file mode 100644 index 0000000..4587bba Binary files /dev/null and b/art/preloader/images/Popiplay_logo/Popiplay_logo00031.png differ diff --git a/art/preloader/images/Popiplay_logo/Popiplay_logo00032.png b/art/preloader/images/Popiplay_logo/Popiplay_logo00032.png new file mode 100644 index 0000000..297f497 Binary files /dev/null and b/art/preloader/images/Popiplay_logo/Popiplay_logo00032.png differ diff --git a/art/preloader/images/Popiplay_logo/Popiplay_logo00033.png b/art/preloader/images/Popiplay_logo/Popiplay_logo00033.png new file mode 100644 index 0000000..b7b1329 Binary files /dev/null and b/art/preloader/images/Popiplay_logo/Popiplay_logo00033.png differ diff --git a/art/preloader/images/Popiplay_logo/Popiplay_logo00034.png b/art/preloader/images/Popiplay_logo/Popiplay_logo00034.png new file mode 100644 index 0000000..ea09afd Binary files /dev/null and b/art/preloader/images/Popiplay_logo/Popiplay_logo00034.png differ diff --git a/art/preloader/images/Popiplay_logo/Popiplay_logo00035.png b/art/preloader/images/Popiplay_logo/Popiplay_logo00035.png new file mode 100644 index 0000000..eb903c9 Binary files /dev/null and b/art/preloader/images/Popiplay_logo/Popiplay_logo00035.png differ diff --git a/art/preloader/images/Popiplay_logo/Popiplay_logo00036.png b/art/preloader/images/Popiplay_logo/Popiplay_logo00036.png new file mode 100644 index 0000000..e644c63 Binary files /dev/null and b/art/preloader/images/Popiplay_logo/Popiplay_logo00036.png differ diff --git a/art/preloader/images/Popiplay_logo/Popiplay_logo00037.png b/art/preloader/images/Popiplay_logo/Popiplay_logo00037.png new file mode 100644 index 0000000..dc9f414 Binary files /dev/null and b/art/preloader/images/Popiplay_logo/Popiplay_logo00037.png differ diff --git a/art/preloader/images/Popiplay_logo/Popiplay_logo00038.png b/art/preloader/images/Popiplay_logo/Popiplay_logo00038.png new file mode 100644 index 0000000..a47eaf9 Binary files /dev/null and b/art/preloader/images/Popiplay_logo/Popiplay_logo00038.png differ diff --git a/art/preloader/images/Popiplay_logo/Popiplay_logo00039.png b/art/preloader/images/Popiplay_logo/Popiplay_logo00039.png new file mode 100644 index 0000000..49e074f Binary files /dev/null and b/art/preloader/images/Popiplay_logo/Popiplay_logo00039.png differ diff --git a/art/preloader/images/Popiplay_logo/Popiplay_logo00040.png b/art/preloader/images/Popiplay_logo/Popiplay_logo00040.png new file mode 100644 index 0000000..431485f Binary files /dev/null and b/art/preloader/images/Popiplay_logo/Popiplay_logo00040.png differ diff --git a/art/preloader/images/Popiplay_logo/Popiplay_logo00041.png b/art/preloader/images/Popiplay_logo/Popiplay_logo00041.png new file mode 100644 index 0000000..70a403d Binary files /dev/null and b/art/preloader/images/Popiplay_logo/Popiplay_logo00041.png differ diff --git a/art/preloader/images/Popiplay_logo/Popiplay_logo00042.png b/art/preloader/images/Popiplay_logo/Popiplay_logo00042.png new file mode 100644 index 0000000..c8425ea Binary files /dev/null and b/art/preloader/images/Popiplay_logo/Popiplay_logo00042.png differ diff --git a/art/preloader/images/Popiplay_logo/Popiplay_logo00043.png b/art/preloader/images/Popiplay_logo/Popiplay_logo00043.png new file mode 100644 index 0000000..76cb42c Binary files /dev/null and b/art/preloader/images/Popiplay_logo/Popiplay_logo00043.png differ diff --git a/art/preloader/images/Popiplay_logo/Popiplay_logo00044.png b/art/preloader/images/Popiplay_logo/Popiplay_logo00044.png new file mode 100644 index 0000000..0eebf34 Binary files /dev/null and b/art/preloader/images/Popiplay_logo/Popiplay_logo00044.png differ diff --git a/art/preloader/images/Popiplay_logo/Popiplay_logo00045.png b/art/preloader/images/Popiplay_logo/Popiplay_logo00045.png new file mode 100644 index 0000000..f238f22 Binary files /dev/null and b/art/preloader/images/Popiplay_logo/Popiplay_logo00045.png differ diff --git a/art/preloader/images/Popiplay_logo/Popiplay_logo00046.png b/art/preloader/images/Popiplay_logo/Popiplay_logo00046.png new file mode 100644 index 0000000..fc729ee Binary files /dev/null and b/art/preloader/images/Popiplay_logo/Popiplay_logo00046.png differ diff --git a/art/preloader/images/Popiplay_logo/Popiplay_logo00047.png b/art/preloader/images/Popiplay_logo/Popiplay_logo00047.png new file mode 100644 index 0000000..034dc28 Binary files /dev/null and b/art/preloader/images/Popiplay_logo/Popiplay_logo00047.png differ diff --git a/art/preloader/images/Popiplay_logo/Popiplay_logo00048.png b/art/preloader/images/Popiplay_logo/Popiplay_logo00048.png new file mode 100644 index 0000000..8021d09 Binary files /dev/null and b/art/preloader/images/Popiplay_logo/Popiplay_logo00048.png differ diff --git a/art/preloader/images/Popiplay_logo/Popiplay_logo00049.png b/art/preloader/images/Popiplay_logo/Popiplay_logo00049.png new file mode 100644 index 0000000..62bd2a3 Binary files /dev/null and b/art/preloader/images/Popiplay_logo/Popiplay_logo00049.png differ diff --git a/art/preloader/images/Popiplay_logo/Popiplay_logo00050.png b/art/preloader/images/Popiplay_logo/Popiplay_logo00050.png new file mode 100644 index 0000000..002a773 Binary files /dev/null and b/art/preloader/images/Popiplay_logo/Popiplay_logo00050.png differ diff --git a/art/preloader/images/Popiplay_logo/Popiplay_logo00051.png b/art/preloader/images/Popiplay_logo/Popiplay_logo00051.png new file mode 100644 index 0000000..d9df19d Binary files /dev/null and b/art/preloader/images/Popiplay_logo/Popiplay_logo00051.png differ diff --git a/art/preloader/images/Popiplay_logo/Popiplay_logo00052.png b/art/preloader/images/Popiplay_logo/Popiplay_logo00052.png new file mode 100644 index 0000000..19bdef9 Binary files /dev/null and b/art/preloader/images/Popiplay_logo/Popiplay_logo00052.png differ diff --git a/art/preloader/images/Popiplay_logo/Popiplay_logo00053.png b/art/preloader/images/Popiplay_logo/Popiplay_logo00053.png new file mode 100644 index 0000000..103e478 Binary files /dev/null and b/art/preloader/images/Popiplay_logo/Popiplay_logo00053.png differ diff --git a/art/preloader/images/Popiplay_logo/Popiplay_logo00054.png b/art/preloader/images/Popiplay_logo/Popiplay_logo00054.png new file mode 100644 index 0000000..8db5089 Binary files /dev/null and b/art/preloader/images/Popiplay_logo/Popiplay_logo00054.png differ diff --git a/art/preloader/images/Popiplay_logo/Popiplay_logo00055.png b/art/preloader/images/Popiplay_logo/Popiplay_logo00055.png new file mode 100644 index 0000000..6e26fa1 Binary files /dev/null and b/art/preloader/images/Popiplay_logo/Popiplay_logo00055.png differ diff --git a/art/preloader/images/Popiplay_logo/Popiplay_logo00056.png b/art/preloader/images/Popiplay_logo/Popiplay_logo00056.png new file mode 100644 index 0000000..78a91b2 Binary files /dev/null and b/art/preloader/images/Popiplay_logo/Popiplay_logo00056.png differ diff --git a/art/preloader/images/Popiplay_logo/Popiplay_logo00057.png b/art/preloader/images/Popiplay_logo/Popiplay_logo00057.png new file mode 100644 index 0000000..8507457 Binary files /dev/null and b/art/preloader/images/Popiplay_logo/Popiplay_logo00057.png differ diff --git a/art/preloader/images/Popiplay_logo/Popiplay_logo00058.png b/art/preloader/images/Popiplay_logo/Popiplay_logo00058.png new file mode 100644 index 0000000..62a2e78 Binary files /dev/null and b/art/preloader/images/Popiplay_logo/Popiplay_logo00058.png differ diff --git a/art/preloader/images/Popiplay_logo/Popiplay_logo00059.png b/art/preloader/images/Popiplay_logo/Popiplay_logo00059.png new file mode 100644 index 0000000..e6d1956 Binary files /dev/null and b/art/preloader/images/Popiplay_logo/Popiplay_logo00059.png differ diff --git a/art/preloader/images/Popiplay_logo/Popiplay_logo00060.png b/art/preloader/images/Popiplay_logo/Popiplay_logo00060.png new file mode 100644 index 0000000..84c50e4 Binary files /dev/null and b/art/preloader/images/Popiplay_logo/Popiplay_logo00060.png differ diff --git a/art/preloader/images/Popiplay_logo/Popiplay_logo00061.png b/art/preloader/images/Popiplay_logo/Popiplay_logo00061.png new file mode 100644 index 0000000..ef9ca50 Binary files /dev/null and b/art/preloader/images/Popiplay_logo/Popiplay_logo00061.png differ diff --git a/art/preloader/images/Popiplay_logo/Popiplay_logo00062.png b/art/preloader/images/Popiplay_logo/Popiplay_logo00062.png new file mode 100644 index 0000000..6cde15e Binary files /dev/null and b/art/preloader/images/Popiplay_logo/Popiplay_logo00062.png differ diff --git a/art/preloader/images/Popiplay_logo/Popiplay_logo00063.png b/art/preloader/images/Popiplay_logo/Popiplay_logo00063.png new file mode 100644 index 0000000..1b5625d Binary files /dev/null and b/art/preloader/images/Popiplay_logo/Popiplay_logo00063.png differ diff --git a/art/preloader/images/Popiplay_logo/Popiplay_logo00064.png b/art/preloader/images/Popiplay_logo/Popiplay_logo00064.png new file mode 100644 index 0000000..4993d98 Binary files /dev/null and b/art/preloader/images/Popiplay_logo/Popiplay_logo00064.png differ diff --git a/art/preloader/images/Popiplay_logo/Popiplay_logo00065.png b/art/preloader/images/Popiplay_logo/Popiplay_logo00065.png new file mode 100644 index 0000000..12fa2c0 Binary files /dev/null and b/art/preloader/images/Popiplay_logo/Popiplay_logo00065.png differ diff --git a/art/preloader/images/Popiplay_logo/Popiplay_logo00066.png b/art/preloader/images/Popiplay_logo/Popiplay_logo00066.png new file mode 100644 index 0000000..94705ca Binary files /dev/null and b/art/preloader/images/Popiplay_logo/Popiplay_logo00066.png differ diff --git a/art/preloader/images/Popiplay_logo/Popiplay_logo00067.png b/art/preloader/images/Popiplay_logo/Popiplay_logo00067.png new file mode 100644 index 0000000..ceae6e4 Binary files /dev/null and b/art/preloader/images/Popiplay_logo/Popiplay_logo00067.png differ diff --git a/art/preloader/images/Popiplay_logo/Popiplay_logo00068.png b/art/preloader/images/Popiplay_logo/Popiplay_logo00068.png new file mode 100644 index 0000000..0926106 Binary files /dev/null and b/art/preloader/images/Popiplay_logo/Popiplay_logo00068.png differ diff --git a/art/preloader/images/Popiplay_logo/Popiplay_logo00069.png b/art/preloader/images/Popiplay_logo/Popiplay_logo00069.png new file mode 100644 index 0000000..2b0fc1f Binary files /dev/null and b/art/preloader/images/Popiplay_logo/Popiplay_logo00069.png differ diff --git a/art/preloader/images/Popiplay_logo/Popiplay_logo00070.png b/art/preloader/images/Popiplay_logo/Popiplay_logo00070.png new file mode 100644 index 0000000..ae2c946 Binary files /dev/null and b/art/preloader/images/Popiplay_logo/Popiplay_logo00070.png differ diff --git a/art/preloader/images/Popiplay_logo/Popiplay_logo00071.png b/art/preloader/images/Popiplay_logo/Popiplay_logo00071.png new file mode 100644 index 0000000..e3b9a76 Binary files /dev/null and b/art/preloader/images/Popiplay_logo/Popiplay_logo00071.png differ diff --git a/art/preloader/images/Popiplay_logo/Popiplay_logo00072.png b/art/preloader/images/Popiplay_logo/Popiplay_logo00072.png new file mode 100644 index 0000000..2aea4d2 Binary files /dev/null and b/art/preloader/images/Popiplay_logo/Popiplay_logo00072.png differ diff --git a/art/preloader/images/Popiplay_logo/Popiplay_logo00073.png b/art/preloader/images/Popiplay_logo/Popiplay_logo00073.png new file mode 100644 index 0000000..6f33709 Binary files /dev/null and b/art/preloader/images/Popiplay_logo/Popiplay_logo00073.png differ diff --git a/art/preloader/images/Popiplay_logo/Popiplay_logo00074.png b/art/preloader/images/Popiplay_logo/Popiplay_logo00074.png new file mode 100644 index 0000000..68fb140 Binary files /dev/null and b/art/preloader/images/Popiplay_logo/Popiplay_logo00074.png differ diff --git a/art/preloader/images/Popiplay_logo/Popiplay_logo00075.png b/art/preloader/images/Popiplay_logo/Popiplay_logo00075.png new file mode 100644 index 0000000..78cf907 Binary files /dev/null and b/art/preloader/images/Popiplay_logo/Popiplay_logo00075.png differ diff --git a/art/preloader/images/Popiplay_logo/Popiplay_logo00076.png b/art/preloader/images/Popiplay_logo/Popiplay_logo00076.png new file mode 100644 index 0000000..64a2dc6 Binary files /dev/null and b/art/preloader/images/Popiplay_logo/Popiplay_logo00076.png differ diff --git a/art/preloader/images/Popiplay_logo/Popiplay_logo00077.png b/art/preloader/images/Popiplay_logo/Popiplay_logo00077.png new file mode 100644 index 0000000..15135f5 Binary files /dev/null and b/art/preloader/images/Popiplay_logo/Popiplay_logo00077.png differ diff --git a/art/preloader/images/Popiplay_logo/Popiplay_logo00078.png b/art/preloader/images/Popiplay_logo/Popiplay_logo00078.png new file mode 100644 index 0000000..70073cf Binary files /dev/null and b/art/preloader/images/Popiplay_logo/Popiplay_logo00078.png differ diff --git a/art/preloader/images/Popiplay_logo/Popiplay_logo00079.png b/art/preloader/images/Popiplay_logo/Popiplay_logo00079.png new file mode 100644 index 0000000..18d759e Binary files /dev/null and b/art/preloader/images/Popiplay_logo/Popiplay_logo00079.png differ diff --git a/art/preloader/images/Popiplay_logo/Popiplay_logo00080.png b/art/preloader/images/Popiplay_logo/Popiplay_logo00080.png new file mode 100644 index 0000000..44661b8 Binary files /dev/null and b/art/preloader/images/Popiplay_logo/Popiplay_logo00080.png differ diff --git a/art/preloader/images/Popiplay_logo/Popiplay_logo00081.png b/art/preloader/images/Popiplay_logo/Popiplay_logo00081.png new file mode 100644 index 0000000..e8453fc Binary files /dev/null and b/art/preloader/images/Popiplay_logo/Popiplay_logo00081.png differ diff --git a/art/preloader/images/Popiplay_logo/Popiplay_logo00082.png b/art/preloader/images/Popiplay_logo/Popiplay_logo00082.png new file mode 100644 index 0000000..07d7a14 Binary files /dev/null and b/art/preloader/images/Popiplay_logo/Popiplay_logo00082.png differ diff --git a/art/preloader/images/Popiplay_logo/Popiplay_logo00083.png b/art/preloader/images/Popiplay_logo/Popiplay_logo00083.png new file mode 100644 index 0000000..aae9ad1 Binary files /dev/null and b/art/preloader/images/Popiplay_logo/Popiplay_logo00083.png differ diff --git a/art/preloader/images/Popiplay_logo/Popiplay_logo00084.png b/art/preloader/images/Popiplay_logo/Popiplay_logo00084.png new file mode 100644 index 0000000..ad72576 Binary files /dev/null and b/art/preloader/images/Popiplay_logo/Popiplay_logo00084.png differ diff --git a/art/preloader/images/Popiplay_logo/Popiplay_logo00085.png b/art/preloader/images/Popiplay_logo/Popiplay_logo00085.png new file mode 100644 index 0000000..c415835 Binary files /dev/null and b/art/preloader/images/Popiplay_logo/Popiplay_logo00085.png differ diff --git a/art/preloader/images/Popiplay_logo/Popiplay_logo00086.png b/art/preloader/images/Popiplay_logo/Popiplay_logo00086.png new file mode 100644 index 0000000..ae4921c Binary files /dev/null and b/art/preloader/images/Popiplay_logo/Popiplay_logo00086.png differ diff --git a/art/preloader/images/glow.png b/art/preloader/images/glow.png new file mode 100644 index 0000000..ec80754 Binary files /dev/null and b/art/preloader/images/glow.png differ diff --git a/art/preloader/images/logo.png b/art/preloader/images/logo.png new file mode 100644 index 0000000..e887552 Binary files /dev/null and b/art/preloader/images/logo.png differ diff --git a/art/preloader/preloader.spine b/art/preloader/preloader.spine new file mode 100644 index 0000000..0afab8e Binary files /dev/null and b/art/preloader/preloader.spine differ diff --git a/art/rules/images/Xbutton_all.png b/art/rules/images/Xbutton_all.png new file mode 100644 index 0000000..0e553b6 Binary files /dev/null and b/art/rules/images/Xbutton_all.png differ diff --git a/art/rules/images/arrow_l_button.png b/art/rules/images/arrow_l_button.png new file mode 100644 index 0000000..7607833 Binary files /dev/null and b/art/rules/images/arrow_l_button.png differ diff --git a/art/rules/images/arrow_l_button_h.png b/art/rules/images/arrow_l_button_h.png new file mode 100644 index 0000000..9fe27a9 Binary files /dev/null and b/art/rules/images/arrow_l_button_h.png differ diff --git a/art/rules/images/arrow_r_button.png b/art/rules/images/arrow_r_button.png new file mode 100644 index 0000000..4e7b4ff Binary files /dev/null and b/art/rules/images/arrow_r_button.png differ diff --git a/art/rules/images/arrow_r_button_h.png b/art/rules/images/arrow_r_button_h.png new file mode 100644 index 0000000..ca18a93 Binary files /dev/null and b/art/rules/images/arrow_r_button_h.png differ diff --git a/art/rules/images/game_logo.png b/art/rules/images/game_logo.png new file mode 100644 index 0000000..2c8dea3 Binary files /dev/null and b/art/rules/images/game_logo.png differ diff --git a/art/rules/images/popiplay_logo.png b/art/rules/images/popiplay_logo.png new file mode 100644 index 0000000..5f32eff Binary files /dev/null and b/art/rules/images/popiplay_logo.png differ diff --git a/art/rules/images/title.png b/art/rules/images/title.png new file mode 100644 index 0000000..76f7020 Binary files /dev/null and b/art/rules/images/title.png differ diff --git a/art/rules/images/underline_all.png b/art/rules/images/underline_all.png new file mode 100644 index 0000000..bfa5208 Binary files /dev/null and b/art/rules/images/underline_all.png differ diff --git a/art/rules/rules.spine b/art/rules/rules.spine new file mode 100644 index 0000000..5e07778 Binary files /dev/null and b/art/rules/rules.spine differ diff --git a/art/startpage/images/200x.png b/art/startpage/images/200x.png new file mode 100644 index 0000000..6abb560 Binary files /dev/null and b/art/startpage/images/200x.png differ diff --git a/art/startpage/images/20x.png b/art/startpage/images/20x.png new file mode 100644 index 0000000..223d17e Binary files /dev/null and b/art/startpage/images/20x.png differ diff --git a/art/startpage/images/2x.png b/art/startpage/images/2x.png new file mode 100644 index 0000000..f7c7236 Binary files /dev/null and b/art/startpage/images/2x.png differ diff --git a/art/startpage/images/amazon_startpage.json b/art/startpage/images/amazon_startpage.json new file mode 100644 index 0000000..5f2afe0 --- /dev/null +++ b/art/startpage/images/amazon_startpage.json @@ -0,0 +1,253 @@ +{ "skeleton": { "images": "C:/THE POSO/99.Amazon City of Gold/Startpage/images/" }, +"PhotoshopToSpine": { "scale": 1, "padding": 1, "trim": true }, +"bones": [ + { "name": "root" } +], +"slots": [ + { "name": "bg", "bone": "root", "attachment": "bg" }, + { "name": "source_bg_startpage _x2", "bone": "root", "attachment": "source_bg_startpage _x2" }, + { "name": "bg_startpage_sample", "bone": "root", "attachment": "bg_startpage_sample" }, + { "name": "wilds_rays", "bone": "root", "attachment": "wilds_rays" }, + { "name": "wilds_stone_glow_1_l", "bone": "root", "attachment": "wilds_stone_glow_1_l" }, + { "name": "wilds_stone_l", "bone": "root", "attachment": "wilds_stone_l" }, + { "name": "wilds_stone_glow_1_r", "bone": "root", "attachment": "wilds_stone_glow_1_r" }, + { "name": "wilds_stone_r", "bone": "root", "attachment": "wilds_stone_r" }, + { "name": "wilds_stone_glow_1_top", "bone": "root", "attachment": "wilds_stone_glow_1_top" }, + { "name": "wilds_stone_top", "bone": "root", "attachment": "wilds_stone_top" }, + { "name": "wild_3_win", "bone": "root", "attachment": "wild_3_win" }, + { "name": "wild3_frame", "bone": "root", "attachment": "wild3_frame" }, + { "name": "200x", "bone": "root", "attachment": "200x", "blend": "screen" }, + { "name": "wild_2_win", "bone": "root", "attachment": "wild_2_win" }, + { "name": "wild2_frame", "bone": "root", "attachment": "wild2_frame" }, + { "name": "20x", "bone": "root", "attachment": "20x", "blend": "screen" }, + { "name": "wild_1_win", "bone": "root", "attachment": "wild_1_win" }, + { "name": "wild1_frame", "bone": "root", "attachment": "wild1_frame" }, + { "name": "2x", "bone": "root", "attachment": "2x", "blend": "screen" }, + { "name": "wilds_light_04", "bone": "root", "attachment": "wilds_light_04" }, + { "name": "wilds_light_03", "bone": "root", "attachment": "wilds_light_03" }, + { "name": "wilds_light_02", "bone": "root", "attachment": "wilds_light_02" }, + { "name": "wilds_light_01", "bone": "root", "attachment": "wilds_light_01" }, + { "name": "ex_wilds_frame", "bone": "root", "attachment": "ex_wilds_frame" }, + { "name": "ex_wilds_rays", "bone": "root", "attachment": "ex_wilds_rays" }, + { "name": "ex_wilds_glow", "bone": "root", "attachment": "ex_wilds_glow" }, + { "name": "expnd_w3_bg", "bone": "root", "attachment": "expnd_w3_bg" }, + { "name": "expnd_w3_bg_add", "bone": "root", "attachment": "expnd_w3_bg_add" }, + { "name": "expnd_w3_pttrn_glow", "bone": "root", "attachment": "expnd_w3_pttrn_glow" }, + { "name": "expnd_w3_pttrn", "bone": "root", "attachment": "expnd_w3_pttrn" }, + { "name": "w3_expnd_multipl_bg", "bone": "root", "attachment": "w3_expnd_multipl_bg" }, + { "name": "w3_expnd_frame", "bone": "root", "attachment": "w3_expnd_frame" }, + { "name": "w3_X10", "bone": "root", "attachment": "w3_X10" }, + { "name": "expnd_w2_bg", "bone": "root", "attachment": "expnd_w2_bg" }, + { "name": "expnd_w2_bg_add", "bone": "root", "attachment": "expnd_w2_bg_add" }, + { "name": "ex_wild2_glow", "bone": "root", "attachment": "ex_wild2_glow" }, + { "name": "ex_wild2", "bone": "root", "attachment": "ex_wild2" }, + { "name": "w2_expnd_multipl_bg", "bone": "root", "attachment": "w2_expnd_multipl_bg" }, + { "name": "w2_X5", "bone": "root", "attachment": "w2_X5" }, + { "name": "w2_expnd_frame", "bone": "root", "attachment": "w2_expnd_frame" }, + { "name": "expnd_w1_bg", "bone": "root", "attachment": "expnd_w1_bg" }, + { "name": "expnd_w1_bg_add", "bone": "root", "attachment": "expnd_w1_bg_add" }, + { "name": "ex_wild1_glow", "bone": "root", "attachment": "ex_wild1_glow" }, + { "name": "ex_wild1", "bone": "root", "attachment": "ex_wild1" }, + { "name": "w1_expnd_multipl_bg", "bone": "root", "attachment": "w1_expnd_multipl_bg" }, + { "name": "w1_expnd_frame", "bone": "root", "attachment": "w1_expnd_frame" }, + { "name": "w1_X2", "bone": "root", "attachment": "w1_X2" }, + { "name": "ex_wild_glow_l_03", "bone": "root", "attachment": "ex_wild_glow_l_03" }, + { "name": "ex_wild_glow_l_02", "bone": "root", "attachment": "ex_wild_glow_l_02" }, + { "name": "ex_wild_glow_l_01", "bone": "root", "attachment": "ex_wild_glow_l_01" }, + { "name": "ex_wilds_light_03", "bone": "root", "attachment": "ex_wilds_light_03" }, + { "name": "ex_wilds_light_02", "bone": "root", "attachment": "ex_wilds_light_02" }, + { "name": "ex_wilds_light_01", "bone": "root", "attachment": "ex_wilds_light_01" }, + { "name": "max win X 10.000", "bone": "root", "attachment": "max win X 10.000", "blend": "screen" }, + { "name": "tap to start", "bone": "root", "attachment": "tap to start", "blend": "screen" }, + { "name": "multipliers every new spin", "bone": "root", "attachment": "multipliers every new spin", "blend": "screen" }, + { "name": "Reels are stacked Wilds with", "bone": "root", "attachment": "Reels are stacked Wilds with", "blend": "screen" }, + { "name": "up to x200 values", "bone": "root", "attachment": "up to x200 values", "blend": "screen" }, + { "name": "Wilds with", "bone": "root", "attachment": "Wilds with", "blend": "screen" }, + { "name": "logo", "bone": "root", "attachment": "logo" } +], +"skins": { + "default": { + "bg": { + "bg": { "x": 0, "y": 0, "width": 2252, "height": 1082 } + }, + "source_bg_startpage _x2": { + "source_bg_startpage _x2": { "x": 0.5, "y": 18, "width": 789, "height": 446 } + }, + "bg_startpage_sample": { + "bg_startpage_sample": { "x": -0.5, "y": 27, "width": 1575, "height": 890 } + }, + "wilds_rays": { + "wilds_rays": { "x": -364, "y": -77, "width": 736, "height": 612 } + }, + "wilds_stone_glow_1_l": { + "wilds_stone_glow_1_l": { "x": -546, "y": -9, "width": 302, "height": 294 } + }, + "wilds_stone_l": { + "wilds_stone_l": { "x": -546.5, "y": -9, "width": 269, "height": 260 } + }, + "wilds_stone_glow_1_r": { + "wilds_stone_glow_1_r": { "x": -194, "y": -10, "width": 302, "height": 294 } + }, + "wilds_stone_r": { + "wilds_stone_r": { "x": -193.5, "y": -10, "width": 269, "height": 260 } + }, + "wilds_stone_glow_1_top": { + "wilds_stone_glow_1_top": { "x": -375.5, "y": -83, "width": 261, "height": 248 } + }, + "wilds_stone_top": { + "wilds_stone_top": { "x": -375.5, "y": -83, "width": 225, "height": 212 } + }, + "wild_3_win": { + "wild_3_win": { "x": -375.5, "y": -61.5, "width": 193, "height": 129 } + }, + "wild3_frame": { + "wild3_frame": { "x": -375.5, "y": -72.5, "width": 185, "height": 141 } + }, + "200x": { + "200x": { "x": -376, "y": -142.5, "width": 162, "height": 59 } + }, + "wild_2_win": { + "wild_2_win": { "x": -180, "y": 10, "width": 192, "height": 150 } + }, + "wild2_frame": { + "wild2_frame": { "x": -179.5, "y": -3.5, "width": 183, "height": 153 } + }, + "20x": { + "20x": { "x": -208, "y": -68, "width": 130, "height": 82 } + }, + "wild_1_win": { + "wild_1_win": { "x": -558.5, "y": 15, "width": 191, "height": 152 } + }, + "wild1_frame": { + "wild1_frame": { "x": -559.5, "y": 2.5, "width": 181, "height": 155 } + }, + "2x": { + "2x": { "x": -526, "y": -61, "width": 94, "height": 76 } + }, + "wilds_light_04": { + "wilds_light_04": { "x": -372, "y": 142, "width": 420, "height": 164 } + }, + "wilds_light_03": { + "wilds_light_03": { "x": -376, "y": -252, "width": 226, "height": 80 } + }, + "wilds_light_02": { + "wilds_light_02": { "x": 8, "y": 88.5, "width": 62, "height": 89 } + }, + "wilds_light_01": { + "wilds_light_01": { "x": -752, "y": 88.5, "width": 62, "height": 89 } + }, + "ex_wilds_frame": { + "ex_wilds_frame": { "x": 355.5, "y": -25.5, "width": 665, "height": 507 } + }, + "ex_wilds_rays": { + "ex_wilds_rays": { "x": 353, "y": -26, "width": 736, "height": 612 } + }, + "ex_wilds_glow": { + "ex_wilds_glow": { "x": 355, "y": -27, "width": 432, "height": 560 } + }, + "expnd_w3_bg": { + "expnd_w3_bg": { "x": 489, "y": -23.5, "width": 150, "height": 527 } + }, + "expnd_w3_bg_add": { + "expnd_w3_bg_add": { "x": 489, "y": -23.5, "width": 150, "height": 527 } + }, + "expnd_w3_pttrn_glow": { + "expnd_w3_pttrn_glow": { "x": 487.5, "y": 7.5, "width": 135, "height": 435 } + }, + "expnd_w3_pttrn": { + "expnd_w3_pttrn": { "x": 489, "y": 8, "width": 182, "height": 428 } + }, + "w3_expnd_multipl_bg": { + "w3_expnd_multipl_bg": { "x": 488, "y": -245.5, "width": 138, "height": 83 } + }, + "w3_expnd_frame": { + "w3_expnd_frame": { "x": 488, "y": -24.5, "width": 138, "height": 531 } + }, + "w3_X10": { + "w3_X10": { "x": 489.5, "y": -241, "width": 79, "height": 40 } + }, + "expnd_w2_bg": { + "expnd_w2_bg": { "x": 354.5, "y": -25, "width": 135, "height": 524 } + }, + "expnd_w2_bg_add": { + "expnd_w2_bg_add": { "x": 354.5, "y": -25, "width": 135, "height": 524 } + }, + "ex_wild2_glow": { + "ex_wild2_glow": { "x": 356, "y": -28.5, "width": 144, "height": 459 } + }, + "ex_wild2": { + "ex_wild2": { "x": 356, "y": -28.5, "width": 140, "height": 453 } + }, + "w2_expnd_multipl_bg": { + "w2_expnd_multipl_bg": { "x": 355, "y": -245.5, "width": 138, "height": 83 } + }, + "w2_X5": { + "w2_X5": { "x": 355.5, "y": -241.5, "width": 55, "height": 39 } + }, + "w2_expnd_frame": { + "w2_expnd_frame": { "x": 355, "y": -24.5, "width": 138, "height": 531 } + }, + "expnd_w1_bg": { + "expnd_w1_bg": { "x": 222.5, "y": -25, "width": 135, "height": 524 } + }, + "expnd_w1_bg_add": { + "expnd_w1_bg_add": { "x": 222.5, "y": -25, "width": 135, "height": 524 } + }, + "ex_wild1_glow": { + "ex_wild1_glow": { "x": 219.5, "y": -21, "width": 139, "height": 456 } + }, + "ex_wild1": { + "ex_wild1": { "x": 221, "y": -21.5, "width": 136, "height": 451 } + }, + "w1_expnd_multipl_bg": { + "w1_expnd_multipl_bg": { "x": 222.5, "y": -245.5, "width": 137, "height": 83 } + }, + "w1_expnd_frame": { + "w1_expnd_frame": { "x": 222.5, "y": -24.5, "width": 137, "height": 531 } + }, + "w1_X2": { + "w1_X2": { "x": 223, "y": -240.5, "width": 56, "height": 39 } + }, + "ex_wild_glow_l_03": { + "ex_wild_glow_l_03": { "x": 488, "y": -24, "width": 134, "height": 524 } + }, + "ex_wild_glow_l_02": { + "ex_wild_glow_l_02": { "x": 355, "y": -24, "width": 134, "height": 524 } + }, + "ex_wild_glow_l_01": { + "ex_wild_glow_l_01": { "x": 222, "y": -24, "width": 134, "height": 524 } + }, + "ex_wilds_light_03": { + "ex_wilds_light_03": { "x": 585.5, "y": -32, "width": 71, "height": 212 } + }, + "ex_wilds_light_02": { + "ex_wilds_light_02": { "x": 120.5, "y": -32, "width": 71, "height": 212 } + }, + "ex_wilds_light_01": { + "ex_wilds_light_01": { "x": 353, "y": 253, "width": 450, "height": 90 } + }, + "max win X 10.000": { + "max win X 10.000": { "x": 0.5, "y": 306, "width": 491, "height": 58 } + }, + "tap to start": { + "tap to start": { "x": 0, "y": -459, "width": 328, "height": 56 } + }, + "multipliers every new spin": { + "multipliers every new spin": { "x": 356.5, "y": -373, "width": 531, "height": 28 } + }, + "Reels are stacked Wilds with": { + "Reels are stacked Wilds with": { "x": 356.5, "y": -337, "width": 585, "height": 28 } + }, + "up to x200 values": { + "up to x200 values": { "x": -379, "y": -373, "width": 368, "height": 28 } + }, + "Wilds with": { + "Wilds with": { "x": -380, "y": -338, "width": 214, "height": 28 } + }, + "logo": { + "logo": { "x": -1, "y": 427, "width": 346, "height": 172 } + } + } +}, +"animations": { "animation": {} } +} \ No newline at end of file diff --git a/art/startpage/images/amazon_startpage2.png b/art/startpage/images/amazon_startpage2.png new file mode 100644 index 0000000..786ee30 Binary files /dev/null and b/art/startpage/images/amazon_startpage2.png differ diff --git a/art/startpage/images/amazon_startpage_portrait.png b/art/startpage/images/amazon_startpage_portrait.png new file mode 100644 index 0000000..5a8d930 Binary files /dev/null and b/art/startpage/images/amazon_startpage_portrait.png differ diff --git a/art/startpage/images/bg.png b/art/startpage/images/bg.png new file mode 100644 index 0000000..c8d6628 Binary files /dev/null and b/art/startpage/images/bg.png differ diff --git a/art/startpage/images/bg_startpage_sample.png b/art/startpage/images/bg_startpage_sample.png new file mode 100644 index 0000000..ad2582a Binary files /dev/null and b/art/startpage/images/bg_startpage_sample.png differ diff --git a/art/startpage/images/ex_wild1.png b/art/startpage/images/ex_wild1.png new file mode 100644 index 0000000..ba84056 Binary files /dev/null and b/art/startpage/images/ex_wild1.png differ diff --git a/art/startpage/images/ex_wild1_glow.png b/art/startpage/images/ex_wild1_glow.png new file mode 100644 index 0000000..0e0b7fa Binary files /dev/null and b/art/startpage/images/ex_wild1_glow.png differ diff --git a/art/startpage/images/ex_wild2.png b/art/startpage/images/ex_wild2.png new file mode 100644 index 0000000..c7d7f5a Binary files /dev/null and b/art/startpage/images/ex_wild2.png differ diff --git a/art/startpage/images/ex_wild2_glow.png b/art/startpage/images/ex_wild2_glow.png new file mode 100644 index 0000000..85b90f4 Binary files /dev/null and b/art/startpage/images/ex_wild2_glow.png differ diff --git a/art/startpage/images/ex_wild_glow_l_01.png b/art/startpage/images/ex_wild_glow_l_01.png new file mode 100644 index 0000000..562843e Binary files /dev/null and b/art/startpage/images/ex_wild_glow_l_01.png differ diff --git a/art/startpage/images/ex_wild_glow_l_02.png b/art/startpage/images/ex_wild_glow_l_02.png new file mode 100644 index 0000000..36d7ff7 Binary files /dev/null and b/art/startpage/images/ex_wild_glow_l_02.png differ diff --git a/art/startpage/images/ex_wild_glow_l_03.png b/art/startpage/images/ex_wild_glow_l_03.png new file mode 100644 index 0000000..85b4122 Binary files /dev/null and b/art/startpage/images/ex_wild_glow_l_03.png differ diff --git a/art/startpage/images/ex_wilds_frame.png b/art/startpage/images/ex_wilds_frame.png new file mode 100644 index 0000000..421d57a Binary files /dev/null and b/art/startpage/images/ex_wilds_frame.png differ diff --git a/art/startpage/images/ex_wilds_glow.png b/art/startpage/images/ex_wilds_glow.png new file mode 100644 index 0000000..4e36dcf Binary files /dev/null and b/art/startpage/images/ex_wilds_glow.png differ diff --git a/art/startpage/images/ex_wilds_light_01.png b/art/startpage/images/ex_wilds_light_01.png new file mode 100644 index 0000000..99961fd Binary files /dev/null and b/art/startpage/images/ex_wilds_light_01.png differ diff --git a/art/startpage/images/ex_wilds_light_02.png b/art/startpage/images/ex_wilds_light_02.png new file mode 100644 index 0000000..b56aaca Binary files /dev/null and b/art/startpage/images/ex_wilds_light_02.png differ diff --git a/art/startpage/images/ex_wilds_light_03.png b/art/startpage/images/ex_wilds_light_03.png new file mode 100644 index 0000000..78aef1a Binary files /dev/null and b/art/startpage/images/ex_wilds_light_03.png differ diff --git a/art/startpage/images/ex_wilds_rays.png b/art/startpage/images/ex_wilds_rays.png new file mode 100644 index 0000000..c0069ad Binary files /dev/null and b/art/startpage/images/ex_wilds_rays.png differ diff --git a/art/startpage/images/expnd_w1_bg.png b/art/startpage/images/expnd_w1_bg.png new file mode 100644 index 0000000..09635b5 Binary files /dev/null and b/art/startpage/images/expnd_w1_bg.png differ diff --git a/art/startpage/images/expnd_w1_bg_add.png b/art/startpage/images/expnd_w1_bg_add.png new file mode 100644 index 0000000..cce2c34 Binary files /dev/null and b/art/startpage/images/expnd_w1_bg_add.png differ diff --git a/art/startpage/images/expnd_w2_bg.png b/art/startpage/images/expnd_w2_bg.png new file mode 100644 index 0000000..d9c92be Binary files /dev/null and b/art/startpage/images/expnd_w2_bg.png differ diff --git a/art/startpage/images/expnd_w2_bg_add.png b/art/startpage/images/expnd_w2_bg_add.png new file mode 100644 index 0000000..4fa4284 Binary files /dev/null and b/art/startpage/images/expnd_w2_bg_add.png differ diff --git a/art/startpage/images/expnd_w3_bg.png b/art/startpage/images/expnd_w3_bg.png new file mode 100644 index 0000000..68e4d38 Binary files /dev/null and b/art/startpage/images/expnd_w3_bg.png differ diff --git a/art/startpage/images/expnd_w3_bg_add.png b/art/startpage/images/expnd_w3_bg_add.png new file mode 100644 index 0000000..d1fda1b Binary files /dev/null and b/art/startpage/images/expnd_w3_bg_add.png differ diff --git a/art/startpage/images/expnd_w3_pttrn.png b/art/startpage/images/expnd_w3_pttrn.png new file mode 100644 index 0000000..3e2c5cf Binary files /dev/null and b/art/startpage/images/expnd_w3_pttrn.png differ diff --git a/art/startpage/images/expnd_w3_pttrn_glow.png b/art/startpage/images/expnd_w3_pttrn_glow.png new file mode 100644 index 0000000..1691771 Binary files /dev/null and b/art/startpage/images/expnd_w3_pttrn_glow.png differ diff --git a/art/startpage/images/logo.png b/art/startpage/images/logo.png new file mode 100644 index 0000000..c87c2ab Binary files /dev/null and b/art/startpage/images/logo.png differ diff --git a/art/startpage/images/placeholder.png b/art/startpage/images/placeholder.png new file mode 100644 index 0000000..03b7d5f Binary files /dev/null and b/art/startpage/images/placeholder.png differ diff --git a/art/startpage/images/source_bg_startpage _x2.png b/art/startpage/images/source_bg_startpage _x2.png new file mode 100644 index 0000000..a34260e Binary files /dev/null and b/art/startpage/images/source_bg_startpage _x2.png differ diff --git a/art/startpage/images/source_bg_startpage.png b/art/startpage/images/source_bg_startpage.png new file mode 100644 index 0000000..a2dbf5c Binary files /dev/null and b/art/startpage/images/source_bg_startpage.png differ diff --git a/art/startpage/images/tap to start.png b/art/startpage/images/tap to start.png new file mode 100644 index 0000000..5297e1c Binary files /dev/null and b/art/startpage/images/tap to start.png differ diff --git a/art/startpage/images/up to x200 values.png b/art/startpage/images/up to x200 values.png new file mode 100644 index 0000000..5f93b81 Binary files /dev/null and b/art/startpage/images/up to x200 values.png differ diff --git a/art/startpage/images/w1_X2.png b/art/startpage/images/w1_X2.png new file mode 100644 index 0000000..f73e90a Binary files /dev/null and b/art/startpage/images/w1_X2.png differ diff --git a/art/startpage/images/w1_expnd_frame.png b/art/startpage/images/w1_expnd_frame.png new file mode 100644 index 0000000..7e8b070 Binary files /dev/null and b/art/startpage/images/w1_expnd_frame.png differ diff --git a/art/startpage/images/w1_expnd_multipl_bg.png b/art/startpage/images/w1_expnd_multipl_bg.png new file mode 100644 index 0000000..888fe3a Binary files /dev/null and b/art/startpage/images/w1_expnd_multipl_bg.png differ diff --git a/art/startpage/images/w2_X5.png b/art/startpage/images/w2_X5.png new file mode 100644 index 0000000..4471a23 Binary files /dev/null and b/art/startpage/images/w2_X5.png differ diff --git a/art/startpage/images/w2_expnd_frame.png b/art/startpage/images/w2_expnd_frame.png new file mode 100644 index 0000000..7f3a5d9 Binary files /dev/null and b/art/startpage/images/w2_expnd_frame.png differ diff --git a/art/startpage/images/w2_expnd_multipl_bg.png b/art/startpage/images/w2_expnd_multipl_bg.png new file mode 100644 index 0000000..8c8bcc9 Binary files /dev/null and b/art/startpage/images/w2_expnd_multipl_bg.png differ diff --git a/art/startpage/images/w3_X10.png b/art/startpage/images/w3_X10.png new file mode 100644 index 0000000..2fc093c Binary files /dev/null and b/art/startpage/images/w3_X10.png differ diff --git a/art/startpage/images/w3_expnd_frame.png b/art/startpage/images/w3_expnd_frame.png new file mode 100644 index 0000000..f5f7906 Binary files /dev/null and b/art/startpage/images/w3_expnd_frame.png differ diff --git a/art/startpage/images/w3_expnd_multipl_bg.png b/art/startpage/images/w3_expnd_multipl_bg.png new file mode 100644 index 0000000..d339ad9 Binary files /dev/null and b/art/startpage/images/w3_expnd_multipl_bg.png differ diff --git a/art/startpage/images/wild1_frame.png b/art/startpage/images/wild1_frame.png new file mode 100644 index 0000000..f9a1595 Binary files /dev/null and b/art/startpage/images/wild1_frame.png differ diff --git a/art/startpage/images/wild2_frame.png b/art/startpage/images/wild2_frame.png new file mode 100644 index 0000000..7f47db9 Binary files /dev/null and b/art/startpage/images/wild2_frame.png differ diff --git a/art/startpage/images/wild3_frame.png b/art/startpage/images/wild3_frame.png new file mode 100644 index 0000000..83beb9c Binary files /dev/null and b/art/startpage/images/wild3_frame.png differ diff --git a/art/startpage/images/wild_1_win.png b/art/startpage/images/wild_1_win.png new file mode 100644 index 0000000..13f5c2f Binary files /dev/null and b/art/startpage/images/wild_1_win.png differ diff --git a/art/startpage/images/wild_2_win.png b/art/startpage/images/wild_2_win.png new file mode 100644 index 0000000..2fdcdd7 Binary files /dev/null and b/art/startpage/images/wild_2_win.png differ diff --git a/art/startpage/images/wild_3_win.png b/art/startpage/images/wild_3_win.png new file mode 100644 index 0000000..f9999dd Binary files /dev/null and b/art/startpage/images/wild_3_win.png differ diff --git a/art/startpage/images/wilds_light_01.png b/art/startpage/images/wilds_light_01.png new file mode 100644 index 0000000..19e866c Binary files /dev/null and b/art/startpage/images/wilds_light_01.png differ diff --git a/art/startpage/images/wilds_light_02.png b/art/startpage/images/wilds_light_02.png new file mode 100644 index 0000000..63b96fa Binary files /dev/null and b/art/startpage/images/wilds_light_02.png differ diff --git a/art/startpage/images/wilds_light_03.png b/art/startpage/images/wilds_light_03.png new file mode 100644 index 0000000..49b7239 Binary files /dev/null and b/art/startpage/images/wilds_light_03.png differ diff --git a/art/startpage/images/wilds_light_04.png b/art/startpage/images/wilds_light_04.png new file mode 100644 index 0000000..48dbc03 Binary files /dev/null and b/art/startpage/images/wilds_light_04.png differ diff --git a/art/startpage/images/wilds_rays.png b/art/startpage/images/wilds_rays.png new file mode 100644 index 0000000..27abcfb Binary files /dev/null and b/art/startpage/images/wilds_rays.png differ diff --git a/art/startpage/images/wilds_stone_glow_1_l.png b/art/startpage/images/wilds_stone_glow_1_l.png new file mode 100644 index 0000000..3b5d895 Binary files /dev/null and b/art/startpage/images/wilds_stone_glow_1_l.png differ diff --git a/art/startpage/images/wilds_stone_glow_1_r.png b/art/startpage/images/wilds_stone_glow_1_r.png new file mode 100644 index 0000000..20b1308 Binary files /dev/null and b/art/startpage/images/wilds_stone_glow_1_r.png differ diff --git a/art/startpage/images/wilds_stone_glow_1_top.png b/art/startpage/images/wilds_stone_glow_1_top.png new file mode 100644 index 0000000..59432f5 Binary files /dev/null and b/art/startpage/images/wilds_stone_glow_1_top.png differ diff --git a/art/startpage/images/wilds_stone_l.png b/art/startpage/images/wilds_stone_l.png new file mode 100644 index 0000000..8475ec4 Binary files /dev/null and b/art/startpage/images/wilds_stone_l.png differ diff --git a/art/startpage/images/wilds_stone_r.png b/art/startpage/images/wilds_stone_r.png new file mode 100644 index 0000000..f8b6729 Binary files /dev/null and b/art/startpage/images/wilds_stone_r.png differ diff --git a/art/startpage/images/wilds_stone_top.png b/art/startpage/images/wilds_stone_top.png new file mode 100644 index 0000000..45eb3ba Binary files /dev/null and b/art/startpage/images/wilds_stone_top.png differ diff --git a/art/startpage/startpage.spine b/art/startpage/startpage.spine new file mode 100644 index 0000000..8ea8961 Binary files /dev/null and b/art/startpage/startpage.spine differ diff --git a/art/symbols/expanding_symbols.spine b/art/symbols/expanding_symbols.spine new file mode 100644 index 0000000..183a640 Binary files /dev/null and b/art/symbols/expanding_symbols.spine differ diff --git a/art/symbols/images/expanding_symbols/Layer 45ex_wild1_necklace2.png b/art/symbols/images/expanding_symbols/Layer 45ex_wild1_necklace2.png new file mode 100644 index 0000000..ffb69b2 Binary files /dev/null and b/art/symbols/images/expanding_symbols/Layer 45ex_wild1_necklace2.png differ diff --git a/art/symbols/images/expanding_symbols/X10.png b/art/symbols/images/expanding_symbols/X10.png new file mode 100644 index 0000000..f414012 Binary files /dev/null and b/art/symbols/images/expanding_symbols/X10.png differ diff --git a/art/symbols/images/expanding_symbols/X2.png b/art/symbols/images/expanding_symbols/X2.png new file mode 100644 index 0000000..4e360bf Binary files /dev/null and b/art/symbols/images/expanding_symbols/X2.png differ diff --git a/art/symbols/images/expanding_symbols/X5.png b/art/symbols/images/expanding_symbols/X5.png new file mode 100644 index 0000000..d075f04 Binary files /dev/null and b/art/symbols/images/expanding_symbols/X5.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild1_belt.png b/art/symbols/images/expanding_symbols/ex_wild1_belt.png new file mode 100644 index 0000000..664274a Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild1_belt.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild1_belt_glow.png b/art/symbols/images/expanding_symbols/ex_wild1_belt_glow.png new file mode 100644 index 0000000..e20e3f2 Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild1_belt_glow.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild1_body_glow.png b/art/symbols/images/expanding_symbols/ex_wild1_body_glow.png new file mode 100644 index 0000000..29488f8 Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild1_body_glow.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild1_cloth_back2.png b/art/symbols/images/expanding_symbols/ex_wild1_cloth_back2.png new file mode 100644 index 0000000..12fcc5e Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild1_cloth_back2.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild1_cloth_top1.png b/art/symbols/images/expanding_symbols/ex_wild1_cloth_top1.png new file mode 100644 index 0000000..2e35dcb Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild1_cloth_top1.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild1_cloth_top1_glow.png b/art/symbols/images/expanding_symbols/ex_wild1_cloth_top1_glow.png new file mode 100644 index 0000000..f701236 Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild1_cloth_top1_glow.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild1_eye_left.png b/art/symbols/images/expanding_symbols/ex_wild1_eye_left.png new file mode 100644 index 0000000..79c2aea Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild1_eye_left.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild1_eye_right.png b/art/symbols/images/expanding_symbols/ex_wild1_eye_right.png new file mode 100644 index 0000000..193b37a Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild1_eye_right.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild1_eyebrow_left.png b/art/symbols/images/expanding_symbols/ex_wild1_eyebrow_left.png new file mode 100644 index 0000000..bce1a3a Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild1_eyebrow_left.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild1_eyebrow_right.png b/art/symbols/images/expanding_symbols/ex_wild1_eyebrow_right.png new file mode 100644 index 0000000..c1c9b76 Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild1_eyebrow_right.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild1_face.png b/art/symbols/images/expanding_symbols/ex_wild1_face.png new file mode 100644 index 0000000..fbc0448 Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild1_face.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild1_face_SAMPLE.png b/art/symbols/images/expanding_symbols/ex_wild1_face_SAMPLE.png new file mode 100644 index 0000000..4bcfc15 Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild1_face_SAMPLE.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild1_feather_right.png b/art/symbols/images/expanding_symbols/ex_wild1_feather_right.png new file mode 100644 index 0000000..d420286 Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild1_feather_right.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild1_hair_back1.png b/art/symbols/images/expanding_symbols/ex_wild1_hair_back1.png new file mode 100644 index 0000000..5e19cc2 Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild1_hair_back1.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild1_hair_back2.png b/art/symbols/images/expanding_symbols/ex_wild1_hair_back2.png new file mode 100644 index 0000000..d063fe7 Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild1_hair_back2.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild1_hair_left.png b/art/symbols/images/expanding_symbols/ex_wild1_hair_left.png new file mode 100644 index 0000000..987275f Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild1_hair_left.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild1_hand0_left.png b/art/symbols/images/expanding_symbols/ex_wild1_hand0_left.png new file mode 100644 index 0000000..573a9d8 Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild1_hand0_left.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild1_hand1_left.png b/art/symbols/images/expanding_symbols/ex_wild1_hand1_left.png new file mode 100644 index 0000000..7ad86ae Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild1_hand1_left.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild1_hand1_left_glow.png b/art/symbols/images/expanding_symbols/ex_wild1_hand1_left_glow.png new file mode 100644 index 0000000..4086f6b Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild1_hand1_left_glow.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild1_hand2_left.png b/art/symbols/images/expanding_symbols/ex_wild1_hand2_left.png new file mode 100644 index 0000000..bed08c7 Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild1_hand2_left.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild1_hand_left0.png b/art/symbols/images/expanding_symbols/ex_wild1_hand_left0.png new file mode 100644 index 0000000..80bef7c Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild1_hand_left0.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild1_hand_left0_glow.png b/art/symbols/images/expanding_symbols/ex_wild1_hand_left0_glow.png new file mode 100644 index 0000000..f98fa78 Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild1_hand_left0_glow.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild1_hand_left1.png b/art/symbols/images/expanding_symbols/ex_wild1_hand_left1.png new file mode 100644 index 0000000..9ad753e Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild1_hand_left1.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild1_hand_left1_glow.png b/art/symbols/images/expanding_symbols/ex_wild1_hand_left1_glow.png new file mode 100644 index 0000000..b9f38c7 Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild1_hand_left1_glow.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild1_hand_left_shadow.png b/art/symbols/images/expanding_symbols/ex_wild1_hand_left_shadow.png new file mode 100644 index 0000000..085c1f4 Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild1_hand_left_shadow.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild1_head_glow.png b/art/symbols/images/expanding_symbols/ex_wild1_head_glow.png new file mode 100644 index 0000000..6ed3608 Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild1_head_glow.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild1_head_top.png b/art/symbols/images/expanding_symbols/ex_wild1_head_top.png new file mode 100644 index 0000000..9894c77 Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild1_head_top.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild1_headpiece_fthr1.png b/art/symbols/images/expanding_symbols/ex_wild1_headpiece_fthr1.png new file mode 100644 index 0000000..14cb0e3 Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild1_headpiece_fthr1.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild1_headpiece_fthr10.png b/art/symbols/images/expanding_symbols/ex_wild1_headpiece_fthr10.png new file mode 100644 index 0000000..1fb6b9c Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild1_headpiece_fthr10.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild1_headpiece_fthr10_glow.png b/art/symbols/images/expanding_symbols/ex_wild1_headpiece_fthr10_glow.png new file mode 100644 index 0000000..db19f8c Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild1_headpiece_fthr10_glow.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild1_headpiece_fthr11.png b/art/symbols/images/expanding_symbols/ex_wild1_headpiece_fthr11.png new file mode 100644 index 0000000..fc7d061 Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild1_headpiece_fthr11.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild1_headpiece_fthr11_glow.png b/art/symbols/images/expanding_symbols/ex_wild1_headpiece_fthr11_glow.png new file mode 100644 index 0000000..ebc606c Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild1_headpiece_fthr11_glow.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild1_headpiece_fthr12.png b/art/symbols/images/expanding_symbols/ex_wild1_headpiece_fthr12.png new file mode 100644 index 0000000..1ec551d Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild1_headpiece_fthr12.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild1_headpiece_fthr12_glow.png b/art/symbols/images/expanding_symbols/ex_wild1_headpiece_fthr12_glow.png new file mode 100644 index 0000000..d39e5e5 Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild1_headpiece_fthr12_glow.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild1_headpiece_fthr13.png b/art/symbols/images/expanding_symbols/ex_wild1_headpiece_fthr13.png new file mode 100644 index 0000000..b41e4ed Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild1_headpiece_fthr13.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild1_headpiece_fthr13_glow.png b/art/symbols/images/expanding_symbols/ex_wild1_headpiece_fthr13_glow.png new file mode 100644 index 0000000..ea3aa53 Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild1_headpiece_fthr13_glow.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild1_headpiece_fthr14.png b/art/symbols/images/expanding_symbols/ex_wild1_headpiece_fthr14.png new file mode 100644 index 0000000..9ec0fed Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild1_headpiece_fthr14.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild1_headpiece_fthr14_glow.png b/art/symbols/images/expanding_symbols/ex_wild1_headpiece_fthr14_glow.png new file mode 100644 index 0000000..04ade56 Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild1_headpiece_fthr14_glow.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild1_headpiece_fthr1_glow.png b/art/symbols/images/expanding_symbols/ex_wild1_headpiece_fthr1_glow.png new file mode 100644 index 0000000..880f054 Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild1_headpiece_fthr1_glow.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild1_headpiece_fthr2.png b/art/symbols/images/expanding_symbols/ex_wild1_headpiece_fthr2.png new file mode 100644 index 0000000..c0057c4 Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild1_headpiece_fthr2.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild1_headpiece_fthr2_glow.png b/art/symbols/images/expanding_symbols/ex_wild1_headpiece_fthr2_glow.png new file mode 100644 index 0000000..860b2f3 Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild1_headpiece_fthr2_glow.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild1_headpiece_fthr3.png b/art/symbols/images/expanding_symbols/ex_wild1_headpiece_fthr3.png new file mode 100644 index 0000000..ab9fcf0 Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild1_headpiece_fthr3.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild1_headpiece_fthr3_glow.png b/art/symbols/images/expanding_symbols/ex_wild1_headpiece_fthr3_glow.png new file mode 100644 index 0000000..65c216d Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild1_headpiece_fthr3_glow.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild1_headpiece_fthr4.png b/art/symbols/images/expanding_symbols/ex_wild1_headpiece_fthr4.png new file mode 100644 index 0000000..2c3893f Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild1_headpiece_fthr4.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild1_headpiece_fthr4_glow.png b/art/symbols/images/expanding_symbols/ex_wild1_headpiece_fthr4_glow.png new file mode 100644 index 0000000..9cd4251 Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild1_headpiece_fthr4_glow.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild1_headpiece_fthr5.png b/art/symbols/images/expanding_symbols/ex_wild1_headpiece_fthr5.png new file mode 100644 index 0000000..05661fe Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild1_headpiece_fthr5.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild1_headpiece_fthr5_glow.png b/art/symbols/images/expanding_symbols/ex_wild1_headpiece_fthr5_glow.png new file mode 100644 index 0000000..34402e6 Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild1_headpiece_fthr5_glow.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild1_headpiece_fthr6.png b/art/symbols/images/expanding_symbols/ex_wild1_headpiece_fthr6.png new file mode 100644 index 0000000..09de23b Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild1_headpiece_fthr6.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild1_headpiece_fthr6_glow.png b/art/symbols/images/expanding_symbols/ex_wild1_headpiece_fthr6_glow.png new file mode 100644 index 0000000..cb5ed02 Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild1_headpiece_fthr6_glow.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild1_headpiece_fthr7.png b/art/symbols/images/expanding_symbols/ex_wild1_headpiece_fthr7.png new file mode 100644 index 0000000..58659e5 Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild1_headpiece_fthr7.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild1_headpiece_fthr7_glow.png b/art/symbols/images/expanding_symbols/ex_wild1_headpiece_fthr7_glow.png new file mode 100644 index 0000000..ad3373b Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild1_headpiece_fthr7_glow.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild1_headpiece_fthr8.png b/art/symbols/images/expanding_symbols/ex_wild1_headpiece_fthr8.png new file mode 100644 index 0000000..42f457c Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild1_headpiece_fthr8.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild1_headpiece_fthr8_glow.png b/art/symbols/images/expanding_symbols/ex_wild1_headpiece_fthr8_glow.png new file mode 100644 index 0000000..3eb5d77 Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild1_headpiece_fthr8_glow.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild1_headpiece_fthr9.png b/art/symbols/images/expanding_symbols/ex_wild1_headpiece_fthr9.png new file mode 100644 index 0000000..8b83e8e Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild1_headpiece_fthr9.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild1_headpiece_fthr9_glow.png b/art/symbols/images/expanding_symbols/ex_wild1_headpiece_fthr9_glow.png new file mode 100644 index 0000000..e52c7a2 Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild1_headpiece_fthr9_glow.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild1_headpiece_gld.png b/art/symbols/images/expanding_symbols/ex_wild1_headpiece_gld.png new file mode 100644 index 0000000..e374e57 Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild1_headpiece_gld.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild1_leg_left1.png b/art/symbols/images/expanding_symbols/ex_wild1_leg_left1.png new file mode 100644 index 0000000..6a59e8c Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild1_leg_left1.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild1_leg_left1_glow.png b/art/symbols/images/expanding_symbols/ex_wild1_leg_left1_glow.png new file mode 100644 index 0000000..8b2bc0a Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild1_leg_left1_glow.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild1_leg_left2.png b/art/symbols/images/expanding_symbols/ex_wild1_leg_left2.png new file mode 100644 index 0000000..483a03f Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild1_leg_left2.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild1_leg_left2_glow.png b/art/symbols/images/expanding_symbols/ex_wild1_leg_left2_glow.png new file mode 100644 index 0000000..ff641c0 Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild1_leg_left2_glow.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild1_leg_left3.png b/art/symbols/images/expanding_symbols/ex_wild1_leg_left3.png new file mode 100644 index 0000000..4df6fe6 Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild1_leg_left3.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild1_leg_left3_glow.png b/art/symbols/images/expanding_symbols/ex_wild1_leg_left3_glow.png new file mode 100644 index 0000000..013f778 Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild1_leg_left3_glow.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild1_leg_right1.png b/art/symbols/images/expanding_symbols/ex_wild1_leg_right1.png new file mode 100644 index 0000000..b47e1b3 Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild1_leg_right1.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild1_leg_right1_glow.png b/art/symbols/images/expanding_symbols/ex_wild1_leg_right1_glow.png new file mode 100644 index 0000000..15e1a43 Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild1_leg_right1_glow.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild1_leg_right2.png b/art/symbols/images/expanding_symbols/ex_wild1_leg_right2.png new file mode 100644 index 0000000..40f4243 Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild1_leg_right2.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild1_leg_right2_glow.png b/art/symbols/images/expanding_symbols/ex_wild1_leg_right2_glow.png new file mode 100644 index 0000000..6fd23ce Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild1_leg_right2_glow.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild1_leg_right3.png b/art/symbols/images/expanding_symbols/ex_wild1_leg_right3.png new file mode 100644 index 0000000..fadb018 Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild1_leg_right3.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild1_leg_right3_glow.png b/art/symbols/images/expanding_symbols/ex_wild1_leg_right3_glow.png new file mode 100644 index 0000000..d1db74d Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild1_leg_right3_glow.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild1_neck.png b/art/symbols/images/expanding_symbols/ex_wild1_neck.png new file mode 100644 index 0000000..121b5b1 Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild1_neck.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild1_necklace1.png b/art/symbols/images/expanding_symbols/ex_wild1_necklace1.png new file mode 100644 index 0000000..1412851 Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild1_necklace1.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild1_necklace_shadow.png b/art/symbols/images/expanding_symbols/ex_wild1_necklace_shadow.png new file mode 100644 index 0000000..31944e5 Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild1_necklace_shadow.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild1_pigtail.png b/art/symbols/images/expanding_symbols/ex_wild1_pigtail.png new file mode 100644 index 0000000..e3822e1 Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild1_pigtail.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild1_shirt.png b/art/symbols/images/expanding_symbols/ex_wild1_shirt.png new file mode 100644 index 0000000..af7ee05 Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild1_shirt.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild1_skirt1.png b/art/symbols/images/expanding_symbols/ex_wild1_skirt1.png new file mode 100644 index 0000000..bc40cf1 Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild1_skirt1.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild1_skirt1_glow.png b/art/symbols/images/expanding_symbols/ex_wild1_skirt1_glow.png new file mode 100644 index 0000000..05064f4 Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild1_skirt1_glow.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild1_skirt2.png b/art/symbols/images/expanding_symbols/ex_wild1_skirt2.png new file mode 100644 index 0000000..714c483 Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild1_skirt2.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild1_skirt2_glow.png b/art/symbols/images/expanding_symbols/ex_wild1_skirt2_glow.png new file mode 100644 index 0000000..a5af108 Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild1_skirt2_glow.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild1_skirt3.png b/art/symbols/images/expanding_symbols/ex_wild1_skirt3.png new file mode 100644 index 0000000..8b5428f Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild1_skirt3.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild1_skirt3_glow.png b/art/symbols/images/expanding_symbols/ex_wild1_skirt3_glow.png new file mode 100644 index 0000000..0e9774b Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild1_skirt3_glow.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild1_skirt_det.png b/art/symbols/images/expanding_symbols/ex_wild1_skirt_det.png new file mode 100644 index 0000000..39a8aa8 Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild1_skirt_det.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild1_sleeve_back_left1.png b/art/symbols/images/expanding_symbols/ex_wild1_sleeve_back_left1.png new file mode 100644 index 0000000..648cdf5 Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild1_sleeve_back_left1.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild1_sleeve_left_glow.png b/art/symbols/images/expanding_symbols/ex_wild1_sleeve_left_glow.png new file mode 100644 index 0000000..2de8e7f Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild1_sleeve_left_glow.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild1_sleeve_top_left1.png b/art/symbols/images/expanding_symbols/ex_wild1_sleeve_top_left1.png new file mode 100644 index 0000000..0c2ec35 Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild1_sleeve_top_left1.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild1_strand shield.png b/art/symbols/images/expanding_symbols/ex_wild1_strand shield.png new file mode 100644 index 0000000..53fd39e Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild1_strand shield.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild1_strand shield_glow.png b/art/symbols/images/expanding_symbols/ex_wild1_strand shield_glow.png new file mode 100644 index 0000000..7ba9e81 Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild1_strand shield_glow.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild1_strand shield_shadow.png b/art/symbols/images/expanding_symbols/ex_wild1_strand shield_shadow.png new file mode 100644 index 0000000..4f29f4c Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild1_strand shield_shadow.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild1_strand.png b/art/symbols/images/expanding_symbols/ex_wild1_strand.png new file mode 100644 index 0000000..06e8be6 Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild1_strand.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild2__fell_right_s.png b/art/symbols/images/expanding_symbols/ex_wild2__fell_right_s.png new file mode 100644 index 0000000..bfbc51f Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild2__fell_right_s.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild2_beads.png b/art/symbols/images/expanding_symbols/ex_wild2_beads.png new file mode 100644 index 0000000..4ef0bca Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild2_beads.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild2_beads_s.png b/art/symbols/images/expanding_symbols/ex_wild2_beads_s.png new file mode 100644 index 0000000..9cff66d Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild2_beads_s.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild2_belt1_top.png b/art/symbols/images/expanding_symbols/ex_wild2_belt1_top.png new file mode 100644 index 0000000..a59605c Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild2_belt1_top.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild2_belt2.png b/art/symbols/images/expanding_symbols/ex_wild2_belt2.png new file mode 100644 index 0000000..7af637f Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild2_belt2.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild2_belt2_glow.png b/art/symbols/images/expanding_symbols/ex_wild2_belt2_glow.png new file mode 100644 index 0000000..bbdcd4e Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild2_belt2_glow.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild2_belt2_s.png b/art/symbols/images/expanding_symbols/ex_wild2_belt2_s.png new file mode 100644 index 0000000..2561c85 Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild2_belt2_s.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild2_bowl.png b/art/symbols/images/expanding_symbols/ex_wild2_bowl.png new file mode 100644 index 0000000..e437298 Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild2_bowl.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild2_earring_l.png b/art/symbols/images/expanding_symbols/ex_wild2_earring_l.png new file mode 100644 index 0000000..c891db7 Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild2_earring_l.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild2_earring_r.png b/art/symbols/images/expanding_symbols/ex_wild2_earring_r.png new file mode 100644 index 0000000..65c46d0 Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild2_earring_r.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild2_eyebrow_left.png b/art/symbols/images/expanding_symbols/ex_wild2_eyebrow_left.png new file mode 100644 index 0000000..13b45e3 Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild2_eyebrow_left.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild2_eyebrow_right.png b/art/symbols/images/expanding_symbols/ex_wild2_eyebrow_right.png new file mode 100644 index 0000000..51c63db Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild2_eyebrow_right.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild2_eyelid_l.png b/art/symbols/images/expanding_symbols/ex_wild2_eyelid_l.png new file mode 100644 index 0000000..080b567 Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild2_eyelid_l.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild2_eyelid_r.png b/art/symbols/images/expanding_symbols/ex_wild2_eyelid_r.png new file mode 100644 index 0000000..ee0c33e Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild2_eyelid_r.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild2_eyes.png b/art/symbols/images/expanding_symbols/ex_wild2_eyes.png new file mode 100644 index 0000000..e1de66c Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild2_eyes.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild2_fell.png b/art/symbols/images/expanding_symbols/ex_wild2_fell.png new file mode 100644 index 0000000..849060b Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild2_fell.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild2_fell_glow.png b/art/symbols/images/expanding_symbols/ex_wild2_fell_glow.png new file mode 100644 index 0000000..9901929 Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild2_fell_glow.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild2_fell_left.png b/art/symbols/images/expanding_symbols/ex_wild2_fell_left.png new file mode 100644 index 0000000..1f60058 Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild2_fell_left.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild2_fell_left_glow.png b/art/symbols/images/expanding_symbols/ex_wild2_fell_left_glow.png new file mode 100644 index 0000000..b8f7cbf Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild2_fell_left_glow.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild2_fell_left_s.png b/art/symbols/images/expanding_symbols/ex_wild2_fell_left_s.png new file mode 100644 index 0000000..f723264 Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild2_fell_left_s.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild2_fell_right.png b/art/symbols/images/expanding_symbols/ex_wild2_fell_right.png new file mode 100644 index 0000000..bdf6814 Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild2_fell_right.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild2_fell_right_glow.png b/art/symbols/images/expanding_symbols/ex_wild2_fell_right_glow.png new file mode 100644 index 0000000..3d3f231 Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild2_fell_right_glow.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild2_finger_l.png b/art/symbols/images/expanding_symbols/ex_wild2_finger_l.png new file mode 100644 index 0000000..2526aff Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild2_finger_l.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild2_finger_r.png b/art/symbols/images/expanding_symbols/ex_wild2_finger_r.png new file mode 100644 index 0000000..3278722 Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild2_finger_r.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild2_fringe_l.png b/art/symbols/images/expanding_symbols/ex_wild2_fringe_l.png new file mode 100644 index 0000000..982e342 Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild2_fringe_l.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild2_fringe_l_glow.png b/art/symbols/images/expanding_symbols/ex_wild2_fringe_l_glow.png new file mode 100644 index 0000000..a4f6c76 Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild2_fringe_l_glow.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild2_fringe_r.png b/art/symbols/images/expanding_symbols/ex_wild2_fringe_r.png new file mode 100644 index 0000000..b310019 Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild2_fringe_r.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild2_fringe_r_glow.png b/art/symbols/images/expanding_symbols/ex_wild2_fringe_r_glow.png new file mode 100644 index 0000000..3915b4f Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild2_fringe_r_glow.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild2_hair_back.png b/art/symbols/images/expanding_symbols/ex_wild2_hair_back.png new file mode 100644 index 0000000..e2fedf8 Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild2_hair_back.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild2_hair_back_glow.png b/art/symbols/images/expanding_symbols/ex_wild2_hair_back_glow.png new file mode 100644 index 0000000..33dc145 Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild2_hair_back_glow.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild2_hand1_l.png b/art/symbols/images/expanding_symbols/ex_wild2_hand1_l.png new file mode 100644 index 0000000..67dedfd Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild2_hand1_l.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild2_hand1_r.png b/art/symbols/images/expanding_symbols/ex_wild2_hand1_r.png new file mode 100644 index 0000000..e956c5d Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild2_hand1_r.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild2_hand2_l.png b/art/symbols/images/expanding_symbols/ex_wild2_hand2_l.png new file mode 100644 index 0000000..c08fad8 Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild2_hand2_l.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild2_hand2_r.png b/art/symbols/images/expanding_symbols/ex_wild2_hand2_r.png new file mode 100644 index 0000000..4b1e296 Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild2_hand2_r.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild2_hand3_l.png b/art/symbols/images/expanding_symbols/ex_wild2_hand3_l.png new file mode 100644 index 0000000..60ad7d7 Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild2_hand3_l.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild2_hand3_r.png b/art/symbols/images/expanding_symbols/ex_wild2_hand3_r.png new file mode 100644 index 0000000..cd65086 Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild2_hand3_r.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild2_hand3_s_l.png b/art/symbols/images/expanding_symbols/ex_wild2_hand3_s_l.png new file mode 100644 index 0000000..9aee591 Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild2_hand3_s_l.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild2_hand3_s_r.png b/art/symbols/images/expanding_symbols/ex_wild2_hand3_s_r.png new file mode 100644 index 0000000..afca788 Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild2_hand3_s_r.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild2_head.png b/art/symbols/images/expanding_symbols/ex_wild2_head.png new file mode 100644 index 0000000..6a2e6e8 Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild2_head.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild2_headpiece.png b/art/symbols/images/expanding_symbols/ex_wild2_headpiece.png new file mode 100644 index 0000000..b995fd3 Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild2_headpiece.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild2_headpiece_fthr1.png b/art/symbols/images/expanding_symbols/ex_wild2_headpiece_fthr1.png new file mode 100644 index 0000000..e6f70a6 Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild2_headpiece_fthr1.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild2_headpiece_fthr1_glow.png b/art/symbols/images/expanding_symbols/ex_wild2_headpiece_fthr1_glow.png new file mode 100644 index 0000000..e6a31ad Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild2_headpiece_fthr1_glow.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild2_headpiece_fthr2.png b/art/symbols/images/expanding_symbols/ex_wild2_headpiece_fthr2.png new file mode 100644 index 0000000..d5a9799 Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild2_headpiece_fthr2.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild2_headpiece_fthr2_glow.png b/art/symbols/images/expanding_symbols/ex_wild2_headpiece_fthr2_glow.png new file mode 100644 index 0000000..b8a5073 Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild2_headpiece_fthr2_glow.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild2_headpiece_fthr3.png b/art/symbols/images/expanding_symbols/ex_wild2_headpiece_fthr3.png new file mode 100644 index 0000000..0bc2c83 Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild2_headpiece_fthr3.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild2_headpiece_fthr3_glow.png b/art/symbols/images/expanding_symbols/ex_wild2_headpiece_fthr3_glow.png new file mode 100644 index 0000000..03356cc Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild2_headpiece_fthr3_glow.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild2_headpiece_fthr4.png b/art/symbols/images/expanding_symbols/ex_wild2_headpiece_fthr4.png new file mode 100644 index 0000000..c328701 Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild2_headpiece_fthr4.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild2_headpiece_fthr4_glow.png b/art/symbols/images/expanding_symbols/ex_wild2_headpiece_fthr4_glow.png new file mode 100644 index 0000000..fe8e7a4 Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild2_headpiece_fthr4_glow.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild2_headpiece_fthr5.png b/art/symbols/images/expanding_symbols/ex_wild2_headpiece_fthr5.png new file mode 100644 index 0000000..4ca9ce9 Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild2_headpiece_fthr5.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild2_headpiece_fthr5_glow.png b/art/symbols/images/expanding_symbols/ex_wild2_headpiece_fthr5_glow.png new file mode 100644 index 0000000..a31d180 Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild2_headpiece_fthr5_glow.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild2_headpiece_fthr6.png b/art/symbols/images/expanding_symbols/ex_wild2_headpiece_fthr6.png new file mode 100644 index 0000000..06fd1ed Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild2_headpiece_fthr6.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild2_headpiece_fthr6_glow.png b/art/symbols/images/expanding_symbols/ex_wild2_headpiece_fthr6_glow.png new file mode 100644 index 0000000..4f6c7a4 Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild2_headpiece_fthr6_glow.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild2_leg1_l.png b/art/symbols/images/expanding_symbols/ex_wild2_leg1_l.png new file mode 100644 index 0000000..6f0fb72 Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild2_leg1_l.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild2_leg1_l_glow.png b/art/symbols/images/expanding_symbols/ex_wild2_leg1_l_glow.png new file mode 100644 index 0000000..2fae4bb Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild2_leg1_l_glow.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild2_leg1_r.png b/art/symbols/images/expanding_symbols/ex_wild2_leg1_r.png new file mode 100644 index 0000000..dca4924 Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild2_leg1_r.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild2_leg1_r_glow.png b/art/symbols/images/expanding_symbols/ex_wild2_leg1_r_glow.png new file mode 100644 index 0000000..07f7232 Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild2_leg1_r_glow.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild2_leg2_l.png b/art/symbols/images/expanding_symbols/ex_wild2_leg2_l.png new file mode 100644 index 0000000..cf78f49 Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild2_leg2_l.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild2_leg2_l_glow.png b/art/symbols/images/expanding_symbols/ex_wild2_leg2_l_glow.png new file mode 100644 index 0000000..9f8dae1 Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild2_leg2_l_glow.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild2_leg2_r.png b/art/symbols/images/expanding_symbols/ex_wild2_leg2_r.png new file mode 100644 index 0000000..a4cb927 Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild2_leg2_r.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild2_leg2_r_glow.png b/art/symbols/images/expanding_symbols/ex_wild2_leg2_r_glow.png new file mode 100644 index 0000000..e18c375 Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild2_leg2_r_glow.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild2_neck.png b/art/symbols/images/expanding_symbols/ex_wild2_neck.png new file mode 100644 index 0000000..7a0db68 Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild2_neck.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild2_neckline.png b/art/symbols/images/expanding_symbols/ex_wild2_neckline.png new file mode 100644 index 0000000..c6566da Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild2_neckline.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild2_skirt.png b/art/symbols/images/expanding_symbols/ex_wild2_skirt.png new file mode 100644 index 0000000..1809423 Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild2_skirt.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild2_skirt_glow.png b/art/symbols/images/expanding_symbols/ex_wild2_skirt_glow.png new file mode 100644 index 0000000..f0f3b49 Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild2_skirt_glow.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild2_smoke.png b/art/symbols/images/expanding_symbols/ex_wild2_smoke.png new file mode 100644 index 0000000..08e71a3 Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild2_smoke.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild2_tassel.png b/art/symbols/images/expanding_symbols/ex_wild2_tassel.png new file mode 100644 index 0000000..7048c02 Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild2_tassel.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild2_tassel_glow.png b/art/symbols/images/expanding_symbols/ex_wild2_tassel_glow.png new file mode 100644 index 0000000..59e8b49 Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild2_tassel_glow.png differ diff --git a/art/symbols/images/expanding_symbols/ex_wild2_torso.png b/art/symbols/images/expanding_symbols/ex_wild2_torso.png new file mode 100644 index 0000000..8589a81 Binary files /dev/null and b/art/symbols/images/expanding_symbols/ex_wild2_torso.png differ diff --git a/art/symbols/images/expanding_symbols/expanded_wild.json b/art/symbols/images/expanding_symbols/expanded_wild.json new file mode 100644 index 0000000..d4c74f6 --- /dev/null +++ b/art/symbols/images/expanding_symbols/expanded_wild.json @@ -0,0 +1,101 @@ +{ "skeleton": { "images": "C:/THE POSO/99.Amazon City of Gold/symbols/images/expanding_symbols/" }, +"PhotoshopToSpine": { "scale": 1, "padding": 1, "trim": false }, +"bones": [ + { "name": "root" } +], +"slots": [ + { "name": "expnd_w2_bg_add", "bone": "root", "attachment": "expnd_w2_bg_add" }, + { "name": "expnd_w1_bg_add", "bone": "root", "attachment": "expnd_w1_bg_add" }, + { "name": "expnd_multipl_bg_add", "bone": "root", "attachment": "expnd_multipl_bg_add" }, + { "name": "expnd_frame_add", "bone": "root", "attachment": "expnd_frame_add" }, + { "name": "expnd_w3_bg_add", "bone": "root", "attachment": "expnd_w3_bg_add" }, + { "name": "expnd_w3_pttrn_5_add", "bone": "root", "attachment": "expnd_w3_pttrn_5_add" }, + { "name": "expnd_w3_pttrn_4_add", "bone": "root", "attachment": "expnd_w3_pttrn_4_add" }, + { "name": "expnd_w3_pttrn_3_add", "bone": "root", "attachment": "expnd_w3_pttrn_3_add" }, + { "name": "expnd_w3_pttrn_2_add", "bone": "root", "attachment": "expnd_w3_pttrn_2_add" }, + { "name": "expnd_w3_pttrn_1_add", "bone": "root", "attachment": "expnd_w3_pttrn_1_add" }, + { "name": "expnd_w3_pttrn_rays_add", "bone": "root", "attachment": "expnd_w3_pttrn_rays_add" }, + { "name": "expnd_w3_pttrn_face_necklace_add", "bone": "root", "attachment": "expnd_w3_pttrn_face_necklace_add" }, + { "name": "expnd_w3_pttrn_face_add", "bone": "root", "attachment": "expnd_w3_pttrn_face_add" }, + { "name": "expnd_w3_pttrn_face_earring_r_add", "bone": "root", "attachment": "expnd_w3_pttrn_face_earring_r_add" }, + { "name": "expnd_w3_pttrn_face_earring_l_add", "bone": "root", "attachment": "expnd_w3_pttrn_face_earring_l_add" }, + { "name": "expnd_w3_pttrn_face_crown7_add", "bone": "root", "attachment": "expnd_w3_pttrn_face_crown7_add" }, + { "name": "expnd_w3_pttrn_face_crown6_add", "bone": "root", "attachment": "expnd_w3_pttrn_face_crown6_add" }, + { "name": "expnd_w3_pttrn_face_crown5_add", "bone": "root", "attachment": "expnd_w3_pttrn_face_crown5_add" }, + { "name": "expnd_w3_pttrn_face_crown4_add", "bone": "root", "attachment": "expnd_w3_pttrn_face_crown4_add" }, + { "name": "expnd_w3_pttrn_face_crown3_add", "bone": "root", "attachment": "expnd_w3_pttrn_face_crown3_add" }, + { "name": "expnd_w3_pttrn_face_crown2_add", "bone": "root", "attachment": "expnd_w3_pttrn_face_crown2_add" }, + { "name": "expnd_w3_pttrn_face_crown1_add", "bone": "root", "attachment": "expnd_w3_pttrn_face_crown1_add" } +], +"skins": { + "default": { + "expnd_w2_bg_add": { + "expnd_w2_bg_add": { "x": 0, "y": -1, "width": 502, "height": 1302 } + }, + "expnd_w1_bg_add": { + "expnd_w1_bg_add": { "x": 0, "y": -1, "width": 502, "height": 1302 } + }, + "expnd_multipl_bg_add": { + "expnd_multipl_bg_add": { "x": 0, "y": -1, "width": 502, "height": 1302 } + }, + "expnd_frame_add": { + "expnd_frame_add": { "x": 0, "y": -1, "width": 502, "height": 1302 } + }, + "expnd_w3_bg_add": { + "expnd_w3_bg_add": { "x": 0, "y": -1, "width": 502, "height": 1302 } + }, + "expnd_w3_pttrn_5_add": { + "expnd_w3_pttrn_5_add": { "x": 0, "y": -1, "width": 502, "height": 1302 } + }, + "expnd_w3_pttrn_4_add": { + "expnd_w3_pttrn_4_add": { "x": 0, "y": -1, "width": 502, "height": 1302 } + }, + "expnd_w3_pttrn_3_add": { + "expnd_w3_pttrn_3_add": { "x": 0, "y": -1, "width": 502, "height": 1302 } + }, + "expnd_w3_pttrn_2_add": { + "expnd_w3_pttrn_2_add": { "x": 0, "y": -1, "width": 502, "height": 1302 } + }, + "expnd_w3_pttrn_1_add": { + "expnd_w3_pttrn_1_add": { "x": 0, "y": -1, "width": 502, "height": 1302 } + }, + "expnd_w3_pttrn_rays_add": { + "expnd_w3_pttrn_rays_add": { "x": 0, "y": -1, "width": 502, "height": 1302 } + }, + "expnd_w3_pttrn_face_necklace_add": { + "expnd_w3_pttrn_face_necklace_add": { "x": 0, "y": -1, "width": 502, "height": 1302 } + }, + "expnd_w3_pttrn_face_add": { + "expnd_w3_pttrn_face_add": { "x": 0, "y": -1, "width": 502, "height": 1302 } + }, + "expnd_w3_pttrn_face_earring_r_add": { + "expnd_w3_pttrn_face_earring_r_add": { "x": 0, "y": -1, "width": 502, "height": 1302 } + }, + "expnd_w3_pttrn_face_earring_l_add": { + "expnd_w3_pttrn_face_earring_l_add": { "x": 0, "y": -1, "width": 502, "height": 1302 } + }, + "expnd_w3_pttrn_face_crown7_add": { + "expnd_w3_pttrn_face_crown7_add": { "x": 0, "y": -1, "width": 502, "height": 1302 } + }, + "expnd_w3_pttrn_face_crown6_add": { + "expnd_w3_pttrn_face_crown6_add": { "x": 0, "y": -1, "width": 502, "height": 1302 } + }, + "expnd_w3_pttrn_face_crown5_add": { + "expnd_w3_pttrn_face_crown5_add": { "x": 0, "y": -1, "width": 502, "height": 1302 } + }, + "expnd_w3_pttrn_face_crown4_add": { + "expnd_w3_pttrn_face_crown4_add": { "x": 0, "y": -1, "width": 502, "height": 1302 } + }, + "expnd_w3_pttrn_face_crown3_add": { + "expnd_w3_pttrn_face_crown3_add": { "x": 0, "y": -1, "width": 502, "height": 1302 } + }, + "expnd_w3_pttrn_face_crown2_add": { + "expnd_w3_pttrn_face_crown2_add": { "x": 0, "y": -1, "width": 502, "height": 1302 } + }, + "expnd_w3_pttrn_face_crown1_add": { + "expnd_w3_pttrn_face_crown1_add": { "x": 0, "y": -1, "width": 502, "height": 1302 } + } + } +}, +"animations": { "animation": {} } +} \ No newline at end of file diff --git a/art/symbols/images/expanding_symbols/expnd_frame.png b/art/symbols/images/expanding_symbols/expnd_frame.png new file mode 100644 index 0000000..005fd36 Binary files /dev/null and b/art/symbols/images/expanding_symbols/expnd_frame.png differ diff --git a/art/symbols/images/expanding_symbols/expnd_frame_add.png b/art/symbols/images/expanding_symbols/expnd_frame_add.png new file mode 100644 index 0000000..f73807e Binary files /dev/null and b/art/symbols/images/expanding_symbols/expnd_frame_add.png differ diff --git a/art/symbols/images/expanding_symbols/expnd_multipl_bg.png b/art/symbols/images/expanding_symbols/expnd_multipl_bg.png new file mode 100644 index 0000000..ed679bc Binary files /dev/null and b/art/symbols/images/expanding_symbols/expnd_multipl_bg.png differ diff --git a/art/symbols/images/expanding_symbols/expnd_multipl_bg_add.png b/art/symbols/images/expanding_symbols/expnd_multipl_bg_add.png new file mode 100644 index 0000000..9464e28 Binary files /dev/null and b/art/symbols/images/expanding_symbols/expnd_multipl_bg_add.png differ diff --git a/art/symbols/images/expanding_symbols/expnd_w1_bg.png b/art/symbols/images/expanding_symbols/expnd_w1_bg.png new file mode 100644 index 0000000..08b2ce6 Binary files /dev/null and b/art/symbols/images/expanding_symbols/expnd_w1_bg.png differ diff --git a/art/symbols/images/expanding_symbols/expnd_w1_bg_add.png b/art/symbols/images/expanding_symbols/expnd_w1_bg_add.png new file mode 100644 index 0000000..87d8b51 Binary files /dev/null and b/art/symbols/images/expanding_symbols/expnd_w1_bg_add.png differ diff --git a/art/symbols/images/expanding_symbols/expnd_w2_bg.png b/art/symbols/images/expanding_symbols/expnd_w2_bg.png new file mode 100644 index 0000000..cade3d8 Binary files /dev/null and b/art/symbols/images/expanding_symbols/expnd_w2_bg.png differ diff --git a/art/symbols/images/expanding_symbols/expnd_w2_bg_add.png b/art/symbols/images/expanding_symbols/expnd_w2_bg_add.png new file mode 100644 index 0000000..4e99d37 Binary files /dev/null and b/art/symbols/images/expanding_symbols/expnd_w2_bg_add.png differ diff --git a/art/symbols/images/expanding_symbols/expnd_w3_bg.png b/art/symbols/images/expanding_symbols/expnd_w3_bg.png new file mode 100644 index 0000000..66ffc1a Binary files /dev/null and b/art/symbols/images/expanding_symbols/expnd_w3_bg.png differ diff --git a/art/symbols/images/expanding_symbols/expnd_w3_bg_add.png b/art/symbols/images/expanding_symbols/expnd_w3_bg_add.png new file mode 100644 index 0000000..5ca8080 Binary files /dev/null and b/art/symbols/images/expanding_symbols/expnd_w3_bg_add.png differ diff --git a/art/symbols/images/expanding_symbols/expnd_w3_eff_rays.png b/art/symbols/images/expanding_symbols/expnd_w3_eff_rays.png new file mode 100644 index 0000000..b248645 Binary files /dev/null and b/art/symbols/images/expanding_symbols/expnd_w3_eff_rays.png differ diff --git a/art/symbols/images/expanding_symbols/expnd_w3_pttrn_1.png b/art/symbols/images/expanding_symbols/expnd_w3_pttrn_1.png new file mode 100644 index 0000000..3f26b9b Binary files /dev/null and b/art/symbols/images/expanding_symbols/expnd_w3_pttrn_1.png differ diff --git a/art/symbols/images/expanding_symbols/expnd_w3_pttrn_1_add.png b/art/symbols/images/expanding_symbols/expnd_w3_pttrn_1_add.png new file mode 100644 index 0000000..21d6f48 Binary files /dev/null and b/art/symbols/images/expanding_symbols/expnd_w3_pttrn_1_add.png differ diff --git a/art/symbols/images/expanding_symbols/expnd_w3_pttrn_1_glow.png b/art/symbols/images/expanding_symbols/expnd_w3_pttrn_1_glow.png new file mode 100644 index 0000000..421cd8a Binary files /dev/null and b/art/symbols/images/expanding_symbols/expnd_w3_pttrn_1_glow.png differ diff --git a/art/symbols/images/expanding_symbols/expnd_w3_pttrn_2.png b/art/symbols/images/expanding_symbols/expnd_w3_pttrn_2.png new file mode 100644 index 0000000..6cadfeb Binary files /dev/null and b/art/symbols/images/expanding_symbols/expnd_w3_pttrn_2.png differ diff --git a/art/symbols/images/expanding_symbols/expnd_w3_pttrn_2_add.png b/art/symbols/images/expanding_symbols/expnd_w3_pttrn_2_add.png new file mode 100644 index 0000000..437c780 Binary files /dev/null and b/art/symbols/images/expanding_symbols/expnd_w3_pttrn_2_add.png differ diff --git a/art/symbols/images/expanding_symbols/expnd_w3_pttrn_2_glow.png b/art/symbols/images/expanding_symbols/expnd_w3_pttrn_2_glow.png new file mode 100644 index 0000000..f5914b7 Binary files /dev/null and b/art/symbols/images/expanding_symbols/expnd_w3_pttrn_2_glow.png differ diff --git a/art/symbols/images/expanding_symbols/expnd_w3_pttrn_3.png b/art/symbols/images/expanding_symbols/expnd_w3_pttrn_3.png new file mode 100644 index 0000000..e43e078 Binary files /dev/null and b/art/symbols/images/expanding_symbols/expnd_w3_pttrn_3.png differ diff --git a/art/symbols/images/expanding_symbols/expnd_w3_pttrn_3_add.png b/art/symbols/images/expanding_symbols/expnd_w3_pttrn_3_add.png new file mode 100644 index 0000000..5a5c6fd Binary files /dev/null and b/art/symbols/images/expanding_symbols/expnd_w3_pttrn_3_add.png differ diff --git a/art/symbols/images/expanding_symbols/expnd_w3_pttrn_3_glow.png b/art/symbols/images/expanding_symbols/expnd_w3_pttrn_3_glow.png new file mode 100644 index 0000000..382a112 Binary files /dev/null and b/art/symbols/images/expanding_symbols/expnd_w3_pttrn_3_glow.png differ diff --git a/art/symbols/images/expanding_symbols/expnd_w3_pttrn_4.png b/art/symbols/images/expanding_symbols/expnd_w3_pttrn_4.png new file mode 100644 index 0000000..49f1d60 Binary files /dev/null and b/art/symbols/images/expanding_symbols/expnd_w3_pttrn_4.png differ diff --git a/art/symbols/images/expanding_symbols/expnd_w3_pttrn_4_add.png b/art/symbols/images/expanding_symbols/expnd_w3_pttrn_4_add.png new file mode 100644 index 0000000..4821ce7 Binary files /dev/null and b/art/symbols/images/expanding_symbols/expnd_w3_pttrn_4_add.png differ diff --git a/art/symbols/images/expanding_symbols/expnd_w3_pttrn_4_glow.png b/art/symbols/images/expanding_symbols/expnd_w3_pttrn_4_glow.png new file mode 100644 index 0000000..903ee1a Binary files /dev/null and b/art/symbols/images/expanding_symbols/expnd_w3_pttrn_4_glow.png differ diff --git a/art/symbols/images/expanding_symbols/expnd_w3_pttrn_5.png b/art/symbols/images/expanding_symbols/expnd_w3_pttrn_5.png new file mode 100644 index 0000000..2c880de Binary files /dev/null and b/art/symbols/images/expanding_symbols/expnd_w3_pttrn_5.png differ diff --git a/art/symbols/images/expanding_symbols/expnd_w3_pttrn_5_add.png b/art/symbols/images/expanding_symbols/expnd_w3_pttrn_5_add.png new file mode 100644 index 0000000..16f35ae Binary files /dev/null and b/art/symbols/images/expanding_symbols/expnd_w3_pttrn_5_add.png differ diff --git a/art/symbols/images/expanding_symbols/expnd_w3_pttrn_5_glow.png b/art/symbols/images/expanding_symbols/expnd_w3_pttrn_5_glow.png new file mode 100644 index 0000000..f3f67fc Binary files /dev/null and b/art/symbols/images/expanding_symbols/expnd_w3_pttrn_5_glow.png differ diff --git a/art/symbols/images/expanding_symbols/expnd_w3_pttrn_face.png b/art/symbols/images/expanding_symbols/expnd_w3_pttrn_face.png new file mode 100644 index 0000000..4b7546c Binary files /dev/null and b/art/symbols/images/expanding_symbols/expnd_w3_pttrn_face.png differ diff --git a/art/symbols/images/expanding_symbols/expnd_w3_pttrn_face_add.png b/art/symbols/images/expanding_symbols/expnd_w3_pttrn_face_add.png new file mode 100644 index 0000000..76966ee Binary files /dev/null and b/art/symbols/images/expanding_symbols/expnd_w3_pttrn_face_add.png differ diff --git a/art/symbols/images/expanding_symbols/expnd_w3_pttrn_face_crown1.png b/art/symbols/images/expanding_symbols/expnd_w3_pttrn_face_crown1.png new file mode 100644 index 0000000..fc8b2a3 Binary files /dev/null and b/art/symbols/images/expanding_symbols/expnd_w3_pttrn_face_crown1.png differ diff --git a/art/symbols/images/expanding_symbols/expnd_w3_pttrn_face_crown1_add.png b/art/symbols/images/expanding_symbols/expnd_w3_pttrn_face_crown1_add.png new file mode 100644 index 0000000..37b155e Binary files /dev/null and b/art/symbols/images/expanding_symbols/expnd_w3_pttrn_face_crown1_add.png differ diff --git a/art/symbols/images/expanding_symbols/expnd_w3_pttrn_face_crown2.png b/art/symbols/images/expanding_symbols/expnd_w3_pttrn_face_crown2.png new file mode 100644 index 0000000..6ef6603 Binary files /dev/null and b/art/symbols/images/expanding_symbols/expnd_w3_pttrn_face_crown2.png differ diff --git a/art/symbols/images/expanding_symbols/expnd_w3_pttrn_face_crown2_add.png b/art/symbols/images/expanding_symbols/expnd_w3_pttrn_face_crown2_add.png new file mode 100644 index 0000000..b9eef10 Binary files /dev/null and b/art/symbols/images/expanding_symbols/expnd_w3_pttrn_face_crown2_add.png differ diff --git a/art/symbols/images/expanding_symbols/expnd_w3_pttrn_face_crown3.png b/art/symbols/images/expanding_symbols/expnd_w3_pttrn_face_crown3.png new file mode 100644 index 0000000..61405ec Binary files /dev/null and b/art/symbols/images/expanding_symbols/expnd_w3_pttrn_face_crown3.png differ diff --git a/art/symbols/images/expanding_symbols/expnd_w3_pttrn_face_crown3_add.png b/art/symbols/images/expanding_symbols/expnd_w3_pttrn_face_crown3_add.png new file mode 100644 index 0000000..cacd24c Binary files /dev/null and b/art/symbols/images/expanding_symbols/expnd_w3_pttrn_face_crown3_add.png differ diff --git a/art/symbols/images/expanding_symbols/expnd_w3_pttrn_face_crown4.png b/art/symbols/images/expanding_symbols/expnd_w3_pttrn_face_crown4.png new file mode 100644 index 0000000..8c96b4a Binary files /dev/null and b/art/symbols/images/expanding_symbols/expnd_w3_pttrn_face_crown4.png differ diff --git a/art/symbols/images/expanding_symbols/expnd_w3_pttrn_face_crown4_add.png b/art/symbols/images/expanding_symbols/expnd_w3_pttrn_face_crown4_add.png new file mode 100644 index 0000000..3c28ca2 Binary files /dev/null and b/art/symbols/images/expanding_symbols/expnd_w3_pttrn_face_crown4_add.png differ diff --git a/art/symbols/images/expanding_symbols/expnd_w3_pttrn_face_crown5.png b/art/symbols/images/expanding_symbols/expnd_w3_pttrn_face_crown5.png new file mode 100644 index 0000000..d03c65b Binary files /dev/null and b/art/symbols/images/expanding_symbols/expnd_w3_pttrn_face_crown5.png differ diff --git a/art/symbols/images/expanding_symbols/expnd_w3_pttrn_face_crown5_add.png b/art/symbols/images/expanding_symbols/expnd_w3_pttrn_face_crown5_add.png new file mode 100644 index 0000000..0d3c33d Binary files /dev/null and b/art/symbols/images/expanding_symbols/expnd_w3_pttrn_face_crown5_add.png differ diff --git a/art/symbols/images/expanding_symbols/expnd_w3_pttrn_face_crown6.png b/art/symbols/images/expanding_symbols/expnd_w3_pttrn_face_crown6.png new file mode 100644 index 0000000..fa83a6d Binary files /dev/null and b/art/symbols/images/expanding_symbols/expnd_w3_pttrn_face_crown6.png differ diff --git a/art/symbols/images/expanding_symbols/expnd_w3_pttrn_face_crown6_add.png b/art/symbols/images/expanding_symbols/expnd_w3_pttrn_face_crown6_add.png new file mode 100644 index 0000000..fecbe01 Binary files /dev/null and b/art/symbols/images/expanding_symbols/expnd_w3_pttrn_face_crown6_add.png differ diff --git a/art/symbols/images/expanding_symbols/expnd_w3_pttrn_face_crown7.png b/art/symbols/images/expanding_symbols/expnd_w3_pttrn_face_crown7.png new file mode 100644 index 0000000..778f71f Binary files /dev/null and b/art/symbols/images/expanding_symbols/expnd_w3_pttrn_face_crown7.png differ diff --git a/art/symbols/images/expanding_symbols/expnd_w3_pttrn_face_crown7_add.png b/art/symbols/images/expanding_symbols/expnd_w3_pttrn_face_crown7_add.png new file mode 100644 index 0000000..cdac90e Binary files /dev/null and b/art/symbols/images/expanding_symbols/expnd_w3_pttrn_face_crown7_add.png differ diff --git a/art/symbols/images/expanding_symbols/expnd_w3_pttrn_face_earring_l.png b/art/symbols/images/expanding_symbols/expnd_w3_pttrn_face_earring_l.png new file mode 100644 index 0000000..2650514 Binary files /dev/null and b/art/symbols/images/expanding_symbols/expnd_w3_pttrn_face_earring_l.png differ diff --git a/art/symbols/images/expanding_symbols/expnd_w3_pttrn_face_earring_l_add.png b/art/symbols/images/expanding_symbols/expnd_w3_pttrn_face_earring_l_add.png new file mode 100644 index 0000000..c5d2dac Binary files /dev/null and b/art/symbols/images/expanding_symbols/expnd_w3_pttrn_face_earring_l_add.png differ diff --git a/art/symbols/images/expanding_symbols/expnd_w3_pttrn_face_earring_r.png b/art/symbols/images/expanding_symbols/expnd_w3_pttrn_face_earring_r.png new file mode 100644 index 0000000..a04ad5e Binary files /dev/null and b/art/symbols/images/expanding_symbols/expnd_w3_pttrn_face_earring_r.png differ diff --git a/art/symbols/images/expanding_symbols/expnd_w3_pttrn_face_earring_r_add.png b/art/symbols/images/expanding_symbols/expnd_w3_pttrn_face_earring_r_add.png new file mode 100644 index 0000000..7f65694 Binary files /dev/null and b/art/symbols/images/expanding_symbols/expnd_w3_pttrn_face_earring_r_add.png differ diff --git a/art/symbols/images/expanding_symbols/expnd_w3_pttrn_face_necklace.png b/art/symbols/images/expanding_symbols/expnd_w3_pttrn_face_necklace.png new file mode 100644 index 0000000..88f14c0 Binary files /dev/null and b/art/symbols/images/expanding_symbols/expnd_w3_pttrn_face_necklace.png differ diff --git a/art/symbols/images/expanding_symbols/expnd_w3_pttrn_face_necklace_add.png b/art/symbols/images/expanding_symbols/expnd_w3_pttrn_face_necklace_add.png new file mode 100644 index 0000000..8318b6e Binary files /dev/null and b/art/symbols/images/expanding_symbols/expnd_w3_pttrn_face_necklace_add.png differ diff --git a/art/symbols/images/expanding_symbols/expnd_w3_pttrn_rays.png b/art/symbols/images/expanding_symbols/expnd_w3_pttrn_rays.png new file mode 100644 index 0000000..cac91c7 Binary files /dev/null and b/art/symbols/images/expanding_symbols/expnd_w3_pttrn_rays.png differ diff --git a/art/symbols/images/expanding_symbols/expnd_w3_pttrn_rays_add.png b/art/symbols/images/expanding_symbols/expnd_w3_pttrn_rays_add.png new file mode 100644 index 0000000..6cce469 Binary files /dev/null and b/art/symbols/images/expanding_symbols/expnd_w3_pttrn_rays_add.png differ diff --git a/art/symbols/images/expanding_symbols/expnd_w3_pttrn_rays_glow.png b/art/symbols/images/expanding_symbols/expnd_w3_pttrn_rays_glow.png new file mode 100644 index 0000000..0295644 Binary files /dev/null and b/art/symbols/images/expanding_symbols/expnd_w3_pttrn_rays_glow.png differ diff --git a/art/symbols/images/expanding_symbols/expnd_win_anim_down.png b/art/symbols/images/expanding_symbols/expnd_win_anim_down.png new file mode 100644 index 0000000..ae21db5 Binary files /dev/null and b/art/symbols/images/expanding_symbols/expnd_win_anim_down.png differ diff --git a/art/symbols/images/expanding_symbols/expnd_win_anim_down_glow.png b/art/symbols/images/expanding_symbols/expnd_win_anim_down_glow.png new file mode 100644 index 0000000..cae2283 Binary files /dev/null and b/art/symbols/images/expanding_symbols/expnd_win_anim_down_glow.png differ diff --git a/art/symbols/images/expanding_symbols/expnd_win_anim_up.png b/art/symbols/images/expanding_symbols/expnd_win_anim_up.png new file mode 100644 index 0000000..8fb8adb Binary files /dev/null and b/art/symbols/images/expanding_symbols/expnd_win_anim_up.png differ diff --git a/art/symbols/images/expanding_symbols/expnd_win_anim_up_glow.png b/art/symbols/images/expanding_symbols/expnd_win_anim_up_glow.png new file mode 100644 index 0000000..2f7568e Binary files /dev/null and b/art/symbols/images/expanding_symbols/expnd_win_anim_up_glow.png differ diff --git a/art/symbols/images/expanding_symbols/expnd_win_anim_vert.png b/art/symbols/images/expanding_symbols/expnd_win_anim_vert.png new file mode 100644 index 0000000..d947e64 Binary files /dev/null and b/art/symbols/images/expanding_symbols/expnd_win_anim_vert.png differ diff --git a/art/symbols/images/expanding_symbols/expnd_win_anim_vert_glow.png b/art/symbols/images/expanding_symbols/expnd_win_anim_vert_glow.png new file mode 100644 index 0000000..021952b Binary files /dev/null and b/art/symbols/images/expanding_symbols/expnd_win_anim_vert_glow.png differ diff --git a/art/symbols/images/expanding_symbols/h1_eyelid_l.png b/art/symbols/images/expanding_symbols/h1_eyelid_l.png new file mode 100644 index 0000000..a8bbc43 Binary files /dev/null and b/art/symbols/images/expanding_symbols/h1_eyelid_l.png differ diff --git a/art/symbols/images/expanding_symbols/h1_eyelid_r.png b/art/symbols/images/expanding_symbols/h1_eyelid_r.png new file mode 100644 index 0000000..2b35b50 Binary files /dev/null and b/art/symbols/images/expanding_symbols/h1_eyelid_r.png differ diff --git a/art/symbols/images/expanding_symbols/lightning/lightning_00000.png b/art/symbols/images/expanding_symbols/lightning/lightning_00000.png new file mode 100644 index 0000000..bd1ec79 Binary files /dev/null and b/art/symbols/images/expanding_symbols/lightning/lightning_00000.png differ diff --git a/art/symbols/images/expanding_symbols/lightning/lightning_00001.png b/art/symbols/images/expanding_symbols/lightning/lightning_00001.png new file mode 100644 index 0000000..bd1ec79 Binary files /dev/null and b/art/symbols/images/expanding_symbols/lightning/lightning_00001.png differ diff --git a/art/symbols/images/expanding_symbols/lightning/lightning_00002.png b/art/symbols/images/expanding_symbols/lightning/lightning_00002.png new file mode 100644 index 0000000..8005827 Binary files /dev/null and b/art/symbols/images/expanding_symbols/lightning/lightning_00002.png differ diff --git a/art/symbols/images/expanding_symbols/lightning/lightning_00003.png b/art/symbols/images/expanding_symbols/lightning/lightning_00003.png new file mode 100644 index 0000000..3b38aa4 Binary files /dev/null and b/art/symbols/images/expanding_symbols/lightning/lightning_00003.png differ diff --git a/art/symbols/images/expanding_symbols/lightning/lightning_00004.png b/art/symbols/images/expanding_symbols/lightning/lightning_00004.png new file mode 100644 index 0000000..189b34d Binary files /dev/null and b/art/symbols/images/expanding_symbols/lightning/lightning_00004.png differ diff --git a/art/symbols/images/expanding_symbols/lightning/lightning_00005.png b/art/symbols/images/expanding_symbols/lightning/lightning_00005.png new file mode 100644 index 0000000..d4ef4c2 Binary files /dev/null and b/art/symbols/images/expanding_symbols/lightning/lightning_00005.png differ diff --git a/art/symbols/images/expanding_symbols/lightning/lightning_00006.png b/art/symbols/images/expanding_symbols/lightning/lightning_00006.png new file mode 100644 index 0000000..bbe9d67 Binary files /dev/null and b/art/symbols/images/expanding_symbols/lightning/lightning_00006.png differ diff --git a/art/symbols/images/expanding_symbols/lightning/lightning_00007.png b/art/symbols/images/expanding_symbols/lightning/lightning_00007.png new file mode 100644 index 0000000..711a733 Binary files /dev/null and b/art/symbols/images/expanding_symbols/lightning/lightning_00007.png differ diff --git a/art/symbols/images/expanding_symbols/lightning/lightning_00008.png b/art/symbols/images/expanding_symbols/lightning/lightning_00008.png new file mode 100644 index 0000000..73771a3 Binary files /dev/null and b/art/symbols/images/expanding_symbols/lightning/lightning_00008.png differ diff --git a/art/symbols/images/expanding_symbols/lightning_smoke/light_smoke_00003.png b/art/symbols/images/expanding_symbols/lightning_smoke/light_smoke_00003.png new file mode 100644 index 0000000..cb38642 Binary files /dev/null and b/art/symbols/images/expanding_symbols/lightning_smoke/light_smoke_00003.png differ diff --git a/art/symbols/images/expanding_symbols/lightning_smoke/light_smoke_00004.png b/art/symbols/images/expanding_symbols/lightning_smoke/light_smoke_00004.png new file mode 100644 index 0000000..184e2f9 Binary files /dev/null and b/art/symbols/images/expanding_symbols/lightning_smoke/light_smoke_00004.png differ diff --git a/art/symbols/images/expanding_symbols/lightning_smoke/light_smoke_00005.png b/art/symbols/images/expanding_symbols/lightning_smoke/light_smoke_00005.png new file mode 100644 index 0000000..d3057b6 Binary files /dev/null and b/art/symbols/images/expanding_symbols/lightning_smoke/light_smoke_00005.png differ diff --git a/art/symbols/images/expanding_symbols/lightning_smoke/light_smoke_00006.png b/art/symbols/images/expanding_symbols/lightning_smoke/light_smoke_00006.png new file mode 100644 index 0000000..e166bc6 Binary files /dev/null and b/art/symbols/images/expanding_symbols/lightning_smoke/light_smoke_00006.png differ diff --git a/art/symbols/images/expanding_symbols/lightning_smoke/light_smoke_00007.png b/art/symbols/images/expanding_symbols/lightning_smoke/light_smoke_00007.png new file mode 100644 index 0000000..4f536ed Binary files /dev/null and b/art/symbols/images/expanding_symbols/lightning_smoke/light_smoke_00007.png differ diff --git a/art/symbols/images/expanding_symbols/lightning_smoke/light_smoke_00008.png b/art/symbols/images/expanding_symbols/lightning_smoke/light_smoke_00008.png new file mode 100644 index 0000000..d1c6914 Binary files /dev/null and b/art/symbols/images/expanding_symbols/lightning_smoke/light_smoke_00008.png differ diff --git a/art/symbols/images/expanding_symbols/lightning_smoke/light_smoke_00009.png b/art/symbols/images/expanding_symbols/lightning_smoke/light_smoke_00009.png new file mode 100644 index 0000000..e9aa986 Binary files /dev/null and b/art/symbols/images/expanding_symbols/lightning_smoke/light_smoke_00009.png differ diff --git a/art/symbols/images/expanding_symbols/lightning_smoke/light_smoke_00010.png b/art/symbols/images/expanding_symbols/lightning_smoke/light_smoke_00010.png new file mode 100644 index 0000000..70ec593 Binary files /dev/null and b/art/symbols/images/expanding_symbols/lightning_smoke/light_smoke_00010.png differ diff --git a/art/symbols/images/expanding_symbols/lightning_smoke/light_smoke_00011.png b/art/symbols/images/expanding_symbols/lightning_smoke/light_smoke_00011.png new file mode 100644 index 0000000..75a45f5 Binary files /dev/null and b/art/symbols/images/expanding_symbols/lightning_smoke/light_smoke_00011.png differ diff --git a/art/symbols/images/expanding_symbols/lightning_smoke/light_smoke_00012.png b/art/symbols/images/expanding_symbols/lightning_smoke/light_smoke_00012.png new file mode 100644 index 0000000..ff1ef03 Binary files /dev/null and b/art/symbols/images/expanding_symbols/lightning_smoke/light_smoke_00012.png differ diff --git a/art/symbols/images/expanding_symbols/lightning_smoke/light_smoke_00013.png b/art/symbols/images/expanding_symbols/lightning_smoke/light_smoke_00013.png new file mode 100644 index 0000000..cbea279 Binary files /dev/null and b/art/symbols/images/expanding_symbols/lightning_smoke/light_smoke_00013.png differ diff --git a/art/symbols/images/expanding_symbols/lightning_smoke/light_smoke_00014.png b/art/symbols/images/expanding_symbols/lightning_smoke/light_smoke_00014.png new file mode 100644 index 0000000..ac823fd Binary files /dev/null and b/art/symbols/images/expanding_symbols/lightning_smoke/light_smoke_00014.png differ diff --git a/art/symbols/images/expanding_symbols/lightning_smoke/light_smoke_00015.png b/art/symbols/images/expanding_symbols/lightning_smoke/light_smoke_00015.png new file mode 100644 index 0000000..c8666a3 Binary files /dev/null and b/art/symbols/images/expanding_symbols/lightning_smoke/light_smoke_00015.png differ diff --git a/art/symbols/images/expanding_symbols/lightning_smoke/light_smoke_00016.png b/art/symbols/images/expanding_symbols/lightning_smoke/light_smoke_00016.png new file mode 100644 index 0000000..e75d103 Binary files /dev/null and b/art/symbols/images/expanding_symbols/lightning_smoke/light_smoke_00016.png differ diff --git a/art/symbols/images/expanding_symbols/lightning_smoke/light_smoke_00017.png b/art/symbols/images/expanding_symbols/lightning_smoke/light_smoke_00017.png new file mode 100644 index 0000000..afa84dc Binary files /dev/null and b/art/symbols/images/expanding_symbols/lightning_smoke/light_smoke_00017.png differ diff --git a/art/symbols/images/expanding_symbols/lightning_smoke/light_smoke_00018.png b/art/symbols/images/expanding_symbols/lightning_smoke/light_smoke_00018.png new file mode 100644 index 0000000..d61007a Binary files /dev/null and b/art/symbols/images/expanding_symbols/lightning_smoke/light_smoke_00018.png differ diff --git a/art/symbols/images/expanding_symbols/lightning_smoke/light_smoke_00019.png b/art/symbols/images/expanding_symbols/lightning_smoke/light_smoke_00019.png new file mode 100644 index 0000000..eaa970b Binary files /dev/null and b/art/symbols/images/expanding_symbols/lightning_smoke/light_smoke_00019.png differ diff --git a/art/symbols/images/expanding_symbols/lightning_smoke/light_smoke_00020.png b/art/symbols/images/expanding_symbols/lightning_smoke/light_smoke_00020.png new file mode 100644 index 0000000..da5694c Binary files /dev/null and b/art/symbols/images/expanding_symbols/lightning_smoke/light_smoke_00020.png differ diff --git a/art/symbols/images/expanding_symbols/lightning_smoke/light_smoke_00021.png b/art/symbols/images/expanding_symbols/lightning_smoke/light_smoke_00021.png new file mode 100644 index 0000000..ec4f15f Binary files /dev/null and b/art/symbols/images/expanding_symbols/lightning_smoke/light_smoke_00021.png differ diff --git a/art/symbols/images/expanding_symbols/lightning_smoke/light_smoke_00022.png b/art/symbols/images/expanding_symbols/lightning_smoke/light_smoke_00022.png new file mode 100644 index 0000000..4cd1627 Binary files /dev/null and b/art/symbols/images/expanding_symbols/lightning_smoke/light_smoke_00022.png differ diff --git a/art/symbols/images/expanding_symbols/lightning_smoke/light_smoke_00023.png b/art/symbols/images/expanding_symbols/lightning_smoke/light_smoke_00023.png new file mode 100644 index 0000000..c37c735 Binary files /dev/null and b/art/symbols/images/expanding_symbols/lightning_smoke/light_smoke_00023.png differ diff --git a/art/symbols/images/expanding_symbols/lightning_smoke/light_smoke_00024.png b/art/symbols/images/expanding_symbols/lightning_smoke/light_smoke_00024.png new file mode 100644 index 0000000..596827b Binary files /dev/null and b/art/symbols/images/expanding_symbols/lightning_smoke/light_smoke_00024.png differ diff --git a/art/symbols/images/expanding_symbols/lightning_smoke/light_smoke_00025.png b/art/symbols/images/expanding_symbols/lightning_smoke/light_smoke_00025.png new file mode 100644 index 0000000..bb57a34 Binary files /dev/null and b/art/symbols/images/expanding_symbols/lightning_smoke/light_smoke_00025.png differ diff --git a/art/symbols/images/expanding_symbols/lightning_smoke/light_smoke_00026.png b/art/symbols/images/expanding_symbols/lightning_smoke/light_smoke_00026.png new file mode 100644 index 0000000..bba2bf6 Binary files /dev/null and b/art/symbols/images/expanding_symbols/lightning_smoke/light_smoke_00026.png differ diff --git a/art/symbols/images/expanding_symbols/lightning_smoke/light_smoke_00027.png b/art/symbols/images/expanding_symbols/lightning_smoke/light_smoke_00027.png new file mode 100644 index 0000000..ac9b9c4 Binary files /dev/null and b/art/symbols/images/expanding_symbols/lightning_smoke/light_smoke_00027.png differ diff --git a/art/symbols/images/expanding_symbols/lightning_smoke/light_smoke_00028.png b/art/symbols/images/expanding_symbols/lightning_smoke/light_smoke_00028.png new file mode 100644 index 0000000..46c2ab7 Binary files /dev/null and b/art/symbols/images/expanding_symbols/lightning_smoke/light_smoke_00028.png differ diff --git a/art/symbols/images/expanding_symbols/lightning_smoke/light_smoke_00029.png b/art/symbols/images/expanding_symbols/lightning_smoke/light_smoke_00029.png new file mode 100644 index 0000000..44c1ff0 Binary files /dev/null and b/art/symbols/images/expanding_symbols/lightning_smoke/light_smoke_00029.png differ diff --git a/art/symbols/images/expanding_symbols/lightning_smoke/light_smoke_00030.png b/art/symbols/images/expanding_symbols/lightning_smoke/light_smoke_00030.png new file mode 100644 index 0000000..ee85ea2 Binary files /dev/null and b/art/symbols/images/expanding_symbols/lightning_smoke/light_smoke_00030.png differ diff --git a/art/symbols/images/expanding_symbols/lightning_smoke/light_smoke_00031.png b/art/symbols/images/expanding_symbols/lightning_smoke/light_smoke_00031.png new file mode 100644 index 0000000..0e1cbb8 Binary files /dev/null and b/art/symbols/images/expanding_symbols/lightning_smoke/light_smoke_00031.png differ diff --git a/art/symbols/images/expanding_symbols/placeholder.png b/art/symbols/images/expanding_symbols/placeholder.png new file mode 100644 index 0000000..f48fbfa Binary files /dev/null and b/art/symbols/images/expanding_symbols/placeholder.png differ diff --git a/art/symbols/images/expanding_symbols/smoke_01/smoke01_00000.png b/art/symbols/images/expanding_symbols/smoke_01/smoke01_00000.png new file mode 100644 index 0000000..e8ee779 Binary files /dev/null and b/art/symbols/images/expanding_symbols/smoke_01/smoke01_00000.png differ diff --git a/art/symbols/images/expanding_symbols/smoke_01/smoke01_00001.png b/art/symbols/images/expanding_symbols/smoke_01/smoke01_00001.png new file mode 100644 index 0000000..e8ee779 Binary files /dev/null and b/art/symbols/images/expanding_symbols/smoke_01/smoke01_00001.png differ diff --git a/art/symbols/images/expanding_symbols/smoke_01/smoke01_00002.png b/art/symbols/images/expanding_symbols/smoke_01/smoke01_00002.png new file mode 100644 index 0000000..231761b Binary files /dev/null and b/art/symbols/images/expanding_symbols/smoke_01/smoke01_00002.png differ diff --git a/art/symbols/images/expanding_symbols/smoke_01/smoke01_00003.png b/art/symbols/images/expanding_symbols/smoke_01/smoke01_00003.png new file mode 100644 index 0000000..74c790f Binary files /dev/null and b/art/symbols/images/expanding_symbols/smoke_01/smoke01_00003.png differ diff --git a/art/symbols/images/expanding_symbols/smoke_01/smoke01_00004.png b/art/symbols/images/expanding_symbols/smoke_01/smoke01_00004.png new file mode 100644 index 0000000..792a20c Binary files /dev/null and b/art/symbols/images/expanding_symbols/smoke_01/smoke01_00004.png differ diff --git a/art/symbols/images/expanding_symbols/smoke_01/smoke01_00005.png b/art/symbols/images/expanding_symbols/smoke_01/smoke01_00005.png new file mode 100644 index 0000000..e9b729c Binary files /dev/null and b/art/symbols/images/expanding_symbols/smoke_01/smoke01_00005.png differ diff --git a/art/symbols/images/expanding_symbols/smoke_01/smoke01_00006.png b/art/symbols/images/expanding_symbols/smoke_01/smoke01_00006.png new file mode 100644 index 0000000..e9b729c Binary files /dev/null and b/art/symbols/images/expanding_symbols/smoke_01/smoke01_00006.png differ diff --git a/art/symbols/images/expanding_symbols/smoke_01/smoke01_00007.png b/art/symbols/images/expanding_symbols/smoke_01/smoke01_00007.png new file mode 100644 index 0000000..ae98455 Binary files /dev/null and b/art/symbols/images/expanding_symbols/smoke_01/smoke01_00007.png differ diff --git a/art/symbols/images/expanding_symbols/smoke_01/smoke01_00008.png b/art/symbols/images/expanding_symbols/smoke_01/smoke01_00008.png new file mode 100644 index 0000000..0d012d1 Binary files /dev/null and b/art/symbols/images/expanding_symbols/smoke_01/smoke01_00008.png differ diff --git a/art/symbols/images/expanding_symbols/smoke_01/smoke01_00009.png b/art/symbols/images/expanding_symbols/smoke_01/smoke01_00009.png new file mode 100644 index 0000000..0af0b63 Binary files /dev/null and b/art/symbols/images/expanding_symbols/smoke_01/smoke01_00009.png differ diff --git a/art/symbols/images/expanding_symbols/smoke_01/smoke01_00010.png b/art/symbols/images/expanding_symbols/smoke_01/smoke01_00010.png new file mode 100644 index 0000000..000b065 Binary files /dev/null and b/art/symbols/images/expanding_symbols/smoke_01/smoke01_00010.png differ diff --git a/art/symbols/images/expanding_symbols/smoke_01/smoke01_00011.png b/art/symbols/images/expanding_symbols/smoke_01/smoke01_00011.png new file mode 100644 index 0000000..3d084bd Binary files /dev/null and b/art/symbols/images/expanding_symbols/smoke_01/smoke01_00011.png differ diff --git a/art/symbols/images/expanding_symbols/smoke_01/smoke01_00012.png b/art/symbols/images/expanding_symbols/smoke_01/smoke01_00012.png new file mode 100644 index 0000000..0d06226 Binary files /dev/null and b/art/symbols/images/expanding_symbols/smoke_01/smoke01_00012.png differ diff --git a/art/symbols/images/expanding_symbols/smoke_01/smoke01_00013.png b/art/symbols/images/expanding_symbols/smoke_01/smoke01_00013.png new file mode 100644 index 0000000..7b2ec96 Binary files /dev/null and b/art/symbols/images/expanding_symbols/smoke_01/smoke01_00013.png differ diff --git a/art/symbols/images/expanding_symbols/smoke_01/smoke01_00014.png b/art/symbols/images/expanding_symbols/smoke_01/smoke01_00014.png new file mode 100644 index 0000000..f7d1400 Binary files /dev/null and b/art/symbols/images/expanding_symbols/smoke_01/smoke01_00014.png differ diff --git a/art/symbols/images/expanding_symbols/smoke_01/smoke01_00015.png b/art/symbols/images/expanding_symbols/smoke_01/smoke01_00015.png new file mode 100644 index 0000000..75f4645 Binary files /dev/null and b/art/symbols/images/expanding_symbols/smoke_01/smoke01_00015.png differ diff --git a/art/symbols/images/expanding_symbols/smoke_01/smoke01_00016.png b/art/symbols/images/expanding_symbols/smoke_01/smoke01_00016.png new file mode 100644 index 0000000..3d465dc Binary files /dev/null and b/art/symbols/images/expanding_symbols/smoke_01/smoke01_00016.png differ diff --git a/art/symbols/images/expanding_symbols/smoke_01/smoke01_00017.png b/art/symbols/images/expanding_symbols/smoke_01/smoke01_00017.png new file mode 100644 index 0000000..e23cb77 Binary files /dev/null and b/art/symbols/images/expanding_symbols/smoke_01/smoke01_00017.png differ diff --git a/art/symbols/images/expanding_symbols/smoke_01/smoke01_00018.png b/art/symbols/images/expanding_symbols/smoke_01/smoke01_00018.png new file mode 100644 index 0000000..e683f36 Binary files /dev/null and b/art/symbols/images/expanding_symbols/smoke_01/smoke01_00018.png differ diff --git a/art/symbols/images/expanding_symbols/smoke_01/smoke01_00019.png b/art/symbols/images/expanding_symbols/smoke_01/smoke01_00019.png new file mode 100644 index 0000000..0433bbd Binary files /dev/null and b/art/symbols/images/expanding_symbols/smoke_01/smoke01_00019.png differ diff --git a/art/symbols/images/expanding_symbols/smoke_01/smoke01_00020.png b/art/symbols/images/expanding_symbols/smoke_01/smoke01_00020.png new file mode 100644 index 0000000..36e0f8e Binary files /dev/null and b/art/symbols/images/expanding_symbols/smoke_01/smoke01_00020.png differ diff --git a/art/symbols/images/expanding_symbols/smoke_01/smoke01_00021.png b/art/symbols/images/expanding_symbols/smoke_01/smoke01_00021.png new file mode 100644 index 0000000..36e0f8e Binary files /dev/null and b/art/symbols/images/expanding_symbols/smoke_01/smoke01_00021.png differ diff --git a/art/symbols/images/expanding_symbols/smoke_01/smoke01_00022.png b/art/symbols/images/expanding_symbols/smoke_01/smoke01_00022.png new file mode 100644 index 0000000..999de5b Binary files /dev/null and b/art/symbols/images/expanding_symbols/smoke_01/smoke01_00022.png differ diff --git a/art/symbols/images/expanding_symbols/smoke_01/smoke01_00023.png b/art/symbols/images/expanding_symbols/smoke_01/smoke01_00023.png new file mode 100644 index 0000000..4572750 Binary files /dev/null and b/art/symbols/images/expanding_symbols/smoke_01/smoke01_00023.png differ diff --git a/art/symbols/images/expanding_symbols/smoke_01/smoke01_00024.png b/art/symbols/images/expanding_symbols/smoke_01/smoke01_00024.png new file mode 100644 index 0000000..6ee8dba Binary files /dev/null and b/art/symbols/images/expanding_symbols/smoke_01/smoke01_00024.png differ diff --git a/art/symbols/images/expanding_symbols/smoke_01/smoke01_00025.png b/art/symbols/images/expanding_symbols/smoke_01/smoke01_00025.png new file mode 100644 index 0000000..af587b2 Binary files /dev/null and b/art/symbols/images/expanding_symbols/smoke_01/smoke01_00025.png differ diff --git a/art/symbols/images/expanding_symbols/smoke_01/smoke01_00026.png b/art/symbols/images/expanding_symbols/smoke_01/smoke01_00026.png new file mode 100644 index 0000000..af587b2 Binary files /dev/null and b/art/symbols/images/expanding_symbols/smoke_01/smoke01_00026.png differ diff --git a/art/symbols/images/expanding_symbols/smoke_01/smoke01_00027.png b/art/symbols/images/expanding_symbols/smoke_01/smoke01_00027.png new file mode 100644 index 0000000..40ff772 Binary files /dev/null and b/art/symbols/images/expanding_symbols/smoke_01/smoke01_00027.png differ diff --git a/art/symbols/images/expanding_symbols/smoke_01/smoke01_00028.png b/art/symbols/images/expanding_symbols/smoke_01/smoke01_00028.png new file mode 100644 index 0000000..19e00da Binary files /dev/null and b/art/symbols/images/expanding_symbols/smoke_01/smoke01_00028.png differ diff --git a/art/symbols/images/expanding_symbols/smoke_01/smoke01_00029.png b/art/symbols/images/expanding_symbols/smoke_01/smoke01_00029.png new file mode 100644 index 0000000..ac11a42 Binary files /dev/null and b/art/symbols/images/expanding_symbols/smoke_01/smoke01_00029.png differ diff --git a/art/symbols/images/expanding_symbols/smoke_01/smoke01_00030.png b/art/symbols/images/expanding_symbols/smoke_01/smoke01_00030.png new file mode 100644 index 0000000..0e6a35a Binary files /dev/null and b/art/symbols/images/expanding_symbols/smoke_01/smoke01_00030.png differ diff --git a/art/symbols/images/expanding_symbols/smoke_01/smoke01_00031.png b/art/symbols/images/expanding_symbols/smoke_01/smoke01_00031.png new file mode 100644 index 0000000..0e6a35a Binary files /dev/null and b/art/symbols/images/expanding_symbols/smoke_01/smoke01_00031.png differ diff --git a/art/symbols/images/expanding_symbols/smoke_01/smoke01_00032.png b/art/symbols/images/expanding_symbols/smoke_01/smoke01_00032.png new file mode 100644 index 0000000..0715599 Binary files /dev/null and b/art/symbols/images/expanding_symbols/smoke_01/smoke01_00032.png differ diff --git a/art/symbols/images/expanding_symbols/smoke_01/smoke01_00033.png b/art/symbols/images/expanding_symbols/smoke_01/smoke01_00033.png new file mode 100644 index 0000000..eb7f2e9 Binary files /dev/null and b/art/symbols/images/expanding_symbols/smoke_01/smoke01_00033.png differ diff --git a/art/symbols/images/expanding_symbols/smoke_01/smoke01_00034.png b/art/symbols/images/expanding_symbols/smoke_01/smoke01_00034.png new file mode 100644 index 0000000..dbee630 Binary files /dev/null and b/art/symbols/images/expanding_symbols/smoke_01/smoke01_00034.png differ diff --git a/art/symbols/images/expanding_symbols/smoke_01/smoke01_00035.png b/art/symbols/images/expanding_symbols/smoke_01/smoke01_00035.png new file mode 100644 index 0000000..ad7d9d5 Binary files /dev/null and b/art/symbols/images/expanding_symbols/smoke_01/smoke01_00035.png differ diff --git a/art/symbols/images/expanding_symbols/smoke_01/smoke01_00036.png b/art/symbols/images/expanding_symbols/smoke_01/smoke01_00036.png new file mode 100644 index 0000000..ad7d9d5 Binary files /dev/null and b/art/symbols/images/expanding_symbols/smoke_01/smoke01_00036.png differ diff --git a/art/symbols/images/expanding_symbols/smoke_01/smoke01_00037.png b/art/symbols/images/expanding_symbols/smoke_01/smoke01_00037.png new file mode 100644 index 0000000..89ac040 Binary files /dev/null and b/art/symbols/images/expanding_symbols/smoke_01/smoke01_00037.png differ diff --git a/art/symbols/images/expanding_symbols/smoke_01/smoke01_00038.png b/art/symbols/images/expanding_symbols/smoke_01/smoke01_00038.png new file mode 100644 index 0000000..1edc55b Binary files /dev/null and b/art/symbols/images/expanding_symbols/smoke_01/smoke01_00038.png differ diff --git a/art/symbols/images/expanding_symbols/smoke_01/smoke01_00039.png b/art/symbols/images/expanding_symbols/smoke_01/smoke01_00039.png new file mode 100644 index 0000000..6530d25 Binary files /dev/null and b/art/symbols/images/expanding_symbols/smoke_01/smoke01_00039.png differ diff --git a/art/symbols/images/expanding_symbols/smoke_01/smoke01_00040.png b/art/symbols/images/expanding_symbols/smoke_01/smoke01_00040.png new file mode 100644 index 0000000..dc0fb6e Binary files /dev/null and b/art/symbols/images/expanding_symbols/smoke_01/smoke01_00040.png differ diff --git a/art/symbols/images/expanding_symbols/smoke_01/smoke01_00041.png b/art/symbols/images/expanding_symbols/smoke_01/smoke01_00041.png new file mode 100644 index 0000000..dc0fb6e Binary files /dev/null and b/art/symbols/images/expanding_symbols/smoke_01/smoke01_00041.png differ diff --git a/art/symbols/images/expanding_symbols/smoke_01/smoke01_00042.png b/art/symbols/images/expanding_symbols/smoke_01/smoke01_00042.png new file mode 100644 index 0000000..8b7c4ab Binary files /dev/null and b/art/symbols/images/expanding_symbols/smoke_01/smoke01_00042.png differ diff --git a/art/symbols/images/expanding_symbols/smoke_02/smoke02_00000.png b/art/symbols/images/expanding_symbols/smoke_02/smoke02_00000.png new file mode 100644 index 0000000..afad270 Binary files /dev/null and b/art/symbols/images/expanding_symbols/smoke_02/smoke02_00000.png differ diff --git a/art/symbols/images/expanding_symbols/smoke_02/smoke02_00001.png b/art/symbols/images/expanding_symbols/smoke_02/smoke02_00001.png new file mode 100644 index 0000000..afad270 Binary files /dev/null and b/art/symbols/images/expanding_symbols/smoke_02/smoke02_00001.png differ diff --git a/art/symbols/images/expanding_symbols/smoke_02/smoke02_00002.png b/art/symbols/images/expanding_symbols/smoke_02/smoke02_00002.png new file mode 100644 index 0000000..b0bee25 Binary files /dev/null and b/art/symbols/images/expanding_symbols/smoke_02/smoke02_00002.png differ diff --git a/art/symbols/images/expanding_symbols/smoke_02/smoke02_00003.png b/art/symbols/images/expanding_symbols/smoke_02/smoke02_00003.png new file mode 100644 index 0000000..af51a30 Binary files /dev/null and b/art/symbols/images/expanding_symbols/smoke_02/smoke02_00003.png differ diff --git a/art/symbols/images/expanding_symbols/smoke_02/smoke02_00004.png b/art/symbols/images/expanding_symbols/smoke_02/smoke02_00004.png new file mode 100644 index 0000000..c9ada63 Binary files /dev/null and b/art/symbols/images/expanding_symbols/smoke_02/smoke02_00004.png differ diff --git a/art/symbols/images/expanding_symbols/smoke_02/smoke02_00005.png b/art/symbols/images/expanding_symbols/smoke_02/smoke02_00005.png new file mode 100644 index 0000000..49b774c Binary files /dev/null and b/art/symbols/images/expanding_symbols/smoke_02/smoke02_00005.png differ diff --git a/art/symbols/images/expanding_symbols/smoke_02/smoke02_00006.png b/art/symbols/images/expanding_symbols/smoke_02/smoke02_00006.png new file mode 100644 index 0000000..49b774c Binary files /dev/null and b/art/symbols/images/expanding_symbols/smoke_02/smoke02_00006.png differ diff --git a/art/symbols/images/expanding_symbols/smoke_02/smoke02_00007.png b/art/symbols/images/expanding_symbols/smoke_02/smoke02_00007.png new file mode 100644 index 0000000..15409e6 Binary files /dev/null and b/art/symbols/images/expanding_symbols/smoke_02/smoke02_00007.png differ diff --git a/art/symbols/images/expanding_symbols/smoke_02/smoke02_00008.png b/art/symbols/images/expanding_symbols/smoke_02/smoke02_00008.png new file mode 100644 index 0000000..320c82a Binary files /dev/null and b/art/symbols/images/expanding_symbols/smoke_02/smoke02_00008.png differ diff --git a/art/symbols/images/expanding_symbols/smoke_02/smoke02_00009.png b/art/symbols/images/expanding_symbols/smoke_02/smoke02_00009.png new file mode 100644 index 0000000..3c6eeca Binary files /dev/null and b/art/symbols/images/expanding_symbols/smoke_02/smoke02_00009.png differ diff --git a/art/symbols/images/expanding_symbols/smoke_02/smoke02_00010.png b/art/symbols/images/expanding_symbols/smoke_02/smoke02_00010.png new file mode 100644 index 0000000..655c465 Binary files /dev/null and b/art/symbols/images/expanding_symbols/smoke_02/smoke02_00010.png differ diff --git a/art/symbols/images/expanding_symbols/smoke_02/smoke02_00011.png b/art/symbols/images/expanding_symbols/smoke_02/smoke02_00011.png new file mode 100644 index 0000000..655c465 Binary files /dev/null and b/art/symbols/images/expanding_symbols/smoke_02/smoke02_00011.png differ diff --git a/art/symbols/images/expanding_symbols/smoke_02/smoke02_00012.png b/art/symbols/images/expanding_symbols/smoke_02/smoke02_00012.png new file mode 100644 index 0000000..81c0db0 Binary files /dev/null and b/art/symbols/images/expanding_symbols/smoke_02/smoke02_00012.png differ diff --git a/art/symbols/images/expanding_symbols/smoke_02/smoke02_00013.png b/art/symbols/images/expanding_symbols/smoke_02/smoke02_00013.png new file mode 100644 index 0000000..3097a0a Binary files /dev/null and b/art/symbols/images/expanding_symbols/smoke_02/smoke02_00013.png differ diff --git a/art/symbols/images/expanding_symbols/smoke_02/smoke02_00014.png b/art/symbols/images/expanding_symbols/smoke_02/smoke02_00014.png new file mode 100644 index 0000000..135bc55 Binary files /dev/null and b/art/symbols/images/expanding_symbols/smoke_02/smoke02_00014.png differ diff --git a/art/symbols/images/expanding_symbols/smoke_02/smoke02_00015.png b/art/symbols/images/expanding_symbols/smoke_02/smoke02_00015.png new file mode 100644 index 0000000..521571a Binary files /dev/null and b/art/symbols/images/expanding_symbols/smoke_02/smoke02_00015.png differ diff --git a/art/symbols/images/expanding_symbols/smoke_02/smoke02_00016.png b/art/symbols/images/expanding_symbols/smoke_02/smoke02_00016.png new file mode 100644 index 0000000..521571a Binary files /dev/null and b/art/symbols/images/expanding_symbols/smoke_02/smoke02_00016.png differ diff --git a/art/symbols/images/expanding_symbols/smoke_02/smoke02_00017.png b/art/symbols/images/expanding_symbols/smoke_02/smoke02_00017.png new file mode 100644 index 0000000..3d6b987 Binary files /dev/null and b/art/symbols/images/expanding_symbols/smoke_02/smoke02_00017.png differ diff --git a/art/symbols/images/expanding_symbols/smoke_02/smoke02_00018.png b/art/symbols/images/expanding_symbols/smoke_02/smoke02_00018.png new file mode 100644 index 0000000..6478d99 Binary files /dev/null and b/art/symbols/images/expanding_symbols/smoke_02/smoke02_00018.png differ diff --git a/art/symbols/images/expanding_symbols/smoke_02/smoke02_00019.png b/art/symbols/images/expanding_symbols/smoke_02/smoke02_00019.png new file mode 100644 index 0000000..a264bec Binary files /dev/null and b/art/symbols/images/expanding_symbols/smoke_02/smoke02_00019.png differ diff --git a/art/symbols/images/expanding_symbols/smoke_02/smoke02_00020.png b/art/symbols/images/expanding_symbols/smoke_02/smoke02_00020.png new file mode 100644 index 0000000..71e1792 Binary files /dev/null and b/art/symbols/images/expanding_symbols/smoke_02/smoke02_00020.png differ diff --git a/art/symbols/images/expanding_symbols/smoke_02/smoke02_00021.png b/art/symbols/images/expanding_symbols/smoke_02/smoke02_00021.png new file mode 100644 index 0000000..5773a8b Binary files /dev/null and b/art/symbols/images/expanding_symbols/smoke_02/smoke02_00021.png differ diff --git a/art/symbols/images/expanding_symbols/smoke_02/smoke02_00022.png b/art/symbols/images/expanding_symbols/smoke_02/smoke02_00022.png new file mode 100644 index 0000000..ce9af60 Binary files /dev/null and b/art/symbols/images/expanding_symbols/smoke_02/smoke02_00022.png differ diff --git a/art/symbols/images/expanding_symbols/smoke_02/smoke02_00023.png b/art/symbols/images/expanding_symbols/smoke_02/smoke02_00023.png new file mode 100644 index 0000000..534c14b Binary files /dev/null and b/art/symbols/images/expanding_symbols/smoke_02/smoke02_00023.png differ diff --git a/art/symbols/images/expanding_symbols/smoke_02/smoke02_00024.png b/art/symbols/images/expanding_symbols/smoke_02/smoke02_00024.png new file mode 100644 index 0000000..fcded8b Binary files /dev/null and b/art/symbols/images/expanding_symbols/smoke_02/smoke02_00024.png differ diff --git a/art/symbols/images/expanding_symbols/smoke_02/smoke02_00025.png b/art/symbols/images/expanding_symbols/smoke_02/smoke02_00025.png new file mode 100644 index 0000000..9f206de Binary files /dev/null and b/art/symbols/images/expanding_symbols/smoke_02/smoke02_00025.png differ diff --git a/art/symbols/images/expanding_symbols/smoke_02/smoke02_00026.png b/art/symbols/images/expanding_symbols/smoke_02/smoke02_00026.png new file mode 100644 index 0000000..9f206de Binary files /dev/null and b/art/symbols/images/expanding_symbols/smoke_02/smoke02_00026.png differ diff --git a/art/symbols/images/expanding_symbols/smoke_02/smoke02_00027.png b/art/symbols/images/expanding_symbols/smoke_02/smoke02_00027.png new file mode 100644 index 0000000..6e2da5d Binary files /dev/null and b/art/symbols/images/expanding_symbols/smoke_02/smoke02_00027.png differ diff --git a/art/symbols/images/expanding_symbols/smoke_02/smoke02_00028.png b/art/symbols/images/expanding_symbols/smoke_02/smoke02_00028.png new file mode 100644 index 0000000..3429df3 Binary files /dev/null and b/art/symbols/images/expanding_symbols/smoke_02/smoke02_00028.png differ diff --git a/art/symbols/images/expanding_symbols/smoke_02/smoke02_00029.png b/art/symbols/images/expanding_symbols/smoke_02/smoke02_00029.png new file mode 100644 index 0000000..ca2e18e Binary files /dev/null and b/art/symbols/images/expanding_symbols/smoke_02/smoke02_00029.png differ diff --git a/art/symbols/images/expanding_symbols/smoke_02/smoke02_00030.png b/art/symbols/images/expanding_symbols/smoke_02/smoke02_00030.png new file mode 100644 index 0000000..259d06e Binary files /dev/null and b/art/symbols/images/expanding_symbols/smoke_02/smoke02_00030.png differ diff --git a/art/symbols/images/expanding_symbols/smoke_02/smoke02_00031.png b/art/symbols/images/expanding_symbols/smoke_02/smoke02_00031.png new file mode 100644 index 0000000..259d06e Binary files /dev/null and b/art/symbols/images/expanding_symbols/smoke_02/smoke02_00031.png differ diff --git a/art/symbols/images/expanding_symbols/smoke_02/smoke02_00032.png b/art/symbols/images/expanding_symbols/smoke_02/smoke02_00032.png new file mode 100644 index 0000000..d5e8402 Binary files /dev/null and b/art/symbols/images/expanding_symbols/smoke_02/smoke02_00032.png differ diff --git a/art/symbols/images/expanding_symbols/smoke_02/smoke02_00033.png b/art/symbols/images/expanding_symbols/smoke_02/smoke02_00033.png new file mode 100644 index 0000000..146b52c Binary files /dev/null and b/art/symbols/images/expanding_symbols/smoke_02/smoke02_00033.png differ diff --git a/art/symbols/images/expanding_symbols/smoke_02/smoke02_00034.png b/art/symbols/images/expanding_symbols/smoke_02/smoke02_00034.png new file mode 100644 index 0000000..a033eb3 Binary files /dev/null and b/art/symbols/images/expanding_symbols/smoke_02/smoke02_00034.png differ diff --git a/art/symbols/images/expanding_symbols/smoke_02/smoke02_00035.png b/art/symbols/images/expanding_symbols/smoke_02/smoke02_00035.png new file mode 100644 index 0000000..dc244e7 Binary files /dev/null and b/art/symbols/images/expanding_symbols/smoke_02/smoke02_00035.png differ diff --git a/art/symbols/images/expanding_symbols/smoke_02/smoke02_00036.png b/art/symbols/images/expanding_symbols/smoke_02/smoke02_00036.png new file mode 100644 index 0000000..dc244e7 Binary files /dev/null and b/art/symbols/images/expanding_symbols/smoke_02/smoke02_00036.png differ diff --git a/art/symbols/images/expanding_symbols/smoke_02/smoke02_00037.png b/art/symbols/images/expanding_symbols/smoke_02/smoke02_00037.png new file mode 100644 index 0000000..1468c04 Binary files /dev/null and b/art/symbols/images/expanding_symbols/smoke_02/smoke02_00037.png differ diff --git a/art/symbols/images/expanding_symbols/smoke_02/smoke02_00038.png b/art/symbols/images/expanding_symbols/smoke_02/smoke02_00038.png new file mode 100644 index 0000000..fed3983 Binary files /dev/null and b/art/symbols/images/expanding_symbols/smoke_02/smoke02_00038.png differ diff --git a/art/symbols/images/high_symbols/h1_bg.png b/art/symbols/images/high_symbols/h1_bg.png new file mode 100644 index 0000000..cdc5348 Binary files /dev/null and b/art/symbols/images/high_symbols/h1_bg.png differ diff --git a/art/symbols/images/high_symbols/h1_bg_glow2.png b/art/symbols/images/high_symbols/h1_bg_glow2.png new file mode 100644 index 0000000..b3e1ad4 Binary files /dev/null and b/art/symbols/images/high_symbols/h1_bg_glow2.png differ diff --git a/art/symbols/images/high_symbols/h1_body.png b/art/symbols/images/high_symbols/h1_body.png new file mode 100644 index 0000000..4dfec4d Binary files /dev/null and b/art/symbols/images/high_symbols/h1_body.png differ diff --git a/art/symbols/images/high_symbols/h1_char_glow.png b/art/symbols/images/high_symbols/h1_char_glow.png new file mode 100644 index 0000000..6a85aec Binary files /dev/null and b/art/symbols/images/high_symbols/h1_char_glow.png differ diff --git a/art/symbols/images/high_symbols/h1_effect/h1_effect_00007.png b/art/symbols/images/high_symbols/h1_effect/h1_effect_00007.png new file mode 100644 index 0000000..6fa54e2 Binary files /dev/null and b/art/symbols/images/high_symbols/h1_effect/h1_effect_00007.png differ diff --git a/art/symbols/images/high_symbols/h1_effect/h1_effect_00008.png b/art/symbols/images/high_symbols/h1_effect/h1_effect_00008.png new file mode 100644 index 0000000..4ea2eef Binary files /dev/null and b/art/symbols/images/high_symbols/h1_effect/h1_effect_00008.png differ diff --git a/art/symbols/images/high_symbols/h1_effect/h1_effect_00009.png b/art/symbols/images/high_symbols/h1_effect/h1_effect_00009.png new file mode 100644 index 0000000..48fb5b4 Binary files /dev/null and b/art/symbols/images/high_symbols/h1_effect/h1_effect_00009.png differ diff --git a/art/symbols/images/high_symbols/h1_effect/h1_effect_00010.png b/art/symbols/images/high_symbols/h1_effect/h1_effect_00010.png new file mode 100644 index 0000000..cc0382b Binary files /dev/null and b/art/symbols/images/high_symbols/h1_effect/h1_effect_00010.png differ diff --git a/art/symbols/images/high_symbols/h1_effect/h1_effect_00011.png b/art/symbols/images/high_symbols/h1_effect/h1_effect_00011.png new file mode 100644 index 0000000..8268f71 Binary files /dev/null and b/art/symbols/images/high_symbols/h1_effect/h1_effect_00011.png differ diff --git a/art/symbols/images/high_symbols/h1_effect/h1_effect_00012.png b/art/symbols/images/high_symbols/h1_effect/h1_effect_00012.png new file mode 100644 index 0000000..1935439 Binary files /dev/null and b/art/symbols/images/high_symbols/h1_effect/h1_effect_00012.png differ diff --git a/art/symbols/images/high_symbols/h1_effect/h1_effect_00013.png b/art/symbols/images/high_symbols/h1_effect/h1_effect_00013.png new file mode 100644 index 0000000..a924d57 Binary files /dev/null and b/art/symbols/images/high_symbols/h1_effect/h1_effect_00013.png differ diff --git a/art/symbols/images/high_symbols/h1_effect/h1_effect_00014.png b/art/symbols/images/high_symbols/h1_effect/h1_effect_00014.png new file mode 100644 index 0000000..4522843 Binary files /dev/null and b/art/symbols/images/high_symbols/h1_effect/h1_effect_00014.png differ diff --git a/art/symbols/images/high_symbols/h1_effect/h1_effect_00015.png b/art/symbols/images/high_symbols/h1_effect/h1_effect_00015.png new file mode 100644 index 0000000..2ae8fc2 Binary files /dev/null and b/art/symbols/images/high_symbols/h1_effect/h1_effect_00015.png differ diff --git a/art/symbols/images/high_symbols/h1_effect/h1_effect_00016.png b/art/symbols/images/high_symbols/h1_effect/h1_effect_00016.png new file mode 100644 index 0000000..fdba264 Binary files /dev/null and b/art/symbols/images/high_symbols/h1_effect/h1_effect_00016.png differ diff --git a/art/symbols/images/high_symbols/h1_effect/h1_effect_00017.png b/art/symbols/images/high_symbols/h1_effect/h1_effect_00017.png new file mode 100644 index 0000000..45c36ed Binary files /dev/null and b/art/symbols/images/high_symbols/h1_effect/h1_effect_00017.png differ diff --git a/art/symbols/images/high_symbols/h1_effect/h1_effect_00018.png b/art/symbols/images/high_symbols/h1_effect/h1_effect_00018.png new file mode 100644 index 0000000..33353a5 Binary files /dev/null and b/art/symbols/images/high_symbols/h1_effect/h1_effect_00018.png differ diff --git a/art/symbols/images/high_symbols/h1_effect/h1_effect_00019.png b/art/symbols/images/high_symbols/h1_effect/h1_effect_00019.png new file mode 100644 index 0000000..276fc09 Binary files /dev/null and b/art/symbols/images/high_symbols/h1_effect/h1_effect_00019.png differ diff --git a/art/symbols/images/high_symbols/h1_effect/h1_effect_00020.png b/art/symbols/images/high_symbols/h1_effect/h1_effect_00020.png new file mode 100644 index 0000000..6777e90 Binary files /dev/null and b/art/symbols/images/high_symbols/h1_effect/h1_effect_00020.png differ diff --git a/art/symbols/images/high_symbols/h1_effect/h1_effect_00021.png b/art/symbols/images/high_symbols/h1_effect/h1_effect_00021.png new file mode 100644 index 0000000..5ea2645 Binary files /dev/null and b/art/symbols/images/high_symbols/h1_effect/h1_effect_00021.png differ diff --git a/art/symbols/images/high_symbols/h1_effect/h1_effect_00022.png b/art/symbols/images/high_symbols/h1_effect/h1_effect_00022.png new file mode 100644 index 0000000..42b330f Binary files /dev/null and b/art/symbols/images/high_symbols/h1_effect/h1_effect_00022.png differ diff --git a/art/symbols/images/high_symbols/h1_effect/h1_effect_00023.png b/art/symbols/images/high_symbols/h1_effect/h1_effect_00023.png new file mode 100644 index 0000000..1c5d42c Binary files /dev/null and b/art/symbols/images/high_symbols/h1_effect/h1_effect_00023.png differ diff --git a/art/symbols/images/high_symbols/h1_effect/h1_effect_00024.png b/art/symbols/images/high_symbols/h1_effect/h1_effect_00024.png new file mode 100644 index 0000000..d89a1ea Binary files /dev/null and b/art/symbols/images/high_symbols/h1_effect/h1_effect_00024.png differ diff --git a/art/symbols/images/high_symbols/h1_effect/h1_effect_00025.png b/art/symbols/images/high_symbols/h1_effect/h1_effect_00025.png new file mode 100644 index 0000000..21ade8d Binary files /dev/null and b/art/symbols/images/high_symbols/h1_effect/h1_effect_00025.png differ diff --git a/art/symbols/images/high_symbols/h1_effect/h1_effect_00026.png b/art/symbols/images/high_symbols/h1_effect/h1_effect_00026.png new file mode 100644 index 0000000..84c967b Binary files /dev/null and b/art/symbols/images/high_symbols/h1_effect/h1_effect_00026.png differ diff --git a/art/symbols/images/high_symbols/h1_effect/h1_effect_00027.png b/art/symbols/images/high_symbols/h1_effect/h1_effect_00027.png new file mode 100644 index 0000000..606e465 Binary files /dev/null and b/art/symbols/images/high_symbols/h1_effect/h1_effect_00027.png differ diff --git a/art/symbols/images/high_symbols/h1_effect/h1_effect_00028.png b/art/symbols/images/high_symbols/h1_effect/h1_effect_00028.png new file mode 100644 index 0000000..777f7d5 Binary files /dev/null and b/art/symbols/images/high_symbols/h1_effect/h1_effect_00028.png differ diff --git a/art/symbols/images/high_symbols/h1_effect/h1_effect_00029.png b/art/symbols/images/high_symbols/h1_effect/h1_effect_00029.png new file mode 100644 index 0000000..750638c Binary files /dev/null and b/art/symbols/images/high_symbols/h1_effect/h1_effect_00029.png differ diff --git a/art/symbols/images/high_symbols/h1_effect/h1_effect_00030.png b/art/symbols/images/high_symbols/h1_effect/h1_effect_00030.png new file mode 100644 index 0000000..bc66117 Binary files /dev/null and b/art/symbols/images/high_symbols/h1_effect/h1_effect_00030.png differ diff --git a/art/symbols/images/high_symbols/h1_effect/h1_effect_00031.png b/art/symbols/images/high_symbols/h1_effect/h1_effect_00031.png new file mode 100644 index 0000000..085eec2 Binary files /dev/null and b/art/symbols/images/high_symbols/h1_effect/h1_effect_00031.png differ diff --git a/art/symbols/images/high_symbols/h1_effect/h1_effect_00032.png b/art/symbols/images/high_symbols/h1_effect/h1_effect_00032.png new file mode 100644 index 0000000..fff0f7a Binary files /dev/null and b/art/symbols/images/high_symbols/h1_effect/h1_effect_00032.png differ diff --git a/art/symbols/images/high_symbols/h1_effect/h1_effect_00033.png b/art/symbols/images/high_symbols/h1_effect/h1_effect_00033.png new file mode 100644 index 0000000..2a6650f Binary files /dev/null and b/art/symbols/images/high_symbols/h1_effect/h1_effect_00033.png differ diff --git a/art/symbols/images/high_symbols/h1_eye_l.png b/art/symbols/images/high_symbols/h1_eye_l.png new file mode 100644 index 0000000..3f8edbf Binary files /dev/null and b/art/symbols/images/high_symbols/h1_eye_l.png differ diff --git a/art/symbols/images/high_symbols/h1_eye_r.png b/art/symbols/images/high_symbols/h1_eye_r.png new file mode 100644 index 0000000..888eeef Binary files /dev/null and b/art/symbols/images/high_symbols/h1_eye_r.png differ diff --git a/art/symbols/images/high_symbols/h1_eyebrow_l.png b/art/symbols/images/high_symbols/h1_eyebrow_l.png new file mode 100644 index 0000000..e116385 Binary files /dev/null and b/art/symbols/images/high_symbols/h1_eyebrow_l.png differ diff --git a/art/symbols/images/high_symbols/h1_eyebrow_r.png b/art/symbols/images/high_symbols/h1_eyebrow_r.png new file mode 100644 index 0000000..381cf7c Binary files /dev/null and b/art/symbols/images/high_symbols/h1_eyebrow_r.png differ diff --git a/art/symbols/images/high_symbols/h1_eyelid_l.png b/art/symbols/images/high_symbols/h1_eyelid_l.png new file mode 100644 index 0000000..c3fc1c3 Binary files /dev/null and b/art/symbols/images/high_symbols/h1_eyelid_l.png differ diff --git a/art/symbols/images/high_symbols/h1_eyelid_r.png b/art/symbols/images/high_symbols/h1_eyelid_r.png new file mode 100644 index 0000000..50169af Binary files /dev/null and b/art/symbols/images/high_symbols/h1_eyelid_r.png differ diff --git a/art/symbols/images/high_symbols/h1_feather_big.png b/art/symbols/images/high_symbols/h1_feather_big.png new file mode 100644 index 0000000..0af40f2 Binary files /dev/null and b/art/symbols/images/high_symbols/h1_feather_big.png differ diff --git a/art/symbols/images/high_symbols/h1_feather_small.png b/art/symbols/images/high_symbols/h1_feather_small.png new file mode 100644 index 0000000..f0b6d9d Binary files /dev/null and b/art/symbols/images/high_symbols/h1_feather_small.png differ diff --git a/art/symbols/images/high_symbols/h1_frame.png b/art/symbols/images/high_symbols/h1_frame.png new file mode 100644 index 0000000..825cf18 Binary files /dev/null and b/art/symbols/images/high_symbols/h1_frame.png differ diff --git a/art/symbols/images/high_symbols/h1_frame_glow.png b/art/symbols/images/high_symbols/h1_frame_glow.png new file mode 100644 index 0000000..ef5e9ea Binary files /dev/null and b/art/symbols/images/high_symbols/h1_frame_glow.png differ diff --git a/art/symbols/images/high_symbols/h1_head.png b/art/symbols/images/high_symbols/h1_head.png new file mode 100644 index 0000000..9caa1be Binary files /dev/null and b/art/symbols/images/high_symbols/h1_head.png differ diff --git a/art/symbols/images/high_symbols/h1_head_gld.png b/art/symbols/images/high_symbols/h1_head_gld.png new file mode 100644 index 0000000..e739f5f Binary files /dev/null and b/art/symbols/images/high_symbols/h1_head_gld.png differ diff --git a/art/symbols/images/high_symbols/h1_headpiece_fthr1.png b/art/symbols/images/high_symbols/h1_headpiece_fthr1.png new file mode 100644 index 0000000..ebd3319 Binary files /dev/null and b/art/symbols/images/high_symbols/h1_headpiece_fthr1.png differ diff --git a/art/symbols/images/high_symbols/h1_headpiece_fthr2.png b/art/symbols/images/high_symbols/h1_headpiece_fthr2.png new file mode 100644 index 0000000..7f05249 Binary files /dev/null and b/art/symbols/images/high_symbols/h1_headpiece_fthr2.png differ diff --git a/art/symbols/images/high_symbols/h1_headpiece_fthr3.png b/art/symbols/images/high_symbols/h1_headpiece_fthr3.png new file mode 100644 index 0000000..19338ed Binary files /dev/null and b/art/symbols/images/high_symbols/h1_headpiece_fthr3.png differ diff --git a/art/symbols/images/high_symbols/h1_headpiece_fthr4.png b/art/symbols/images/high_symbols/h1_headpiece_fthr4.png new file mode 100644 index 0000000..a6323fa Binary files /dev/null and b/art/symbols/images/high_symbols/h1_headpiece_fthr4.png differ diff --git a/art/symbols/images/high_symbols/h1_headpiece_fthr5.png b/art/symbols/images/high_symbols/h1_headpiece_fthr5.png new file mode 100644 index 0000000..00f4d0c Binary files /dev/null and b/art/symbols/images/high_symbols/h1_headpiece_fthr5.png differ diff --git a/art/symbols/images/high_symbols/h1_headpiece_fthr6.png b/art/symbols/images/high_symbols/h1_headpiece_fthr6.png new file mode 100644 index 0000000..ce6c559 Binary files /dev/null and b/art/symbols/images/high_symbols/h1_headpiece_fthr6.png differ diff --git a/art/symbols/images/high_symbols/h1_headpiece_fthr7.png b/art/symbols/images/high_symbols/h1_headpiece_fthr7.png new file mode 100644 index 0000000..6b8a027 Binary files /dev/null and b/art/symbols/images/high_symbols/h1_headpiece_fthr7.png differ diff --git a/art/symbols/images/high_symbols/h1_headpiece_fthr8.png b/art/symbols/images/high_symbols/h1_headpiece_fthr8.png new file mode 100644 index 0000000..2aa65ea Binary files /dev/null and b/art/symbols/images/high_symbols/h1_headpiece_fthr8.png differ diff --git a/art/symbols/images/high_symbols/h1_headpiece_gld.png b/art/symbols/images/high_symbols/h1_headpiece_gld.png new file mode 100644 index 0000000..11ba9a7 Binary files /dev/null and b/art/symbols/images/high_symbols/h1_headpiece_gld.png differ diff --git a/art/symbols/images/high_symbols/h1_necklace.png b/art/symbols/images/high_symbols/h1_necklace.png new file mode 100644 index 0000000..92c8496 Binary files /dev/null and b/art/symbols/images/high_symbols/h1_necklace.png differ diff --git a/art/symbols/images/high_symbols/h1_s.png b/art/symbols/images/high_symbols/h1_s.png new file mode 100644 index 0000000..fa791de Binary files /dev/null and b/art/symbols/images/high_symbols/h1_s.png differ diff --git a/art/symbols/images/high_symbols/h2_bg.png b/art/symbols/images/high_symbols/h2_bg.png new file mode 100644 index 0000000..1fc67a3 Binary files /dev/null and b/art/symbols/images/high_symbols/h2_bg.png differ diff --git a/art/symbols/images/high_symbols/h2_bg_glow.png b/art/symbols/images/high_symbols/h2_bg_glow.png new file mode 100644 index 0000000..aa8fe9b Binary files /dev/null and b/art/symbols/images/high_symbols/h2_bg_glow.png differ diff --git a/art/symbols/images/high_symbols/h2_body.png b/art/symbols/images/high_symbols/h2_body.png new file mode 100644 index 0000000..87381f8 Binary files /dev/null and b/art/symbols/images/high_symbols/h2_body.png differ diff --git a/art/symbols/images/high_symbols/h2_char_glow.png b/art/symbols/images/high_symbols/h2_char_glow.png new file mode 100644 index 0000000..e295f16 Binary files /dev/null and b/art/symbols/images/high_symbols/h2_char_glow.png differ diff --git a/art/symbols/images/high_symbols/h2_earring_l.png b/art/symbols/images/high_symbols/h2_earring_l.png new file mode 100644 index 0000000..72ecbc6 Binary files /dev/null and b/art/symbols/images/high_symbols/h2_earring_l.png differ diff --git a/art/symbols/images/high_symbols/h2_earring_r.png b/art/symbols/images/high_symbols/h2_earring_r.png new file mode 100644 index 0000000..5d3d67f Binary files /dev/null and b/art/symbols/images/high_symbols/h2_earring_r.png differ diff --git a/art/symbols/images/high_symbols/h2_effect/h2_effect_00007.png b/art/symbols/images/high_symbols/h2_effect/h2_effect_00007.png new file mode 100644 index 0000000..9233841 Binary files /dev/null and b/art/symbols/images/high_symbols/h2_effect/h2_effect_00007.png differ diff --git a/art/symbols/images/high_symbols/h2_effect/h2_effect_00008.png b/art/symbols/images/high_symbols/h2_effect/h2_effect_00008.png new file mode 100644 index 0000000..2cb01a1 Binary files /dev/null and b/art/symbols/images/high_symbols/h2_effect/h2_effect_00008.png differ diff --git a/art/symbols/images/high_symbols/h2_effect/h2_effect_00009.png b/art/symbols/images/high_symbols/h2_effect/h2_effect_00009.png new file mode 100644 index 0000000..6643a5f Binary files /dev/null and b/art/symbols/images/high_symbols/h2_effect/h2_effect_00009.png differ diff --git a/art/symbols/images/high_symbols/h2_effect/h2_effect_00010.png b/art/symbols/images/high_symbols/h2_effect/h2_effect_00010.png new file mode 100644 index 0000000..ef562ed Binary files /dev/null and b/art/symbols/images/high_symbols/h2_effect/h2_effect_00010.png differ diff --git a/art/symbols/images/high_symbols/h2_effect/h2_effect_00011.png b/art/symbols/images/high_symbols/h2_effect/h2_effect_00011.png new file mode 100644 index 0000000..c0f532e Binary files /dev/null and b/art/symbols/images/high_symbols/h2_effect/h2_effect_00011.png differ diff --git a/art/symbols/images/high_symbols/h2_effect/h2_effect_00012.png b/art/symbols/images/high_symbols/h2_effect/h2_effect_00012.png new file mode 100644 index 0000000..2244a0d Binary files /dev/null and b/art/symbols/images/high_symbols/h2_effect/h2_effect_00012.png differ diff --git a/art/symbols/images/high_symbols/h2_effect/h2_effect_00013.png b/art/symbols/images/high_symbols/h2_effect/h2_effect_00013.png new file mode 100644 index 0000000..40411f1 Binary files /dev/null and b/art/symbols/images/high_symbols/h2_effect/h2_effect_00013.png differ diff --git a/art/symbols/images/high_symbols/h2_effect/h2_effect_00014.png b/art/symbols/images/high_symbols/h2_effect/h2_effect_00014.png new file mode 100644 index 0000000..114ce80 Binary files /dev/null and b/art/symbols/images/high_symbols/h2_effect/h2_effect_00014.png differ diff --git a/art/symbols/images/high_symbols/h2_effect/h2_effect_00015.png b/art/symbols/images/high_symbols/h2_effect/h2_effect_00015.png new file mode 100644 index 0000000..e54af73 Binary files /dev/null and b/art/symbols/images/high_symbols/h2_effect/h2_effect_00015.png differ diff --git a/art/symbols/images/high_symbols/h2_effect/h2_effect_00016.png b/art/symbols/images/high_symbols/h2_effect/h2_effect_00016.png new file mode 100644 index 0000000..9d384ff Binary files /dev/null and b/art/symbols/images/high_symbols/h2_effect/h2_effect_00016.png differ diff --git a/art/symbols/images/high_symbols/h2_effect/h2_effect_00017.png b/art/symbols/images/high_symbols/h2_effect/h2_effect_00017.png new file mode 100644 index 0000000..b5fae75 Binary files /dev/null and b/art/symbols/images/high_symbols/h2_effect/h2_effect_00017.png differ diff --git a/art/symbols/images/high_symbols/h2_effect/h2_effect_00018.png b/art/symbols/images/high_symbols/h2_effect/h2_effect_00018.png new file mode 100644 index 0000000..f2518ae Binary files /dev/null and b/art/symbols/images/high_symbols/h2_effect/h2_effect_00018.png differ diff --git a/art/symbols/images/high_symbols/h2_effect/h2_effect_00019.png b/art/symbols/images/high_symbols/h2_effect/h2_effect_00019.png new file mode 100644 index 0000000..3aad7b5 Binary files /dev/null and b/art/symbols/images/high_symbols/h2_effect/h2_effect_00019.png differ diff --git a/art/symbols/images/high_symbols/h2_effect/h2_effect_00020.png b/art/symbols/images/high_symbols/h2_effect/h2_effect_00020.png new file mode 100644 index 0000000..8c81b9b Binary files /dev/null and b/art/symbols/images/high_symbols/h2_effect/h2_effect_00020.png differ diff --git a/art/symbols/images/high_symbols/h2_effect/h2_effect_00021.png b/art/symbols/images/high_symbols/h2_effect/h2_effect_00021.png new file mode 100644 index 0000000..4fba7cd Binary files /dev/null and b/art/symbols/images/high_symbols/h2_effect/h2_effect_00021.png differ diff --git a/art/symbols/images/high_symbols/h2_effect/h2_effect_00022.png b/art/symbols/images/high_symbols/h2_effect/h2_effect_00022.png new file mode 100644 index 0000000..bfcd97d Binary files /dev/null and b/art/symbols/images/high_symbols/h2_effect/h2_effect_00022.png differ diff --git a/art/symbols/images/high_symbols/h2_effect/h2_effect_00023.png b/art/symbols/images/high_symbols/h2_effect/h2_effect_00023.png new file mode 100644 index 0000000..884bac6 Binary files /dev/null and b/art/symbols/images/high_symbols/h2_effect/h2_effect_00023.png differ diff --git a/art/symbols/images/high_symbols/h2_effect/h2_effect_00024.png b/art/symbols/images/high_symbols/h2_effect/h2_effect_00024.png new file mode 100644 index 0000000..45a2d5e Binary files /dev/null and b/art/symbols/images/high_symbols/h2_effect/h2_effect_00024.png differ diff --git a/art/symbols/images/high_symbols/h2_effect/h2_effect_00025.png b/art/symbols/images/high_symbols/h2_effect/h2_effect_00025.png new file mode 100644 index 0000000..30bbd55 Binary files /dev/null and b/art/symbols/images/high_symbols/h2_effect/h2_effect_00025.png differ diff --git a/art/symbols/images/high_symbols/h2_effect/h2_effect_00026.png b/art/symbols/images/high_symbols/h2_effect/h2_effect_00026.png new file mode 100644 index 0000000..d4be4fa Binary files /dev/null and b/art/symbols/images/high_symbols/h2_effect/h2_effect_00026.png differ diff --git a/art/symbols/images/high_symbols/h2_effect/h2_effect_00027.png b/art/symbols/images/high_symbols/h2_effect/h2_effect_00027.png new file mode 100644 index 0000000..b5d3136 Binary files /dev/null and b/art/symbols/images/high_symbols/h2_effect/h2_effect_00027.png differ diff --git a/art/symbols/images/high_symbols/h2_effect/h2_effect_00028.png b/art/symbols/images/high_symbols/h2_effect/h2_effect_00028.png new file mode 100644 index 0000000..ad58b0f Binary files /dev/null and b/art/symbols/images/high_symbols/h2_effect/h2_effect_00028.png differ diff --git a/art/symbols/images/high_symbols/h2_effect/h2_effect_00029.png b/art/symbols/images/high_symbols/h2_effect/h2_effect_00029.png new file mode 100644 index 0000000..e28d3d5 Binary files /dev/null and b/art/symbols/images/high_symbols/h2_effect/h2_effect_00029.png differ diff --git a/art/symbols/images/high_symbols/h2_effect/h2_effect_00030.png b/art/symbols/images/high_symbols/h2_effect/h2_effect_00030.png new file mode 100644 index 0000000..3656fae Binary files /dev/null and b/art/symbols/images/high_symbols/h2_effect/h2_effect_00030.png differ diff --git a/art/symbols/images/high_symbols/h2_effect/h2_effect_00031.png b/art/symbols/images/high_symbols/h2_effect/h2_effect_00031.png new file mode 100644 index 0000000..ad035df Binary files /dev/null and b/art/symbols/images/high_symbols/h2_effect/h2_effect_00031.png differ diff --git a/art/symbols/images/high_symbols/h2_effect/h2_effect_00032.png b/art/symbols/images/high_symbols/h2_effect/h2_effect_00032.png new file mode 100644 index 0000000..c3399b5 Binary files /dev/null and b/art/symbols/images/high_symbols/h2_effect/h2_effect_00032.png differ diff --git a/art/symbols/images/high_symbols/h2_effect/h2_effect_00033.png b/art/symbols/images/high_symbols/h2_effect/h2_effect_00033.png new file mode 100644 index 0000000..8890628 Binary files /dev/null and b/art/symbols/images/high_symbols/h2_effect/h2_effect_00033.png differ diff --git a/art/symbols/images/high_symbols/h2_eye_l.png b/art/symbols/images/high_symbols/h2_eye_l.png new file mode 100644 index 0000000..33842f9 Binary files /dev/null and b/art/symbols/images/high_symbols/h2_eye_l.png differ diff --git a/art/symbols/images/high_symbols/h2_eye_r.png b/art/symbols/images/high_symbols/h2_eye_r.png new file mode 100644 index 0000000..25b3e9d Binary files /dev/null and b/art/symbols/images/high_symbols/h2_eye_r.png differ diff --git a/art/symbols/images/high_symbols/h2_eyebrows_l.png b/art/symbols/images/high_symbols/h2_eyebrows_l.png new file mode 100644 index 0000000..437a303 Binary files /dev/null and b/art/symbols/images/high_symbols/h2_eyebrows_l.png differ diff --git a/art/symbols/images/high_symbols/h2_eyebrows_r.png b/art/symbols/images/high_symbols/h2_eyebrows_r.png new file mode 100644 index 0000000..8059921 Binary files /dev/null and b/art/symbols/images/high_symbols/h2_eyebrows_r.png differ diff --git a/art/symbols/images/high_symbols/h2_eyelid_l.png b/art/symbols/images/high_symbols/h2_eyelid_l.png new file mode 100644 index 0000000..eec67eb Binary files /dev/null and b/art/symbols/images/high_symbols/h2_eyelid_l.png differ diff --git a/art/symbols/images/high_symbols/h2_eyelid_r.png b/art/symbols/images/high_symbols/h2_eyelid_r.png new file mode 100644 index 0000000..05766fb Binary files /dev/null and b/art/symbols/images/high_symbols/h2_eyelid_r.png differ diff --git a/art/symbols/images/high_symbols/h2_frame.png b/art/symbols/images/high_symbols/h2_frame.png new file mode 100644 index 0000000..be470eb Binary files /dev/null and b/art/symbols/images/high_symbols/h2_frame.png differ diff --git a/art/symbols/images/high_symbols/h2_frame_glow.png b/art/symbols/images/high_symbols/h2_frame_glow.png new file mode 100644 index 0000000..bb4edd8 Binary files /dev/null and b/art/symbols/images/high_symbols/h2_frame_glow.png differ diff --git a/art/symbols/images/high_symbols/h2_hair.png b/art/symbols/images/high_symbols/h2_hair.png new file mode 100644 index 0000000..760b90b Binary files /dev/null and b/art/symbols/images/high_symbols/h2_hair.png differ diff --git a/art/symbols/images/high_symbols/h2_head.png b/art/symbols/images/high_symbols/h2_head.png new file mode 100644 index 0000000..4fdb24f Binary files /dev/null and b/art/symbols/images/high_symbols/h2_head.png differ diff --git a/art/symbols/images/high_symbols/h2_headpiece.png b/art/symbols/images/high_symbols/h2_headpiece.png new file mode 100644 index 0000000..c586bfb Binary files /dev/null and b/art/symbols/images/high_symbols/h2_headpiece.png differ diff --git a/art/symbols/images/high_symbols/h2_headpiece_fthr.png b/art/symbols/images/high_symbols/h2_headpiece_fthr.png new file mode 100644 index 0000000..7d259dd Binary files /dev/null and b/art/symbols/images/high_symbols/h2_headpiece_fthr.png differ diff --git a/art/symbols/images/high_symbols/h2_necklace.png b/art/symbols/images/high_symbols/h2_necklace.png new file mode 100644 index 0000000..0290175 Binary files /dev/null and b/art/symbols/images/high_symbols/h2_necklace.png differ diff --git a/art/symbols/images/high_symbols/h2_s.png b/art/symbols/images/high_symbols/h2_s.png new file mode 100644 index 0000000..0ea850a Binary files /dev/null and b/art/symbols/images/high_symbols/h2_s.png differ diff --git a/art/symbols/images/low_symbols/glow2.png b/art/symbols/images/low_symbols/glow2.png new file mode 100644 index 0000000..422ec53 Binary files /dev/null and b/art/symbols/images/low_symbols/glow2.png differ diff --git a/art/symbols/images/low_symbols/low1_decor.png b/art/symbols/images/low_symbols/low1_decor.png new file mode 100644 index 0000000..5803c54 Binary files /dev/null and b/art/symbols/images/low_symbols/low1_decor.png differ diff --git a/art/symbols/images/low_symbols/low1_shadow.png b/art/symbols/images/low_symbols/low1_shadow.png new file mode 100644 index 0000000..5d4ba2a Binary files /dev/null and b/art/symbols/images/low_symbols/low1_shadow.png differ diff --git a/art/symbols/images/low_symbols/low1_stone.png b/art/symbols/images/low_symbols/low1_stone.png new file mode 100644 index 0000000..e48007f Binary files /dev/null and b/art/symbols/images/low_symbols/low1_stone.png differ diff --git a/art/symbols/images/low_symbols/low2_decor.png b/art/symbols/images/low_symbols/low2_decor.png new file mode 100644 index 0000000..184f665 Binary files /dev/null and b/art/symbols/images/low_symbols/low2_decor.png differ diff --git a/art/symbols/images/low_symbols/low2_shadow.png b/art/symbols/images/low_symbols/low2_shadow.png new file mode 100644 index 0000000..f0f282f Binary files /dev/null and b/art/symbols/images/low_symbols/low2_shadow.png differ diff --git a/art/symbols/images/low_symbols/low2_stone.png b/art/symbols/images/low_symbols/low2_stone.png new file mode 100644 index 0000000..305f0b3 Binary files /dev/null and b/art/symbols/images/low_symbols/low2_stone.png differ diff --git a/art/symbols/images/low_symbols/low3_decor.png b/art/symbols/images/low_symbols/low3_decor.png new file mode 100644 index 0000000..4b6d36a Binary files /dev/null and b/art/symbols/images/low_symbols/low3_decor.png differ diff --git a/art/symbols/images/low_symbols/low3_shadow.png b/art/symbols/images/low_symbols/low3_shadow.png new file mode 100644 index 0000000..aa83ca8 Binary files /dev/null and b/art/symbols/images/low_symbols/low3_shadow.png differ diff --git a/art/symbols/images/low_symbols/low3_stone.png b/art/symbols/images/low_symbols/low3_stone.png new file mode 100644 index 0000000..d06f27b Binary files /dev/null and b/art/symbols/images/low_symbols/low3_stone.png differ diff --git a/art/symbols/images/low_symbols/low4_decor.png b/art/symbols/images/low_symbols/low4_decor.png new file mode 100644 index 0000000..d089782 Binary files /dev/null and b/art/symbols/images/low_symbols/low4_decor.png differ diff --git a/art/symbols/images/low_symbols/low4_shadow.png b/art/symbols/images/low_symbols/low4_shadow.png new file mode 100644 index 0000000..6d1c1ab Binary files /dev/null and b/art/symbols/images/low_symbols/low4_shadow.png differ diff --git a/art/symbols/images/low_symbols/low4_stone.png b/art/symbols/images/low_symbols/low4_stone.png new file mode 100644 index 0000000..1e6a210 Binary files /dev/null and b/art/symbols/images/low_symbols/low4_stone.png differ diff --git a/art/symbols/images/low_symbols/low5_decor.png b/art/symbols/images/low_symbols/low5_decor.png new file mode 100644 index 0000000..fefff09 Binary files /dev/null and b/art/symbols/images/low_symbols/low5_decor.png differ diff --git a/art/symbols/images/low_symbols/low5_shadow.png b/art/symbols/images/low_symbols/low5_shadow.png new file mode 100644 index 0000000..17a54ac Binary files /dev/null and b/art/symbols/images/low_symbols/low5_shadow.png differ diff --git a/art/symbols/images/low_symbols/low5_stone.png b/art/symbols/images/low_symbols/low5_stone.png new file mode 100644 index 0000000..d1b23ed Binary files /dev/null and b/art/symbols/images/low_symbols/low5_stone.png differ diff --git a/art/symbols/images/mid_symbols/m1_bg.png b/art/symbols/images/mid_symbols/m1_bg.png new file mode 100644 index 0000000..4468fa7 Binary files /dev/null and b/art/symbols/images/mid_symbols/m1_bg.png differ diff --git a/art/symbols/images/mid_symbols/m1_crown1.png b/art/symbols/images/mid_symbols/m1_crown1.png new file mode 100644 index 0000000..2f3260a Binary files /dev/null and b/art/symbols/images/mid_symbols/m1_crown1.png differ diff --git a/art/symbols/images/mid_symbols/m1_crown2.png b/art/symbols/images/mid_symbols/m1_crown2.png new file mode 100644 index 0000000..f9e7f0e Binary files /dev/null and b/art/symbols/images/mid_symbols/m1_crown2.png differ diff --git a/art/symbols/images/mid_symbols/m1_crown3.png b/art/symbols/images/mid_symbols/m1_crown3.png new file mode 100644 index 0000000..6babad1 Binary files /dev/null and b/art/symbols/images/mid_symbols/m1_crown3.png differ diff --git a/art/symbols/images/mid_symbols/m1_crown4.png b/art/symbols/images/mid_symbols/m1_crown4.png new file mode 100644 index 0000000..66d71ed Binary files /dev/null and b/art/symbols/images/mid_symbols/m1_crown4.png differ diff --git a/art/symbols/images/mid_symbols/m1_crown5.png b/art/symbols/images/mid_symbols/m1_crown5.png new file mode 100644 index 0000000..c1720f6 Binary files /dev/null and b/art/symbols/images/mid_symbols/m1_crown5.png differ diff --git a/art/symbols/images/mid_symbols/m1_crown6.png b/art/symbols/images/mid_symbols/m1_crown6.png new file mode 100644 index 0000000..3fd5c5a Binary files /dev/null and b/art/symbols/images/mid_symbols/m1_crown6.png differ diff --git a/art/symbols/images/mid_symbols/m1_crown7.png b/art/symbols/images/mid_symbols/m1_crown7.png new file mode 100644 index 0000000..af9f58d Binary files /dev/null and b/art/symbols/images/mid_symbols/m1_crown7.png differ diff --git a/art/symbols/images/mid_symbols/m1_earring_l.png b/art/symbols/images/mid_symbols/m1_earring_l.png new file mode 100644 index 0000000..6678c97 Binary files /dev/null and b/art/symbols/images/mid_symbols/m1_earring_l.png differ diff --git a/art/symbols/images/mid_symbols/m1_earring_r.png b/art/symbols/images/mid_symbols/m1_earring_r.png new file mode 100644 index 0000000..c7fb83f Binary files /dev/null and b/art/symbols/images/mid_symbols/m1_earring_r.png differ diff --git a/art/symbols/images/mid_symbols/m1_face.png b/art/symbols/images/mid_symbols/m1_face.png new file mode 100644 index 0000000..008597d Binary files /dev/null and b/art/symbols/images/mid_symbols/m1_face.png differ diff --git a/art/symbols/images/mid_symbols/m1_frame_glow.png b/art/symbols/images/mid_symbols/m1_frame_glow.png new file mode 100644 index 0000000..f099a94 Binary files /dev/null and b/art/symbols/images/mid_symbols/m1_frame_glow.png differ diff --git a/art/symbols/images/mid_symbols/m1_necklace.png b/art/symbols/images/mid_symbols/m1_necklace.png new file mode 100644 index 0000000..7523fc9 Binary files /dev/null and b/art/symbols/images/mid_symbols/m1_necklace.png differ diff --git a/art/symbols/images/mid_symbols/m1_s.png b/art/symbols/images/mid_symbols/m1_s.png new file mode 100644 index 0000000..8d84f6b Binary files /dev/null and b/art/symbols/images/mid_symbols/m1_s.png differ diff --git a/art/symbols/images/mid_symbols/m2_bg.png b/art/symbols/images/mid_symbols/m2_bg.png new file mode 100644 index 0000000..874521a Binary files /dev/null and b/art/symbols/images/mid_symbols/m2_bg.png differ diff --git a/art/symbols/images/mid_symbols/m2_earring1.png b/art/symbols/images/mid_symbols/m2_earring1.png new file mode 100644 index 0000000..8be161f Binary files /dev/null and b/art/symbols/images/mid_symbols/m2_earring1.png differ diff --git a/art/symbols/images/mid_symbols/m2_earring2.png b/art/symbols/images/mid_symbols/m2_earring2.png new file mode 100644 index 0000000..d615b5a Binary files /dev/null and b/art/symbols/images/mid_symbols/m2_earring2.png differ diff --git a/art/symbols/images/mid_symbols/m2_face.png b/art/symbols/images/mid_symbols/m2_face.png new file mode 100644 index 0000000..d372023 Binary files /dev/null and b/art/symbols/images/mid_symbols/m2_face.png differ diff --git a/art/symbols/images/mid_symbols/m2_frame_glow.png b/art/symbols/images/mid_symbols/m2_frame_glow.png new file mode 100644 index 0000000..f0c2dc0 Binary files /dev/null and b/art/symbols/images/mid_symbols/m2_frame_glow.png differ diff --git a/art/symbols/images/mid_symbols/m2_jaguar.png b/art/symbols/images/mid_symbols/m2_jaguar.png new file mode 100644 index 0000000..19882cc Binary files /dev/null and b/art/symbols/images/mid_symbols/m2_jaguar.png differ diff --git a/art/symbols/images/mid_symbols/m2_neck.png b/art/symbols/images/mid_symbols/m2_neck.png new file mode 100644 index 0000000..7fecdd6 Binary files /dev/null and b/art/symbols/images/mid_symbols/m2_neck.png differ diff --git a/art/symbols/images/mid_symbols/m2_s.png b/art/symbols/images/mid_symbols/m2_s.png new file mode 100644 index 0000000..407c12b Binary files /dev/null and b/art/symbols/images/mid_symbols/m2_s.png differ diff --git a/art/symbols/images/mid_symbols/m3_bg.png b/art/symbols/images/mid_symbols/m3_bg.png new file mode 100644 index 0000000..dd86ead Binary files /dev/null and b/art/symbols/images/mid_symbols/m3_bg.png differ diff --git a/art/symbols/images/mid_symbols/m3_eagle.png b/art/symbols/images/mid_symbols/m3_eagle.png new file mode 100644 index 0000000..5a4112b Binary files /dev/null and b/art/symbols/images/mid_symbols/m3_eagle.png differ diff --git a/art/symbols/images/mid_symbols/m3_face.png b/art/symbols/images/mid_symbols/m3_face.png new file mode 100644 index 0000000..bb69714 Binary files /dev/null and b/art/symbols/images/mid_symbols/m3_face.png differ diff --git a/art/symbols/images/mid_symbols/m3_frame_glow.png b/art/symbols/images/mid_symbols/m3_frame_glow.png new file mode 100644 index 0000000..f352b7f Binary files /dev/null and b/art/symbols/images/mid_symbols/m3_frame_glow.png differ diff --git a/art/symbols/images/mid_symbols/m3_s.png b/art/symbols/images/mid_symbols/m3_s.png new file mode 100644 index 0000000..51b82cc Binary files /dev/null and b/art/symbols/images/mid_symbols/m3_s.png differ diff --git a/art/symbols/images/mid_symbols/m3_wing.png b/art/symbols/images/mid_symbols/m3_wing.png new file mode 100644 index 0000000..a1172ce Binary files /dev/null and b/art/symbols/images/mid_symbols/m3_wing.png differ diff --git a/art/symbols/images/scatter/02/02_00000.png b/art/symbols/images/scatter/02/02_00000.png new file mode 100644 index 0000000..d8a75b2 Binary files /dev/null and b/art/symbols/images/scatter/02/02_00000.png differ diff --git a/art/symbols/images/scatter/02/02_00001.png b/art/symbols/images/scatter/02/02_00001.png new file mode 100644 index 0000000..72867d7 Binary files /dev/null and b/art/symbols/images/scatter/02/02_00001.png differ diff --git a/art/symbols/images/scatter/02/02_00003.png b/art/symbols/images/scatter/02/02_00003.png new file mode 100644 index 0000000..cb38546 Binary files /dev/null and b/art/symbols/images/scatter/02/02_00003.png differ diff --git a/art/symbols/images/scatter/02/02_00005.png b/art/symbols/images/scatter/02/02_00005.png new file mode 100644 index 0000000..bd5f2f2 Binary files /dev/null and b/art/symbols/images/scatter/02/02_00005.png differ diff --git a/art/symbols/images/scatter/02/02_00006.png b/art/symbols/images/scatter/02/02_00006.png new file mode 100644 index 0000000..c2306f7 Binary files /dev/null and b/art/symbols/images/scatter/02/02_00006.png differ diff --git a/art/symbols/images/scatter/02/02_00008.png b/art/symbols/images/scatter/02/02_00008.png new file mode 100644 index 0000000..7dda01b Binary files /dev/null and b/art/symbols/images/scatter/02/02_00008.png differ diff --git a/art/symbols/images/scatter/02/02_00010.png b/art/symbols/images/scatter/02/02_00010.png new file mode 100644 index 0000000..491790c Binary files /dev/null and b/art/symbols/images/scatter/02/02_00010.png differ diff --git a/art/symbols/images/scatter/02/02_00011.png b/art/symbols/images/scatter/02/02_00011.png new file mode 100644 index 0000000..75762dc Binary files /dev/null and b/art/symbols/images/scatter/02/02_00011.png differ diff --git a/art/symbols/images/scatter/02/02_00013.png b/art/symbols/images/scatter/02/02_00013.png new file mode 100644 index 0000000..163af0f Binary files /dev/null and b/art/symbols/images/scatter/02/02_00013.png differ diff --git a/art/symbols/images/scatter/02/02_00017.png b/art/symbols/images/scatter/02/02_00017.png new file mode 100644 index 0000000..7401acd Binary files /dev/null and b/art/symbols/images/scatter/02/02_00017.png differ diff --git a/art/symbols/images/scatter/02/02_00019.png b/art/symbols/images/scatter/02/02_00019.png new file mode 100644 index 0000000..dd77d59 Binary files /dev/null and b/art/symbols/images/scatter/02/02_00019.png differ diff --git a/art/symbols/images/scatter/02/02_00022.png b/art/symbols/images/scatter/02/02_00022.png new file mode 100644 index 0000000..72867d7 Binary files /dev/null and b/art/symbols/images/scatter/02/02_00022.png differ diff --git a/art/symbols/images/scatter/02/02_00024.png b/art/symbols/images/scatter/02/02_00024.png new file mode 100644 index 0000000..c52e2b6 Binary files /dev/null and b/art/symbols/images/scatter/02/02_00024.png differ diff --git a/art/symbols/images/scatter/02/02_00025.png b/art/symbols/images/scatter/02/02_00025.png new file mode 100644 index 0000000..cb38546 Binary files /dev/null and b/art/symbols/images/scatter/02/02_00025.png differ diff --git a/art/symbols/images/scatter/02/02_00027.png b/art/symbols/images/scatter/02/02_00027.png new file mode 100644 index 0000000..c2306f7 Binary files /dev/null and b/art/symbols/images/scatter/02/02_00027.png differ diff --git a/art/symbols/images/scatter/02/02_00029.png b/art/symbols/images/scatter/02/02_00029.png new file mode 100644 index 0000000..3c7ab46 Binary files /dev/null and b/art/symbols/images/scatter/02/02_00029.png differ diff --git a/art/symbols/images/scatter/02/02_00030.png b/art/symbols/images/scatter/02/02_00030.png new file mode 100644 index 0000000..7dda01b Binary files /dev/null and b/art/symbols/images/scatter/02/02_00030.png differ diff --git a/art/symbols/images/scatter/02/02_00032.png b/art/symbols/images/scatter/02/02_00032.png new file mode 100644 index 0000000..75762dc Binary files /dev/null and b/art/symbols/images/scatter/02/02_00032.png differ diff --git a/art/symbols/images/scatter/02/02_00034.png b/art/symbols/images/scatter/02/02_00034.png new file mode 100644 index 0000000..99ec644 Binary files /dev/null and b/art/symbols/images/scatter/02/02_00034.png differ diff --git a/art/symbols/images/scatter/02/02_00035.png b/art/symbols/images/scatter/02/02_00035.png new file mode 100644 index 0000000..163af0f Binary files /dev/null and b/art/symbols/images/scatter/02/02_00035.png differ diff --git a/art/symbols/images/scatter/02/02_00038.png b/art/symbols/images/scatter/02/02_00038.png new file mode 100644 index 0000000..7401acd Binary files /dev/null and b/art/symbols/images/scatter/02/02_00038.png differ diff --git a/art/symbols/images/scatter/scttr_eff_glow_anticip1.png b/art/symbols/images/scatter/scttr_eff_glow_anticip1.png new file mode 100644 index 0000000..6457f26 Binary files /dev/null and b/art/symbols/images/scatter/scttr_eff_glow_anticip1.png differ diff --git a/art/symbols/images/scatter/scttr_eff_glow_anticip2.png b/art/symbols/images/scatter/scttr_eff_glow_anticip2.png new file mode 100644 index 0000000..3aac69d Binary files /dev/null and b/art/symbols/images/scatter/scttr_eff_glow_anticip2.png differ diff --git a/art/symbols/images/scatter/scttr_eff_glow_anticip3.png b/art/symbols/images/scatter/scttr_eff_glow_anticip3.png new file mode 100644 index 0000000..847765a Binary files /dev/null and b/art/symbols/images/scatter/scttr_eff_glow_anticip3.png differ diff --git a/art/symbols/images/scatter/scttr_eff_glow_anticip4.png b/art/symbols/images/scatter/scttr_eff_glow_anticip4.png new file mode 100644 index 0000000..7a44c51 Binary files /dev/null and b/art/symbols/images/scatter/scttr_eff_glow_anticip4.png differ diff --git a/art/symbols/images/scatter/scttr_eff_glow_anticip5.png b/art/symbols/images/scatter/scttr_eff_glow_anticip5.png new file mode 100644 index 0000000..fccb0c5 Binary files /dev/null and b/art/symbols/images/scatter/scttr_eff_glow_anticip5.png differ diff --git a/art/symbols/images/scatter/scttr_eff_glow_anticip6.png b/art/symbols/images/scatter/scttr_eff_glow_anticip6.png new file mode 100644 index 0000000..82e57d1 Binary files /dev/null and b/art/symbols/images/scatter/scttr_eff_glow_anticip6.png differ diff --git a/art/symbols/images/scatter/scttr_eff_glow_anticip7.png b/art/symbols/images/scatter/scttr_eff_glow_anticip7.png new file mode 100644 index 0000000..791224d Binary files /dev/null and b/art/symbols/images/scatter/scttr_eff_glow_anticip7.png differ diff --git a/art/symbols/images/scatter/scttr_eff_glow_anticip8.png b/art/symbols/images/scatter/scttr_eff_glow_anticip8.png new file mode 100644 index 0000000..3072289 Binary files /dev/null and b/art/symbols/images/scatter/scttr_eff_glow_anticip8.png differ diff --git a/art/symbols/images/scatter/scttr_eff_glow_win1.png b/art/symbols/images/scatter/scttr_eff_glow_win1.png new file mode 100644 index 0000000..50d2372 Binary files /dev/null and b/art/symbols/images/scatter/scttr_eff_glow_win1.png differ diff --git a/art/symbols/images/scatter/scttr_eff_glow_win2.png b/art/symbols/images/scatter/scttr_eff_glow_win2.png new file mode 100644 index 0000000..63c5036 Binary files /dev/null and b/art/symbols/images/scatter/scttr_eff_glow_win2.png differ diff --git a/art/symbols/images/scatter/scttr_eff_glow_win3.png b/art/symbols/images/scatter/scttr_eff_glow_win3.png new file mode 100644 index 0000000..4193a5f Binary files /dev/null and b/art/symbols/images/scatter/scttr_eff_glow_win3.png differ diff --git a/art/symbols/images/scatter/scttr_eff_glow_win4.png b/art/symbols/images/scatter/scttr_eff_glow_win4.png new file mode 100644 index 0000000..342befb Binary files /dev/null and b/art/symbols/images/scatter/scttr_eff_glow_win4.png differ diff --git a/art/symbols/images/scatter/scttr_eff_glow_win5.png b/art/symbols/images/scatter/scttr_eff_glow_win5.png new file mode 100644 index 0000000..0da098a Binary files /dev/null and b/art/symbols/images/scatter/scttr_eff_glow_win5.png differ diff --git a/art/symbols/images/scatter/scttr_eff_glow_win6.png b/art/symbols/images/scatter/scttr_eff_glow_win6.png new file mode 100644 index 0000000..7d92340 Binary files /dev/null and b/art/symbols/images/scatter/scttr_eff_glow_win6.png differ diff --git a/art/symbols/images/scatter/scttr_eff_glow_win7.png b/art/symbols/images/scatter/scttr_eff_glow_win7.png new file mode 100644 index 0000000..1693a6f Binary files /dev/null and b/art/symbols/images/scatter/scttr_eff_glow_win7.png differ diff --git a/art/symbols/images/scatter/scttr_eff_glow_win8.png b/art/symbols/images/scatter/scttr_eff_glow_win8.png new file mode 100644 index 0000000..e62bffd Binary files /dev/null and b/art/symbols/images/scatter/scttr_eff_glow_win8.png differ diff --git a/art/symbols/images/scatter/scttr_gem.png b/art/symbols/images/scatter/scttr_gem.png new file mode 100644 index 0000000..76d4652 Binary files /dev/null and b/art/symbols/images/scatter/scttr_gem.png differ diff --git a/art/symbols/images/scatter/scttr_gem_eff_glow_win.png b/art/symbols/images/scatter/scttr_gem_eff_glow_win.png new file mode 100644 index 0000000..58caa9f Binary files /dev/null and b/art/symbols/images/scatter/scttr_gem_eff_glow_win.png differ diff --git a/art/symbols/images/scatter/scttr_gem_frame_gld.png b/art/symbols/images/scatter/scttr_gem_frame_gld.png new file mode 100644 index 0000000..7d23c06 Binary files /dev/null and b/art/symbols/images/scatter/scttr_gem_frame_gld.png differ diff --git a/art/symbols/images/scatter/scttr_gem_frame_gld_s.png b/art/symbols/images/scatter/scttr_gem_frame_gld_s.png new file mode 100644 index 0000000..623eacd Binary files /dev/null and b/art/symbols/images/scatter/scttr_gem_frame_gld_s.png differ diff --git a/art/symbols/images/scatter/scttr_gem_frame_pnk.png b/art/symbols/images/scatter/scttr_gem_frame_pnk.png new file mode 100644 index 0000000..7e78744 Binary files /dev/null and b/art/symbols/images/scatter/scttr_gem_frame_pnk.png differ diff --git a/art/symbols/images/scatter/scttr_gem_frame_pnk_s.png b/art/symbols/images/scatter/scttr_gem_frame_pnk_s.png new file mode 100644 index 0000000..fce9cdc Binary files /dev/null and b/art/symbols/images/scatter/scttr_gem_frame_pnk_s.png differ diff --git a/art/symbols/images/scatter/scttr_mid_gems_dark_m.png b/art/symbols/images/scatter/scttr_mid_gems_dark_m.png new file mode 100644 index 0000000..b805305 Binary files /dev/null and b/art/symbols/images/scatter/scttr_mid_gems_dark_m.png differ diff --git a/art/symbols/images/scatter/scttr_mid_gems_dark_s.png b/art/symbols/images/scatter/scttr_mid_gems_dark_s.png new file mode 100644 index 0000000..fcc543e Binary files /dev/null and b/art/symbols/images/scatter/scttr_mid_gems_dark_s.png differ diff --git a/art/symbols/images/scatter/scttr_mid_gems_light_m.png b/art/symbols/images/scatter/scttr_mid_gems_light_m.png new file mode 100644 index 0000000..c87b856 Binary files /dev/null and b/art/symbols/images/scatter/scttr_mid_gems_light_m.png differ diff --git a/art/symbols/images/scatter/scttr_mid_gems_light_s.png b/art/symbols/images/scatter/scttr_mid_gems_light_s.png new file mode 100644 index 0000000..ae99ee9 Binary files /dev/null and b/art/symbols/images/scatter/scttr_mid_gems_light_s.png differ diff --git a/art/symbols/images/scatter/scttr_mid_gems_sample.png b/art/symbols/images/scatter/scttr_mid_gems_sample.png new file mode 100644 index 0000000..4923d05 Binary files /dev/null and b/art/symbols/images/scatter/scttr_mid_gems_sample.png differ diff --git a/art/symbols/images/scatter/scttr_mid_gld1.png b/art/symbols/images/scatter/scttr_mid_gld1.png new file mode 100644 index 0000000..53ba721 Binary files /dev/null and b/art/symbols/images/scatter/scttr_mid_gld1.png differ diff --git a/art/symbols/images/scatter/scttr_mid_gld2.png b/art/symbols/images/scatter/scttr_mid_gld2.png new file mode 100644 index 0000000..6810eff Binary files /dev/null and b/art/symbols/images/scatter/scttr_mid_gld2.png differ diff --git a/art/symbols/images/scatter/scttr_mid_gld3.png b/art/symbols/images/scatter/scttr_mid_gld3.png new file mode 100644 index 0000000..7dc3c73 Binary files /dev/null and b/art/symbols/images/scatter/scttr_mid_gld3.png differ diff --git a/art/symbols/images/scatter/scttr_mid_gld4.png b/art/symbols/images/scatter/scttr_mid_gld4.png new file mode 100644 index 0000000..eff54a8 Binary files /dev/null and b/art/symbols/images/scatter/scttr_mid_gld4.png differ diff --git a/art/symbols/images/scatter/scttr_mid_gld5.png b/art/symbols/images/scatter/scttr_mid_gld5.png new file mode 100644 index 0000000..5951b7c Binary files /dev/null and b/art/symbols/images/scatter/scttr_mid_gld5.png differ diff --git a/art/symbols/images/scatter/scttr_mid_gld6.png b/art/symbols/images/scatter/scttr_mid_gld6.png new file mode 100644 index 0000000..d8a92b1 Binary files /dev/null and b/art/symbols/images/scatter/scttr_mid_gld6.png differ diff --git a/art/symbols/images/scatter/scttr_mid_gld7.png b/art/symbols/images/scatter/scttr_mid_gld7.png new file mode 100644 index 0000000..ab320bc Binary files /dev/null and b/art/symbols/images/scatter/scttr_mid_gld7.png differ diff --git a/art/symbols/images/scatter/scttr_mid_gld8.png b/art/symbols/images/scatter/scttr_mid_gld8.png new file mode 100644 index 0000000..c5083f4 Binary files /dev/null and b/art/symbols/images/scatter/scttr_mid_gld8.png differ diff --git a/art/symbols/images/scatter/scttr_mid_gld_s.png b/art/symbols/images/scatter/scttr_mid_gld_s.png new file mode 100644 index 0000000..55c5140 Binary files /dev/null and b/art/symbols/images/scatter/scttr_mid_gld_s.png differ diff --git a/art/symbols/images/scatter/scttr_s.png b/art/symbols/images/scatter/scttr_s.png new file mode 100644 index 0000000..a692ebe Binary files /dev/null and b/art/symbols/images/scatter/scttr_s.png differ diff --git a/art/symbols/images/scatter/scttr_stone.png b/art/symbols/images/scatter/scttr_stone.png new file mode 100644 index 0000000..491fda7 Binary files /dev/null and b/art/symbols/images/scatter/scttr_stone.png differ diff --git a/art/symbols/images/scatter/symbols (5).json b/art/symbols/images/scatter/symbols (5).json new file mode 100644 index 0000000..e941c46 --- /dev/null +++ b/art/symbols/images/scatter/symbols (5).json @@ -0,0 +1,169 @@ +{ "skeleton": { "images": "C:/THE POSO/99.Amazon City of Gold/symbols/images/scatter/" }, +"PhotoshopToSpine": { "scale": 1, "padding": 1, "trim": false }, +"bones": [ + { "name": "root" } +], +"slots": [ + { "name": "scttr_s", "bone": "root", "attachment": "scttr_s" }, + { "name": "scttr_stone", "bone": "root", "attachment": "scttr_stone" }, + { "name": "scttr_mid_gld_s", "bone": "root", "attachment": "scttr_mid_gld_s" }, + { "name": "scttr_mid_gld8", "bone": "root", "attachment": "scttr_mid_gld8" }, + { "name": "scttr_mid_gld7", "bone": "root", "attachment": "scttr_mid_gld7" }, + { "name": "scttr_mid_gld6", "bone": "root", "attachment": "scttr_mid_gld6" }, + { "name": "scttr_mid_gld5", "bone": "root", "attachment": "scttr_mid_gld5" }, + { "name": "scttr_mid_gld4", "bone": "root", "attachment": "scttr_mid_gld4" }, + { "name": "scttr_mid_gld3", "bone": "root", "attachment": "scttr_mid_gld3" }, + { "name": "scttr_mid_gld2", "bone": "root", "attachment": "scttr_mid_gld2" }, + { "name": "scttr_mid_gld1", "bone": "root", "attachment": "scttr_mid_gld1" }, + { "name": "scttr_mid_gems_sample", "bone": "root", "attachment": "scttr_mid_gems_sample" }, + { "name": "scttr_gem_frame_gld_s", "bone": "root", "attachment": "scttr_gem_frame_gld_s" }, + { "name": "scttr_gem_frame_gld", "bone": "root", "attachment": "scttr_gem_frame_gld" }, + { "name": "scttr_gem_frame_pnk_s", "bone": "root", "attachment": "scttr_gem_frame_pnk_s" }, + { "name": "scttr_gem_frame_pnk", "bone": "root", "attachment": "scttr_gem_frame_pnk" }, + { "name": "scttr_gem", "bone": "root", "attachment": "scttr_gem" }, + { "name": "scttr_eff_glow_win8", "bone": "root", "attachment": "scttr_eff_glow_win8" }, + { "name": "scttr_eff_glow_win7", "bone": "root", "attachment": "scttr_eff_glow_win7" }, + { "name": "scttr_eff_glow_win6", "bone": "root", "attachment": "scttr_eff_glow_win6" }, + { "name": "scttr_eff_glow_win5", "bone": "root", "attachment": "scttr_eff_glow_win5" }, + { "name": "scttr_eff_glow_win4", "bone": "root", "attachment": "scttr_eff_glow_win4" }, + { "name": "scttr_eff_glow_win3", "bone": "root", "attachment": "scttr_eff_glow_win3" }, + { "name": "scttr_eff_glow_win2", "bone": "root", "attachment": "scttr_eff_glow_win2" }, + { "name": "scttr_eff_glow_win1", "bone": "root", "attachment": "scttr_eff_glow_win1" }, + { "name": "scttr_eff_glow_anticip8", "bone": "root", "attachment": "scttr_eff_glow_anticip8" }, + { "name": "scttr_eff_glow_anticip7", "bone": "root", "attachment": "scttr_eff_glow_anticip7" }, + { "name": "scttr_eff_glow_anticip6", "bone": "root", "attachment": "scttr_eff_glow_anticip6" }, + { "name": "scttr_eff_glow_anticip5", "bone": "root", "attachment": "scttr_eff_glow_anticip5" }, + { "name": "scttr_eff_glow_anticip4", "bone": "root", "attachment": "scttr_eff_glow_anticip4" }, + { "name": "scttr_eff_glow_anticip3", "bone": "root", "attachment": "scttr_eff_glow_anticip3" }, + { "name": "scttr_eff_glow_anticip2", "bone": "root", "attachment": "scttr_eff_glow_anticip2" }, + { "name": "scttr_eff_glow_anticip1", "bone": "root", "attachment": "scttr_eff_glow_anticip1" }, + { "name": "scttr_mid_gems_dark_s", "bone": "root", "attachment": "scttr_mid_gems_dark_s" }, + { "name": "scttr_mid_gems_dark_m", "bone": "root", "attachment": "scttr_mid_gems_dark_m" }, + { "name": "scttr_mid_gems_light_m", "bone": "root", "attachment": "scttr_mid_gems_light_m" }, + { "name": "scttr_mid_gems_light_s", "bone": "root", "attachment": "scttr_mid_gems_light_s" }, + { "name": "scttr_gem_eff_glow_win", "bone": "root", "attachment": "scttr_gem_eff_glow_win" }, + { "name": "!!!!!_NOTE", "bone": "root", "attachment": "!!!!!_NOTE" } +], +"skins": { + "default": { + "scttr_s": { + "scttr_s": { "x": 0, "y": 0, "width": 362, "height": 362 } + }, + "scttr_stone": { + "scttr_stone": { "x": 0, "y": 0, "width": 362, "height": 362 } + }, + "scttr_mid_gld_s": { + "scttr_mid_gld_s": { "x": 0, "y": 0, "width": 362, "height": 362 } + }, + "scttr_mid_gld8": { + "scttr_mid_gld8": { "x": 0, "y": 0, "width": 362, "height": 362 } + }, + "scttr_mid_gld7": { + "scttr_mid_gld7": { "x": 0, "y": 0, "width": 362, "height": 362 } + }, + "scttr_mid_gld6": { + "scttr_mid_gld6": { "x": 0, "y": 0, "width": 362, "height": 362 } + }, + "scttr_mid_gld5": { + "scttr_mid_gld5": { "x": 0, "y": 0, "width": 362, "height": 362 } + }, + "scttr_mid_gld4": { + "scttr_mid_gld4": { "x": 0, "y": 0, "width": 362, "height": 362 } + }, + "scttr_mid_gld3": { + "scttr_mid_gld3": { "x": 0, "y": 0, "width": 362, "height": 362 } + }, + "scttr_mid_gld2": { + "scttr_mid_gld2": { "x": 0, "y": 0, "width": 362, "height": 362 } + }, + "scttr_mid_gld1": { + "scttr_mid_gld1": { "x": 0, "y": 0, "width": 362, "height": 362 } + }, + "scttr_mid_gems_sample": { + "scttr_mid_gems_sample": { "x": 0, "y": 0, "width": 362, "height": 362 } + }, + "scttr_gem_frame_gld_s": { + "scttr_gem_frame_gld_s": { "x": 0, "y": 0, "width": 362, "height": 362 } + }, + "scttr_gem_frame_gld": { + "scttr_gem_frame_gld": { "x": 0, "y": 0, "width": 362, "height": 362 } + }, + "scttr_gem_frame_pnk_s": { + "scttr_gem_frame_pnk_s": { "x": 0, "y": 0, "width": 362, "height": 362 } + }, + "scttr_gem_frame_pnk": { + "scttr_gem_frame_pnk": { "x": 0, "y": 0, "width": 362, "height": 362 } + }, + "scttr_gem": { + "scttr_gem": { "x": 0, "y": 0, "width": 362, "height": 362 } + }, + "scttr_eff_glow_win8": { + "scttr_eff_glow_win8": { "x": 0, "y": 0, "width": 362, "height": 362 } + }, + "scttr_eff_glow_win7": { + "scttr_eff_glow_win7": { "x": 0, "y": 0, "width": 362, "height": 362 } + }, + "scttr_eff_glow_win6": { + "scttr_eff_glow_win6": { "x": 0, "y": 0, "width": 362, "height": 362 } + }, + "scttr_eff_glow_win5": { + "scttr_eff_glow_win5": { "x": 0, "y": 0, "width": 362, "height": 362 } + }, + "scttr_eff_glow_win4": { + "scttr_eff_glow_win4": { "x": 0, "y": 0, "width": 362, "height": 362 } + }, + "scttr_eff_glow_win3": { + "scttr_eff_glow_win3": { "x": 0, "y": 0, "width": 362, "height": 362 } + }, + "scttr_eff_glow_win2": { + "scttr_eff_glow_win2": { "x": 0, "y": 0, "width": 362, "height": 362 } + }, + "scttr_eff_glow_win1": { + "scttr_eff_glow_win1": { "x": 0, "y": 0, "width": 362, "height": 362 } + }, + "scttr_eff_glow_anticip8": { + "scttr_eff_glow_anticip8": { "x": 0, "y": 0, "width": 362, "height": 362 } + }, + "scttr_eff_glow_anticip7": { + "scttr_eff_glow_anticip7": { "x": 0, "y": 0, "width": 362, "height": 362 } + }, + "scttr_eff_glow_anticip6": { + "scttr_eff_glow_anticip6": { "x": 0, "y": 0, "width": 362, "height": 362 } + }, + "scttr_eff_glow_anticip5": { + "scttr_eff_glow_anticip5": { "x": 0, "y": 0, "width": 362, "height": 362 } + }, + "scttr_eff_glow_anticip4": { + "scttr_eff_glow_anticip4": { "x": 0, "y": 0, "width": 362, "height": 362 } + }, + "scttr_eff_glow_anticip3": { + "scttr_eff_glow_anticip3": { "x": 0, "y": 0, "width": 362, "height": 362 } + }, + "scttr_eff_glow_anticip2": { + "scttr_eff_glow_anticip2": { "x": 0, "y": 0, "width": 362, "height": 362 } + }, + "scttr_eff_glow_anticip1": { + "scttr_eff_glow_anticip1": { "x": 0, "y": 0, "width": 362, "height": 362 } + }, + "scttr_mid_gems_dark_s": { + "scttr_mid_gems_dark_s": { "x": 0, "y": 0, "width": 362, "height": 362 } + }, + "scttr_mid_gems_dark_m": { + "scttr_mid_gems_dark_m": { "x": 0, "y": 0, "width": 362, "height": 362 } + }, + "scttr_mid_gems_light_m": { + "scttr_mid_gems_light_m": { "x": 0, "y": 0, "width": 362, "height": 362 } + }, + "scttr_mid_gems_light_s": { + "scttr_mid_gems_light_s": { "x": 0, "y": 0, "width": 362, "height": 362 } + }, + "scttr_gem_eff_glow_win": { + "scttr_gem_eff_glow_win": { "x": 0, "y": 0, "width": 362, "height": 362 } + }, + "!!!!!_NOTE": { + "!!!!!_NOTE": { "x": 0, "y": 0, "width": 362, "height": 362 } + } + } +}, +"animations": { "animation": {} } +} \ No newline at end of file diff --git a/art/symbols/images/wild_symbols/200x.png b/art/symbols/images/wild_symbols/200x.png new file mode 100644 index 0000000..45e1b67 Binary files /dev/null and b/art/symbols/images/wild_symbols/200x.png differ diff --git a/art/symbols/images/wild_symbols/20x.png b/art/symbols/images/wild_symbols/20x.png new file mode 100644 index 0000000..12d406b Binary files /dev/null and b/art/symbols/images/wild_symbols/20x.png differ diff --git a/art/symbols/images/wild_symbols/2x.png b/art/symbols/images/wild_symbols/2x.png new file mode 100644 index 0000000..485980d Binary files /dev/null and b/art/symbols/images/wild_symbols/2x.png differ diff --git a/art/symbols/images/wild_symbols/light_01.png b/art/symbols/images/wild_symbols/light_01.png new file mode 100644 index 0000000..0d28850 Binary files /dev/null and b/art/symbols/images/wild_symbols/light_01.png differ diff --git a/art/symbols/images/wild_symbols/placeholder.png b/art/symbols/images/wild_symbols/placeholder.png new file mode 100644 index 0000000..87b8ed8 Binary files /dev/null and b/art/symbols/images/wild_symbols/placeholder.png differ diff --git a/art/symbols/images/wild_symbols/reels_slot.png b/art/symbols/images/wild_symbols/reels_slot.png new file mode 100644 index 0000000..59510a2 Binary files /dev/null and b/art/symbols/images/wild_symbols/reels_slot.png differ diff --git a/art/symbols/images/wild_symbols/sticky_frame_glow.png b/art/symbols/images/wild_symbols/sticky_frame_glow.png new file mode 100644 index 0000000..a10d76d Binary files /dev/null and b/art/symbols/images/wild_symbols/sticky_frame_glow.png differ diff --git a/art/symbols/images/wild_symbols/sticky_frame_line1.png b/art/symbols/images/wild_symbols/sticky_frame_line1.png new file mode 100644 index 0000000..388a85a Binary files /dev/null and b/art/symbols/images/wild_symbols/sticky_frame_line1.png differ diff --git a/art/symbols/images/wild_symbols/sticky_frame_line2.png b/art/symbols/images/wild_symbols/sticky_frame_line2.png new file mode 100644 index 0000000..5cff7a7 Binary files /dev/null and b/art/symbols/images/wild_symbols/sticky_frame_line2.png differ diff --git a/art/symbols/images/wild_symbols/sticky_frame_line3.png b/art/symbols/images/wild_symbols/sticky_frame_line3.png new file mode 100644 index 0000000..c459211 Binary files /dev/null and b/art/symbols/images/wild_symbols/sticky_frame_line3.png differ diff --git a/art/symbols/images/wild_symbols/sticky_frame_line4.png b/art/symbols/images/wild_symbols/sticky_frame_line4.png new file mode 100644 index 0000000..f5157a9 Binary files /dev/null and b/art/symbols/images/wild_symbols/sticky_frame_line4.png differ diff --git a/art/symbols/images/wild_symbols/sticky_frame_s.png b/art/symbols/images/wild_symbols/sticky_frame_s.png new file mode 100644 index 0000000..fdd4878 Binary files /dev/null and b/art/symbols/images/wild_symbols/sticky_frame_s.png differ diff --git a/art/symbols/images/wild_symbols/sticky_frame_sqr1.png b/art/symbols/images/wild_symbols/sticky_frame_sqr1.png new file mode 100644 index 0000000..eb4930e Binary files /dev/null and b/art/symbols/images/wild_symbols/sticky_frame_sqr1.png differ diff --git a/art/symbols/images/wild_symbols/sticky_frame_sqr2.png b/art/symbols/images/wild_symbols/sticky_frame_sqr2.png new file mode 100644 index 0000000..e9a2727 Binary files /dev/null and b/art/symbols/images/wild_symbols/sticky_frame_sqr2.png differ diff --git a/art/symbols/images/wild_symbols/sticky_frame_sqr3.png b/art/symbols/images/wild_symbols/sticky_frame_sqr3.png new file mode 100644 index 0000000..24098fa Binary files /dev/null and b/art/symbols/images/wild_symbols/sticky_frame_sqr3.png differ diff --git a/art/symbols/images/wild_symbols/sticky_frame_sqr4.png b/art/symbols/images/wild_symbols/sticky_frame_sqr4.png new file mode 100644 index 0000000..0ed9d96 Binary files /dev/null and b/art/symbols/images/wild_symbols/sticky_frame_sqr4.png differ diff --git a/art/symbols/images/wild_symbols/symbols.json b/art/symbols/images/wild_symbols/symbols.json new file mode 100644 index 0000000..7db1bf7 --- /dev/null +++ b/art/symbols/images/wild_symbols/symbols.json @@ -0,0 +1,53 @@ +{ "skeleton": { "images": "C:/THE POSO/99.Amazon City of Gold/symbols/images/wild_symbols/" }, +"PhotoshopToSpine": { "scale": 1, "padding": 1, "trim": false }, +"bones": [ + { "name": "root" } +], +"slots": [ + { "name": "sticky_frame_glow", "bone": "root", "attachment": "sticky_frame_glow" }, + { "name": "sticky_frame_s", "bone": "root", "attachment": "sticky_frame_s" }, + { "name": "sticky_frame_line1", "bone": "root", "attachment": "sticky_frame_line1" }, + { "name": "sticky_frame_line2", "bone": "root", "attachment": "sticky_frame_line2" }, + { "name": "sticky_frame_line3", "bone": "root", "attachment": "sticky_frame_line3" }, + { "name": "sticky_frame_line4", "bone": "root", "attachment": "sticky_frame_line4" }, + { "name": "sticky_frame_sqr1", "bone": "root", "attachment": "sticky_frame_sqr1" }, + { "name": "sticky_frame_sqr2", "bone": "root", "attachment": "sticky_frame_sqr2" }, + { "name": "sticky_frame_sqr3", "bone": "root", "attachment": "sticky_frame_sqr3" }, + { "name": "sticky_frame_sqr4", "bone": "root", "attachment": "sticky_frame_sqr4" } +], +"skins": { + "default": { + "sticky_frame_glow": { + "sticky_frame_glow": { "x": -10, "y": 10, "width": 362, "height": 362 } + }, + "sticky_frame_s": { + "sticky_frame_s": { "x": -10, "y": 10, "width": 362, "height": 362 } + }, + "sticky_frame_line1": { + "sticky_frame_line1": { "x": -10, "y": 10, "width": 362, "height": 362 } + }, + "sticky_frame_line2": { + "sticky_frame_line2": { "x": -10, "y": 10, "width": 362, "height": 362 } + }, + "sticky_frame_line3": { + "sticky_frame_line3": { "x": -10, "y": 10, "width": 362, "height": 362 } + }, + "sticky_frame_line4": { + "sticky_frame_line4": { "x": -10, "y": 10, "width": 362, "height": 362 } + }, + "sticky_frame_sqr1": { + "sticky_frame_sqr1": { "x": -10, "y": 10, "width": 362, "height": 362 } + }, + "sticky_frame_sqr2": { + "sticky_frame_sqr2": { "x": -10, "y": 10, "width": 362, "height": 362 } + }, + "sticky_frame_sqr3": { + "sticky_frame_sqr3": { "x": -10, "y": 10, "width": 362, "height": 362 } + }, + "sticky_frame_sqr4": { + "sticky_frame_sqr4": { "x": -10, "y": 10, "width": 362, "height": 362 } + } + } +}, +"animations": { "animation": {} } +} \ No newline at end of file diff --git a/art/symbols/images/wild_symbols/wild1.png b/art/symbols/images/wild_symbols/wild1.png new file mode 100644 index 0000000..c3cba52 Binary files /dev/null and b/art/symbols/images/wild_symbols/wild1.png differ diff --git a/art/symbols/images/wild_symbols/wild1_frame.png b/art/symbols/images/wild_symbols/wild1_frame.png new file mode 100644 index 0000000..2e7ba3d Binary files /dev/null and b/art/symbols/images/wild_symbols/wild1_frame.png differ diff --git a/art/symbols/images/wild_symbols/wild1_glow.png b/art/symbols/images/wild_symbols/wild1_glow.png new file mode 100644 index 0000000..0e57167 Binary files /dev/null and b/art/symbols/images/wild_symbols/wild1_glow.png differ diff --git a/art/symbols/images/wild_symbols/wild1_in.png b/art/symbols/images/wild_symbols/wild1_in.png new file mode 100644 index 0000000..bf65717 Binary files /dev/null and b/art/symbols/images/wild_symbols/wild1_in.png differ diff --git a/art/symbols/images/wild_symbols/wild2.png b/art/symbols/images/wild_symbols/wild2.png new file mode 100644 index 0000000..a0bb386 Binary files /dev/null and b/art/symbols/images/wild_symbols/wild2.png differ diff --git a/art/symbols/images/wild_symbols/wild2_frame.png b/art/symbols/images/wild_symbols/wild2_frame.png new file mode 100644 index 0000000..1f14dd0 Binary files /dev/null and b/art/symbols/images/wild_symbols/wild2_frame.png differ diff --git a/art/symbols/images/wild_symbols/wild2_glow.png b/art/symbols/images/wild_symbols/wild2_glow.png new file mode 100644 index 0000000..f11a0cd Binary files /dev/null and b/art/symbols/images/wild_symbols/wild2_glow.png differ diff --git a/art/symbols/images/wild_symbols/wild2_in.png b/art/symbols/images/wild_symbols/wild2_in.png new file mode 100644 index 0000000..94b23b3 Binary files /dev/null and b/art/symbols/images/wild_symbols/wild2_in.png differ diff --git a/art/symbols/images/wild_symbols/wild3.png b/art/symbols/images/wild_symbols/wild3.png new file mode 100644 index 0000000..166462c Binary files /dev/null and b/art/symbols/images/wild_symbols/wild3.png differ diff --git a/art/symbols/images/wild_symbols/wild3_frame.png b/art/symbols/images/wild_symbols/wild3_frame.png new file mode 100644 index 0000000..c390c81 Binary files /dev/null and b/art/symbols/images/wild_symbols/wild3_frame.png differ diff --git a/art/symbols/images/wild_symbols/wild3_glow.png b/art/symbols/images/wild_symbols/wild3_glow.png new file mode 100644 index 0000000..dee60dc Binary files /dev/null and b/art/symbols/images/wild_symbols/wild3_glow.png differ diff --git a/art/symbols/images/wild_symbols/wild3_in.png b/art/symbols/images/wild_symbols/wild3_in.png new file mode 100644 index 0000000..64f23de Binary files /dev/null and b/art/symbols/images/wild_symbols/wild3_in.png differ diff --git a/art/symbols/images/wild_symbols/wild_1_win.png b/art/symbols/images/wild_symbols/wild_1_win.png new file mode 100644 index 0000000..04e512a Binary files /dev/null and b/art/symbols/images/wild_symbols/wild_1_win.png differ diff --git a/art/symbols/images/wild_symbols/wild_2_win.png b/art/symbols/images/wild_symbols/wild_2_win.png new file mode 100644 index 0000000..28a2391 Binary files /dev/null and b/art/symbols/images/wild_symbols/wild_2_win.png differ diff --git a/art/symbols/images/wild_symbols/wild_3_win.png b/art/symbols/images/wild_symbols/wild_3_win.png new file mode 100644 index 0000000..fe902ba Binary files /dev/null and b/art/symbols/images/wild_symbols/wild_3_win.png differ diff --git a/art/symbols/symbols.spine b/art/symbols/symbols.spine new file mode 100644 index 0000000..46c9515 Binary files /dev/null and b/art/symbols/symbols.spine differ diff --git a/art/transition/images/trans_bg_down1.png b/art/transition/images/trans_bg_down1.png new file mode 100644 index 0000000..41b0762 Binary files /dev/null and b/art/transition/images/trans_bg_down1.png differ diff --git a/art/transition/images/trans_bg_down2.png b/art/transition/images/trans_bg_down2.png new file mode 100644 index 0000000..5386ed1 Binary files /dev/null and b/art/transition/images/trans_bg_down2.png differ diff --git a/art/transition/images/trans_bg_up1.png b/art/transition/images/trans_bg_up1.png new file mode 100644 index 0000000..46c2159 Binary files /dev/null and b/art/transition/images/trans_bg_up1.png differ diff --git a/art/transition/images/trans_bg_up2.png b/art/transition/images/trans_bg_up2.png new file mode 100644 index 0000000..c56ca32 Binary files /dev/null and b/art/transition/images/trans_bg_up2.png differ diff --git a/art/transition/images/trans_snake_down1.png b/art/transition/images/trans_snake_down1.png new file mode 100644 index 0000000..eba7311 Binary files /dev/null and b/art/transition/images/trans_snake_down1.png differ diff --git a/art/transition/images/trans_snake_down2.png b/art/transition/images/trans_snake_down2.png new file mode 100644 index 0000000..209fce8 Binary files /dev/null and b/art/transition/images/trans_snake_down2.png differ diff --git a/art/transition/images/trans_snake_up1.png b/art/transition/images/trans_snake_up1.png new file mode 100644 index 0000000..8c0efcc Binary files /dev/null and b/art/transition/images/trans_snake_up1.png differ diff --git a/art/transition/images/trans_snake_up2.png b/art/transition/images/trans_snake_up2.png new file mode 100644 index 0000000..097b910 Binary files /dev/null and b/art/transition/images/trans_snake_up2.png differ diff --git a/art/transition/transition.spine b/art/transition/transition.spine new file mode 100644 index 0000000..c016d09 Binary files /dev/null and b/art/transition/transition.spine differ diff --git a/art/ui/area-buttons/buttons.spine b/art/ui/area-buttons/buttons.spine new file mode 100644 index 0000000..0b51732 Binary files /dev/null and b/art/ui/area-buttons/buttons.spine differ diff --git a/art/ui/area-buttons/images/bet-select-btn-disabled.png b/art/ui/area-buttons/images/bet-select-btn-disabled.png new file mode 100644 index 0000000..4366223 Binary files /dev/null and b/art/ui/area-buttons/images/bet-select-btn-disabled.png differ diff --git a/art/ui/area-buttons/images/bet-select-btn-hover.png b/art/ui/area-buttons/images/bet-select-btn-hover.png new file mode 100644 index 0000000..7ecd7e4 Binary files /dev/null and b/art/ui/area-buttons/images/bet-select-btn-hover.png differ diff --git a/art/ui/area-buttons/images/bet-select-btn-press.png b/art/ui/area-buttons/images/bet-select-btn-press.png new file mode 100644 index 0000000..b715300 Binary files /dev/null and b/art/ui/area-buttons/images/bet-select-btn-press.png differ diff --git a/art/ui/area-buttons/images/bet-select-btn.png b/art/ui/area-buttons/images/bet-select-btn.png new file mode 100644 index 0000000..f6a014c Binary files /dev/null and b/art/ui/area-buttons/images/bet-select-btn.png differ diff --git a/art/ui/area-buttons/images/check-box-hover.png b/art/ui/area-buttons/images/check-box-hover.png new file mode 100644 index 0000000..2bce92d Binary files /dev/null and b/art/ui/area-buttons/images/check-box-hover.png differ diff --git a/art/ui/area-buttons/images/check-box.png b/art/ui/area-buttons/images/check-box.png new file mode 100644 index 0000000..db143e6 Binary files /dev/null and b/art/ui/area-buttons/images/check-box.png differ diff --git a/art/ui/area-buttons/images/close-btn.png b/art/ui/area-buttons/images/close-btn.png new file mode 100644 index 0000000..affed7d Binary files /dev/null and b/art/ui/area-buttons/images/close-btn.png differ diff --git a/art/ui/autospin_settings/autospin_settings.psd b/art/ui/autospin_settings/autospin_settings.psd new file mode 100644 index 0000000..c34c63f Binary files /dev/null and b/art/ui/autospin_settings/autospin_settings.psd differ diff --git a/art/ui/autospin_settings/autospin_settings.spine b/art/ui/autospin_settings/autospin_settings.spine new file mode 100644 index 0000000..b032dbd Binary files /dev/null and b/art/ui/autospin_settings/autospin_settings.spine differ diff --git a/art/ui/autospin_settings/images/AS_bg_advanced_expanded.png b/art/ui/autospin_settings/images/AS_bg_advanced_expanded.png new file mode 100644 index 0000000..1a0a5da Binary files /dev/null and b/art/ui/autospin_settings/images/AS_bg_advanced_expanded.png differ diff --git a/art/ui/autospin_settings/images/AS_bg_basic_collapsed.png b/art/ui/autospin_settings/images/AS_bg_basic_collapsed.png new file mode 100644 index 0000000..56b9625 Binary files /dev/null and b/art/ui/autospin_settings/images/AS_bg_basic_collapsed.png differ diff --git a/art/ui/autospin_settings/images/Autospin settings_prv.png b/art/ui/autospin_settings/images/Autospin settings_prv.png new file mode 100644 index 0000000..cfd25d8 Binary files /dev/null and b/art/ui/autospin_settings/images/Autospin settings_prv.png differ diff --git a/art/ui/autospin_settings/images/I_prv.png b/art/ui/autospin_settings/images/I_prv.png new file mode 100644 index 0000000..bde8894 Binary files /dev/null and b/art/ui/autospin_settings/images/I_prv.png differ diff --git a/art/ui/autospin_settings/images/as_top_bgTriangle.png b/art/ui/autospin_settings/images/as_top_bgTriangle.png new file mode 100644 index 0000000..7007af9 Binary files /dev/null and b/art/ui/autospin_settings/images/as_top_bgTriangle.png differ diff --git a/art/ui/autospin_settings/images/btn_AS_bg.png b/art/ui/autospin_settings/images/btn_AS_bg.png new file mode 100644 index 0000000..0b20ba3 Binary files /dev/null and b/art/ui/autospin_settings/images/btn_AS_bg.png differ diff --git a/art/ui/autospin_settings/images/btn_bg_advanced.png b/art/ui/autospin_settings/images/btn_bg_advanced.png new file mode 100644 index 0000000..5fea00d Binary files /dev/null and b/art/ui/autospin_settings/images/btn_bg_advanced.png differ diff --git a/art/ui/autospin_settings/images/btn_bg_basic.png b/art/ui/autospin_settings/images/btn_bg_basic.png new file mode 100644 index 0000000..b08a18e Binary files /dev/null and b/art/ui/autospin_settings/images/btn_bg_basic.png differ diff --git a/art/ui/autospin_settings/images/btn_checkboxOff_bg.png b/art/ui/autospin_settings/images/btn_checkboxOff_bg.png new file mode 100644 index 0000000..0a76458 Binary files /dev/null and b/art/ui/autospin_settings/images/btn_checkboxOff_bg.png differ diff --git a/art/ui/autospin_settings/images/btn_checkboxOn.png b/art/ui/autospin_settings/images/btn_checkboxOn.png new file mode 100644 index 0000000..ce93d3d Binary files /dev/null and b/art/ui/autospin_settings/images/btn_checkboxOn.png differ diff --git a/art/ui/autospin_settings/images/btn_checkboxOn_bg.png b/art/ui/autospin_settings/images/btn_checkboxOn_bg.png new file mode 100644 index 0000000..2fb3abc Binary files /dev/null and b/art/ui/autospin_settings/images/btn_checkboxOn_bg.png differ diff --git a/art/ui/autospin_settings/images/btn_i10.png b/art/ui/autospin_settings/images/btn_i10.png new file mode 100644 index 0000000..e341740 Binary files /dev/null and b/art/ui/autospin_settings/images/btn_i10.png differ diff --git a/art/ui/autospin_settings/images/btn_i100.png b/art/ui/autospin_settings/images/btn_i100.png new file mode 100644 index 0000000..e928fff Binary files /dev/null and b/art/ui/autospin_settings/images/btn_i100.png differ diff --git a/art/ui/autospin_settings/images/btn_i25.png b/art/ui/autospin_settings/images/btn_i25.png new file mode 100644 index 0000000..e843377 Binary files /dev/null and b/art/ui/autospin_settings/images/btn_i25.png differ diff --git a/art/ui/autospin_settings/images/btn_i250.png b/art/ui/autospin_settings/images/btn_i250.png new file mode 100644 index 0000000..2c6b09a Binary files /dev/null and b/art/ui/autospin_settings/images/btn_i250.png differ diff --git a/art/ui/autospin_settings/images/btn_i50.png b/art/ui/autospin_settings/images/btn_i50.png new file mode 100644 index 0000000..34bc0d5 Binary files /dev/null and b/art/ui/autospin_settings/images/btn_i50.png differ diff --git a/art/ui/autospin_settings/images/btn_i500.png b/art/ui/autospin_settings/images/btn_i500.png new file mode 100644 index 0000000..57e7418 Binary files /dev/null and b/art/ui/autospin_settings/images/btn_i500.png differ diff --git a/art/ui/autospin_settings/images/btn_i750.png b/art/ui/autospin_settings/images/btn_i750.png new file mode 100644 index 0000000..50642ee Binary files /dev/null and b/art/ui/autospin_settings/images/btn_i750.png differ diff --git a/art/ui/autospin_settings/images/btn_i_1000.png b/art/ui/autospin_settings/images/btn_i_1000.png new file mode 100644 index 0000000..ecd63e0 Binary files /dev/null and b/art/ui/autospin_settings/images/btn_i_1000.png differ diff --git a/art/ui/autospin_settings/images/btn_infinity.png b/art/ui/autospin_settings/images/btn_infinity.png new file mode 100644 index 0000000..f740e33 Binary files /dev/null and b/art/ui/autospin_settings/images/btn_infinity.png differ diff --git a/art/ui/autospin_settings/images/checkbox_prv.png b/art/ui/autospin_settings/images/checkbox_prv.png new file mode 100644 index 0000000..919eadb Binary files /dev/null and b/art/ui/autospin_settings/images/checkbox_prv.png differ diff --git a/art/ui/autospin_settings/images/close-btn.png b/art/ui/autospin_settings/images/close-btn.png new file mode 100644 index 0000000..affed7d Binary files /dev/null and b/art/ui/autospin_settings/images/close-btn.png differ diff --git a/art/ui/autospin_settings/images/close_btn_.png b/art/ui/autospin_settings/images/close_btn_.png new file mode 100644 index 0000000..db143e6 Binary files /dev/null and b/art/ui/autospin_settings/images/close_btn_.png differ diff --git a/art/ui/autospin_settings/images/close_btn_hover.png b/art/ui/autospin_settings/images/close_btn_hover.png new file mode 100644 index 0000000..2bce92d Binary files /dev/null and b/art/ui/autospin_settings/images/close_btn_hover.png differ diff --git a/art/ui/autospin_settings/images/tx_tNumbers of rounds.png b/art/ui/autospin_settings/images/tx_tNumbers of rounds.png new file mode 100644 index 0000000..5787d4a Binary files /dev/null and b/art/ui/autospin_settings/images/tx_tNumbers of rounds.png differ diff --git a/art/ui/autospin_settings/images/txt_Autospin settings.png b/art/ui/autospin_settings/images/txt_Autospin settings.png new file mode 100644 index 0000000..4577056 Binary files /dev/null and b/art/ui/autospin_settings/images/txt_Autospin settings.png differ diff --git a/art/ui/autospin_settings/images/txt_I.png b/art/ui/autospin_settings/images/txt_I.png new file mode 100644 index 0000000..882901d Binary files /dev/null and b/art/ui/autospin_settings/images/txt_I.png differ diff --git a/art/ui/autospin_settings/images/txt_If bonus game is won.png b/art/ui/autospin_settings/images/txt_If bonus game is won.png new file mode 100644 index 0000000..4ec9cbe Binary files /dev/null and b/art/ui/autospin_settings/images/txt_If bonus game is won.png differ diff --git a/art/ui/autospin_settings/images/txt_If cash balance decreases by.png b/art/ui/autospin_settings/images/txt_If cash balance decreases by.png new file mode 100644 index 0000000..c2c8844 Binary files /dev/null and b/art/ui/autospin_settings/images/txt_If cash balance decreases by.png differ diff --git a/art/ui/autospin_settings/images/txt_If cash balance increases by.png b/art/ui/autospin_settings/images/txt_If cash balance increases by.png new file mode 100644 index 0000000..64a1261 Binary files /dev/null and b/art/ui/autospin_settings/images/txt_If cash balance increases by.png differ diff --git a/art/ui/autospin_settings/images/txt_If single win exceeds.png b/art/ui/autospin_settings/images/txt_If single win exceeds.png new file mode 100644 index 0000000..415737f Binary files /dev/null and b/art/ui/autospin_settings/images/txt_If single win exceeds.png differ diff --git a/art/ui/autospin_settings/images/txt_On any win.png b/art/ui/autospin_settings/images/txt_On any win.png new file mode 100644 index 0000000..c738a53 Binary files /dev/null and b/art/ui/autospin_settings/images/txt_On any win.png differ diff --git a/art/ui/autospin_settings/images/txt_Stop_autospin.png b/art/ui/autospin_settings/images/txt_Stop_autospin.png new file mode 100644 index 0000000..ae0077b Binary files /dev/null and b/art/ui/autospin_settings/images/txt_Stop_autospin.png differ diff --git a/art/ui/autospin_settings/images/txt_btn_10.png b/art/ui/autospin_settings/images/txt_btn_10.png new file mode 100644 index 0000000..17aedce Binary files /dev/null and b/art/ui/autospin_settings/images/txt_btn_10.png differ diff --git a/art/ui/autospin_settings/images/txt_btn_100.png b/art/ui/autospin_settings/images/txt_btn_100.png new file mode 100644 index 0000000..fefc8bb Binary files /dev/null and b/art/ui/autospin_settings/images/txt_btn_100.png differ diff --git a/art/ui/autospin_settings/images/txt_btn_1000.png b/art/ui/autospin_settings/images/txt_btn_1000.png new file mode 100644 index 0000000..b62338d Binary files /dev/null and b/art/ui/autospin_settings/images/txt_btn_1000.png differ diff --git a/art/ui/autospin_settings/images/txt_btn_25.png b/art/ui/autospin_settings/images/txt_btn_25.png new file mode 100644 index 0000000..871a625 Binary files /dev/null and b/art/ui/autospin_settings/images/txt_btn_25.png differ diff --git a/art/ui/autospin_settings/images/txt_btn_250.png b/art/ui/autospin_settings/images/txt_btn_250.png new file mode 100644 index 0000000..953e43c Binary files /dev/null and b/art/ui/autospin_settings/images/txt_btn_250.png differ diff --git a/art/ui/autospin_settings/images/txt_btn_50.png b/art/ui/autospin_settings/images/txt_btn_50.png new file mode 100644 index 0000000..fdaf631 Binary files /dev/null and b/art/ui/autospin_settings/images/txt_btn_50.png differ diff --git a/art/ui/autospin_settings/images/txt_btn_500.png b/art/ui/autospin_settings/images/txt_btn_500.png new file mode 100644 index 0000000..fa7d81b Binary files /dev/null and b/art/ui/autospin_settings/images/txt_btn_500.png differ diff --git a/art/ui/autospin_settings/images/txt_btn_750.png b/art/ui/autospin_settings/images/txt_btn_750.png new file mode 100644 index 0000000..f91e8d9 Binary files /dev/null and b/art/ui/autospin_settings/images/txt_btn_750.png differ diff --git a/art/ui/autospin_settings/images/txt_btn_Advanced.png b/art/ui/autospin_settings/images/txt_btn_Advanced.png new file mode 100644 index 0000000..b44e41b Binary files /dev/null and b/art/ui/autospin_settings/images/txt_btn_Advanced.png differ diff --git a/art/ui/autospin_settings/images/txt_btn_Basic.png b/art/ui/autospin_settings/images/txt_btn_Basic.png new file mode 100644 index 0000000..8906b96 Binary files /dev/null and b/art/ui/autospin_settings/images/txt_btn_Basic.png differ diff --git a/art/ui/autospin_settings/images/txt_btn_infinity.png b/art/ui/autospin_settings/images/txt_btn_infinity.png new file mode 100644 index 0000000..d076cc0 Binary files /dev/null and b/art/ui/autospin_settings/images/txt_btn_infinity.png differ diff --git a/art/ui/autospin_settings/images/Снимок экрана 2024-02-15 в 14.07.16.png b/art/ui/autospin_settings/images/Снимок экрана 2024-02-15 в 14.07.16.png new file mode 100644 index 0000000..48e2d43 Binary files /dev/null and b/art/ui/autospin_settings/images/Снимок экрана 2024-02-15 в 14.07.16.png differ diff --git a/art/ui/keyboard/images/autospin_btn.png b/art/ui/keyboard/images/autospin_btn.png new file mode 100644 index 0000000..8a50549 Binary files /dev/null and b/art/ui/keyboard/images/autospin_btn.png differ diff --git a/art/ui/keyboard/images/autospin_infinity.png b/art/ui/keyboard/images/autospin_infinity.png new file mode 100644 index 0000000..33fb1ec Binary files /dev/null and b/art/ui/keyboard/images/autospin_infinity.png differ diff --git a/art/ui/keyboard/images/autospin_stop_btn.png b/art/ui/keyboard/images/autospin_stop_btn.png new file mode 100644 index 0000000..5063ec3 Binary files /dev/null and b/art/ui/keyboard/images/autospin_stop_btn.png differ diff --git a/art/ui/keyboard/images/autospins_back.png b/art/ui/keyboard/images/autospins_back.png new file mode 100644 index 0000000..f471891 Binary files /dev/null and b/art/ui/keyboard/images/autospins_back.png differ diff --git a/art/ui/keyboard/images/bet_btn.png b/art/ui/keyboard/images/bet_btn.png new file mode 100644 index 0000000..282adae Binary files /dev/null and b/art/ui/keyboard/images/bet_btn.png differ diff --git a/art/ui/keyboard/images/bonus_active_btn.png b/art/ui/keyboard/images/bonus_active_btn.png new file mode 100644 index 0000000..62587eb Binary files /dev/null and b/art/ui/keyboard/images/bonus_active_btn.png differ diff --git a/art/ui/keyboard/images/btn_circle_orange.png b/art/ui/keyboard/images/btn_circle_orange.png new file mode 100644 index 0000000..64b6306 Binary files /dev/null and b/art/ui/keyboard/images/btn_circle_orange.png differ diff --git a/art/ui/keyboard/images/btn_circle_yellow.png b/art/ui/keyboard/images/btn_circle_yellow.png new file mode 100644 index 0000000..627ad91 Binary files /dev/null and b/art/ui/keyboard/images/btn_circle_yellow.png differ diff --git a/art/ui/keyboard/images/buy_bonus_btn.png b/art/ui/keyboard/images/buy_bonus_btn.png new file mode 100644 index 0000000..dcaed40 Binary files /dev/null and b/art/ui/keyboard/images/buy_bonus_btn.png differ diff --git a/art/ui/keyboard/images/desktop_bg.png b/art/ui/keyboard/images/desktop_bg.png new file mode 100644 index 0000000..2323498 Binary files /dev/null and b/art/ui/keyboard/images/desktop_bg.png differ diff --git a/art/ui/keyboard/images/fr_back.png b/art/ui/keyboard/images/fr_back.png new file mode 100644 index 0000000..d35a375 Binary files /dev/null and b/art/ui/keyboard/images/fr_back.png differ diff --git a/art/ui/keyboard/images/home_btn.png b/art/ui/keyboard/images/home_btn.png new file mode 100644 index 0000000..e3b6434 Binary files /dev/null and b/art/ui/keyboard/images/home_btn.png differ diff --git a/art/ui/keyboard/images/info_btn.png b/art/ui/keyboard/images/info_btn.png new file mode 100644 index 0000000..265e6e6 Binary files /dev/null and b/art/ui/keyboard/images/info_btn.png differ diff --git a/art/ui/keyboard/images/max_btn.png b/art/ui/keyboard/images/max_btn.png new file mode 100644 index 0000000..824532d Binary files /dev/null and b/art/ui/keyboard/images/max_btn.png differ diff --git a/art/ui/keyboard/images/max_btn_mob.png b/art/ui/keyboard/images/max_btn_mob.png new file mode 100644 index 0000000..4c8b60d Binary files /dev/null and b/art/ui/keyboard/images/max_btn_mob.png differ diff --git a/art/ui/keyboard/images/menu_btn.png b/art/ui/keyboard/images/menu_btn.png new file mode 100644 index 0000000..946aa50 Binary files /dev/null and b/art/ui/keyboard/images/menu_btn.png differ diff --git a/art/ui/keyboard/images/minus_btn.png b/art/ui/keyboard/images/minus_btn.png new file mode 100644 index 0000000..911db64 Binary files /dev/null and b/art/ui/keyboard/images/minus_btn.png differ diff --git a/art/ui/keyboard/images/paytable_btn.png b/art/ui/keyboard/images/paytable_btn.png new file mode 100644 index 0000000..f31c97f Binary files /dev/null and b/art/ui/keyboard/images/paytable_btn.png differ diff --git a/art/ui/keyboard/images/placeholder.png b/art/ui/keyboard/images/placeholder.png new file mode 100644 index 0000000..30404d7 Binary files /dev/null and b/art/ui/keyboard/images/placeholder.png differ diff --git a/art/ui/keyboard/images/plus_btn.png b/art/ui/keyboard/images/plus_btn.png new file mode 100644 index 0000000..38decac Binary files /dev/null and b/art/ui/keyboard/images/plus_btn.png differ diff --git a/art/ui/keyboard/images/popiplay.png b/art/ui/keyboard/images/popiplay.png new file mode 100644 index 0000000..8490f88 Binary files /dev/null and b/art/ui/keyboard/images/popiplay.png differ diff --git a/art/ui/keyboard/images/quick_btn.png b/art/ui/keyboard/images/quick_btn.png new file mode 100644 index 0000000..0dad2d7 Binary files /dev/null and b/art/ui/keyboard/images/quick_btn.png differ diff --git a/art/ui/keyboard/images/quick_icon.png b/art/ui/keyboard/images/quick_icon.png new file mode 100644 index 0000000..2381763 Binary files /dev/null and b/art/ui/keyboard/images/quick_icon.png differ diff --git a/art/ui/keyboard/images/settings_btn.png b/art/ui/keyboard/images/settings_btn.png new file mode 100644 index 0000000..c7ded63 Binary files /dev/null and b/art/ui/keyboard/images/settings_btn.png differ diff --git a/art/ui/keyboard/images/sound_off_btn.png b/art/ui/keyboard/images/sound_off_btn.png new file mode 100644 index 0000000..900f2d9 Binary files /dev/null and b/art/ui/keyboard/images/sound_off_btn.png differ diff --git a/art/ui/keyboard/images/sound_on_btn.png b/art/ui/keyboard/images/sound_on_btn.png new file mode 100644 index 0000000..9c21975 Binary files /dev/null and b/art/ui/keyboard/images/sound_on_btn.png differ diff --git a/art/ui/keyboard/images/spin_btn.png b/art/ui/keyboard/images/spin_btn.png new file mode 100644 index 0000000..3d1a144 Binary files /dev/null and b/art/ui/keyboard/images/spin_btn.png differ diff --git a/art/ui/keyboard/images/wild_spin_btn.png b/art/ui/keyboard/images/wild_spin_btn.png new file mode 100644 index 0000000..95fe51c Binary files /dev/null and b/art/ui/keyboard/images/wild_spin_btn.png differ diff --git a/art/ui/settings_ui/images/btn_AudioToggle.png b/art/ui/settings_ui/images/btn_AudioToggle.png new file mode 100644 index 0000000..eb487d5 Binary files /dev/null and b/art/ui/settings_ui/images/btn_AudioToggle.png differ diff --git a/art/ui/settings_ui/images/btn_bar_AudioToggle 2.png b/art/ui/settings_ui/images/btn_bar_AudioToggle 2.png new file mode 100644 index 0000000..b2dfe4d Binary files /dev/null and b/art/ui/settings_ui/images/btn_bar_AudioToggle 2.png differ diff --git a/art/ui/settings_ui/images/btn_bar_AudioToggle.png b/art/ui/settings_ui/images/btn_bar_AudioToggle.png new file mode 100644 index 0000000..614a90f Binary files /dev/null and b/art/ui/settings_ui/images/btn_bar_AudioToggle.png differ diff --git a/art/ui/settings_ui/images/btn_x.png b/art/ui/settings_ui/images/btn_x.png new file mode 100644 index 0000000..9a41818 Binary files /dev/null and b/art/ui/settings_ui/images/btn_x.png differ diff --git a/art/ui/settings_ui/images/btn_x_bg.png b/art/ui/settings_ui/images/btn_x_bg.png new file mode 100644 index 0000000..676ec8d Binary files /dev/null and b/art/ui/settings_ui/images/btn_x_bg.png differ diff --git a/art/ui/settings_ui/images/checkboxOff_1.png b/art/ui/settings_ui/images/checkboxOff_1.png new file mode 100644 index 0000000..f008d02 Binary files /dev/null and b/art/ui/settings_ui/images/checkboxOff_1.png differ diff --git a/art/ui/settings_ui/images/checkboxOn_1.png b/art/ui/settings_ui/images/checkboxOn_1.png new file mode 100644 index 0000000..400f154 Binary files /dev/null and b/art/ui/settings_ui/images/checkboxOn_1.png differ diff --git a/art/ui/settings_ui/images/checkboxOn_V_1.png b/art/ui/settings_ui/images/checkboxOn_V_1.png new file mode 100644 index 0000000..4fd1107 Binary files /dev/null and b/art/ui/settings_ui/images/checkboxOn_V_1.png differ diff --git a/art/ui/settings_ui/images/checkbox_prvw.png b/art/ui/settings_ui/images/checkbox_prvw.png new file mode 100644 index 0000000..994d11c Binary files /dev/null and b/art/ui/settings_ui/images/checkbox_prvw.png differ diff --git a/art/ui/settings_ui/images/settings_bg.png b/art/ui/settings_ui/images/settings_bg.png new file mode 100644 index 0000000..5f8fd6d Binary files /dev/null and b/art/ui/settings_ui/images/settings_bg.png differ diff --git a/art/ui/settings_ui/images/txt_Audio.png b/art/ui/settings_ui/images/txt_Audio.png new file mode 100644 index 0000000..cb1cae9 Binary files /dev/null and b/art/ui/settings_ui/images/txt_Audio.png differ diff --git a/art/ui/settings_ui/images/txt_Music.png b/art/ui/settings_ui/images/txt_Music.png new file mode 100644 index 0000000..ace8237 Binary files /dev/null and b/art/ui/settings_ui/images/txt_Music.png differ diff --git a/art/ui/settings_ui/images/txt_Settings.png b/art/ui/settings_ui/images/txt_Settings.png new file mode 100644 index 0000000..1d48ef0 Binary files /dev/null and b/art/ui/settings_ui/images/txt_Settings.png differ diff --git a/art/ui/settings_ui/images/txt_Sound FX.png b/art/ui/settings_ui/images/txt_Sound FX.png new file mode 100644 index 0000000..17a843b Binary files /dev/null and b/art/ui/settings_ui/images/txt_Sound FX.png differ diff --git a/art/ui/settings_ui/images/txt_Spacebar to spin.png b/art/ui/settings_ui/images/txt_Spacebar to spin.png new file mode 100644 index 0000000..c47fa8d Binary files /dev/null and b/art/ui/settings_ui/images/txt_Spacebar to spin.png differ diff --git a/art/ui/settings_ui/images/txt_Turbospin.png b/art/ui/settings_ui/images/txt_Turbospin.png new file mode 100644 index 0000000..2004987 Binary files /dev/null and b/art/ui/settings_ui/images/txt_Turbospin.png differ diff --git a/art/ui/settings_ui/images/txt_Volume.png b/art/ui/settings_ui/images/txt_Volume.png new file mode 100644 index 0000000..5bf039b Binary files /dev/null and b/art/ui/settings_ui/images/txt_Volume.png differ diff --git a/art/ui/start_page_sound.spine b/art/ui/start_page_sound.spine new file mode 100644 index 0000000..539ce83 Binary files /dev/null and b/art/ui/start_page_sound.spine differ diff --git a/art/ui/ui.spine b/art/ui/ui.spine new file mode 100644 index 0000000..d9fcaa0 Binary files /dev/null and b/art/ui/ui.spine differ diff --git a/art/wins/images/1.2 usd.png b/art/wins/images/1.2 usd.png new file mode 100644 index 0000000..09754fe Binary files /dev/null and b/art/wins/images/1.2 usd.png differ diff --git a/art/wins/images/12 240 60 usd.png b/art/wins/images/12 240 60 usd.png new file mode 100644 index 0000000..11cdc40 Binary files /dev/null and b/art/wins/images/12 240 60 usd.png differ diff --git a/art/wins/images/32x BET.png b/art/wins/images/32x BET.png new file mode 100644 index 0000000..ff187af Binary files /dev/null and b/art/wins/images/32x BET.png differ diff --git a/art/wins/images/Group 1.png b/art/wins/images/Group 1.png new file mode 100644 index 0000000..c3f28f6 Binary files /dev/null and b/art/wins/images/Group 1.png differ diff --git a/art/wins/images/amazon_wins_landscape.json b/art/wins/images/amazon_wins_landscape.json new file mode 100644 index 0000000..8b1e46a --- /dev/null +++ b/art/wins/images/amazon_wins_landscape.json @@ -0,0 +1,45 @@ +{ "skeleton": { "images": "C:/THE POSO/99.Amazon City of Gold/wins 2/images/" }, +"PhotoshopToSpine": { "scale": 1, "padding": 1, "trim": true }, +"bones": [ + { "name": "root" } +], +"slots": [ + { "name": "max_glow_top_8-", "bone": "root", "attachment": "max_glow_top_8-" }, + { "name": "max_glow_top_7-", "bone": "root", "attachment": "max_glow_top_7-" }, + { "name": "max_glow_top_6-", "bone": "root", "attachment": "max_glow_top_6-" }, + { "name": "max_glow_top_5-", "bone": "root", "attachment": "max_glow_top_5-" }, + { "name": "max_glow_top_4-", "bone": "root", "attachment": "max_glow_top_4-" }, + { "name": "max_glow_top_3-", "bone": "root", "attachment": "max_glow_top_3-" }, + { "name": "max_glow_top_2-", "bone": "root", "attachment": "max_glow_top_2-" }, + { "name": "max_glow_top_1-", "bone": "root", "attachment": "max_glow_top_1-" } +], +"skins": { + "default": { + "max_glow_top_8-": { + "max_glow_top_8-": { "x": -891, "y": -266.5, "width": 150, "height": 67 } + }, + "max_glow_top_7-": { + "max_glow_top_7-": { "x": -942.5, "y": -181, "width": 287, "height": 94 } + }, + "max_glow_top_6-": { + "max_glow_top_6-": { "x": -983.5, "y": -70, "width": 245, "height": 40 } + }, + "max_glow_top_5-": { + "max_glow_top_5-": { "x": -889.5, "y": 72.5, "width": 233, "height": 111 } + }, + "max_glow_top_4-": { + "max_glow_top_4-": { "x": -884, "y": 204.5, "width": 292, "height": 161 } + }, + "max_glow_top_3-": { + "max_glow_top_3-": { "x": -708.5, "y": 272, "width": 105, "height": 108 } + }, + "max_glow_top_2-": { + "max_glow_top_2-": { "x": -626.5, "y": 279.5, "width": 49, "height": 53 } + }, + "max_glow_top_1-": { + "max_glow_top_1-": { "x": -537, "y": 314, "width": 46, "height": 70 } + } + } +}, +"animations": { "animation": {} } +} \ No newline at end of file diff --git a/art/wins/images/basic_win_light_1.png b/art/wins/images/basic_win_light_1.png new file mode 100644 index 0000000..2a02ba7 Binary files /dev/null and b/art/wins/images/basic_win_light_1.png differ diff --git a/art/wins/images/basic_win_light_2.png b/art/wins/images/basic_win_light_2.png new file mode 100644 index 0000000..a0713e3 Binary files /dev/null and b/art/wins/images/basic_win_light_2.png differ diff --git a/art/wins/images/bg_basic.png b/art/wins/images/bg_basic.png new file mode 100644 index 0000000..1c49aa7 Binary files /dev/null and b/art/wins/images/bg_basic.png differ diff --git a/art/wins/images/big_bg.png b/art/wins/images/big_bg.png new file mode 100644 index 0000000..8220e24 Binary files /dev/null and b/art/wins/images/big_bg.png differ diff --git a/art/wins/images/big_big_shadow.png b/art/wins/images/big_big_shadow.png new file mode 100644 index 0000000..27bd9f0 Binary files /dev/null and b/art/wins/images/big_big_shadow.png differ diff --git a/art/wins/images/big_big_text_top.png b/art/wins/images/big_big_text_top.png new file mode 100644 index 0000000..a3a3d2f Binary files /dev/null and b/art/wins/images/big_big_text_top.png differ diff --git a/art/wins/images/big_big_text_un.png b/art/wins/images/big_big_text_un.png new file mode 100644 index 0000000..24fd6d8 Binary files /dev/null and b/art/wins/images/big_big_text_un.png differ diff --git a/art/wins/images/big_decor_1.png b/art/wins/images/big_decor_1.png new file mode 100644 index 0000000..6f52468 Binary files /dev/null and b/art/wins/images/big_decor_1.png differ diff --git a/art/wins/images/big_decor_1_s.png b/art/wins/images/big_decor_1_s.png new file mode 100644 index 0000000..145a0cc Binary files /dev/null and b/art/wins/images/big_decor_1_s.png differ diff --git a/art/wins/images/big_decor_2.png b/art/wins/images/big_decor_2.png new file mode 100644 index 0000000..d63f123 Binary files /dev/null and b/art/wins/images/big_decor_2.png differ diff --git a/art/wins/images/big_decor_2_s_l.png b/art/wins/images/big_decor_2_s_l.png new file mode 100644 index 0000000..4f8fa0b Binary files /dev/null and b/art/wins/images/big_decor_2_s_l.png differ diff --git a/art/wins/images/big_decor_3.png b/art/wins/images/big_decor_3.png new file mode 100644 index 0000000..cf22303 Binary files /dev/null and b/art/wins/images/big_decor_3.png differ diff --git a/art/wins/images/big_decor_3_s_r.png b/art/wins/images/big_decor_3_s_r.png new file mode 100644 index 0000000..f2e850f Binary files /dev/null and b/art/wins/images/big_decor_3_s_r.png differ diff --git a/art/wins/images/big_decor_4.png b/art/wins/images/big_decor_4.png new file mode 100644 index 0000000..aa6de06 Binary files /dev/null and b/art/wins/images/big_decor_4.png differ diff --git a/art/wins/images/big_decor_4_s_un.png b/art/wins/images/big_decor_4_s_un.png new file mode 100644 index 0000000..6d35021 Binary files /dev/null and b/art/wins/images/big_decor_4_s_un.png differ diff --git a/art/wins/images/big_glow_0.png b/art/wins/images/big_glow_0.png new file mode 100644 index 0000000..741ba8c Binary files /dev/null and b/art/wins/images/big_glow_0.png differ diff --git a/art/wins/images/big_glow_1.png b/art/wins/images/big_glow_1.png new file mode 100644 index 0000000..4695876 Binary files /dev/null and b/art/wins/images/big_glow_1.png differ diff --git a/art/wins/images/big_glow_2.png b/art/wins/images/big_glow_2.png new file mode 100644 index 0000000..7b64391 Binary files /dev/null and b/art/wins/images/big_glow_2.png differ diff --git a/art/wins/images/big_glow_3.png b/art/wins/images/big_glow_3.png new file mode 100644 index 0000000..bf65d92 Binary files /dev/null and b/art/wins/images/big_glow_3.png differ diff --git a/art/wins/images/big_glow_sample.png b/art/wins/images/big_glow_sample.png new file mode 100644 index 0000000..cd54548 Binary files /dev/null and b/art/wins/images/big_glow_sample.png differ diff --git a/art/wins/images/big_glow_top_0.png b/art/wins/images/big_glow_top_0.png new file mode 100644 index 0000000..e7b3913 Binary files /dev/null and b/art/wins/images/big_glow_top_0.png differ diff --git a/art/wins/images/big_glow_top_1.png b/art/wins/images/big_glow_top_1.png new file mode 100644 index 0000000..02cd223 Binary files /dev/null and b/art/wins/images/big_glow_top_1.png differ diff --git a/art/wins/images/big_glow_top_2.png b/art/wins/images/big_glow_top_2.png new file mode 100644 index 0000000..292d22e Binary files /dev/null and b/art/wins/images/big_glow_top_2.png differ diff --git a/art/wins/images/big_glow_top_3.png b/art/wins/images/big_glow_top_3.png new file mode 100644 index 0000000..5d21668 Binary files /dev/null and b/art/wins/images/big_glow_top_3.png differ diff --git a/art/wins/images/big_leaf_1.png b/art/wins/images/big_leaf_1.png new file mode 100644 index 0000000..8b9a06c Binary files /dev/null and b/art/wins/images/big_leaf_1.png differ diff --git a/art/wins/images/big_leaf_2.png b/art/wins/images/big_leaf_2.png new file mode 100644 index 0000000..c9b393b Binary files /dev/null and b/art/wins/images/big_leaf_2.png differ diff --git a/art/wins/images/big_leaf_3.png b/art/wins/images/big_leaf_3.png new file mode 100644 index 0000000..a66a2bd Binary files /dev/null and b/art/wins/images/big_leaf_3.png differ diff --git a/art/wins/images/big_leaf_4.png b/art/wins/images/big_leaf_4.png new file mode 100644 index 0000000..652c6c7 Binary files /dev/null and b/art/wins/images/big_leaf_4.png differ diff --git a/art/wins/images/big_leaf_5.png b/art/wins/images/big_leaf_5.png new file mode 100644 index 0000000..60e060b Binary files /dev/null and b/art/wins/images/big_leaf_5.png differ diff --git a/art/wins/images/big_leaf_6.png b/art/wins/images/big_leaf_6.png new file mode 100644 index 0000000..7e8b4fb Binary files /dev/null and b/art/wins/images/big_leaf_6.png differ diff --git a/art/wins/images/big_leaf_7.png b/art/wins/images/big_leaf_7.png new file mode 100644 index 0000000..ef0240d Binary files /dev/null and b/art/wins/images/big_leaf_7.png differ diff --git a/art/wins/images/big_leaf_8.png b/art/wins/images/big_leaf_8.png new file mode 100644 index 0000000..4d372ac Binary files /dev/null and b/art/wins/images/big_leaf_8.png differ diff --git a/art/wins/images/big_leaf_9.png b/art/wins/images/big_leaf_9.png new file mode 100644 index 0000000..24a6869 Binary files /dev/null and b/art/wins/images/big_leaf_9.png differ diff --git a/art/wins/images/big_leaf_palm_01.png b/art/wins/images/big_leaf_palm_01.png new file mode 100644 index 0000000..cace2db Binary files /dev/null and b/art/wins/images/big_leaf_palm_01.png differ diff --git a/art/wins/images/big_leaf_palm_02.png b/art/wins/images/big_leaf_palm_02.png new file mode 100644 index 0000000..5e30c57 Binary files /dev/null and b/art/wins/images/big_leaf_palm_02.png differ diff --git a/art/wins/images/big_leaf_palm_03.png b/art/wins/images/big_leaf_palm_03.png new file mode 100644 index 0000000..7fa5193 Binary files /dev/null and b/art/wins/images/big_leaf_palm_03.png differ diff --git a/art/wins/images/big_leaf_palm_04.png b/art/wins/images/big_leaf_palm_04.png new file mode 100644 index 0000000..d5e0b60 Binary files /dev/null and b/art/wins/images/big_leaf_palm_04.png differ diff --git a/art/wins/images/big_leaf_palm_05.png b/art/wins/images/big_leaf_palm_05.png new file mode 100644 index 0000000..9eeb000 Binary files /dev/null and b/art/wins/images/big_leaf_palm_05.png differ diff --git a/art/wins/images/big_palm_sample.png b/art/wins/images/big_palm_sample.png new file mode 100644 index 0000000..e35e6d0 Binary files /dev/null and b/art/wins/images/big_palm_sample.png differ diff --git a/art/wins/images/big_wheel_1.png b/art/wins/images/big_wheel_1.png new file mode 100644 index 0000000..fbc3315 Binary files /dev/null and b/art/wins/images/big_wheel_1.png differ diff --git a/art/wins/images/big_wheel_2.png b/art/wins/images/big_wheel_2.png new file mode 100644 index 0000000..e3c5b19 Binary files /dev/null and b/art/wins/images/big_wheel_2.png differ diff --git a/art/wins/images/big_wheel_3.png b/art/wins/images/big_wheel_3.png new file mode 100644 index 0000000..1ed4a1f Binary files /dev/null and b/art/wins/images/big_wheel_3.png differ diff --git a/art/wins/images/big_win_shadow.png b/art/wins/images/big_win_shadow.png new file mode 100644 index 0000000..943fa5a Binary files /dev/null and b/art/wins/images/big_win_shadow.png differ diff --git a/art/wins/images/big_win_text_top.png b/art/wins/images/big_win_text_top.png new file mode 100644 index 0000000..9afddc9 Binary files /dev/null and b/art/wins/images/big_win_text_top.png differ diff --git a/art/wins/images/big_win_text_un.png b/art/wins/images/big_win_text_un.png new file mode 100644 index 0000000..3138250 Binary files /dev/null and b/art/wins/images/big_win_text_un.png differ diff --git a/art/wins/images/max_bg.png b/art/wins/images/max_bg.png new file mode 100644 index 0000000..9dcf26b Binary files /dev/null and b/art/wins/images/max_bg.png differ diff --git a/art/wins/images/max_blood_1.png b/art/wins/images/max_blood_1.png new file mode 100644 index 0000000..ffc855a Binary files /dev/null and b/art/wins/images/max_blood_1.png differ diff --git a/art/wins/images/max_blood_2.png b/art/wins/images/max_blood_2.png new file mode 100644 index 0000000..877fffd Binary files /dev/null and b/art/wins/images/max_blood_2.png differ diff --git a/art/wins/images/max_coins_left.png b/art/wins/images/max_coins_left.png new file mode 100644 index 0000000..742a84a Binary files /dev/null and b/art/wins/images/max_coins_left.png differ diff --git a/art/wins/images/max_coins_right.png b/art/wins/images/max_coins_right.png new file mode 100644 index 0000000..9cf176b Binary files /dev/null and b/art/wins/images/max_coins_right.png differ diff --git a/art/wins/images/max_earrings_left.png b/art/wins/images/max_earrings_left.png new file mode 100644 index 0000000..450c81b Binary files /dev/null and b/art/wins/images/max_earrings_left.png differ diff --git a/art/wins/images/max_earrings_right.png b/art/wins/images/max_earrings_right.png new file mode 100644 index 0000000..faa6580 Binary files /dev/null and b/art/wins/images/max_earrings_right.png differ diff --git a/art/wins/images/max_earrings_shadow_l.png b/art/wins/images/max_earrings_shadow_l.png new file mode 100644 index 0000000..0374cf7 Binary files /dev/null and b/art/wins/images/max_earrings_shadow_l.png differ diff --git a/art/wins/images/max_earrings_shadow_r.png b/art/wins/images/max_earrings_shadow_r.png new file mode 100644 index 0000000..8dec8c4 Binary files /dev/null and b/art/wins/images/max_earrings_shadow_r.png differ diff --git a/art/wins/images/max_eye_l.png b/art/wins/images/max_eye_l.png new file mode 100644 index 0000000..1a73d70 Binary files /dev/null and b/art/wins/images/max_eye_l.png differ diff --git a/art/wins/images/max_eyes_r.png b/art/wins/images/max_eyes_r.png new file mode 100644 index 0000000..207cf4e Binary files /dev/null and b/art/wins/images/max_eyes_r.png differ diff --git a/art/wins/images/max_glow_left.png b/art/wins/images/max_glow_left.png new file mode 100644 index 0000000..40de9b3 Binary files /dev/null and b/art/wins/images/max_glow_left.png differ diff --git a/art/wins/images/max_glow_left_top.png b/art/wins/images/max_glow_left_top.png new file mode 100644 index 0000000..6bf297d Binary files /dev/null and b/art/wins/images/max_glow_left_top.png differ diff --git a/art/wins/images/max_glow_right.png b/art/wins/images/max_glow_right.png new file mode 100644 index 0000000..49eef89 Binary files /dev/null and b/art/wins/images/max_glow_right.png differ diff --git a/art/wins/images/max_glow_right_top.png b/art/wins/images/max_glow_right_top.png new file mode 100644 index 0000000..117cd17 Binary files /dev/null and b/art/wins/images/max_glow_right_top.png differ diff --git a/art/wins/images/max_glow_sample.png b/art/wins/images/max_glow_sample.png new file mode 100644 index 0000000..c4b9d7a Binary files /dev/null and b/art/wins/images/max_glow_sample.png differ diff --git a/art/wins/images/max_glow_top_02.png b/art/wins/images/max_glow_top_02.png new file mode 100644 index 0000000..38034e9 Binary files /dev/null and b/art/wins/images/max_glow_top_02.png differ diff --git a/art/wins/images/max_glow_top_03.png b/art/wins/images/max_glow_top_03.png new file mode 100644 index 0000000..e99d592 Binary files /dev/null and b/art/wins/images/max_glow_top_03.png differ diff --git a/art/wins/images/max_glow_top_1-.png b/art/wins/images/max_glow_top_1-.png new file mode 100644 index 0000000..d38dd83 Binary files /dev/null and b/art/wins/images/max_glow_top_1-.png differ diff --git a/art/wins/images/max_glow_top_1.png b/art/wins/images/max_glow_top_1.png new file mode 100644 index 0000000..5d9f00d Binary files /dev/null and b/art/wins/images/max_glow_top_1.png differ diff --git a/art/wins/images/max_glow_top_10.png b/art/wins/images/max_glow_top_10.png new file mode 100644 index 0000000..17600dd Binary files /dev/null and b/art/wins/images/max_glow_top_10.png differ diff --git a/art/wins/images/max_glow_top_11.png b/art/wins/images/max_glow_top_11.png new file mode 100644 index 0000000..7354fe8 Binary files /dev/null and b/art/wins/images/max_glow_top_11.png differ diff --git a/art/wins/images/max_glow_top_12.png b/art/wins/images/max_glow_top_12.png new file mode 100644 index 0000000..903462f Binary files /dev/null and b/art/wins/images/max_glow_top_12.png differ diff --git a/art/wins/images/max_glow_top_2-.png b/art/wins/images/max_glow_top_2-.png new file mode 100644 index 0000000..86136dd Binary files /dev/null and b/art/wins/images/max_glow_top_2-.png differ diff --git a/art/wins/images/max_glow_top_2.png b/art/wins/images/max_glow_top_2.png new file mode 100644 index 0000000..2ce68d4 Binary files /dev/null and b/art/wins/images/max_glow_top_2.png differ diff --git a/art/wins/images/max_glow_top_3-.png b/art/wins/images/max_glow_top_3-.png new file mode 100644 index 0000000..75ebb59 Binary files /dev/null and b/art/wins/images/max_glow_top_3-.png differ diff --git a/art/wins/images/max_glow_top_3.png b/art/wins/images/max_glow_top_3.png new file mode 100644 index 0000000..e647324 Binary files /dev/null and b/art/wins/images/max_glow_top_3.png differ diff --git a/art/wins/images/max_glow_top_4-.png b/art/wins/images/max_glow_top_4-.png new file mode 100644 index 0000000..4a96b99 Binary files /dev/null and b/art/wins/images/max_glow_top_4-.png differ diff --git a/art/wins/images/max_glow_top_4.png b/art/wins/images/max_glow_top_4.png new file mode 100644 index 0000000..87e262c Binary files /dev/null and b/art/wins/images/max_glow_top_4.png differ diff --git a/art/wins/images/max_glow_top_5-.png b/art/wins/images/max_glow_top_5-.png new file mode 100644 index 0000000..162a2e4 Binary files /dev/null and b/art/wins/images/max_glow_top_5-.png differ diff --git a/art/wins/images/max_glow_top_5.png b/art/wins/images/max_glow_top_5.png new file mode 100644 index 0000000..af6b2e0 Binary files /dev/null and b/art/wins/images/max_glow_top_5.png differ diff --git a/art/wins/images/max_glow_top_6-.png b/art/wins/images/max_glow_top_6-.png new file mode 100644 index 0000000..394a3d6 Binary files /dev/null and b/art/wins/images/max_glow_top_6-.png differ diff --git a/art/wins/images/max_glow_top_6.png b/art/wins/images/max_glow_top_6.png new file mode 100644 index 0000000..656618b Binary files /dev/null and b/art/wins/images/max_glow_top_6.png differ diff --git a/art/wins/images/max_glow_top_7-.png b/art/wins/images/max_glow_top_7-.png new file mode 100644 index 0000000..d776ba0 Binary files /dev/null and b/art/wins/images/max_glow_top_7-.png differ diff --git a/art/wins/images/max_glow_top_7.png b/art/wins/images/max_glow_top_7.png new file mode 100644 index 0000000..9edfc67 Binary files /dev/null and b/art/wins/images/max_glow_top_7.png differ diff --git a/art/wins/images/max_glow_top_8-.png b/art/wins/images/max_glow_top_8-.png new file mode 100644 index 0000000..2f7bd36 Binary files /dev/null and b/art/wins/images/max_glow_top_8-.png differ diff --git a/art/wins/images/max_glow_top_8.png b/art/wins/images/max_glow_top_8.png new file mode 100644 index 0000000..a9edd9b Binary files /dev/null and b/art/wins/images/max_glow_top_8.png differ diff --git a/art/wins/images/max_glow_top_9.png b/art/wins/images/max_glow_top_9.png new file mode 100644 index 0000000..d0d7a31 Binary files /dev/null and b/art/wins/images/max_glow_top_9.png differ diff --git a/art/wins/images/max_head.png b/art/wins/images/max_head.png new file mode 100644 index 0000000..916d4e5 Binary files /dev/null and b/art/wins/images/max_head.png differ diff --git a/art/wins/images/max_head_back.png b/art/wins/images/max_head_back.png new file mode 100644 index 0000000..1e5f579 Binary files /dev/null and b/art/wins/images/max_head_back.png differ diff --git a/art/wins/images/max_head_decor.png b/art/wins/images/max_head_decor.png new file mode 100644 index 0000000..a0c4ce8 Binary files /dev/null and b/art/wins/images/max_head_decor.png differ diff --git a/art/wins/images/max_hrad_crown.png b/art/wins/images/max_hrad_crown.png new file mode 100644 index 0000000..70535c4 Binary files /dev/null and b/art/wins/images/max_hrad_crown.png differ diff --git a/art/wins/images/max_leaf_1.png b/art/wins/images/max_leaf_1.png new file mode 100644 index 0000000..6fc8176 Binary files /dev/null and b/art/wins/images/max_leaf_1.png differ diff --git a/art/wins/images/max_leaf_2.png b/art/wins/images/max_leaf_2.png new file mode 100644 index 0000000..275e340 Binary files /dev/null and b/art/wins/images/max_leaf_2.png differ diff --git a/art/wins/images/max_leaf_3.png b/art/wins/images/max_leaf_3.png new file mode 100644 index 0000000..1d45896 Binary files /dev/null and b/art/wins/images/max_leaf_3.png differ diff --git a/art/wins/images/max_leaf_4.png b/art/wins/images/max_leaf_4.png new file mode 100644 index 0000000..a7a63df Binary files /dev/null and b/art/wins/images/max_leaf_4.png differ diff --git a/art/wins/images/max_leaf_5.png b/art/wins/images/max_leaf_5.png new file mode 100644 index 0000000..b0c092e Binary files /dev/null and b/art/wins/images/max_leaf_5.png differ diff --git a/art/wins/images/max_leaf_6.png b/art/wins/images/max_leaf_6.png new file mode 100644 index 0000000..5270dad Binary files /dev/null and b/art/wins/images/max_leaf_6.png differ diff --git a/art/wins/images/max_leaf_7.png b/art/wins/images/max_leaf_7.png new file mode 100644 index 0000000..c1cbb03 Binary files /dev/null and b/art/wins/images/max_leaf_7.png differ diff --git a/art/wins/images/max_leaf_8.png b/art/wins/images/max_leaf_8.png new file mode 100644 index 0000000..046abcd Binary files /dev/null and b/art/wins/images/max_leaf_8.png differ diff --git a/art/wins/images/max_max.png b/art/wins/images/max_max.png new file mode 100644 index 0000000..f60fa86 Binary files /dev/null and b/art/wins/images/max_max.png differ diff --git a/art/wins/images/max_max_shadow.png b/art/wins/images/max_max_shadow.png new file mode 100644 index 0000000..fc4a459 Binary files /dev/null and b/art/wins/images/max_max_shadow.png differ diff --git a/art/wins/images/max_max_top.png b/art/wins/images/max_max_top.png new file mode 100644 index 0000000..c551528 Binary files /dev/null and b/art/wins/images/max_max_top.png differ diff --git a/art/wins/images/max_mouth_top.png b/art/wins/images/max_mouth_top.png new file mode 100644 index 0000000..0b52b04 Binary files /dev/null and b/art/wins/images/max_mouth_top.png differ diff --git a/art/wins/images/max_mouth_un.png b/art/wins/images/max_mouth_un.png new file mode 100644 index 0000000..f07c521 Binary files /dev/null and b/art/wins/images/max_mouth_un.png differ diff --git a/art/wins/images/max_palms_sample.png b/art/wins/images/max_palms_sample.png new file mode 100644 index 0000000..11c4a07 Binary files /dev/null and b/art/wins/images/max_palms_sample.png differ diff --git a/art/wins/images/max_rays_01.png b/art/wins/images/max_rays_01.png new file mode 100644 index 0000000..4fe4685 Binary files /dev/null and b/art/wins/images/max_rays_01.png differ diff --git a/art/wins/images/max_rays_02.png b/art/wins/images/max_rays_02.png new file mode 100644 index 0000000..f89fdbb Binary files /dev/null and b/art/wins/images/max_rays_02.png differ diff --git a/art/wins/images/max_steps.png b/art/wins/images/max_steps.png new file mode 100644 index 0000000..f677298 Binary files /dev/null and b/art/wins/images/max_steps.png differ diff --git a/art/wins/images/max_win.png b/art/wins/images/max_win.png new file mode 100644 index 0000000..5cfe2a6 Binary files /dev/null and b/art/wins/images/max_win.png differ diff --git a/art/wins/images/max_win_shadow.png b/art/wins/images/max_win_shadow.png new file mode 100644 index 0000000..41737f3 Binary files /dev/null and b/art/wins/images/max_win_shadow.png differ diff --git a/art/wins/images/max_win_top.png b/art/wins/images/max_win_top.png new file mode 100644 index 0000000..451da6e Binary files /dev/null and b/art/wins/images/max_win_top.png differ diff --git a/art/wins/images/mega_bg.png b/art/wins/images/mega_bg.png new file mode 100644 index 0000000..3fa47d3 Binary files /dev/null and b/art/wins/images/mega_bg.png differ diff --git a/art/wins/images/mega_circle_left_1.png b/art/wins/images/mega_circle_left_1.png new file mode 100644 index 0000000..654a880 Binary files /dev/null and b/art/wins/images/mega_circle_left_1.png differ diff --git a/art/wins/images/mega_circle_left_2.png b/art/wins/images/mega_circle_left_2.png new file mode 100644 index 0000000..a715689 Binary files /dev/null and b/art/wins/images/mega_circle_left_2.png differ diff --git a/art/wins/images/mega_circle_left_3.png b/art/wins/images/mega_circle_left_3.png new file mode 100644 index 0000000..320c4e9 Binary files /dev/null and b/art/wins/images/mega_circle_left_3.png differ diff --git a/art/wins/images/mega_circle_right_1.png b/art/wins/images/mega_circle_right_1.png new file mode 100644 index 0000000..f9a143c Binary files /dev/null and b/art/wins/images/mega_circle_right_1.png differ diff --git a/art/wins/images/mega_circle_right_2.png b/art/wins/images/mega_circle_right_2.png new file mode 100644 index 0000000..d9bb58c Binary files /dev/null and b/art/wins/images/mega_circle_right_2.png differ diff --git a/art/wins/images/mega_circle_right_3.png b/art/wins/images/mega_circle_right_3.png new file mode 100644 index 0000000..3863682 Binary files /dev/null and b/art/wins/images/mega_circle_right_3.png differ diff --git a/art/wins/images/mega_circle_s.png b/art/wins/images/mega_circle_s.png new file mode 100644 index 0000000..9a9489b Binary files /dev/null and b/art/wins/images/mega_circle_s.png differ diff --git a/art/wins/images/mega_circle_top.png b/art/wins/images/mega_circle_top.png new file mode 100644 index 0000000..0db50a9 Binary files /dev/null and b/art/wins/images/mega_circle_top.png differ diff --git a/art/wins/images/mega_eye_glow_l.png b/art/wins/images/mega_eye_glow_l.png new file mode 100644 index 0000000..929f558 Binary files /dev/null and b/art/wins/images/mega_eye_glow_l.png differ diff --git a/art/wins/images/mega_eye_glow_r.png b/art/wins/images/mega_eye_glow_r.png new file mode 100644 index 0000000..0c74d76 Binary files /dev/null and b/art/wins/images/mega_eye_glow_r.png differ diff --git a/art/wins/images/mega_eyes_left.png b/art/wins/images/mega_eyes_left.png new file mode 100644 index 0000000..6f0cb93 Binary files /dev/null and b/art/wins/images/mega_eyes_left.png differ diff --git a/art/wins/images/mega_eyes_right.png b/art/wins/images/mega_eyes_right.png new file mode 100644 index 0000000..c3883c8 Binary files /dev/null and b/art/wins/images/mega_eyes_right.png differ diff --git a/art/wins/images/mega_eyes_top_l.png b/art/wins/images/mega_eyes_top_l.png new file mode 100644 index 0000000..117ac74 Binary files /dev/null and b/art/wins/images/mega_eyes_top_l.png differ diff --git a/art/wins/images/mega_eyes_top_r.png b/art/wins/images/mega_eyes_top_r.png new file mode 100644 index 0000000..6f70fc1 Binary files /dev/null and b/art/wins/images/mega_eyes_top_r.png differ diff --git a/art/wins/images/mega_face s.png b/art/wins/images/mega_face s.png new file mode 100644 index 0000000..db07542 Binary files /dev/null and b/art/wins/images/mega_face s.png differ diff --git a/art/wins/images/mega_face.png b/art/wins/images/mega_face.png new file mode 100644 index 0000000..fe2d863 Binary files /dev/null and b/art/wins/images/mega_face.png differ diff --git a/art/wins/images/mega_glow_1.png b/art/wins/images/mega_glow_1.png new file mode 100644 index 0000000..55d5c05 Binary files /dev/null and b/art/wins/images/mega_glow_1.png differ diff --git a/art/wins/images/mega_glow_10.png b/art/wins/images/mega_glow_10.png new file mode 100644 index 0000000..b0351cf Binary files /dev/null and b/art/wins/images/mega_glow_10.png differ diff --git a/art/wins/images/mega_glow_2.png b/art/wins/images/mega_glow_2.png new file mode 100644 index 0000000..236b001 Binary files /dev/null and b/art/wins/images/mega_glow_2.png differ diff --git a/art/wins/images/mega_glow_3.png b/art/wins/images/mega_glow_3.png new file mode 100644 index 0000000..8815012 Binary files /dev/null and b/art/wins/images/mega_glow_3.png differ diff --git a/art/wins/images/mega_glow_4.png b/art/wins/images/mega_glow_4.png new file mode 100644 index 0000000..e44dce1 Binary files /dev/null and b/art/wins/images/mega_glow_4.png differ diff --git a/art/wins/images/mega_glow_5.png b/art/wins/images/mega_glow_5.png new file mode 100644 index 0000000..26cc1b7 Binary files /dev/null and b/art/wins/images/mega_glow_5.png differ diff --git a/art/wins/images/mega_glow_6.png b/art/wins/images/mega_glow_6.png new file mode 100644 index 0000000..987b9c5 Binary files /dev/null and b/art/wins/images/mega_glow_6.png differ diff --git a/art/wins/images/mega_glow_7.png b/art/wins/images/mega_glow_7.png new file mode 100644 index 0000000..b494384 Binary files /dev/null and b/art/wins/images/mega_glow_7.png differ diff --git a/art/wins/images/mega_glow_8.png b/art/wins/images/mega_glow_8.png new file mode 100644 index 0000000..e483659 Binary files /dev/null and b/art/wins/images/mega_glow_8.png differ diff --git a/art/wins/images/mega_glow_9.png b/art/wins/images/mega_glow_9.png new file mode 100644 index 0000000..e75d63b Binary files /dev/null and b/art/wins/images/mega_glow_9.png differ diff --git a/art/wins/images/mega_glow_left.png b/art/wins/images/mega_glow_left.png new file mode 100644 index 0000000..781c216 Binary files /dev/null and b/art/wins/images/mega_glow_left.png differ diff --git a/art/wins/images/mega_glow_left_top.png b/art/wins/images/mega_glow_left_top.png new file mode 100644 index 0000000..9a72b34 Binary files /dev/null and b/art/wins/images/mega_glow_left_top.png differ diff --git a/art/wins/images/mega_glow_right.png b/art/wins/images/mega_glow_right.png new file mode 100644 index 0000000..856907f Binary files /dev/null and b/art/wins/images/mega_glow_right.png differ diff --git a/art/wins/images/mega_glow_right_top.png b/art/wins/images/mega_glow_right_top.png new file mode 100644 index 0000000..b34f34e Binary files /dev/null and b/art/wins/images/mega_glow_right_top.png differ diff --git a/art/wins/images/mega_glow_sample.png b/art/wins/images/mega_glow_sample.png new file mode 100644 index 0000000..9d1aedf Binary files /dev/null and b/art/wins/images/mega_glow_sample.png differ diff --git a/art/wins/images/mega_glow_top_1.png b/art/wins/images/mega_glow_top_1.png new file mode 100644 index 0000000..87a3bab Binary files /dev/null and b/art/wins/images/mega_glow_top_1.png differ diff --git a/art/wins/images/mega_glow_top_10.png b/art/wins/images/mega_glow_top_10.png new file mode 100644 index 0000000..ee4d8ec Binary files /dev/null and b/art/wins/images/mega_glow_top_10.png differ diff --git a/art/wins/images/mega_glow_top_2.png b/art/wins/images/mega_glow_top_2.png new file mode 100644 index 0000000..b023c85 Binary files /dev/null and b/art/wins/images/mega_glow_top_2.png differ diff --git a/art/wins/images/mega_glow_top_3.png b/art/wins/images/mega_glow_top_3.png new file mode 100644 index 0000000..3240761 Binary files /dev/null and b/art/wins/images/mega_glow_top_3.png differ diff --git a/art/wins/images/mega_glow_top_4.png b/art/wins/images/mega_glow_top_4.png new file mode 100644 index 0000000..e399ca3 Binary files /dev/null and b/art/wins/images/mega_glow_top_4.png differ diff --git a/art/wins/images/mega_glow_top_5.png b/art/wins/images/mega_glow_top_5.png new file mode 100644 index 0000000..e441050 Binary files /dev/null and b/art/wins/images/mega_glow_top_5.png differ diff --git a/art/wins/images/mega_glow_top_6.png b/art/wins/images/mega_glow_top_6.png new file mode 100644 index 0000000..d6e9a28 Binary files /dev/null and b/art/wins/images/mega_glow_top_6.png differ diff --git a/art/wins/images/mega_glow_top_7.png b/art/wins/images/mega_glow_top_7.png new file mode 100644 index 0000000..d65ed70 Binary files /dev/null and b/art/wins/images/mega_glow_top_7.png differ diff --git a/art/wins/images/mega_glow_top_8.png b/art/wins/images/mega_glow_top_8.png new file mode 100644 index 0000000..e179b2a Binary files /dev/null and b/art/wins/images/mega_glow_top_8.png differ diff --git a/art/wins/images/mega_glow_top_9.png b/art/wins/images/mega_glow_top_9.png new file mode 100644 index 0000000..1ec3178 Binary files /dev/null and b/art/wins/images/mega_glow_top_9.png differ diff --git a/art/wins/images/mega_leaf_1.png b/art/wins/images/mega_leaf_1.png new file mode 100644 index 0000000..516f44b Binary files /dev/null and b/art/wins/images/mega_leaf_1.png differ diff --git a/art/wins/images/mega_leaf_2.png b/art/wins/images/mega_leaf_2.png new file mode 100644 index 0000000..495cb0f Binary files /dev/null and b/art/wins/images/mega_leaf_2.png differ diff --git a/art/wins/images/mega_leaf_3.png b/art/wins/images/mega_leaf_3.png new file mode 100644 index 0000000..b8aae39 Binary files /dev/null and b/art/wins/images/mega_leaf_3.png differ diff --git a/art/wins/images/mega_leaf_4.png b/art/wins/images/mega_leaf_4.png new file mode 100644 index 0000000..84820e3 Binary files /dev/null and b/art/wins/images/mega_leaf_4.png differ diff --git a/art/wins/images/mega_leaf_5.png b/art/wins/images/mega_leaf_5.png new file mode 100644 index 0000000..f64af27 Binary files /dev/null and b/art/wins/images/mega_leaf_5.png differ diff --git a/art/wins/images/mega_leaf_6.png b/art/wins/images/mega_leaf_6.png new file mode 100644 index 0000000..17b0956 Binary files /dev/null and b/art/wins/images/mega_leaf_6.png differ diff --git a/art/wins/images/mega_leaf_7.png b/art/wins/images/mega_leaf_7.png new file mode 100644 index 0000000..a07243b Binary files /dev/null and b/art/wins/images/mega_leaf_7.png differ diff --git a/art/wins/images/mega_leana_01.png b/art/wins/images/mega_leana_01.png new file mode 100644 index 0000000..7710946 Binary files /dev/null and b/art/wins/images/mega_leana_01.png differ diff --git a/art/wins/images/mega_leana_02.png b/art/wins/images/mega_leana_02.png new file mode 100644 index 0000000..9158b0b Binary files /dev/null and b/art/wins/images/mega_leana_02.png differ diff --git a/art/wins/images/mega_leana_03.png b/art/wins/images/mega_leana_03.png new file mode 100644 index 0000000..6a38e3c Binary files /dev/null and b/art/wins/images/mega_leana_03.png differ diff --git a/art/wins/images/mega_lianas_sample.png b/art/wins/images/mega_lianas_sample.png new file mode 100644 index 0000000..e754858 Binary files /dev/null and b/art/wins/images/mega_lianas_sample.png differ diff --git a/art/wins/images/mega_mega.png b/art/wins/images/mega_mega.png new file mode 100644 index 0000000..0fffccd Binary files /dev/null and b/art/wins/images/mega_mega.png differ diff --git a/art/wins/images/mega_mega_shadow.png b/art/wins/images/mega_mega_shadow.png new file mode 100644 index 0000000..a9a2dd0 Binary files /dev/null and b/art/wins/images/mega_mega_shadow.png differ diff --git a/art/wins/images/mega_mega_top.png b/art/wins/images/mega_mega_top.png new file mode 100644 index 0000000..bae3074 Binary files /dev/null and b/art/wins/images/mega_mega_top.png differ diff --git a/art/wins/images/mega_mouth_back_1.png b/art/wins/images/mega_mouth_back_1.png new file mode 100644 index 0000000..6f424e0 Binary files /dev/null and b/art/wins/images/mega_mouth_back_1.png differ diff --git a/art/wins/images/mega_mouth_back_2.png b/art/wins/images/mega_mouth_back_2.png new file mode 100644 index 0000000..9ea7a21 Binary files /dev/null and b/art/wins/images/mega_mouth_back_2.png differ diff --git a/art/wins/images/mega_mouth_top.png b/art/wins/images/mega_mouth_top.png new file mode 100644 index 0000000..31685c1 Binary files /dev/null and b/art/wins/images/mega_mouth_top.png differ diff --git a/art/wins/images/mega_mouth_un.png b/art/wins/images/mega_mouth_un.png new file mode 100644 index 0000000..763c52c Binary files /dev/null and b/art/wins/images/mega_mouth_un.png differ diff --git a/art/wins/images/mega_palm_sample.png b/art/wins/images/mega_palm_sample.png new file mode 100644 index 0000000..ae69d53 Binary files /dev/null and b/art/wins/images/mega_palm_sample.png differ diff --git a/art/wins/images/mega_smoke.png b/art/wins/images/mega_smoke.png new file mode 100644 index 0000000..ab3ecfe Binary files /dev/null and b/art/wins/images/mega_smoke.png differ diff --git a/art/wins/images/mega_tongue.png b/art/wins/images/mega_tongue.png new file mode 100644 index 0000000..633be6d Binary files /dev/null and b/art/wins/images/mega_tongue.png differ diff --git a/art/wins/images/mega_wheel1_s_sample.png b/art/wins/images/mega_wheel1_s_sample.png new file mode 100644 index 0000000..ccc4c44 Binary files /dev/null and b/art/wins/images/mega_wheel1_s_sample.png differ diff --git a/art/wins/images/mega_wheel1_shadow_x2.png b/art/wins/images/mega_wheel1_shadow_x2.png new file mode 100644 index 0000000..6633e52 Binary files /dev/null and b/art/wins/images/mega_wheel1_shadow_x2.png differ diff --git a/art/wins/images/mega_wheel_1.png b/art/wins/images/mega_wheel_1.png new file mode 100644 index 0000000..b8c961c Binary files /dev/null and b/art/wins/images/mega_wheel_1.png differ diff --git a/art/wins/images/mega_wheel_2.png b/art/wins/images/mega_wheel_2.png new file mode 100644 index 0000000..04ad45c Binary files /dev/null and b/art/wins/images/mega_wheel_2.png differ diff --git a/art/wins/images/mega_win.png b/art/wins/images/mega_win.png new file mode 100644 index 0000000..b23899c Binary files /dev/null and b/art/wins/images/mega_win.png differ diff --git a/art/wins/images/mega_win_shadow.png b/art/wins/images/mega_win_shadow.png new file mode 100644 index 0000000..e179e2a Binary files /dev/null and b/art/wins/images/mega_win_shadow.png differ diff --git a/art/wins/images/mega_win_top.png b/art/wins/images/mega_win_top.png new file mode 100644 index 0000000..ac01f7c Binary files /dev/null and b/art/wins/images/mega_win_top.png differ diff --git a/art/wins/images/placeholder.png b/art/wins/images/placeholder.png new file mode 100644 index 0000000..87b8ed8 Binary files /dev/null and b/art/wins/images/placeholder.png differ diff --git a/art/wins/images/source_win_bg_x4.png b/art/wins/images/source_win_bg_x4.png new file mode 100644 index 0000000..01a626d Binary files /dev/null and b/art/wins/images/source_win_bg_x4.png differ diff --git a/art/wins/images/super_bg.png b/art/wins/images/super_bg.png new file mode 100644 index 0000000..eb0878f Binary files /dev/null and b/art/wins/images/super_bg.png differ diff --git a/art/wins/images/super_eyes_left.png b/art/wins/images/super_eyes_left.png new file mode 100644 index 0000000..4ae6152 Binary files /dev/null and b/art/wins/images/super_eyes_left.png differ diff --git a/art/wins/images/super_eyes_right.png b/art/wins/images/super_eyes_right.png new file mode 100644 index 0000000..70ed619 Binary files /dev/null and b/art/wins/images/super_eyes_right.png differ diff --git a/art/wins/images/super_fangs_left.png b/art/wins/images/super_fangs_left.png new file mode 100644 index 0000000..ec5422d Binary files /dev/null and b/art/wins/images/super_fangs_left.png differ diff --git a/art/wins/images/super_fangs_right.png b/art/wins/images/super_fangs_right.png new file mode 100644 index 0000000..9ae240d Binary files /dev/null and b/art/wins/images/super_fangs_right.png differ diff --git a/art/wins/images/super_glow_1.png b/art/wins/images/super_glow_1.png new file mode 100644 index 0000000..5a14383 Binary files /dev/null and b/art/wins/images/super_glow_1.png differ diff --git a/art/wins/images/super_glow_10.png b/art/wins/images/super_glow_10.png new file mode 100644 index 0000000..3b2d5dc Binary files /dev/null and b/art/wins/images/super_glow_10.png differ diff --git a/art/wins/images/super_glow_11.png b/art/wins/images/super_glow_11.png new file mode 100644 index 0000000..d7c20f4 Binary files /dev/null and b/art/wins/images/super_glow_11.png differ diff --git a/art/wins/images/super_glow_2.png b/art/wins/images/super_glow_2.png new file mode 100644 index 0000000..d64e7cd Binary files /dev/null and b/art/wins/images/super_glow_2.png differ diff --git a/art/wins/images/super_glow_3.png b/art/wins/images/super_glow_3.png new file mode 100644 index 0000000..2de6369 Binary files /dev/null and b/art/wins/images/super_glow_3.png differ diff --git a/art/wins/images/super_glow_4.png b/art/wins/images/super_glow_4.png new file mode 100644 index 0000000..2354172 Binary files /dev/null and b/art/wins/images/super_glow_4.png differ diff --git a/art/wins/images/super_glow_5.png b/art/wins/images/super_glow_5.png new file mode 100644 index 0000000..9ef7c21 Binary files /dev/null and b/art/wins/images/super_glow_5.png differ diff --git a/art/wins/images/super_glow_6.png b/art/wins/images/super_glow_6.png new file mode 100644 index 0000000..4491293 Binary files /dev/null and b/art/wins/images/super_glow_6.png differ diff --git a/art/wins/images/super_glow_7.png b/art/wins/images/super_glow_7.png new file mode 100644 index 0000000..7cb6ef2 Binary files /dev/null and b/art/wins/images/super_glow_7.png differ diff --git a/art/wins/images/super_glow_8.png b/art/wins/images/super_glow_8.png new file mode 100644 index 0000000..e90995c Binary files /dev/null and b/art/wins/images/super_glow_8.png differ diff --git a/art/wins/images/super_glow_9.png b/art/wins/images/super_glow_9.png new file mode 100644 index 0000000..c728fe1 Binary files /dev/null and b/art/wins/images/super_glow_9.png differ diff --git a/art/wins/images/super_glow_eclipse.png b/art/wins/images/super_glow_eclipse.png new file mode 100644 index 0000000..ba17e48 Binary files /dev/null and b/art/wins/images/super_glow_eclipse.png differ diff --git a/art/wins/images/super_glow_left.png b/art/wins/images/super_glow_left.png new file mode 100644 index 0000000..3312ae0 Binary files /dev/null and b/art/wins/images/super_glow_left.png differ diff --git a/art/wins/images/super_glow_left_top.png b/art/wins/images/super_glow_left_top.png new file mode 100644 index 0000000..3ca0944 Binary files /dev/null and b/art/wins/images/super_glow_left_top.png differ diff --git a/art/wins/images/super_glow_right.png b/art/wins/images/super_glow_right.png new file mode 100644 index 0000000..7c20922 Binary files /dev/null and b/art/wins/images/super_glow_right.png differ diff --git a/art/wins/images/super_glow_right_ear_l.png b/art/wins/images/super_glow_right_ear_l.png new file mode 100644 index 0000000..94c018f Binary files /dev/null and b/art/wins/images/super_glow_right_ear_l.png differ diff --git a/art/wins/images/super_glow_right_ear_l2.png b/art/wins/images/super_glow_right_ear_l2.png new file mode 100644 index 0000000..088b54d Binary files /dev/null and b/art/wins/images/super_glow_right_ear_l2.png differ diff --git a/art/wins/images/super_glow_right_ear_r.png b/art/wins/images/super_glow_right_ear_r.png new file mode 100644 index 0000000..5b51be8 Binary files /dev/null and b/art/wins/images/super_glow_right_ear_r.png differ diff --git a/art/wins/images/super_glow_right_ear_r2.png b/art/wins/images/super_glow_right_ear_r2.png new file mode 100644 index 0000000..efcaed3 Binary files /dev/null and b/art/wins/images/super_glow_right_ear_r2.png differ diff --git a/art/wins/images/super_glow_right_top.png b/art/wins/images/super_glow_right_top.png new file mode 100644 index 0000000..24fc0da Binary files /dev/null and b/art/wins/images/super_glow_right_top.png differ diff --git a/art/wins/images/super_glow_sample.png b/art/wins/images/super_glow_sample.png new file mode 100644 index 0000000..d59792c Binary files /dev/null and b/art/wins/images/super_glow_sample.png differ diff --git a/art/wins/images/super_glow_top_1.png b/art/wins/images/super_glow_top_1.png new file mode 100644 index 0000000..01e3071 Binary files /dev/null and b/art/wins/images/super_glow_top_1.png differ diff --git a/art/wins/images/super_glow_top_10.png b/art/wins/images/super_glow_top_10.png new file mode 100644 index 0000000..158f02b Binary files /dev/null and b/art/wins/images/super_glow_top_10.png differ diff --git a/art/wins/images/super_glow_top_11.png b/art/wins/images/super_glow_top_11.png new file mode 100644 index 0000000..2d02f4d Binary files /dev/null and b/art/wins/images/super_glow_top_11.png differ diff --git a/art/wins/images/super_glow_top_2.png b/art/wins/images/super_glow_top_2.png new file mode 100644 index 0000000..b1afb96 Binary files /dev/null and b/art/wins/images/super_glow_top_2.png differ diff --git a/art/wins/images/super_glow_top_3.png b/art/wins/images/super_glow_top_3.png new file mode 100644 index 0000000..e8ab5ed Binary files /dev/null and b/art/wins/images/super_glow_top_3.png differ diff --git a/art/wins/images/super_glow_top_4.png b/art/wins/images/super_glow_top_4.png new file mode 100644 index 0000000..253b72b Binary files /dev/null and b/art/wins/images/super_glow_top_4.png differ diff --git a/art/wins/images/super_glow_top_5.png b/art/wins/images/super_glow_top_5.png new file mode 100644 index 0000000..d149899 Binary files /dev/null and b/art/wins/images/super_glow_top_5.png differ diff --git a/art/wins/images/super_glow_top_6.png b/art/wins/images/super_glow_top_6.png new file mode 100644 index 0000000..9596807 Binary files /dev/null and b/art/wins/images/super_glow_top_6.png differ diff --git a/art/wins/images/super_glow_top_7.png b/art/wins/images/super_glow_top_7.png new file mode 100644 index 0000000..6bf6fd2 Binary files /dev/null and b/art/wins/images/super_glow_top_7.png differ diff --git a/art/wins/images/super_glow_top_8.png b/art/wins/images/super_glow_top_8.png new file mode 100644 index 0000000..8871d83 Binary files /dev/null and b/art/wins/images/super_glow_top_8.png differ diff --git a/art/wins/images/super_glow_top_9.png b/art/wins/images/super_glow_top_9.png new file mode 100644 index 0000000..c1e9479 Binary files /dev/null and b/art/wins/images/super_glow_top_9.png differ diff --git a/art/wins/images/super_head.png b/art/wins/images/super_head.png new file mode 100644 index 0000000..f6166fc Binary files /dev/null and b/art/wins/images/super_head.png differ diff --git a/art/wins/images/super_head_decor.png b/art/wins/images/super_head_decor.png new file mode 100644 index 0000000..c326d8a Binary files /dev/null and b/art/wins/images/super_head_decor.png differ diff --git a/art/wins/images/super_head_decor_shadow.png b/art/wins/images/super_head_decor_shadow.png new file mode 100644 index 0000000..933b8d1 Binary files /dev/null and b/art/wins/images/super_head_decor_shadow.png differ diff --git a/art/wins/images/super_leaf_1.png b/art/wins/images/super_leaf_1.png new file mode 100644 index 0000000..44b21f2 Binary files /dev/null and b/art/wins/images/super_leaf_1.png differ diff --git a/art/wins/images/super_leaf_2.png b/art/wins/images/super_leaf_2.png new file mode 100644 index 0000000..1c20107 Binary files /dev/null and b/art/wins/images/super_leaf_2.png differ diff --git a/art/wins/images/super_leaf_3.png b/art/wins/images/super_leaf_3.png new file mode 100644 index 0000000..7500d78 Binary files /dev/null and b/art/wins/images/super_leaf_3.png differ diff --git a/art/wins/images/super_leaf_4.png b/art/wins/images/super_leaf_4.png new file mode 100644 index 0000000..b4d2e6e Binary files /dev/null and b/art/wins/images/super_leaf_4.png differ diff --git a/art/wins/images/super_leaf_5.png b/art/wins/images/super_leaf_5.png new file mode 100644 index 0000000..0cbd001 Binary files /dev/null and b/art/wins/images/super_leaf_5.png differ diff --git a/art/wins/images/super_leaf_6.png b/art/wins/images/super_leaf_6.png new file mode 100644 index 0000000..608bd25 Binary files /dev/null and b/art/wins/images/super_leaf_6.png differ diff --git a/art/wins/images/super_leaf_7.png b/art/wins/images/super_leaf_7.png new file mode 100644 index 0000000..e5cf708 Binary files /dev/null and b/art/wins/images/super_leaf_7.png differ diff --git a/art/wins/images/super_leaf_8.png b/art/wins/images/super_leaf_8.png new file mode 100644 index 0000000..900b6d0 Binary files /dev/null and b/art/wins/images/super_leaf_8.png differ diff --git a/art/wins/images/super_leaf_9.png b/art/wins/images/super_leaf_9.png new file mode 100644 index 0000000..56d9602 Binary files /dev/null and b/art/wins/images/super_leaf_9.png differ diff --git a/art/wins/images/super_mega.png b/art/wins/images/super_mega.png new file mode 100644 index 0000000..2033f02 Binary files /dev/null and b/art/wins/images/super_mega.png differ diff --git a/art/wins/images/super_mega_shadow.png b/art/wins/images/super_mega_shadow.png new file mode 100644 index 0000000..7549387 Binary files /dev/null and b/art/wins/images/super_mega_shadow.png differ diff --git a/art/wins/images/super_mega_top.png b/art/wins/images/super_mega_top.png new file mode 100644 index 0000000..c095707 Binary files /dev/null and b/art/wins/images/super_mega_top.png differ diff --git a/art/wins/images/super_mouth.png b/art/wins/images/super_mouth.png new file mode 100644 index 0000000..e590eb2 Binary files /dev/null and b/art/wins/images/super_mouth.png differ diff --git a/art/wins/images/super_mouth_bg.png b/art/wins/images/super_mouth_bg.png new file mode 100644 index 0000000..e63449f Binary files /dev/null and b/art/wins/images/super_mouth_bg.png differ diff --git a/art/wins/images/super_mouth_top.png b/art/wins/images/super_mouth_top.png new file mode 100644 index 0000000..446598b Binary files /dev/null and b/art/wins/images/super_mouth_top.png differ diff --git a/art/wins/images/super_palm1.png b/art/wins/images/super_palm1.png new file mode 100644 index 0000000..18ff404 Binary files /dev/null and b/art/wins/images/super_palm1.png differ diff --git a/art/wins/images/super_palm2.png b/art/wins/images/super_palm2.png new file mode 100644 index 0000000..df513b2 Binary files /dev/null and b/art/wins/images/super_palm2.png differ diff --git a/art/wins/images/super_palm3.png b/art/wins/images/super_palm3.png new file mode 100644 index 0000000..801f6cf Binary files /dev/null and b/art/wins/images/super_palm3.png differ diff --git a/art/wins/images/super_palm4.png b/art/wins/images/super_palm4.png new file mode 100644 index 0000000..a8e8933 Binary files /dev/null and b/art/wins/images/super_palm4.png differ diff --git a/art/wins/images/super_palm5.png b/art/wins/images/super_palm5.png new file mode 100644 index 0000000..2eda836 Binary files /dev/null and b/art/wins/images/super_palm5.png differ diff --git a/art/wins/images/super_palm6.png b/art/wins/images/super_palm6.png new file mode 100644 index 0000000..bdce789 Binary files /dev/null and b/art/wins/images/super_palm6.png differ diff --git a/art/wins/images/super_smoke.png b/art/wins/images/super_smoke.png new file mode 100644 index 0000000..1a3c4a4 Binary files /dev/null and b/art/wins/images/super_smoke.png differ diff --git a/art/wins/images/super_super.png b/art/wins/images/super_super.png new file mode 100644 index 0000000..cd2ea34 Binary files /dev/null and b/art/wins/images/super_super.png differ diff --git a/art/wins/images/super_super_shadow.png b/art/wins/images/super_super_shadow.png new file mode 100644 index 0000000..804328a Binary files /dev/null and b/art/wins/images/super_super_shadow.png differ diff --git a/art/wins/images/super_super_top.png b/art/wins/images/super_super_top.png new file mode 100644 index 0000000..a809556 Binary files /dev/null and b/art/wins/images/super_super_top.png differ diff --git a/art/wins/images/super_wheel1.png b/art/wins/images/super_wheel1.png new file mode 100644 index 0000000..d75cb0d Binary files /dev/null and b/art/wins/images/super_wheel1.png differ diff --git a/art/wins/images/super_wheel2.png b/art/wins/images/super_wheel2.png new file mode 100644 index 0000000..5fd649b Binary files /dev/null and b/art/wins/images/super_wheel2.png differ diff --git a/art/wins/images/super_win.png b/art/wins/images/super_win.png new file mode 100644 index 0000000..3b04d8e Binary files /dev/null and b/art/wins/images/super_win.png differ diff --git a/art/wins/images/super_win_shadow.png b/art/wins/images/super_win_shadow.png new file mode 100644 index 0000000..389cf75 Binary files /dev/null and b/art/wins/images/super_win_shadow.png differ diff --git a/art/wins/images/super_win_top.png b/art/wins/images/super_win_top.png new file mode 100644 index 0000000..256bd2a Binary files /dev/null and b/art/wins/images/super_win_top.png differ diff --git a/art/wins/images/tap to continue.png b/art/wins/images/tap to continue.png new file mode 100644 index 0000000..50933f1 Binary files /dev/null and b/art/wins/images/tap to continue.png differ diff --git a/art/wins/images/total_bg.png b/art/wins/images/total_bg.png new file mode 100644 index 0000000..baac92f Binary files /dev/null and b/art/wins/images/total_bg.png differ diff --git a/art/wins/images/total_blood_1.png b/art/wins/images/total_blood_1.png new file mode 100644 index 0000000..39fff1c Binary files /dev/null and b/art/wins/images/total_blood_1.png differ diff --git a/art/wins/images/total_blood_2.png b/art/wins/images/total_blood_2.png new file mode 100644 index 0000000..e21753b Binary files /dev/null and b/art/wins/images/total_blood_2.png differ diff --git a/art/wins/images/total_blood_3.png b/art/wins/images/total_blood_3.png new file mode 100644 index 0000000..66e040e Binary files /dev/null and b/art/wins/images/total_blood_3.png differ diff --git a/art/wins/images/total_blood_5.png b/art/wins/images/total_blood_5.png new file mode 100644 index 0000000..1327e9f Binary files /dev/null and b/art/wins/images/total_blood_5.png differ diff --git a/art/wins/images/total_coins_left.png b/art/wins/images/total_coins_left.png new file mode 100644 index 0000000..c59a51e Binary files /dev/null and b/art/wins/images/total_coins_left.png differ diff --git a/art/wins/images/total_coins_right.png b/art/wins/images/total_coins_right.png new file mode 100644 index 0000000..e2adc48 Binary files /dev/null and b/art/wins/images/total_coins_right.png differ diff --git a/art/wins/images/total_column_left.png b/art/wins/images/total_column_left.png new file mode 100644 index 0000000..2c4bae9 Binary files /dev/null and b/art/wins/images/total_column_left.png differ diff --git a/art/wins/images/total_column_right.png b/art/wins/images/total_column_right.png new file mode 100644 index 0000000..d14911d Binary files /dev/null and b/art/wins/images/total_column_right.png differ diff --git a/art/wins/images/total_decor_left.png b/art/wins/images/total_decor_left.png new file mode 100644 index 0000000..f4714fb Binary files /dev/null and b/art/wins/images/total_decor_left.png differ diff --git a/art/wins/images/total_decor_right.png b/art/wins/images/total_decor_right.png new file mode 100644 index 0000000..8d60d2b Binary files /dev/null and b/art/wins/images/total_decor_right.png differ diff --git a/art/wins/images/total_eye_l.png b/art/wins/images/total_eye_l.png new file mode 100644 index 0000000..9da157f Binary files /dev/null and b/art/wins/images/total_eye_l.png differ diff --git a/art/wins/images/total_eye_r.png b/art/wins/images/total_eye_r.png new file mode 100644 index 0000000..63e4d70 Binary files /dev/null and b/art/wins/images/total_eye_r.png differ diff --git a/art/wins/images/total_fire_left.png b/art/wins/images/total_fire_left.png new file mode 100644 index 0000000..9ca0a8d Binary files /dev/null and b/art/wins/images/total_fire_left.png differ diff --git a/art/wins/images/total_fire_right.png b/art/wins/images/total_fire_right.png new file mode 100644 index 0000000..9fb240d Binary files /dev/null and b/art/wins/images/total_fire_right.png differ diff --git a/art/wins/images/total_glow_00.png b/art/wins/images/total_glow_00.png new file mode 100644 index 0000000..2b30d70 Binary files /dev/null and b/art/wins/images/total_glow_00.png differ diff --git a/art/wins/images/total_glow_00_sample.png b/art/wins/images/total_glow_00_sample.png new file mode 100644 index 0000000..242e886 Binary files /dev/null and b/art/wins/images/total_glow_00_sample.png differ diff --git a/art/wins/images/total_glow_01_sample.png b/art/wins/images/total_glow_01_sample.png new file mode 100644 index 0000000..03854f6 Binary files /dev/null and b/art/wins/images/total_glow_01_sample.png differ diff --git a/art/wins/images/total_glow_1.png b/art/wins/images/total_glow_1.png new file mode 100644 index 0000000..7918cd0 Binary files /dev/null and b/art/wins/images/total_glow_1.png differ diff --git a/art/wins/images/total_glow_10.png b/art/wins/images/total_glow_10.png new file mode 100644 index 0000000..6fc4a71 Binary files /dev/null and b/art/wins/images/total_glow_10.png differ diff --git a/art/wins/images/total_glow_11.png b/art/wins/images/total_glow_11.png new file mode 100644 index 0000000..625c962 Binary files /dev/null and b/art/wins/images/total_glow_11.png differ diff --git a/art/wins/images/total_glow_12.png b/art/wins/images/total_glow_12.png new file mode 100644 index 0000000..4b47e31 Binary files /dev/null and b/art/wins/images/total_glow_12.png differ diff --git a/art/wins/images/total_glow_13.png b/art/wins/images/total_glow_13.png new file mode 100644 index 0000000..05f5965 Binary files /dev/null and b/art/wins/images/total_glow_13.png differ diff --git a/art/wins/images/total_glow_14.png b/art/wins/images/total_glow_14.png new file mode 100644 index 0000000..17da6bf Binary files /dev/null and b/art/wins/images/total_glow_14.png differ diff --git a/art/wins/images/total_glow_15.png b/art/wins/images/total_glow_15.png new file mode 100644 index 0000000..d76485f Binary files /dev/null and b/art/wins/images/total_glow_15.png differ diff --git a/art/wins/images/total_glow_16.png b/art/wins/images/total_glow_16.png new file mode 100644 index 0000000..e056bdd Binary files /dev/null and b/art/wins/images/total_glow_16.png differ diff --git a/art/wins/images/total_glow_17.png b/art/wins/images/total_glow_17.png new file mode 100644 index 0000000..5e006b2 Binary files /dev/null and b/art/wins/images/total_glow_17.png differ diff --git a/art/wins/images/total_glow_18.png b/art/wins/images/total_glow_18.png new file mode 100644 index 0000000..3a32d2d Binary files /dev/null and b/art/wins/images/total_glow_18.png differ diff --git a/art/wins/images/total_glow_2.png b/art/wins/images/total_glow_2.png new file mode 100644 index 0000000..5a9aad7 Binary files /dev/null and b/art/wins/images/total_glow_2.png differ diff --git a/art/wins/images/total_glow_3.png b/art/wins/images/total_glow_3.png new file mode 100644 index 0000000..ada1573 Binary files /dev/null and b/art/wins/images/total_glow_3.png differ diff --git a/art/wins/images/total_glow_4.png b/art/wins/images/total_glow_4.png new file mode 100644 index 0000000..ca5b279 Binary files /dev/null and b/art/wins/images/total_glow_4.png differ diff --git a/art/wins/images/total_glow_5.png b/art/wins/images/total_glow_5.png new file mode 100644 index 0000000..d8a68c0 Binary files /dev/null and b/art/wins/images/total_glow_5.png differ diff --git a/art/wins/images/total_glow_6.png b/art/wins/images/total_glow_6.png new file mode 100644 index 0000000..1053882 Binary files /dev/null and b/art/wins/images/total_glow_6.png differ diff --git a/art/wins/images/total_glow_7.png b/art/wins/images/total_glow_7.png new file mode 100644 index 0000000..9593fa1 Binary files /dev/null and b/art/wins/images/total_glow_7.png differ diff --git a/art/wins/images/total_glow_8.png b/art/wins/images/total_glow_8.png new file mode 100644 index 0000000..1cf8757 Binary files /dev/null and b/art/wins/images/total_glow_8.png differ diff --git a/art/wins/images/total_glow_9.png b/art/wins/images/total_glow_9.png new file mode 100644 index 0000000..65015b2 Binary files /dev/null and b/art/wins/images/total_glow_9.png differ diff --git a/art/wins/images/total_glow_left.png b/art/wins/images/total_glow_left.png new file mode 100644 index 0000000..54567aa Binary files /dev/null and b/art/wins/images/total_glow_left.png differ diff --git a/art/wins/images/total_glow_right.png b/art/wins/images/total_glow_right.png new file mode 100644 index 0000000..bc7d2f9 Binary files /dev/null and b/art/wins/images/total_glow_right.png differ diff --git a/art/wins/images/total_glow_top_0.png b/art/wins/images/total_glow_top_0.png new file mode 100644 index 0000000..19ae47d Binary files /dev/null and b/art/wins/images/total_glow_top_0.png differ diff --git a/art/wins/images/total_glow_top_1.png b/art/wins/images/total_glow_top_1.png new file mode 100644 index 0000000..9325e33 Binary files /dev/null and b/art/wins/images/total_glow_top_1.png differ diff --git a/art/wins/images/total_glow_top_10.png b/art/wins/images/total_glow_top_10.png new file mode 100644 index 0000000..e2a2a23 Binary files /dev/null and b/art/wins/images/total_glow_top_10.png differ diff --git a/art/wins/images/total_glow_top_11.png b/art/wins/images/total_glow_top_11.png new file mode 100644 index 0000000..39e34df Binary files /dev/null and b/art/wins/images/total_glow_top_11.png differ diff --git a/art/wins/images/total_glow_top_12.png b/art/wins/images/total_glow_top_12.png new file mode 100644 index 0000000..f1acc5b Binary files /dev/null and b/art/wins/images/total_glow_top_12.png differ diff --git a/art/wins/images/total_glow_top_13.png b/art/wins/images/total_glow_top_13.png new file mode 100644 index 0000000..2c8fd81 Binary files /dev/null and b/art/wins/images/total_glow_top_13.png differ diff --git a/art/wins/images/total_glow_top_14.png b/art/wins/images/total_glow_top_14.png new file mode 100644 index 0000000..640823e Binary files /dev/null and b/art/wins/images/total_glow_top_14.png differ diff --git a/art/wins/images/total_glow_top_15.png b/art/wins/images/total_glow_top_15.png new file mode 100644 index 0000000..6ec64da Binary files /dev/null and b/art/wins/images/total_glow_top_15.png differ diff --git a/art/wins/images/total_glow_top_16.png b/art/wins/images/total_glow_top_16.png new file mode 100644 index 0000000..71ad177 Binary files /dev/null and b/art/wins/images/total_glow_top_16.png differ diff --git a/art/wins/images/total_glow_top_17.png b/art/wins/images/total_glow_top_17.png new file mode 100644 index 0000000..93a64ce Binary files /dev/null and b/art/wins/images/total_glow_top_17.png differ diff --git a/art/wins/images/total_glow_top_18.png b/art/wins/images/total_glow_top_18.png new file mode 100644 index 0000000..7aff108 Binary files /dev/null and b/art/wins/images/total_glow_top_18.png differ diff --git a/art/wins/images/total_glow_top_1_.png b/art/wins/images/total_glow_top_1_.png new file mode 100644 index 0000000..0183b0b Binary files /dev/null and b/art/wins/images/total_glow_top_1_.png differ diff --git a/art/wins/images/total_glow_top_2.png b/art/wins/images/total_glow_top_2.png new file mode 100644 index 0000000..d299d4a Binary files /dev/null and b/art/wins/images/total_glow_top_2.png differ diff --git a/art/wins/images/total_glow_top_2_.png b/art/wins/images/total_glow_top_2_.png new file mode 100644 index 0000000..96ed2c1 Binary files /dev/null and b/art/wins/images/total_glow_top_2_.png differ diff --git a/art/wins/images/total_glow_top_3.png b/art/wins/images/total_glow_top_3.png new file mode 100644 index 0000000..cb49a9d Binary files /dev/null and b/art/wins/images/total_glow_top_3.png differ diff --git a/art/wins/images/total_glow_top_3_.png b/art/wins/images/total_glow_top_3_.png new file mode 100644 index 0000000..040d295 Binary files /dev/null and b/art/wins/images/total_glow_top_3_.png differ diff --git a/art/wins/images/total_glow_top_4.png b/art/wins/images/total_glow_top_4.png new file mode 100644 index 0000000..b0a685f Binary files /dev/null and b/art/wins/images/total_glow_top_4.png differ diff --git a/art/wins/images/total_glow_top_4_.png b/art/wins/images/total_glow_top_4_.png new file mode 100644 index 0000000..c9ae954 Binary files /dev/null and b/art/wins/images/total_glow_top_4_.png differ diff --git a/art/wins/images/total_glow_top_5.png b/art/wins/images/total_glow_top_5.png new file mode 100644 index 0000000..365f6e4 Binary files /dev/null and b/art/wins/images/total_glow_top_5.png differ diff --git a/art/wins/images/total_glow_top_6.png b/art/wins/images/total_glow_top_6.png new file mode 100644 index 0000000..06fc4cb Binary files /dev/null and b/art/wins/images/total_glow_top_6.png differ diff --git a/art/wins/images/total_glow_top_7.png b/art/wins/images/total_glow_top_7.png new file mode 100644 index 0000000..7c5cd18 Binary files /dev/null and b/art/wins/images/total_glow_top_7.png differ diff --git a/art/wins/images/total_glow_top_8.png b/art/wins/images/total_glow_top_8.png new file mode 100644 index 0000000..43878b4 Binary files /dev/null and b/art/wins/images/total_glow_top_8.png differ diff --git a/art/wins/images/total_glow_top_9.png b/art/wins/images/total_glow_top_9.png new file mode 100644 index 0000000..e04416f Binary files /dev/null and b/art/wins/images/total_glow_top_9.png differ diff --git a/art/wins/images/total_head_bottom.png b/art/wins/images/total_head_bottom.png new file mode 100644 index 0000000..8912e0d Binary files /dev/null and b/art/wins/images/total_head_bottom.png differ diff --git a/art/wins/images/total_head_decor.png b/art/wins/images/total_head_decor.png new file mode 100644 index 0000000..e2e35b5 Binary files /dev/null and b/art/wins/images/total_head_decor.png differ diff --git a/art/wins/images/total_head_top.png b/art/wins/images/total_head_top.png new file mode 100644 index 0000000..a0f93a3 Binary files /dev/null and b/art/wins/images/total_head_top.png differ diff --git a/art/wins/images/total_light_red_x2.png b/art/wins/images/total_light_red_x2.png new file mode 100644 index 0000000..5427275 Binary files /dev/null and b/art/wins/images/total_light_red_x2.png differ diff --git a/art/wins/images/total_mouth_back.png b/art/wins/images/total_mouth_back.png new file mode 100644 index 0000000..3b30cb3 Binary files /dev/null and b/art/wins/images/total_mouth_back.png differ diff --git a/art/wins/images/total_mouth_blood_4.png b/art/wins/images/total_mouth_blood_4.png new file mode 100644 index 0000000..375310c Binary files /dev/null and b/art/wins/images/total_mouth_blood_4.png differ diff --git a/art/wins/images/total_rays_01.png b/art/wins/images/total_rays_01.png new file mode 100644 index 0000000..c3ce722 Binary files /dev/null and b/art/wins/images/total_rays_01.png differ diff --git a/art/wins/images/total_rays_02.png b/art/wins/images/total_rays_02.png new file mode 100644 index 0000000..f1a28e2 Binary files /dev/null and b/art/wins/images/total_rays_02.png differ diff --git a/art/wins/images/total_steps.png b/art/wins/images/total_steps.png new file mode 100644 index 0000000..cdcab2c Binary files /dev/null and b/art/wins/images/total_steps.png differ diff --git a/art/wins/images/total_total.png b/art/wins/images/total_total.png new file mode 100644 index 0000000..f2ff67d Binary files /dev/null and b/art/wins/images/total_total.png differ diff --git a/art/wins/images/total_total_shadow.png b/art/wins/images/total_total_shadow.png new file mode 100644 index 0000000..43db5b2 Binary files /dev/null and b/art/wins/images/total_total_shadow.png differ diff --git a/art/wins/images/total_total_top.png b/art/wins/images/total_total_top.png new file mode 100644 index 0000000..8d7bf47 Binary files /dev/null and b/art/wins/images/total_total_top.png differ diff --git a/art/wins/images/total_whell1.png b/art/wins/images/total_whell1.png new file mode 100644 index 0000000..781fc0e Binary files /dev/null and b/art/wins/images/total_whell1.png differ diff --git a/art/wins/images/total_whell1_shadow.png b/art/wins/images/total_whell1_shadow.png new file mode 100644 index 0000000..04a6286 Binary files /dev/null and b/art/wins/images/total_whell1_shadow.png differ diff --git a/art/wins/images/total_whell2.png b/art/wins/images/total_whell2.png new file mode 100644 index 0000000..3cfb5d4 Binary files /dev/null and b/art/wins/images/total_whell2.png differ diff --git a/art/wins/images/total_win.png b/art/wins/images/total_win.png new file mode 100644 index 0000000..8ec7359 Binary files /dev/null and b/art/wins/images/total_win.png differ diff --git a/art/wins/images/total_win_shadow.png b/art/wins/images/total_win_shadow.png new file mode 100644 index 0000000..bf6eea8 Binary files /dev/null and b/art/wins/images/total_win_shadow.png differ diff --git a/art/wins/images/total_win_top.png b/art/wins/images/total_win_top.png new file mode 100644 index 0000000..35b4579 Binary files /dev/null and b/art/wins/images/total_win_top.png differ diff --git a/art/wins/wins.spine b/art/wins/wins.spine new file mode 100644 index 0000000..cf708b8 Binary files /dev/null and b/art/wins/wins.spine differ diff --git a/audioSource/mono/calculation.wav b/audioSource/mono/calculation.wav new file mode 100644 index 0000000..29a5355 Binary files /dev/null and b/audioSource/mono/calculation.wav differ diff --git a/audioSource/mono/click.wav b/audioSource/mono/click.wav new file mode 100644 index 0000000..1bba7b5 Binary files /dev/null and b/audioSource/mono/click.wav differ diff --git a/audioSource/mono/over.wav b/audioSource/mono/over.wav new file mode 100644 index 0000000..385cea8 Binary files /dev/null and b/audioSource/mono/over.wav differ diff --git a/audioSource/mono/quick_stop.wav b/audioSource/mono/quick_stop.wav new file mode 100644 index 0000000..1cc1400 Binary files /dev/null and b/audioSource/mono/quick_stop.wav differ diff --git a/audioSource/mono/reel_anticipation1.wav b/audioSource/mono/reel_anticipation1.wav new file mode 100644 index 0000000..da20edc Binary files /dev/null and b/audioSource/mono/reel_anticipation1.wav differ diff --git a/audioSource/mono/reel_anticipation2.wav b/audioSource/mono/reel_anticipation2.wav new file mode 100644 index 0000000..9c01a9a Binary files /dev/null and b/audioSource/mono/reel_anticipation2.wav differ diff --git a/audioSource/mono/reel_anticipation3.wav b/audioSource/mono/reel_anticipation3.wav new file mode 100644 index 0000000..c489dee Binary files /dev/null and b/audioSource/mono/reel_anticipation3.wav differ diff --git a/audioSource/mono/reel_rotation.wav b/audioSource/mono/reel_rotation.wav new file mode 100644 index 0000000..39d119a Binary files /dev/null and b/audioSource/mono/reel_rotation.wav differ diff --git a/audioSource/mono/respin_progress.wav b/audioSource/mono/respin_progress.wav new file mode 100644 index 0000000..d2b9364 Binary files /dev/null and b/audioSource/mono/respin_progress.wav differ diff --git a/audioSource/mono/scatter_1.wav b/audioSource/mono/scatter_1.wav new file mode 100644 index 0000000..13616fc Binary files /dev/null and b/audioSource/mono/scatter_1.wav differ diff --git a/audioSource/mono/scatter_2.wav b/audioSource/mono/scatter_2.wav new file mode 100644 index 0000000..166bbe7 Binary files /dev/null and b/audioSource/mono/scatter_2.wav differ diff --git a/audioSource/mono/scatter_3.wav b/audioSource/mono/scatter_3.wav new file mode 100644 index 0000000..d62639c Binary files /dev/null and b/audioSource/mono/scatter_3.wav differ diff --git a/audioSource/mono/spin.wav b/audioSource/mono/spin.wav new file mode 100644 index 0000000..89d34db Binary files /dev/null and b/audioSource/mono/spin.wav differ diff --git a/audioSource/mono/stop.wav b/audioSource/mono/stop.wav new file mode 100644 index 0000000..82f6629 Binary files /dev/null and b/audioSource/mono/stop.wav differ diff --git a/audioSource/mono/wild_1_in.wav b/audioSource/mono/wild_1_in.wav new file mode 100644 index 0000000..9f9767f Binary files /dev/null and b/audioSource/mono/wild_1_in.wav differ diff --git a/audioSource/mono/wild_2_in.wav b/audioSource/mono/wild_2_in.wav new file mode 100644 index 0000000..cccca47 Binary files /dev/null and b/audioSource/mono/wild_2_in.wav differ diff --git a/audioSource/mono/wild_3_in.wav b/audioSource/mono/wild_3_in.wav new file mode 100644 index 0000000..4c12329 Binary files /dev/null and b/audioSource/mono/wild_3_in.wav differ diff --git a/audioSource/stereo/3_wilds_land.wav b/audioSource/stereo/3_wilds_land.wav new file mode 100644 index 0000000..e97a841 Binary files /dev/null and b/audioSource/stereo/3_wilds_land.wav differ diff --git a/audioSource/stereo/add_spin_popup.wav b/audioSource/stereo/add_spin_popup.wav new file mode 100644 index 0000000..935c882 Binary files /dev/null and b/audioSource/stereo/add_spin_popup.wav differ diff --git a/audioSource/stereo/ambient_sfx.wav b/audioSource/stereo/ambient_sfx.wav new file mode 100644 index 0000000..f6c2a01 Binary files /dev/null and b/audioSource/stereo/ambient_sfx.wav differ diff --git a/audioSource/stereo/bigwin_end.wav b/audioSource/stereo/bigwin_end.wav new file mode 100644 index 0000000..c3b18c8 Binary files /dev/null and b/audioSource/stereo/bigwin_end.wav differ diff --git a/audioSource/stereo/bigwin_intro.wav b/audioSource/stereo/bigwin_intro.wav new file mode 100644 index 0000000..e0f5ebb Binary files /dev/null and b/audioSource/stereo/bigwin_intro.wav differ diff --git a/audioSource/stereo/bigwin_loop.wav b/audioSource/stereo/bigwin_loop.wav new file mode 100644 index 0000000..d46f582 Binary files /dev/null and b/audioSource/stereo/bigwin_loop.wav differ diff --git a/audioSource/stereo/bonus_buy_popup.wav b/audioSource/stereo/bonus_buy_popup.wav new file mode 100644 index 0000000..82f63d0 Binary files /dev/null and b/audioSource/stereo/bonus_buy_popup.wav differ diff --git a/audioSource/stereo/bonus_intro_popup.wav b/audioSource/stereo/bonus_intro_popup.wav new file mode 100644 index 0000000..fabcb23 Binary files /dev/null and b/audioSource/stereo/bonus_intro_popup.wav differ diff --git a/audioSource/stereo/freespins_bgr.wav b/audioSource/stereo/freespins_bgr.wav new file mode 100644 index 0000000..a617e9e Binary files /dev/null and b/audioSource/stereo/freespins_bgr.wav differ diff --git a/audioSource/stereo/intro 1.wav b/audioSource/stereo/intro 1.wav new file mode 100644 index 0000000..3dd6c31 Binary files /dev/null and b/audioSource/stereo/intro 1.wav differ diff --git a/audioSource/stereo/intro 2.wav b/audioSource/stereo/intro 2.wav new file mode 100644 index 0000000..322932a Binary files /dev/null and b/audioSource/stereo/intro 2.wav differ diff --git a/audioSource/stereo/intro 3.wav b/audioSource/stereo/intro 3.wav new file mode 100644 index 0000000..ae227e3 Binary files /dev/null and b/audioSource/stereo/intro 3.wav differ diff --git a/audioSource/stereo/main_bgr.wav b/audioSource/stereo/main_bgr.wav new file mode 100644 index 0000000..305ba33 Binary files /dev/null and b/audioSource/stereo/main_bgr.wav differ diff --git a/audioSource/stereo/maxwin_end.wav b/audioSource/stereo/maxwin_end.wav new file mode 100644 index 0000000..46f2eb0 Binary files /dev/null and b/audioSource/stereo/maxwin_end.wav differ diff --git a/audioSource/stereo/maxwin_intro.wav b/audioSource/stereo/maxwin_intro.wav new file mode 100644 index 0000000..84f0323 Binary files /dev/null and b/audioSource/stereo/maxwin_intro.wav differ diff --git a/audioSource/stereo/maxwin_loop.wav b/audioSource/stereo/maxwin_loop.wav new file mode 100644 index 0000000..f90853e Binary files /dev/null and b/audioSource/stereo/maxwin_loop.wav differ diff --git a/audioSource/stereo/megawin_end.wav b/audioSource/stereo/megawin_end.wav new file mode 100644 index 0000000..72704fa Binary files /dev/null and b/audioSource/stereo/megawin_end.wav differ diff --git a/audioSource/stereo/megawin_shot.wav b/audioSource/stereo/megawin_shot.wav new file mode 100644 index 0000000..f5c4fae Binary files /dev/null and b/audioSource/stereo/megawin_shot.wav differ diff --git a/audioSource/stereo/respin_bgr.wav b/audioSource/stereo/respin_bgr.wav new file mode 100644 index 0000000..0ce50fb Binary files /dev/null and b/audioSource/stereo/respin_bgr.wav differ diff --git a/audioSource/stereo/scatter_win.wav b/audioSource/stereo/scatter_win.wav new file mode 100644 index 0000000..74286fb Binary files /dev/null and b/audioSource/stereo/scatter_win.wav differ diff --git a/audioSource/stereo/sum.wav b/audioSource/stereo/sum.wav new file mode 100644 index 0000000..e42c678 Binary files /dev/null and b/audioSource/stereo/sum.wav differ diff --git a/audioSource/stereo/supermegawin_end.wav b/audioSource/stereo/supermegawin_end.wav new file mode 100644 index 0000000..7500c31 Binary files /dev/null and b/audioSource/stereo/supermegawin_end.wav differ diff --git a/audioSource/stereo/supermegawin_shot.wav b/audioSource/stereo/supermegawin_shot.wav new file mode 100644 index 0000000..54e414f Binary files /dev/null and b/audioSource/stereo/supermegawin_shot.wav differ diff --git a/audioSource/stereo/total_win_end.wav b/audioSource/stereo/total_win_end.wav new file mode 100644 index 0000000..38456d9 Binary files /dev/null and b/audioSource/stereo/total_win_end.wav differ diff --git a/audioSource/stereo/total_win_intro.wav b/audioSource/stereo/total_win_intro.wav new file mode 100644 index 0000000..1d59813 Binary files /dev/null and b/audioSource/stereo/total_win_intro.wav differ diff --git a/audioSource/stereo/total_win_loop.wav b/audioSource/stereo/total_win_loop.wav new file mode 100644 index 0000000..a8aba0c Binary files /dev/null and b/audioSource/stereo/total_win_loop.wav differ diff --git a/audioSource/stereo/transition.wav b/audioSource/stereo/transition.wav new file mode 100644 index 0000000..0aca23d Binary files /dev/null and b/audioSource/stereo/transition.wav differ diff --git a/audioSource/stereo/wild_1_win.wav b/audioSource/stereo/wild_1_win.wav new file mode 100644 index 0000000..643eaea Binary files /dev/null and b/audioSource/stereo/wild_1_win.wav differ diff --git a/audioSource/stereo/wild_2_win.wav b/audioSource/stereo/wild_2_win.wav new file mode 100644 index 0000000..db1e097 Binary files /dev/null and b/audioSource/stereo/wild_2_win.wav differ diff --git a/audioSource/stereo/wild_3_win.wav b/audioSource/stereo/wild_3_win.wav new file mode 100644 index 0000000..83b1b2f Binary files /dev/null and b/audioSource/stereo/wild_3_win.wav differ diff --git a/audioSource/stereo/wild_in.wav b/audioSource/stereo/wild_in.wav new file mode 100644 index 0000000..3e38708 Binary files /dev/null and b/audioSource/stereo/wild_in.wav differ diff --git a/audioSource/stereo/wild_open.wav b/audioSource/stereo/wild_open.wav new file mode 100644 index 0000000..96cd915 Binary files /dev/null and b/audioSource/stereo/wild_open.wav differ diff --git a/audioSource/stereo/win_line_new.wav b/audioSource/stereo/win_line_new.wav new file mode 100644 index 0000000..5124c34 Binary files /dev/null and b/audioSource/stereo/win_line_new.wav differ diff --git a/crowdin.yml b/crowdin.yml new file mode 100644 index 0000000..489b4ee --- /dev/null +++ b/crowdin.yml @@ -0,0 +1,12 @@ +"files": [ + { + "source": "/src/assets/rules/*.html", + "translation": "/src/assets/rules/locales/%two_letters_code%.html", + "update_option": "update_without_changes" + }, + { + "source": "/src/assets/translations/*.json", + "translation": "/src/assets/translations/locales/%two_letters_code%.json", + "update_option": "update_without_changes" + } +] diff --git a/dataPresets/b_cr_m.json b/dataPresets/b_cr_m.json new file mode 100644 index 0000000..e55a341 --- /dev/null +++ b/dataPresets/b_cr_m.json @@ -0,0 +1,1647 @@ +[ + { + "api_version": "2", + "features": { + "respins_issued": 3, + "respins_left": 0, + "sticky_wilds": [ + [ + [ + 1, + 1 + ], + 1, + 0 + ], + [ + [ + 3, + 0 + ], + 1, + 0 + ], + [ + [ + 0, + 0 + ], + 2, + 0 + ], + [ + [ + 2, + 3 + ], + 10, + 1 + ], + [ + [ + 4, + 2 + ], + 10, + 1 + ] + ] + }, + "outcome": { + "screen": [ + [ + "0", + "6", + "10", + "7" + ], + [ + "4", + "0", + "9", + "1" + ], + [ + "6", + "3", + "9", + "0" + ], + [ + "0", + "5", + "10", + "9" + ], + [ + "9", + "9", + "0", + "10" + ] + ], + "special_symbols": { + "wild": { + "0": [ + [ + 0, + 0 + ], + [ + 1, + 1 + ], + [ + 2, + 3 + ], + [ + 3, + 0 + ], + [ + 4, + 2 + ] + ] + } + }, + "bet": 100, + "win": 360, + "wins": [ + [ + "line", + 60, + [ + 0, + 1, + 0 + ], + 4 + ], + [ + "line", + 300, + [ + 0, + 1, + 1 + ], + 10 + ] + ], + "storage": { + "wilds": [ + [ + [ + 1, + 1 + ], + 1, + 0 + ], + [ + [ + 3, + 0 + ], + 1, + 0 + ], + [ + [ + 0, + 0 + ], + 2, + 0 + ], + [ + [ + 2, + 3 + ], + 10, + 1 + ], + [ + [ + 4, + 2 + ], + 10, + 1 + ] + ] + } + }, + "balance": { + "game": 2640, + "wallet": 82320, + "free_rounds": 1620 + }, + "flow": { + "round_id": 406073, + "last_action_id": "406073_8", + "state": "closed", + "command": "respin", + "available_actions": [ + "init", + "spin" + ], + "purchased_feature": {} + }, + "free_rounds": { + "status": "played", + "bet_level": 0, + "bet_value": 100, + "performed": 5, + "count": 5 + }, + "options": { + "available_bets": [ + 100, + 200, + 500, + 1000, + 1400, + 1600, + 1800, + 2000, + 2500, + 3000, + 3500, + 4000, + 4500, + 5000, + 5500, + 6000, + 6500, + 7000, + 7500, + 8000, + 8500, + 9000, + 9500, + 10000, + 11000, + 12000, + 13000, + 14000, + 15000, + 16000, + 17000, + 18000, + 19000, + 20000, + 21000, + 22000, + 23000, + 24000, + 25000, + 26000, + 27000, + 28000, + 29000, + 30000, + 40000 + ], + "default_bet": 200, + "base_bet": 10, + "paytable": { + "0": [ + 0, + 0, + 30, + 50, + 100 + ], + "1": [ + 0, + 0, + 30, + 50, + 100 + ], + "2": [ + 0, + 0, + 15, + 30, + 80 + ], + "3": [ + 0, + 0, + 10, + 20, + 60 + ], + "4": [ + 0, + 0, + 5, + 10, + 40 + ], + "5": [ + 0, + 0, + 5, + 10, + 40 + ], + "6": [ + 0, + 0, + 2, + 5, + 20 + ], + "7": [ + 0, + 0, + 2, + 5, + 20 + ], + "8": [ + 0, + 0, + 2, + 5, + 20 + ], + "9": [ + 0, + 0, + 1, + 3, + 10 + ], + "10": [ + 0, + 0, + 1, + 3, + 10 + ], + "11": [ + 0, + 0, + 0, + 0, + 0 + ] + }, + "paytables": { + "0": { + "default": [ + 0, + 0, + 30, + 50, + 100 + ] + }, + "1": { + "default": [ + 0, + 0, + 30, + 50, + 100 + ] + }, + "2": { + "default": [ + 0, + 0, + 15, + 30, + 80 + ] + }, + "3": { + "default": [ + 0, + 0, + 10, + 20, + 60 + ] + }, + "4": { + "default": [ + 0, + 0, + 5, + 10, + 40 + ] + }, + "5": { + "default": [ + 0, + 0, + 5, + 10, + 40 + ] + }, + "6": { + "default": [ + 0, + 0, + 2, + 5, + 20 + ] + }, + "7": { + "default": [ + 0, + 0, + 2, + 5, + 20 + ] + }, + "8": { + "default": [ + 0, + 0, + 2, + 5, + 20 + ] + }, + "9": { + "default": [ + 0, + 0, + 1, + 3, + 10 + ] + }, + "10": { + "default": [ + 0, + 0, + 1, + 3, + 10 + ] + }, + "11": { + "default": [ + 0, + 0, + 0, + 0, + 0 + ], + "scatter": [ + 0, + 0, + 0, + 0, + 0 + ] + } + }, + "special_symbols": [ + { + "kind": "wild", + "symbol": "0" + }, + { + "kind": "scatter", + "symbol": "11" + } + ], + "lines": [ + [ + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 1, + 1, + 1, + 1 + ], + [ + 2, + 2, + 2, + 2, + 2 + ], + [ + 3, + 3, + 3, + 3, + 3 + ], + [ + 0, + 1, + 0, + 1, + 0 + ], + [ + 1, + 0, + 1, + 0, + 1 + ], + [ + 1, + 2, + 1, + 2, + 1 + ], + [ + 2, + 1, + 2, + 1, + 2 + ], + [ + 2, + 3, + 2, + 3, + 2 + ], + [ + 3, + 2, + 3, + 2, + 3 + ], + [ + 0, + 1, + 1, + 1, + 0 + ], + [ + 1, + 0, + 0, + 0, + 1 + ], + [ + 1, + 2, + 2, + 2, + 1 + ], + [ + 2, + 1, + 1, + 1, + 2 + ], + [ + 2, + 3, + 3, + 3, + 2 + ], + [ + 3, + 2, + 2, + 2, + 3 + ] + ], + "reels": { + "main": [ + [ + "6", + "2", + "10", + "5", + "10", + "1", + "1", + "10", + "7", + "8", + "2", + "4", + "10", + "6", + "9", + "5", + "9", + "5", + "7", + "10", + "3", + "10", + "8", + "4", + "9", + "3", + "5", + "10", + "4", + "9", + "2", + "10", + "3", + "6", + "2", + "5", + "10", + "5", + "9", + "5", + "2", + "10", + "6", + "2", + "7", + "4", + "10", + "4", + "5", + "10", + "2", + "10", + "7", + "2", + "5", + "4", + "3", + "8", + "5", + "10", + "9", + "10", + "4", + "2", + "10", + "1", + "10", + "5" + ], + [ + "5", + "10", + "2", + "9", + "10", + "2", + "9", + "7", + "4", + "9", + "8", + "5", + "9", + "4", + "3", + "8", + "10", + "1", + "1", + "3", + "9", + "4", + "6", + "9", + "3", + "5", + "4", + "2", + "7", + "10", + "1", + "10", + "5", + "6", + "3", + "10", + "2", + "6", + "3", + "9", + "1", + "9", + "2", + "6", + "9", + "1", + "5", + "7", + "9", + "4", + "10", + "4", + "9", + "2", + "9", + "4", + "3", + "10", + "5", + "2", + "5", + "6", + "1", + "10", + "5", + "10" + ], + [ + "10", + "5", + "6", + "6", + "2", + "8", + "1", + "5", + "8", + "10", + "3", + "8", + "7", + "3", + "5", + "4", + "10", + "5", + "6", + "4", + "10", + "10", + "3", + "7", + "9", + "5", + "4", + "5", + "10", + "1", + "7", + "3", + "7", + "4", + "4", + "4", + "8", + "10", + "1", + "10", + "9", + "5", + "3", + "9", + "5", + "5", + "10", + "2", + "9", + "4", + "2", + "6", + "10", + "5", + "10", + "5", + "10", + "8", + "3", + "10", + "5" + ], + [ + "6", + "10", + "5", + "2", + "7", + "8", + "8", + "9", + "5", + "6", + "3", + "3", + "7", + "4", + "9", + "1", + "2", + "6", + "4", + "4", + "2", + "10", + "6", + "6", + "5", + "5", + "4", + "5", + "7", + "3", + "10", + "9", + "2", + "3", + "6", + "9", + "6", + "6", + "3", + "7", + "10", + "7", + "8", + "3", + "8", + "10", + "5", + "9", + "9", + "3", + "5", + "5", + "10", + "10", + "5", + "1", + "7", + "7", + "5", + "6", + "7", + "3", + "10", + "5", + "1" + ], + [ + "2", + "8", + "1", + "6", + "4", + "10", + "5", + "10", + "3", + "7", + "6", + "5", + "1", + "9", + "4", + "4", + "4", + "8", + "3", + "9", + "9", + "5", + "7", + "1", + "7", + "5", + "1", + "9", + "4", + "8", + "2", + "10", + "5", + "5", + "4", + "9", + "1", + "6", + "5", + "9", + "2", + "3", + "6", + "3", + "6", + "4", + "10", + "5", + "9", + "4", + "7", + "6", + "5", + "4", + "8", + "9", + "2", + "7", + "4", + "6", + "3", + "8", + "3", + "2", + "1" + ] + ], + "freespins": [ + [ + "6", + "6", + "5", + "7", + "4", + "8", + "10", + "5", + "10", + "6", + "9", + "5", + "7", + "7", + "3", + "8", + "8", + "9", + "7", + "10", + "4", + "10", + "9", + "2", + "4", + "9", + "6", + "3", + "7", + "7", + "5", + "9", + "4", + "10", + "2", + "9", + "4", + "8", + "8", + "6", + "5", + "6", + "10", + "5", + "9", + "8", + "5", + "7", + "4", + "10", + "6", + "3", + "9", + "8", + "6", + "4", + "9", + "1", + "1", + "1", + "1", + "10", + "9", + "5", + "10" + ], + [ + "5", + "1", + "3", + "5", + "9", + "1", + "5", + "1", + "2", + "5", + "6", + "5", + "6", + "5", + "3", + "8", + "5", + "1", + "6", + "1", + "5", + "4", + "6", + "2", + "3", + "1", + "4", + "5", + "7", + "5", + "6", + "2", + "5", + "1", + "1", + "1", + "1", + "1", + "5", + "10", + "6", + "3", + "2", + "6", + "4", + "5", + "1", + "6", + "5", + "9", + "1", + "5", + "1", + "6", + "5", + "4", + "5", + "9", + "2", + "4", + "5", + "1", + "9", + "2", + "8", + "5", + "6", + "5", + "6", + "4", + "1", + "5", + "1", + "1", + "5" + ], + [ + "5", + "5", + "1", + "6", + "5", + "1", + "5", + "8", + "5", + "6", + "5", + "8", + "5", + "3", + "8", + "5", + "6", + "5", + "1", + "4", + "5", + "6", + "4", + "3", + "1", + "3", + "5", + "4", + "4", + "10", + "5", + "6", + "7", + "5", + "3", + "5", + "7", + "1", + "5", + "5", + "4", + "1", + "1", + "5", + "10", + "6", + "5", + "5", + "6", + "5", + "3", + "1", + "5", + "6", + "2", + "1", + "6", + "1", + "3", + "5", + "4", + "9", + "5", + "6", + "5", + "1", + "7", + "5", + "2", + "4", + "8", + "5", + "1", + "5", + "1", + "1" + ], + [ + "1", + "1", + "6", + "3", + "1", + "7", + "8", + "3", + "9", + "6", + "5", + "4", + "3", + "1", + "1", + "5", + "4", + "1", + "2", + "10", + "6", + "5", + "5", + "3", + "7", + "1", + "3", + "9", + "10", + "1", + "5", + "9", + "5", + "6", + "1", + "6", + "10", + "1", + "8", + "5", + "3", + "6", + "4", + "8", + "10", + "1", + "9", + "5", + "5", + "10", + "1", + "10", + "2", + "5", + "7", + "5", + "6", + "1", + "6", + "2", + "1", + "5", + "6", + "1", + "4", + "1", + "1" + ], + [ + "10", + "8", + "6", + "8", + "10", + "5", + "10", + "3", + "9", + "6", + "7", + "7", + "7", + "4", + "9", + "4", + "10", + "3", + "9", + "9", + "5", + "10", + "7", + "1", + "2", + "10", + "5", + "5", + "9", + "9", + "6", + "6", + "9", + "2", + "3", + "6", + "4", + "10", + "9", + "8", + "7", + "6", + "5", + "4", + "8", + "9", + "10", + "7", + "8", + "6", + "6", + "1", + "1", + "1", + "1", + "1", + "1", + "8", + "4", + "10", + "9", + "5" + ] + ], + "respin": [ + [ + "10", + "6", + "10", + "5", + "8", + "9", + "10", + "10", + "4", + "6", + "5", + "10", + "7", + "7", + "3", + "8", + "8", + "9", + "9", + "9", + "5", + "1", + "8", + "10", + "9", + "2", + "10", + "5", + "6", + "10", + "7", + "7", + "5", + "9", + "10", + "2", + "10", + "7", + "10", + "6", + "4", + "8", + "8", + "10", + "6", + "5", + "10", + "5", + "6", + "10", + "9", + "8", + "7", + "6", + "5", + "9", + "10", + "8", + "5", + "8", + "6", + "9", + "6", + "4", + "10", + "6" + ], + [ + "5", + "9", + "10", + "9", + "10", + "7", + "4", + "9", + "8", + "10", + "9", + "10", + "3", + "8", + "10", + "8", + "10", + "9", + "4", + "6", + "9", + "1", + "10", + "9", + "4", + "7", + "7", + "10", + "9", + "10", + "3", + "10", + "10", + "6", + "6", + "3", + "8", + "9", + "10", + "9", + "8", + "6", + "9", + "5", + "7", + "9", + "4", + "10", + "9", + "9", + "2", + "9", + "4", + "10", + "10", + "5", + "9", + "8", + "6" + ], + [ + "10", + "10", + "6", + "6", + "8", + "8", + "9", + "5", + "8", + "10", + "3", + "8", + "7", + "7", + "5", + "4", + "6", + "9", + "4", + "10", + "10", + "3", + "7", + "6", + "4", + "10", + "9", + "4", + "10", + "10", + "6", + "3", + "9", + "7", + "4", + "4", + "10", + "8", + "10", + "5", + "10", + "9", + "10", + "9", + "5", + "1", + "9", + "10", + "5", + "10", + "2", + "9", + "8", + "7", + "6", + "5", + "4", + "10", + "10", + "5", + "9", + "8", + "7", + "10", + "6" + ], + [ + "6", + "10", + "8", + "7", + "8", + "8", + "9", + "9", + "5", + "6", + "7", + "7", + "4", + "9", + "10", + "8", + "6", + "4", + "4", + "2", + "10", + "6", + "6", + "5", + "5", + "7", + "7", + "1", + "9", + "10", + "3", + "6", + "9", + "8", + "6", + "7", + "9", + "7", + "8", + "3", + "8", + "10", + "9", + "10", + "10", + "7", + "5", + "10", + "9", + "9", + "4", + "7", + "7", + "9", + "10", + "7", + "6" + ], + [ + "10", + "8", + "6", + "8", + "9", + "5", + "7", + "3", + "7", + "6", + "7", + "7", + "7", + "4", + "4", + "8", + "9", + "9", + "5", + "9", + "7", + "9", + "8", + "8", + "10", + "5", + "8", + "7", + "6", + "5", + "9", + "4", + "9", + "6", + "9", + "9", + "3", + "6", + "8", + "9", + "4", + "10", + "9", + "8", + "7", + "6", + "5", + "4", + "8", + "9", + "10", + "7", + "8", + "6", + "6", + "8", + "10", + "7", + "9", + "9", + "7", + "10" + ] + ] + }, + "layout": { + "reels": 5, + "rows": 4 + }, + "currency": { + "code": "EUR", + "symbol": "€", + "subunits": 100, + "exponent": 2 + }, + "screen": [ + [ + "6", + "2", + "6", + "4" + ], + [ + "10", + "5", + "10", + "5" + ], + [ + "5", + "9", + "9", + "3" + ], + [ + "4", + "9", + "1", + "2" + ], + [ + "3", + "6", + "3", + "6" + ] + ], + "feature_options": { + "feature_multipliers": { + "freespin_buy": 20000, + "bonus_buy": 10000, + "bonus_chance": 300 + }, + "disabled_features": [] + } + } + } +] diff --git a/dataPresets/casino_raunds_issued.json b/dataPresets/casino_raunds_issued.json new file mode 100644 index 0000000..1edf6bc --- /dev/null +++ b/dataPresets/casino_raunds_issued.json @@ -0,0 +1,2874 @@ +[ + { + "api_version": "2", + "options": { + "available_bets": [ + 10, + 20, + 50, + 100, + 200, + 500, + 1000, + 10000 + ], + "default_bet": 10, + "base_bet": 10, + "paytable": { + "0": [ + 0, + 0, + 30, + 50, + 100 + ], + "1": [ + 0, + 0, + 30, + 50, + 100 + ], + "2": [ + 0, + 0, + 15, + 30, + 80 + ], + "3": [ + 0, + 0, + 10, + 20, + 60 + ], + "4": [ + 0, + 0, + 5, + 10, + 40 + ], + "5": [ + 0, + 0, + 5, + 10, + 40 + ], + "6": [ + 0, + 0, + 2, + 5, + 20 + ], + "7": [ + 0, + 0, + 2, + 5, + 20 + ], + "8": [ + 0, + 0, + 2, + 5, + 20 + ], + "9": [ + 0, + 0, + 1, + 3, + 10 + ], + "10": [ + 0, + 0, + 1, + 3, + 10 + ], + "11": [ + 0, + 0, + 0, + 0, + 0 + ] + }, + "paytables": { + "0": { + "default": [ + 0, + 0, + 30, + 50, + 100 + ] + }, + "1": { + "default": [ + 0, + 0, + 30, + 50, + 100 + ] + }, + "2": { + "default": [ + 0, + 0, + 15, + 30, + 80 + ] + }, + "3": { + "default": [ + 0, + 0, + 10, + 20, + 60 + ] + }, + "4": { + "default": [ + 0, + 0, + 5, + 10, + 40 + ] + }, + "5": { + "default": [ + 0, + 0, + 5, + 10, + 40 + ] + }, + "6": { + "default": [ + 0, + 0, + 2, + 5, + 20 + ] + }, + "7": { + "default": [ + 0, + 0, + 2, + 5, + 20 + ] + }, + "8": { + "default": [ + 0, + 0, + 2, + 5, + 20 + ] + }, + "9": { + "default": [ + 0, + 0, + 1, + 3, + 10 + ] + }, + "10": { + "default": [ + 0, + 0, + 1, + 3, + 10 + ] + }, + "11": { + "default": [ + 0, + 0, + 0, + 0, + 0 + ], + "scatter": [ + 0, + 0, + 0, + 0, + 0 + ] + } + }, + "special_symbols": [ + { + "kind": "wild", + "symbol": "0" + }, + { + "kind": "scatter", + "symbol": "11" + } + ], + "lines": [ + [ + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 1, + 1, + 1, + 1 + ], + [ + 2, + 2, + 2, + 2, + 2 + ], + [ + 3, + 3, + 3, + 3, + 3 + ], + [ + 0, + 1, + 0, + 1, + 0 + ], + [ + 1, + 0, + 1, + 0, + 1 + ], + [ + 1, + 2, + 1, + 2, + 1 + ], + [ + 2, + 1, + 2, + 1, + 2 + ], + [ + 2, + 3, + 2, + 3, + 2 + ], + [ + 3, + 2, + 3, + 2, + 3 + ], + [ + 0, + 1, + 1, + 1, + 0 + ], + [ + 1, + 0, + 0, + 0, + 1 + ], + [ + 1, + 2, + 2, + 2, + 1 + ], + [ + 2, + 1, + 1, + 1, + 2 + ], + [ + 2, + 3, + 3, + 3, + 2 + ], + [ + 3, + 2, + 2, + 2, + 3 + ] + ], + "reels": { + "main": [ + [ + "6", + "2", + "10", + "5", + "10", + "1", + "1", + "10", + "7", + "8", + "2", + "4", + "10", + "6", + "9", + "5", + "9", + "5", + "7", + "10", + "3", + "10", + "8", + "4", + "9", + "3", + "5", + "10", + "4", + "9", + "2", + "10", + "3", + "6", + "2", + "5", + "10", + "5", + "9", + "5", + "2", + "10", + "6", + "2", + "7", + "4", + "10", + "4", + "5", + "10", + "2", + "10", + "7", + "2", + "5", + "4", + "3", + "8", + "5", + "10", + "9", + "10", + "4", + "2", + "10", + "1", + "10", + "5" + ], + [ + "5", + "10", + "2", + "9", + "10", + "2", + "9", + "7", + "4", + "9", + "8", + "5", + "9", + "4", + "3", + "8", + "10", + "1", + "1", + "3", + "9", + "4", + "6", + "9", + "3", + "5", + "4", + "2", + "7", + "10", + "1", + "10", + "5", + "6", + "3", + "10", + "2", + "6", + "3", + "9", + "1", + "9", + "2", + "6", + "9", + "1", + "5", + "7", + "9", + "4", + "10", + "4", + "9", + "2", + "9", + "4", + "3", + "10", + "5", + "2", + "5", + "6", + "1", + "10", + "5", + "10" + ], + [ + "10", + "5", + "6", + "6", + "2", + "8", + "1", + "5", + "8", + "10", + "3", + "8", + "7", + "3", + "5", + "4", + "10", + "5", + "6", + "4", + "10", + "10", + "3", + "7", + "9", + "5", + "4", + "5", + "10", + "1", + "7", + "3", + "7", + "4", + "4", + "4", + "8", + "10", + "1", + "10", + "9", + "5", + "3", + "9", + "5", + "5", + "10", + "2", + "9", + "4", + "2", + "6", + "10", + "5", + "10", + "5", + "10", + "8", + "3", + "10", + "5" + ], + [ + "6", + "10", + "5", + "2", + "7", + "8", + "8", + "9", + "5", + "6", + "3", + "3", + "7", + "4", + "9", + "1", + "2", + "6", + "4", + "4", + "2", + "10", + "6", + "6", + "5", + "5", + "4", + "5", + "7", + "3", + "10", + "9", + "2", + "3", + "6", + "9", + "6", + "6", + "3", + "7", + "10", + "7", + "8", + "3", + "8", + "10", + "5", + "9", + "9", + "3", + "5", + "5", + "10", + "10", + "5", + "1", + "7", + "7", + "5", + "6", + "7", + "3", + "10", + "5", + "1" + ], + [ + "2", + "8", + "1", + "6", + "4", + "10", + "5", + "10", + "3", + "7", + "6", + "5", + "1", + "9", + "4", + "4", + "4", + "8", + "3", + "9", + "9", + "5", + "7", + "1", + "7", + "5", + "1", + "9", + "4", + "8", + "2", + "10", + "5", + "5", + "4", + "9", + "1", + "6", + "5", + "9", + "2", + "3", + "6", + "3", + "6", + "4", + "10", + "5", + "9", + "4", + "7", + "6", + "5", + "4", + "8", + "9", + "2", + "7", + "4", + "6", + "3", + "8", + "3", + "2", + "1" + ] + ], + "freespins": [ + [ + "6", + "6", + "5", + "7", + "4", + "8", + "10", + "5", + "10", + "6", + "9", + "5", + "7", + "7", + "3", + "8", + "8", + "9", + "7", + "10", + "4", + "10", + "9", + "2", + "4", + "9", + "6", + "3", + "7", + "7", + "5", + "9", + "4", + "10", + "2", + "9", + "4", + "8", + "8", + "6", + "5", + "6", + "10", + "5", + "9", + "8", + "5", + "7", + "4", + "10", + "6", + "3", + "9", + "8", + "6", + "4", + "9", + "1", + "1", + "1", + "1", + "10", + "9", + "5", + "10" + ], + [ + "5", + "1", + "3", + "5", + "9", + "1", + "5", + "1", + "2", + "5", + "6", + "5", + "6", + "5", + "3", + "8", + "5", + "1", + "6", + "1", + "5", + "4", + "6", + "2", + "3", + "1", + "4", + "5", + "7", + "5", + "6", + "2", + "5", + "1", + "1", + "1", + "1", + "1", + "5", + "10", + "6", + "3", + "2", + "6", + "4", + "5", + "1", + "6", + "5", + "9", + "1", + "5", + "1", + "6", + "5", + "4", + "5", + "9", + "2", + "4", + "5", + "1", + "9", + "2", + "8", + "5", + "6", + "5", + "6", + "4", + "1", + "5", + "1", + "1", + "5" + ], + [ + "5", + "5", + "1", + "6", + "5", + "1", + "5", + "8", + "5", + "6", + "5", + "8", + "5", + "3", + "8", + "5", + "6", + "5", + "1", + "4", + "5", + "6", + "4", + "3", + "1", + "3", + "5", + "4", + "4", + "10", + "5", + "6", + "7", + "5", + "3", + "5", + "7", + "1", + "5", + "5", + "4", + "1", + "1", + "5", + "10", + "6", + "5", + "5", + "6", + "5", + "3", + "1", + "5", + "6", + "2", + "1", + "6", + "1", + "3", + "5", + "4", + "9", + "5", + "6", + "5", + "1", + "7", + "5", + "2", + "4", + "8", + "5", + "1", + "5", + "1", + "1" + ], + [ + "1", + "1", + "6", + "3", + "1", + "7", + "8", + "3", + "9", + "6", + "5", + "4", + "3", + "1", + "1", + "5", + "4", + "1", + "2", + "10", + "6", + "5", + "5", + "3", + "7", + "1", + "3", + "9", + "10", + "1", + "5", + "9", + "5", + "6", + "1", + "6", + "10", + "1", + "8", + "5", + "3", + "6", + "4", + "8", + "10", + "1", + "9", + "5", + "5", + "10", + "1", + "10", + "2", + "5", + "7", + "5", + "6", + "1", + "6", + "2", + "1", + "5", + "6", + "1", + "4", + "1", + "1" + ], + [ + "10", + "8", + "6", + "8", + "10", + "5", + "10", + "3", + "9", + "6", + "7", + "7", + "7", + "4", + "9", + "4", + "10", + "3", + "9", + "9", + "5", + "10", + "7", + "1", + "2", + "10", + "5", + "5", + "9", + "9", + "6", + "6", + "9", + "2", + "3", + "6", + "4", + "10", + "9", + "8", + "7", + "6", + "5", + "4", + "8", + "9", + "10", + "7", + "8", + "6", + "6", + "1", + "1", + "1", + "1", + "1", + "1", + "8", + "4", + "10", + "9", + "5" + ] + ], + "respin": [ + [ + "10", + "6", + "10", + "5", + "8", + "9", + "10", + "10", + "4", + "6", + "5", + "10", + "7", + "7", + "3", + "8", + "8", + "9", + "9", + "9", + "5", + "1", + "8", + "10", + "9", + "2", + "10", + "5", + "6", + "10", + "7", + "7", + "5", + "9", + "10", + "2", + "10", + "7", + "10", + "6", + "4", + "8", + "8", + "10", + "6", + "5", + "10", + "5", + "6", + "10", + "9", + "8", + "7", + "6", + "5", + "9", + "10", + "8", + "5", + "8", + "6", + "9", + "6", + "4", + "10", + "6" + ], + [ + "5", + "9", + "10", + "9", + "10", + "7", + "4", + "9", + "8", + "10", + "9", + "10", + "3", + "8", + "10", + "8", + "10", + "9", + "4", + "6", + "9", + "1", + "10", + "9", + "4", + "7", + "7", + "10", + "9", + "10", + "3", + "10", + "10", + "6", + "6", + "3", + "8", + "9", + "10", + "9", + "8", + "6", + "9", + "5", + "7", + "9", + "4", + "10", + "9", + "9", + "2", + "9", + "4", + "10", + "10", + "5", + "9", + "8", + "6" + ], + [ + "10", + "10", + "6", + "6", + "8", + "8", + "9", + "5", + "8", + "10", + "3", + "8", + "7", + "7", + "5", + "4", + "6", + "9", + "4", + "10", + "10", + "3", + "7", + "6", + "4", + "10", + "9", + "4", + "10", + "10", + "6", + "3", + "9", + "7", + "4", + "4", + "10", + "8", + "10", + "5", + "10", + "9", + "10", + "9", + "5", + "1", + "9", + "10", + "5", + "10", + "2", + "9", + "8", + "7", + "6", + "5", + "4", + "10", + "10", + "5", + "9", + "8", + "7", + "10", + "6" + ], + [ + "6", + "10", + "8", + "7", + "8", + "8", + "9", + "9", + "5", + "6", + "7", + "7", + "4", + "9", + "10", + "8", + "6", + "4", + "4", + "2", + "10", + "6", + "6", + "5", + "5", + "7", + "7", + "1", + "9", + "10", + "3", + "6", + "9", + "8", + "6", + "7", + "9", + "7", + "8", + "3", + "8", + "10", + "9", + "10", + "10", + "7", + "5", + "10", + "9", + "9", + "4", + "7", + "7", + "9", + "10", + "7", + "6" + ], + [ + "10", + "8", + "6", + "8", + "9", + "5", + "7", + "3", + "7", + "6", + "7", + "7", + "7", + "4", + "4", + "8", + "9", + "9", + "5", + "9", + "7", + "9", + "8", + "8", + "10", + "5", + "8", + "7", + "6", + "5", + "9", + "4", + "9", + "6", + "9", + "9", + "3", + "6", + "8", + "9", + "4", + "10", + "9", + "8", + "7", + "6", + "5", + "4", + "8", + "9", + "10", + "7", + "8", + "6", + "6", + "8", + "10", + "7", + "9", + "9", + "7", + "10" + ] + ] + }, + "layout": { + "reels": 5, + "rows": 4 + }, + "currency": { + "code": "EUR", + "symbol": "€", + "subunits": 100, + "exponent": 2 + }, + "screen": [ + [ + "10", + "4", + "6", + "10" + ], + [ + "3", + "9", + "1", + "9" + ], + [ + "5", + "9", + "5", + "9" + ], + [ + "5", + "1", + "6", + "10" + ], + [ + "9", + "9", + "5", + "7" + ] + ], + "feature_options": { + "feature_multipliers": { + "freespin_buy": 20200, + "bonus_buy": 10100, + "bonus_chance": 300 + }, + "disabled_features": [] + } + }, + "balance": { + "game": 0, + "wallet": 101088 + }, + "flow": { + "round_id": null, + "last_action_id": null, + "state": "ready", + "command": "init", + "available_actions": [ + "init", + "spin" + ], + "purchased_feature": {} + } + }, + { + "errors": [ + { + "code": 205, + "desc": "bonus_spin_expected" + }, + { + "code": 404, + "desc": "bonus_spin_expected" + } + ] + }, + { + "errors": [ + { + "code": 404, + "desc": "bonus_spin_expected" + } + ] + }, + { + "api_version": "2", + "options": { + "available_bets": [ + 10, + 20, + 50, + 100, + 200, + 500, + 1000, + 10000 + ], + "default_bet": 10, + "base_bet": 10, + "paytable": { + "0": [ + 0, + 0, + 30, + 50, + 100 + ], + "1": [ + 0, + 0, + 30, + 50, + 100 + ], + "2": [ + 0, + 0, + 15, + 30, + 80 + ], + "3": [ + 0, + 0, + 10, + 20, + 60 + ], + "4": [ + 0, + 0, + 5, + 10, + 40 + ], + "5": [ + 0, + 0, + 5, + 10, + 40 + ], + "6": [ + 0, + 0, + 2, + 5, + 20 + ], + "7": [ + 0, + 0, + 2, + 5, + 20 + ], + "8": [ + 0, + 0, + 2, + 5, + 20 + ], + "9": [ + 0, + 0, + 1, + 3, + 10 + ], + "10": [ + 0, + 0, + 1, + 3, + 10 + ], + "11": [ + 0, + 0, + 0, + 0, + 0 + ] + }, + "paytables": { + "0": { + "default": [ + 0, + 0, + 30, + 50, + 100 + ] + }, + "1": { + "default": [ + 0, + 0, + 30, + 50, + 100 + ] + }, + "2": { + "default": [ + 0, + 0, + 15, + 30, + 80 + ] + }, + "3": { + "default": [ + 0, + 0, + 10, + 20, + 60 + ] + }, + "4": { + "default": [ + 0, + 0, + 5, + 10, + 40 + ] + }, + "5": { + "default": [ + 0, + 0, + 5, + 10, + 40 + ] + }, + "6": { + "default": [ + 0, + 0, + 2, + 5, + 20 + ] + }, + "7": { + "default": [ + 0, + 0, + 2, + 5, + 20 + ] + }, + "8": { + "default": [ + 0, + 0, + 2, + 5, + 20 + ] + }, + "9": { + "default": [ + 0, + 0, + 1, + 3, + 10 + ] + }, + "10": { + "default": [ + 0, + 0, + 1, + 3, + 10 + ] + }, + "11": { + "default": [ + 0, + 0, + 0, + 0, + 0 + ], + "scatter": [ + 0, + 0, + 0, + 0, + 0 + ] + } + }, + "special_symbols": [ + { + "kind": "wild", + "symbol": "0" + }, + { + "kind": "scatter", + "symbol": "11" + } + ], + "lines": [ + [ + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 1, + 1, + 1, + 1 + ], + [ + 2, + 2, + 2, + 2, + 2 + ], + [ + 3, + 3, + 3, + 3, + 3 + ], + [ + 0, + 1, + 0, + 1, + 0 + ], + [ + 1, + 0, + 1, + 0, + 1 + ], + [ + 1, + 2, + 1, + 2, + 1 + ], + [ + 2, + 1, + 2, + 1, + 2 + ], + [ + 2, + 3, + 2, + 3, + 2 + ], + [ + 3, + 2, + 3, + 2, + 3 + ], + [ + 0, + 1, + 1, + 1, + 0 + ], + [ + 1, + 0, + 0, + 0, + 1 + ], + [ + 1, + 2, + 2, + 2, + 1 + ], + [ + 2, + 1, + 1, + 1, + 2 + ], + [ + 2, + 3, + 3, + 3, + 2 + ], + [ + 3, + 2, + 2, + 2, + 3 + ] + ], + "reels": { + "main": [ + [ + "6", + "2", + "10", + "5", + "10", + "1", + "1", + "10", + "7", + "8", + "2", + "4", + "10", + "6", + "9", + "5", + "9", + "5", + "7", + "10", + "3", + "10", + "8", + "4", + "9", + "3", + "5", + "10", + "4", + "9", + "2", + "10", + "3", + "6", + "2", + "5", + "10", + "5", + "9", + "5", + "2", + "10", + "6", + "2", + "7", + "4", + "10", + "4", + "5", + "10", + "2", + "10", + "7", + "2", + "5", + "4", + "3", + "8", + "5", + "10", + "9", + "10", + "4", + "2", + "10", + "1", + "10", + "5" + ], + [ + "5", + "10", + "2", + "9", + "10", + "2", + "9", + "7", + "4", + "9", + "8", + "5", + "9", + "4", + "3", + "8", + "10", + "1", + "1", + "3", + "9", + "4", + "6", + "9", + "3", + "5", + "4", + "2", + "7", + "10", + "1", + "10", + "5", + "6", + "3", + "10", + "2", + "6", + "3", + "9", + "1", + "9", + "2", + "6", + "9", + "1", + "5", + "7", + "9", + "4", + "10", + "4", + "9", + "2", + "9", + "4", + "3", + "10", + "5", + "2", + "5", + "6", + "1", + "10", + "5", + "10" + ], + [ + "10", + "5", + "6", + "6", + "2", + "8", + "1", + "5", + "8", + "10", + "3", + "8", + "7", + "3", + "5", + "4", + "10", + "5", + "6", + "4", + "10", + "10", + "3", + "7", + "9", + "5", + "4", + "5", + "10", + "1", + "7", + "3", + "7", + "4", + "4", + "4", + "8", + "10", + "1", + "10", + "9", + "5", + "3", + "9", + "5", + "5", + "10", + "2", + "9", + "4", + "2", + "6", + "10", + "5", + "10", + "5", + "10", + "8", + "3", + "10", + "5" + ], + [ + "6", + "10", + "5", + "2", + "7", + "8", + "8", + "9", + "5", + "6", + "3", + "3", + "7", + "4", + "9", + "1", + "2", + "6", + "4", + "4", + "2", + "10", + "6", + "6", + "5", + "5", + "4", + "5", + "7", + "3", + "10", + "9", + "2", + "3", + "6", + "9", + "6", + "6", + "3", + "7", + "10", + "7", + "8", + "3", + "8", + "10", + "5", + "9", + "9", + "3", + "5", + "5", + "10", + "10", + "5", + "1", + "7", + "7", + "5", + "6", + "7", + "3", + "10", + "5", + "1" + ], + [ + "2", + "8", + "1", + "6", + "4", + "10", + "5", + "10", + "3", + "7", + "6", + "5", + "1", + "9", + "4", + "4", + "4", + "8", + "3", + "9", + "9", + "5", + "7", + "1", + "7", + "5", + "1", + "9", + "4", + "8", + "2", + "10", + "5", + "5", + "4", + "9", + "1", + "6", + "5", + "9", + "2", + "3", + "6", + "3", + "6", + "4", + "10", + "5", + "9", + "4", + "7", + "6", + "5", + "4", + "8", + "9", + "2", + "7", + "4", + "6", + "3", + "8", + "3", + "2", + "1" + ] + ], + "freespins": [ + [ + "6", + "6", + "5", + "7", + "4", + "8", + "10", + "5", + "10", + "6", + "9", + "5", + "7", + "7", + "3", + "8", + "8", + "9", + "7", + "10", + "4", + "10", + "9", + "2", + "4", + "9", + "6", + "3", + "7", + "7", + "5", + "9", + "4", + "10", + "2", + "9", + "4", + "8", + "8", + "6", + "5", + "6", + "10", + "5", + "9", + "8", + "5", + "7", + "4", + "10", + "6", + "3", + "9", + "8", + "6", + "4", + "9", + "1", + "1", + "1", + "1", + "10", + "9", + "5", + "10" + ], + [ + "5", + "1", + "3", + "5", + "9", + "1", + "5", + "1", + "2", + "5", + "6", + "5", + "6", + "5", + "3", + "8", + "5", + "1", + "6", + "1", + "5", + "4", + "6", + "2", + "3", + "1", + "4", + "5", + "7", + "5", + "6", + "2", + "5", + "1", + "1", + "1", + "1", + "1", + "5", + "10", + "6", + "3", + "2", + "6", + "4", + "5", + "1", + "6", + "5", + "9", + "1", + "5", + "1", + "6", + "5", + "4", + "5", + "9", + "2", + "4", + "5", + "1", + "9", + "2", + "8", + "5", + "6", + "5", + "6", + "4", + "1", + "5", + "1", + "1", + "5" + ], + [ + "5", + "5", + "1", + "6", + "5", + "1", + "5", + "8", + "5", + "6", + "5", + "8", + "5", + "3", + "8", + "5", + "6", + "5", + "1", + "4", + "5", + "6", + "4", + "3", + "1", + "3", + "5", + "4", + "4", + "10", + "5", + "6", + "7", + "5", + "3", + "5", + "7", + "1", + "5", + "5", + "4", + "1", + "1", + "5", + "10", + "6", + "5", + "5", + "6", + "5", + "3", + "1", + "5", + "6", + "2", + "1", + "6", + "1", + "3", + "5", + "4", + "9", + "5", + "6", + "5", + "1", + "7", + "5", + "2", + "4", + "8", + "5", + "1", + "5", + "1", + "1" + ], + [ + "1", + "1", + "6", + "3", + "1", + "7", + "8", + "3", + "9", + "6", + "5", + "4", + "3", + "1", + "1", + "5", + "4", + "1", + "2", + "10", + "6", + "5", + "5", + "3", + "7", + "1", + "3", + "9", + "10", + "1", + "5", + "9", + "5", + "6", + "1", + "6", + "10", + "1", + "8", + "5", + "3", + "6", + "4", + "8", + "10", + "1", + "9", + "5", + "5", + "10", + "1", + "10", + "2", + "5", + "7", + "5", + "6", + "1", + "6", + "2", + "1", + "5", + "6", + "1", + "4", + "1", + "1" + ], + [ + "10", + "8", + "6", + "8", + "10", + "5", + "10", + "3", + "9", + "6", + "7", + "7", + "7", + "4", + "9", + "4", + "10", + "3", + "9", + "9", + "5", + "10", + "7", + "1", + "2", + "10", + "5", + "5", + "9", + "9", + "6", + "6", + "9", + "2", + "3", + "6", + "4", + "10", + "9", + "8", + "7", + "6", + "5", + "4", + "8", + "9", + "10", + "7", + "8", + "6", + "6", + "1", + "1", + "1", + "1", + "1", + "1", + "8", + "4", + "10", + "9", + "5" + ] + ], + "respin": [ + [ + "10", + "6", + "10", + "5", + "8", + "9", + "10", + "10", + "4", + "6", + "5", + "10", + "7", + "7", + "3", + "8", + "8", + "9", + "9", + "9", + "5", + "1", + "8", + "10", + "9", + "2", + "10", + "5", + "6", + "10", + "7", + "7", + "5", + "9", + "10", + "2", + "10", + "7", + "10", + "6", + "4", + "8", + "8", + "10", + "6", + "5", + "10", + "5", + "6", + "10", + "9", + "8", + "7", + "6", + "5", + "9", + "10", + "8", + "5", + "8", + "6", + "9", + "6", + "4", + "10", + "6" + ], + [ + "5", + "9", + "10", + "9", + "10", + "7", + "4", + "9", + "8", + "10", + "9", + "10", + "3", + "8", + "10", + "8", + "10", + "9", + "4", + "6", + "9", + "1", + "10", + "9", + "4", + "7", + "7", + "10", + "9", + "10", + "3", + "10", + "10", + "6", + "6", + "3", + "8", + "9", + "10", + "9", + "8", + "6", + "9", + "5", + "7", + "9", + "4", + "10", + "9", + "9", + "2", + "9", + "4", + "10", + "10", + "5", + "9", + "8", + "6" + ], + [ + "10", + "10", + "6", + "6", + "8", + "8", + "9", + "5", + "8", + "10", + "3", + "8", + "7", + "7", + "5", + "4", + "6", + "9", + "4", + "10", + "10", + "3", + "7", + "6", + "4", + "10", + "9", + "4", + "10", + "10", + "6", + "3", + "9", + "7", + "4", + "4", + "10", + "8", + "10", + "5", + "10", + "9", + "10", + "9", + "5", + "1", + "9", + "10", + "5", + "10", + "2", + "9", + "8", + "7", + "6", + "5", + "4", + "10", + "10", + "5", + "9", + "8", + "7", + "10", + "6" + ], + [ + "6", + "10", + "8", + "7", + "8", + "8", + "9", + "9", + "5", + "6", + "7", + "7", + "4", + "9", + "10", + "8", + "6", + "4", + "4", + "2", + "10", + "6", + "6", + "5", + "5", + "7", + "7", + "1", + "9", + "10", + "3", + "6", + "9", + "8", + "6", + "7", + "9", + "7", + "8", + "3", + "8", + "10", + "9", + "10", + "10", + "7", + "5", + "10", + "9", + "9", + "4", + "7", + "7", + "9", + "10", + "7", + "6" + ], + [ + "10", + "8", + "6", + "8", + "9", + "5", + "7", + "3", + "7", + "6", + "7", + "7", + "7", + "4", + "4", + "8", + "9", + "9", + "5", + "9", + "7", + "9", + "8", + "8", + "10", + "5", + "8", + "7", + "6", + "5", + "9", + "4", + "9", + "6", + "9", + "9", + "3", + "6", + "8", + "9", + "4", + "10", + "9", + "8", + "7", + "6", + "5", + "4", + "8", + "9", + "10", + "7", + "8", + "6", + "6", + "8", + "10", + "7", + "9", + "9", + "7", + "10" + ] + ] + }, + "layout": { + "reels": 5, + "rows": 4 + }, + "currency": { + "code": "EUR", + "symbol": "€", + "subunits": 100, + "exponent": 2 + }, + "screen": [ + [ + "10", + "4", + "6", + "10" + ], + [ + "3", + "9", + "1", + "9" + ], + [ + "5", + "9", + "5", + "9" + ], + [ + "5", + "1", + "6", + "10" + ], + [ + "9", + "9", + "5", + "7" + ] + ], + "feature_options": { + "feature_multipliers": { + "freespin_buy": 20200, + "bonus_buy": 10100, + "bonus_chance": 300 + }, + "disabled_features": [] + } + }, + "balance": { + "game": 0, + "wallet": 101088 + }, + "flow": { + "round_id": null, + "last_action_id": null, + "state": "ready", + "command": "init", + "available_actions": [ + "init", + "spin" + ], + "purchased_feature": {} + } + } +] diff --git a/dataPresets/data_1.json b/dataPresets/data_1.json new file mode 100644 index 0000000..5deaa05 --- /dev/null +++ b/dataPresets/data_1.json @@ -0,0 +1,9267 @@ +[ + { + "api_version": "2", + "options": { + "available_bets": [ + 100, + 200, + 500, + 1000, + 1400, + 1600, + 1800, + 2000, + 2500, + 3000, + 3500, + 4000, + 4500, + 5000, + 5500, + 6000, + 6500, + 7000, + 7500, + 8000, + 8500, + 9000, + 9500, + 10000, + 11000, + 12000, + 13000, + 14000, + 15000, + 16000, + 17000, + 18000, + 19000, + 20000, + 21000, + 22000, + 23000, + 24000, + 25000, + 26000, + 27000, + 28000, + 29000, + 30000 + ], + "default_bet": 100, + "base_bet": 10, + "paytable": { + "0": [ + 0, + 0, + 30, + 50, + 100 + ], + "1": [ + 0, + 0, + 30, + 50, + 100 + ], + "2": [ + 0, + 0, + 15, + 30, + 80 + ], + "3": [ + 0, + 0, + 10, + 20, + 60 + ], + "4": [ + 0, + 0, + 5, + 10, + 40 + ], + "5": [ + 0, + 0, + 5, + 10, + 40 + ], + "6": [ + 0, + 0, + 2, + 5, + 20 + ], + "7": [ + 0, + 0, + 2, + 5, + 20 + ], + "8": [ + 0, + 0, + 2, + 5, + 20 + ], + "9": [ + 0, + 0, + 1, + 3, + 10 + ], + "10": [ + 0, + 0, + 1, + 3, + 10 + ], + "11": [ + 0, + 0, + 0, + 0, + 0 + ] + }, + "paytables": { + "0": { + "default": [ + 0, + 0, + 30, + 50, + 100 + ] + }, + "1": { + "default": [ + 0, + 0, + 30, + 50, + 100 + ] + }, + "2": { + "default": [ + 0, + 0, + 15, + 30, + 80 + ] + }, + "3": { + "default": [ + 0, + 0, + 10, + 20, + 60 + ] + }, + "4": { + "default": [ + 0, + 0, + 5, + 10, + 40 + ] + }, + "5": { + "default": [ + 0, + 0, + 5, + 10, + 40 + ] + }, + "6": { + "default": [ + 0, + 0, + 2, + 5, + 20 + ] + }, + "7": { + "default": [ + 0, + 0, + 2, + 5, + 20 + ] + }, + "8": { + "default": [ + 0, + 0, + 2, + 5, + 20 + ] + }, + "9": { + "default": [ + 0, + 0, + 1, + 3, + 10 + ] + }, + "10": { + "default": [ + 0, + 0, + 1, + 3, + 10 + ] + }, + "11": { + "default": [ + 0, + 0, + 0, + 0, + 0 + ], + "scatter": [ + 0, + 0, + 0, + 0, + 0 + ] + } + }, + "special_symbols": [ + { + "kind": "wild", + "symbol": "0" + }, + { + "kind": "scatter", + "symbol": "11" + } + ], + "lines": [ + [ + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 1, + 1, + 1, + 1 + ], + [ + 2, + 2, + 2, + 2, + 2 + ], + [ + 3, + 3, + 3, + 3, + 3 + ], + [ + 0, + 1, + 0, + 1, + 0 + ], + [ + 1, + 0, + 1, + 0, + 1 + ], + [ + 1, + 2, + 1, + 2, + 1 + ], + [ + 2, + 1, + 2, + 1, + 2 + ], + [ + 2, + 3, + 2, + 3, + 2 + ], + [ + 3, + 2, + 3, + 2, + 3 + ], + [ + 0, + 1, + 1, + 1, + 0 + ], + [ + 1, + 0, + 0, + 0, + 1 + ], + [ + 1, + 2, + 2, + 2, + 1 + ], + [ + 2, + 1, + 1, + 1, + 2 + ], + [ + 2, + 3, + 3, + 3, + 2 + ], + [ + 3, + 2, + 2, + 2, + 3 + ] + ], + "reels": { + "main": [ + [ + "6", + "2", + "10", + "5", + "10", + "1", + "1", + "10", + "7", + "8", + "2", + "4", + "10", + "6", + "9", + "5", + "9", + "5", + "7", + "10", + "3", + "10", + "8", + "4", + "9", + "3", + "5", + "10", + "4", + "9", + "2", + "10", + "3", + "6", + "2", + "5", + "10", + "5", + "9", + "5", + "2", + "10", + "6", + "2", + "7", + "4", + "10", + "4", + "5", + "10", + "2", + "10", + "7", + "2", + "5", + "4", + "3", + "8", + "5", + "10", + "9", + "10", + "4", + "2", + "10", + "1", + "10", + "5" + ], + [ + "5", + "10", + "2", + "9", + "10", + "2", + "9", + "7", + "4", + "9", + "8", + "5", + "9", + "4", + "3", + "8", + "10", + "1", + "1", + "3", + "9", + "4", + "6", + "9", + "3", + "5", + "4", + "2", + "7", + "10", + "1", + "10", + "5", + "6", + "3", + "10", + "2", + "6", + "3", + "9", + "1", + "9", + "2", + "6", + "9", + "1", + "5", + "7", + "9", + "4", + "10", + "4", + "9", + "2", + "9", + "4", + "3", + "10", + "5", + "2", + "5", + "6", + "1", + "10", + "5", + "10" + ], + [ + "10", + "5", + "6", + "6", + "2", + "8", + "1", + "5", + "8", + "10", + "3", + "8", + "7", + "3", + "5", + "4", + "10", + "5", + "6", + "4", + "10", + "10", + "3", + "7", + "9", + "5", + "4", + "5", + "10", + "1", + "7", + "3", + "7", + "4", + "4", + "4", + "8", + "10", + "1", + "10", + "9", + "5", + "3", + "9", + "5", + "5", + "10", + "2", + "9", + "4", + "2", + "6", + "10", + "5", + "10", + "5", + "10", + "8", + "3", + "10", + "5" + ], + [ + "6", + "10", + "5", + "2", + "7", + "8", + "8", + "9", + "5", + "6", + "3", + "3", + "7", + "4", + "9", + "1", + "2", + "6", + "4", + "4", + "2", + "10", + "6", + "6", + "5", + "5", + "4", + "5", + "7", + "3", + "10", + "9", + "2", + "3", + "6", + "9", + "6", + "6", + "3", + "7", + "10", + "7", + "8", + "3", + "8", + "10", + "5", + "9", + "9", + "3", + "5", + "5", + "10", + "10", + "5", + "1", + "7", + "7", + "5", + "6", + "7", + "3", + "10", + "5", + "1" + ], + [ + "2", + "8", + "1", + "6", + "4", + "10", + "5", + "10", + "3", + "7", + "6", + "5", + "1", + "9", + "4", + "4", + "4", + "8", + "3", + "9", + "9", + "5", + "7", + "1", + "7", + "5", + "1", + "9", + "4", + "8", + "2", + "10", + "5", + "5", + "4", + "9", + "1", + "6", + "5", + "9", + "2", + "3", + "6", + "3", + "6", + "4", + "10", + "5", + "9", + "4", + "7", + "6", + "5", + "4", + "8", + "9", + "2", + "7", + "4", + "6", + "3", + "8", + "3", + "2", + "1" + ] + ], + "freespins": [ + [ + "6", + "6", + "5", + "7", + "4", + "8", + "10", + "5", + "10", + "6", + "9", + "5", + "7", + "7", + "3", + "8", + "8", + "9", + "7", + "10", + "4", + "10", + "9", + "2", + "4", + "9", + "6", + "3", + "7", + "7", + "5", + "9", + "4", + "10", + "2", + "9", + "4", + "8", + "8", + "6", + "5", + "6", + "10", + "5", + "9", + "8", + "5", + "7", + "4", + "10", + "6", + "3", + "9", + "8", + "6", + "4", + "9", + "1", + "1", + "1", + "1", + "10", + "9", + "5", + "10" + ], + [ + "5", + "1", + "3", + "5", + "9", + "1", + "5", + "1", + "2", + "5", + "6", + "5", + "6", + "5", + "3", + "8", + "5", + "1", + "6", + "1", + "5", + "4", + "6", + "2", + "3", + "1", + "4", + "5", + "7", + "5", + "6", + "2", + "5", + "1", + "1", + "1", + "1", + "1", + "5", + "10", + "6", + "3", + "2", + "6", + "4", + "5", + "1", + "6", + "5", + "9", + "1", + "5", + "1", + "6", + "5", + "4", + "5", + "9", + "2", + "4", + "5", + "1", + "9", + "2", + "8", + "5", + "6", + "5", + "6", + "4", + "1", + "5", + "1", + "1", + "5" + ], + [ + "5", + "5", + "1", + "6", + "5", + "1", + "5", + "8", + "5", + "6", + "5", + "8", + "5", + "3", + "8", + "5", + "6", + "5", + "1", + "4", + "5", + "6", + "4", + "3", + "1", + "3", + "5", + "4", + "4", + "10", + "5", + "6", + "7", + "5", + "3", + "5", + "7", + "1", + "5", + "5", + "4", + "1", + "1", + "5", + "10", + "6", + "5", + "5", + "6", + "5", + "3", + "1", + "5", + "6", + "2", + "1", + "6", + "1", + "3", + "5", + "4", + "9", + "5", + "6", + "5", + "1", + "7", + "5", + "2", + "4", + "8", + "5", + "1", + "5", + "1", + "1" + ], + [ + "1", + "1", + "6", + "3", + "1", + "7", + "8", + "3", + "9", + "6", + "5", + "4", + "3", + "1", + "1", + "5", + "4", + "1", + "2", + "10", + "6", + "5", + "5", + "3", + "7", + "1", + "3", + "9", + "10", + "1", + "5", + "9", + "5", + "6", + "1", + "6", + "10", + "1", + "8", + "5", + "3", + "6", + "4", + "8", + "10", + "1", + "9", + "5", + "5", + "10", + "1", + "10", + "2", + "5", + "7", + "5", + "6", + "1", + "6", + "2", + "1", + "5", + "6", + "1", + "4", + "1", + "1" + ], + [ + "10", + "8", + "6", + "8", + "10", + "5", + "10", + "3", + "9", + "6", + "7", + "7", + "7", + "4", + "9", + "4", + "10", + "3", + "9", + "9", + "5", + "10", + "7", + "1", + "2", + "10", + "5", + "5", + "9", + "9", + "6", + "6", + "9", + "2", + "3", + "6", + "4", + "10", + "9", + "8", + "7", + "6", + "5", + "4", + "8", + "9", + "10", + "7", + "8", + "6", + "6", + "1", + "1", + "1", + "1", + "1", + "1", + "8", + "4", + "10", + "9", + "5" + ] + ], + "respin": [ + [ + "10", + "6", + "10", + "5", + "8", + "9", + "10", + "10", + "4", + "6", + "5", + "10", + "7", + "7", + "3", + "8", + "8", + "9", + "9", + "9", + "5", + "1", + "8", + "10", + "9", + "2", + "10", + "5", + "6", + "10", + "7", + "7", + "5", + "9", + "10", + "2", + "10", + "7", + "10", + "6", + "4", + "8", + "8", + "10", + "6", + "5", + "10", + "5", + "6", + "10", + "9", + "8", + "7", + "6", + "5", + "9", + "10", + "8", + "5", + "8", + "6", + "9", + "6", + "4", + "10", + "6" + ], + [ + "5", + "9", + "10", + "9", + "10", + "7", + "4", + "9", + "8", + "10", + "9", + "10", + "3", + "8", + "10", + "8", + "10", + "9", + "4", + "6", + "9", + "1", + "10", + "9", + "4", + "7", + "7", + "10", + "9", + "10", + "3", + "10", + "10", + "6", + "6", + "3", + "8", + "9", + "10", + "9", + "8", + "6", + "9", + "5", + "7", + "9", + "4", + "10", + "9", + "9", + "2", + "9", + "4", + "10", + "10", + "5", + "9", + "8", + "6" + ], + [ + "10", + "10", + "6", + "6", + "8", + "8", + "9", + "5", + "8", + "10", + "3", + "8", + "7", + "7", + "5", + "4", + "6", + "9", + "4", + "10", + "10", + "3", + "7", + "6", + "4", + "10", + "9", + "4", + "10", + "10", + "6", + "3", + "9", + "7", + "4", + "4", + "10", + "8", + "10", + "5", + "10", + "9", + "10", + "9", + "5", + "1", + "9", + "10", + "5", + "10", + "2", + "9", + "8", + "7", + "6", + "5", + "4", + "10", + "10", + "5", + "9", + "8", + "7", + "10", + "6" + ], + [ + "6", + "10", + "8", + "7", + "8", + "8", + "9", + "9", + "5", + "6", + "7", + "7", + "4", + "9", + "10", + "8", + "6", + "4", + "4", + "2", + "10", + "6", + "6", + "5", + "5", + "7", + "7", + "1", + "9", + "10", + "3", + "6", + "9", + "8", + "6", + "7", + "9", + "7", + "8", + "3", + "8", + "10", + "9", + "10", + "10", + "7", + "5", + "10", + "9", + "9", + "4", + "7", + "7", + "9", + "10", + "7", + "6" + ], + [ + "10", + "8", + "6", + "8", + "9", + "5", + "7", + "3", + "7", + "6", + "7", + "7", + "7", + "4", + "4", + "8", + "9", + "9", + "5", + "9", + "7", + "9", + "8", + "8", + "10", + "5", + "8", + "7", + "6", + "5", + "9", + "4", + "9", + "6", + "9", + "9", + "3", + "6", + "8", + "9", + "4", + "10", + "9", + "8", + "7", + "6", + "5", + "4", + "8", + "9", + "10", + "7", + "8", + "6", + "6", + "8", + "10", + "7", + "9", + "9", + "7", + "10" + ] + ] + }, + "layout": { + "reels": 5, + "rows": 4 + }, + "currency": { + "code": "EUR", + "symbol": "€", + "subunits": 100, + "exponent": 2 + }, + "screen": [ + [ + "6", + "2", + "6", + "10" + ], + [ + "7", + "9", + "3", + "5" + ], + [ + "9", + "5", + "5", + "9" + ], + [ + "6", + "9", + "6", + "6" + ], + [ + "6", + "4", + "10", + "5" + ] + ], + "feature_options": { + "feature_multipliers": { + "freespin_buy": 20000, + "bonus_buy": 10000, + "bonus_chance": 300 + }, + "disabled_features": [] + } + }, + "balance": { + "game": 0, + "wallet": 106130, + "free_rounds": 0 + }, + "flow": { + "round_id": 176198, + "last_action_id": "176198_1", + "state": "ready", + "command": "init", + "available_actions": [ + "init", + "spin" + ], + "purchased_feature": {} + }, + "free_rounds": { + "status": "active", + "bet_level": 0, + "performed": 0, + "count": 13 + } + }, + { + "api_version": "2", + "outcome": { + "screen": [ + [ + "5", + "7", + "10", + "3" + ], + [ + "3", + "10", + "5", + "2" + ], + [ + "7", + "3", + "5", + "4" + ], + [ + "5", + "9", + "9", + "3" + ], + [ + "1", + "9", + "4", + "8" + ] + ], + "special_symbols": {}, + "bet": 100, + "win": 0, + "wins": [], + "storage": { + "wilds": [] + } + }, + "balance": { + "game": 0, + "wallet": 106130, + "free_rounds": 0 + }, + "flow": { + "round_id": 176199, + "last_action_id": "176199_1", + "state": "closed", + "command": "spin", + "available_actions": [ + "init", + "spin" + ], + "purchased_feature": {} + }, + "free_rounds": { + "status": "active", + "bet_level": 0, + "performed": 1, + "count": 13 + } + }, + { + "api_version": "2", + "outcome": { + "screen": [ + [ + "2", + "4", + "10", + "6" + ], + [ + "2", + "6", + "3", + "9" + ], + [ + "10", + "1", + "10", + "9" + ], + [ + "10", + "5", + "2", + "7" + ], + [ + "6", + "3", + "8", + "3" + ] + ], + "special_symbols": {}, + "bet": 100, + "win": 0, + "wins": [], + "storage": { + "wilds": [] + } + }, + "balance": { + "game": 0, + "wallet": 106130, + "free_rounds": 100 + }, + "flow": { + "round_id": 176200, + "last_action_id": "176200_1", + "state": "closed", + "command": "spin", + "available_actions": [ + "init", + "spin" + ], + "purchased_feature": {} + }, + "free_rounds": { + "status": "active", + "bet_level": 0, + "performed": 2, + "count": 13 + } + }, + { + "api_version": "2", + "outcome": { + "screen": [ + [ + "3", + "8", + "5", + "10" + ], + [ + "10", + "2", + "9", + "10" + ], + [ + "1", + "7", + "3", + "7" + ], + [ + "6", + "5", + "5", + "4" + ], + [ + "7", + "4", + "6", + "3" + ] + ], + "special_symbols": {}, + "bet": 100, + "win": 0, + "wins": [], + "storage": { + "wilds": [] + } + }, + "balance": { + "game": 0, + "wallet": 106130, + "free_rounds": 100 + }, + "flow": { + "round_id": 176201, + "last_action_id": "176201_1", + "state": "closed", + "command": "spin", + "available_actions": [ + "init", + "spin" + ], + "purchased_feature": {} + }, + "free_rounds": { + "status": "active", + "bet_level": 0, + "performed": 3, + "count": 13 + } + }, + { + "api_version": "2", + "features": { + "respins_issued": 3, + "respins_left": 3, + "sticky_wilds": [ + [ + [ + 2, + 0 + ], + 4, + 0 + ], + [ + [ + 3, + 1 + ], + 2, + 0 + ], + [ + [ + 4, + 3 + ], + 1, + 0 + ] + ] + }, + "outcome": { + "screen": [ + [ + "6", + "2", + "5", + "10" + ], + [ + "9", + "10", + "2", + "9" + ], + [ + "0", + "10", + "5", + "10" + ], + [ + "3", + "0", + "5", + "10" + ], + [ + "1", + "9", + "4", + "0" + ] + ], + "special_symbols": { + "wild": { + "0": [ + [ + 2, + 0 + ], + [ + 3, + 1 + ], + [ + 4, + 3 + ] + ] + } + }, + "bet": 100, + "win": 0, + "wins": [], + "storage": { + "wilds": [ + [ + [ + 2, + 0 + ], + 4, + 0 + ], + [ + [ + 3, + 1 + ], + 2, + 0 + ], + [ + [ + 4, + 3 + ], + 1, + 0 + ] + ] + } + }, + "balance": { + "game": 0, + "wallet": 106130, + "free_rounds": 0 + }, + "flow": { + "round_id": 176202, + "last_action_id": "176202_1", + "state": "respin", + "command": "spin", + "available_actions": [ + "init", + "respin" + ], + "purchased_feature": {} + }, + "free_rounds": { + "status": "active", + "bet_level": 0, + "performed": 4, + "count": 13 + } + }, + { + "api_version": "2", + "features": { + "respins_issued": 3, + "respins_left": 3, + "sticky_wilds": [ + [ + [ + 0, + 2 + ], + 2, + 0 + ], + [ + [ + 2, + 0 + ], + 4, + 0 + ], + [ + [ + 3, + 1 + ], + 2, + 0 + ], + [ + [ + 4, + 3 + ], + 1, + 0 + ] + ] + }, + "outcome": { + "screen": [ + [ + "8", + "9", + "0", + "9" + ], + [ + "9", + "8", + "6", + "9" + ], + [ + "0", + "8", + "10", + "3" + ], + [ + "7", + "0", + "6", + "10" + ], + [ + "6", + "8", + "9", + "0" + ] + ], + "special_symbols": { + "wild": { + "0": [ + [ + 0, + 2 + ], + [ + 2, + 0 + ], + [ + 3, + 1 + ], + [ + 4, + 3 + ] + ] + } + }, + "bet": 100, + "win": 40000, + "wins": [ + [ + "line", + 300, + [ + 0, + 1, + 0, + 1 + ], + 4 + ], + [ + "line", + 100, + [ + 0, + 1, + 1, + 1 + ], + 10 + ], + [ + "line", + 40, + [ + 1, + 0, + 0 + ], + 11 + ], + [ + "line", + 200, + [ + 2, + 1, + 1, + 1 + ], + 13 + ] + ], + "storage": { + "wilds": [ + [ + [ + 0, + 2 + ], + 2, + 0 + ], + [ + [ + 2, + 0 + ], + 4, + 0 + ], + [ + [ + 3, + 1 + ], + 2, + 0 + ], + [ + [ + 4, + 3 + ], + 1, + 0 + ] + ] + } + }, + "balance": { + "game": 640, + "wallet": 106130, + "free_rounds": 0 + }, + "flow": { + "round_id": 176202, + "last_action_id": "176202_2", + "state": "respin", + "command": "respin", + "available_actions": [ + "init", + "respin" + ], + "purchased_feature": {} + }, + "free_rounds": { + "status": "active", + "bet_level": 0, + "performed": 4, + "count": 13 + } + }, + { + "api_version": "2", + "features": { + "respins_issued": 3, + "respins_left": 2, + "sticky_wilds": [ + [ + [ + 0, + 2 + ], + 2, + 0 + ], + [ + [ + 2, + 0 + ], + 4, + 0 + ], + [ + [ + 3, + 1 + ], + 2, + 0 + ], + [ + [ + 4, + 3 + ], + 1, + 0 + ] + ] + }, + "outcome": { + "screen": [ + [ + "6", + "10", + "0", + "7" + ], + [ + "10", + "9", + "10", + "3" + ], + [ + "0", + "9", + "4", + "10" + ], + [ + "3", + "0", + "9", + "8" + ], + [ + "9", + "6", + "9", + "0" + ] + ], + "special_symbols": { + "wild": { + "0": [ + [ + 0, + 2 + ], + [ + 2, + 0 + ], + [ + 3, + 1 + ], + [ + 4, + 3 + ] + ] + } + }, + "bet": 100, + "win": 440, + "wins": [ + [ + "line", + 40, + [ + 1, + 0, + 0 + ], + 11 + ], + [ + "line", + 400, + [ + 2, + 1, + 1, + 1, + 2 + ], + 13 + ] + ], + "storage": { + "wilds": [ + [ + [ + 0, + 2 + ], + 2, + 0 + ], + [ + [ + 2, + 0 + ], + 4, + 0 + ], + [ + [ + 3, + 1 + ], + 2, + 0 + ], + [ + [ + 4, + 3 + ], + 1, + 0 + ] + ] + } + }, + "balance": { + "game": 1080, + "wallet": 106130, + "free_rounds": 0 + }, + "flow": { + "round_id": 176202, + "last_action_id": "176202_3", + "state": "respin", + "command": "respin", + "available_actions": [ + "init", + "respin" + ], + "purchased_feature": {} + }, + "free_rounds": { + "status": "active", + "bet_level": 0, + "performed": 4, + "count": 13 + } + }, + { + "api_version": "2", + "features": { + "respins_issued": 3, + "respins_left": 1, + "sticky_wilds": [ + [ + [ + 0, + 2 + ], + 2, + 0 + ], + [ + [ + 2, + 0 + ], + 4, + 0 + ], + [ + [ + 3, + 1 + ], + 2, + 0 + ], + [ + [ + 4, + 3 + ], + 1, + 0 + ] + ] + }, + "outcome": { + "screen": [ + [ + "10", + "4", + "0", + "5" + ], + [ + "6", + "9", + "5", + "7" + ], + [ + "0", + "10", + "5", + "10" + ], + [ + "8", + "0", + "8", + "10" + ], + [ + "9", + "10", + "7", + "0" + ] + ], + "special_symbols": { + "wild": { + "0": [ + [ + 0, + 2 + ], + [ + 2, + 0 + ], + [ + 3, + 1 + ], + [ + 4, + 3 + ] + ] + } + }, + "bet": 100, + "win": 150, + "wins": [ + [ + "line", + 100, + [ + 2, + 2, + 2 + ], + 2 + ], + [ + "line", + 50, + [ + 3, + 2, + 2 + ], + 15 + ] + ], + "storage": { + "wilds": [ + [ + [ + 0, + 2 + ], + 2, + 0 + ], + [ + [ + 2, + 0 + ], + 4, + 0 + ], + [ + [ + 3, + 1 + ], + 2, + 0 + ], + [ + [ + 4, + 3 + ], + 1, + 0 + ] + ] + } + }, + "balance": { + "game": 1230, + "wallet": 106130, + "free_rounds": 0 + }, + "flow": { + "round_id": 176202, + "last_action_id": "176202_4", + "state": "respin", + "command": "respin", + "available_actions": [ + "init", + "respin" + ], + "purchased_feature": {} + }, + "free_rounds": { + "status": "active", + "bet_level": 0, + "performed": 4, + "count": 13 + } + }, + { + "api_version": "2", + "features": { + "respins_issued": 3, + "respins_left": 0, + "sticky_wilds": [ + [ + [ + 0, + 2 + ], + 2, + 0 + ], + [ + [ + 2, + 0 + ], + 4, + 0 + ], + [ + [ + 3, + 1 + ], + 2, + 0 + ], + [ + [ + 4, + 3 + ], + 1, + 0 + ] + ] + }, + "outcome": { + "screen": [ + [ + "8", + "9", + "0", + "10" + ], + [ + "10", + "3", + "8", + "10" + ], + [ + "0", + "5", + "10", + "2" + ], + [ + "9", + "0", + "6", + "7" + ], + [ + "5", + "4", + "8", + "0" + ] + ], + "special_symbols": { + "wild": { + "0": [ + [ + 0, + 2 + ], + [ + 2, + 0 + ], + [ + 3, + 1 + ], + [ + 4, + 3 + ] + ] + } + }, + "bet": 100, + "win": 20, + "wins": [ + [ + "line", + 20, + [ + 2, + 3, + 2 + ], + 8 + ] + ], + "storage": { + "wilds": [ + [ + [ + 0, + 2 + ], + 2, + 0 + ], + [ + [ + 2, + 0 + ], + 4, + 0 + ], + [ + [ + 3, + 1 + ], + 2, + 0 + ], + [ + [ + 4, + 3 + ], + 1, + 0 + ] + ] + } + }, + "balance": { + "game": 1250, + "wallet": 106130, + "free_rounds": 0 + }, + "flow": { + "round_id": 176202, + "last_action_id": "176202_5", + "state": "closed", + "command": "respin", + "available_actions": [ + "init", + "spin" + ], + "purchased_feature": {} + }, + "free_rounds": { + "status": "active", + "bet_level": 0, + "performed": 4, + "count": 13 + } + }, + { + "api_version": "2", + "outcome": { + "screen": [ + [ + "2", + "10", + "5", + "10" + ], + [ + "6", + "3", + "10", + "2" + ], + [ + "10", + "10", + "3", + "7" + ], + [ + "7", + "3", + "10", + "9" + ], + [ + "2", + "1", + "2", + "8" + ] + ], + "special_symbols": {}, + "bet": 100, + "win": 30, + "wins": [ + [ + "line", + 30, + [ + 1, + 2, + 1, + 2 + ], + 6 + ] + ], + "storage": { + "wilds": [] + } + }, + "balance": { + "game": 30, + "wallet": 106130, + "free_rounds": 1250 + }, + "flow": { + "round_id": 176203, + "last_action_id": "176203_1", + "state": "closed", + "command": "spin", + "available_actions": [ + "init", + "spin" + ], + "purchased_feature": {} + }, + "free_rounds": { + "status": "active", + "bet_level": 0, + "performed": 5, + "count": 13 + } + }, + { + "api_version": "2", + "outcome": { + "screen": [ + [ + "3", + "8", + "5", + "10" + ], + [ + "9", + "4", + "3", + "8" + ], + [ + "4", + "10", + "5", + "6" + ], + [ + "10", + "6", + "6", + "5" + ], + [ + "9", + "9", + "5", + "7" + ] + ], + "special_symbols": {}, + "bet": 100, + "win": 0, + "wins": [], + "storage": { + "wilds": [] + } + }, + "balance": { + "game": 0, + "wallet": 106130, + "free_rounds": 1280 + }, + "flow": { + "round_id": 176204, + "last_action_id": "176204_1", + "state": "closed", + "command": "spin", + "available_actions": [ + "init", + "spin" + ], + "purchased_feature": {} + }, + "free_rounds": { + "status": "active", + "bet_level": 0, + "performed": 6, + "count": 13 + } + }, + { + "api_version": "2", + "outcome": { + "screen": [ + [ + "5", + "11", + "3", + "8" + ], + [ + "0", + "2", + "9", + "10" + ], + [ + "4", + "8", + "10", + "1" + ], + [ + "10", + "5", + "1", + "6" + ], + [ + "2", + "11", + "4", + "6" + ] + ], + "special_symbols": { + "scatter": { + "11": [ + [ + 0, + 1 + ], + [ + 4, + 1 + ] + ] + }, + "wild": { + "0": [ + [ + 1, + 0 + ] + ] + } + }, + "bet": 100, + "win": 0, + "wins": [], + "storage": { + "wilds": [ + [ + [ + 1, + 0 + ], + 2, + 0 + ] + ] + } + }, + "balance": { + "game": 0, + "wallet": 106130, + "free_rounds": 1280 + }, + "flow": { + "round_id": 176205, + "last_action_id": "176205_1", + "state": "closed", + "command": "spin", + "available_actions": [ + "init", + "spin" + ], + "purchased_feature": {} + }, + "free_rounds": { + "status": "active", + "bet_level": 0, + "performed": 7, + "count": 13 + } + }, + { + "api_version": "2", + "outcome": { + "screen": [ + [ + "7", + "4", + "10", + "4" + ], + [ + "5", + "6", + "1", + "11" + ], + [ + "4", + "8", + "10", + "1" + ], + [ + "4", + "9", + "1", + "2" + ], + [ + "7", + "5", + "1", + "9" + ] + ], + "special_symbols": { + "scatter": { + "11": [ + [ + 1, + 3 + ] + ] + } + }, + "bet": 100, + "win": 0, + "wins": [], + "storage": { + "wilds": [] + } + }, + "balance": { + "game": 0, + "wallet": 106130, + "free_rounds": 1280 + }, + "flow": { + "round_id": 176206, + "last_action_id": "176206_1", + "state": "closed", + "command": "spin", + "available_actions": [ + "init", + "spin" + ], + "purchased_feature": {} + }, + "free_rounds": { + "status": "active", + "bet_level": 0, + "performed": 8, + "count": 13 + } + }, + { + "api_version": "2", + "outcome": { + "screen": [ + [ + "2", + "10", + "1", + "10" + ], + [ + "9", + "1", + "5", + "7" + ], + [ + "8", + "3", + "10", + "5" + ], + [ + "5", + "1", + "7", + "7" + ], + [ + "2", + "7", + "4", + "6" + ] + ], + "special_symbols": {}, + "bet": 100, + "win": 0, + "wins": [], + "storage": { + "wilds": [] + } + }, + "balance": { + "game": 0, + "wallet": 106130, + "free_rounds": 1280 + }, + "flow": { + "round_id": 176207, + "last_action_id": "176207_1", + "state": "closed", + "command": "spin", + "available_actions": [ + "init", + "spin" + ], + "purchased_feature": {} + }, + "free_rounds": { + "status": "active", + "bet_level": 0, + "performed": 9, + "count": 13 + } + }, + { + "api_version": "2", + "outcome": { + "screen": [ + [ + "2", + "4", + "10", + "6" + ], + [ + "5", + "7", + "9", + "4" + ], + [ + "4", + "2", + "6", + "10" + ], + [ + "10", + "5", + "1", + "7" + ], + [ + "5", + "1", + "9", + "4" + ] + ], + "special_symbols": {}, + "bet": 100, + "win": 0, + "wins": [], + "storage": { + "wilds": [] + } + }, + "balance": { + "game": 0, + "wallet": 106130, + "free_rounds": 1280 + }, + "flow": { + "round_id": 176208, + "last_action_id": "176208_1", + "state": "closed", + "command": "spin", + "available_actions": [ + "init", + "spin" + ], + "purchased_feature": {} + }, + "free_rounds": { + "status": "active", + "bet_level": 0, + "performed": 10, + "count": 13 + } + }, + { + "api_version": "2", + "outcome": { + "screen": [ + [ + "6", + "2", + "5", + "10" + ], + [ + "7", + "10", + "1", + "10" + ], + [ + "4", + "5", + "10", + "1" + ], + [ + "10", + "10", + "5", + "1" + ], + [ + "2", + "7", + "4", + "6" + ] + ], + "special_symbols": {}, + "bet": 100, + "win": 0, + "wins": [], + "storage": { + "wilds": [] + } + }, + "balance": { + "game": 0, + "wallet": 106130, + "free_rounds": 1280 + }, + "flow": { + "round_id": 176209, + "last_action_id": "176209_1", + "state": "closed", + "command": "spin", + "available_actions": [ + "init", + "spin" + ], + "purchased_feature": {} + }, + "free_rounds": { + "status": "active", + "bet_level": 0, + "performed": 11, + "count": 13 + } + }, + { + "api_version": "2", + "outcome": { + "screen": [ + [ + "10", + "6", + "2", + "7" + ], + [ + "2", + "9", + "10", + "2" + ], + [ + "8", + "10", + "0", + "10" + ], + [ + "4", + "4", + "2", + "10" + ], + [ + "3", + "9", + "9", + "5" + ] + ], + "special_symbols": { + "wild": { + "0": [ + [ + 2, + 2 + ] + ] + } + }, + "bet": 100, + "win": 600, + "wins": [ + [ + "line", + 600, + [ + 2, + 3, + 2 + ], + 8 + ] + ], + "storage": { + "wilds": [ + [ + [ + 2, + 2 + ], + 4, + 0 + ] + ] + } + }, + "balance": { + "game": 600, + "wallet": 106130, + "free_rounds": 1280 + }, + "flow": { + "round_id": 176210, + "last_action_id": "176210_1", + "state": "closed", + "command": "spin", + "available_actions": [ + "init", + "spin" + ], + "purchased_feature": {} + }, + "free_rounds": { + "status": "active", + "bet_level": 0, + "performed": 12, + "count": 13 + } + }, + { + "api_version": "2", + "outcome": { + "screen": [ + [ + "2", + "10", + "6", + "2" + ], + [ + "9", + "4", + "6", + "9" + ], + [ + "4", + "10", + "5", + "6" + ], + [ + "3", + "6", + "0", + "6" + ], + [ + "0", + "5", + "5", + "4" + ] + ], + "special_symbols": { + "wild": { + "0": [ + [ + 3, + 2 + ], + [ + 4, + 0 + ] + ] + } + }, + "bet": 100, + "win": 0, + "wins": [], + "storage": { + "wilds": [ + [ + [ + 3, + 2 + ], + 3, + 0 + ], + [ + [ + 4, + 0 + ], + 1, + 0 + ] + ] + } + }, + "balance": { + "game": 0, + "wallet": 106130, + "free_rounds": 1880 + }, + "flow": { + "round_id": 176211, + "last_action_id": "176211_1", + "state": "closed", + "command": "spin", + "available_actions": [ + "init", + "spin" + ], + "purchased_feature": {} + }, + "free_rounds": { + "status": "played", + "bet_level": 0, + "performed": 13, + "count": 13 + } + }, + { + "api_version": "2", + "outcome": { + "screen": [ + [ + "2", + "10", + "7", + "2" + ], + [ + "9", + "1", + "5", + "7" + ], + [ + "5", + "0", + "4", + "10" + ], + [ + "7", + "10", + "7", + "8" + ], + [ + "7", + "1", + "7", + "5" + ] + ], + "special_symbols": { + "wild": { + "0": [ + [ + 2, + 1 + ] + ] + } + }, + "bet": 100, + "win": 0, + "wins": [], + "storage": { + "wilds": [ + [ + [ + 2, + 1 + ], + 2, + 0 + ] + ] + } + }, + "balance": { + "game": 0, + "wallet": 107910 + }, + "flow": { + "round_id": 176212, + "last_action_id": "176212_1", + "state": "closed", + "command": "spin", + "available_actions": [ + "init", + "spin" + ], + "purchased_feature": {} + } + }, + { + "api_version": "2", + "outcome": { + "screen": [ + [ + "5", + "10", + "5", + "9" + ], + [ + "10", + "5", + "10", + "5" + ], + [ + "9", + "5", + "5", + "10" + ], + [ + "4", + "4", + "2", + "10" + ], + [ + "3", + "8", + "3", + "2" + ] + ], + "special_symbols": {}, + "bet": 100, + "win": 200, + "wins": [ + [ + "line", + 50, + [ + 2, + 1, + 2 + ], + 7 + ], + [ + "line", + 50, + [ + 2, + 3, + 2 + ], + 8 + ], + [ + "line", + 50, + [ + 0, + 1, + 1 + ], + 10 + ], + [ + "line", + 50, + [ + 2, + 1, + 1 + ], + 13 + ] + ], + "storage": { + "wilds": [] + } + }, + "balance": { + "game": 200, + "wallet": 107810 + }, + "flow": { + "round_id": 176213, + "last_action_id": "176213_1", + "state": "closed", + "command": "spin", + "available_actions": [ + "init", + "spin" + ], + "purchased_feature": {} + } + }, + { + "api_version": "2", + "options": { + "available_bets": [ + 100, + 200, + 500, + 1000, + 1400, + 1600, + 1800, + 2000, + 2500, + 3000, + 3500, + 4000, + 4500, + 5000, + 5500, + 6000, + 6500, + 7000, + 7500, + 8000, + 8500, + 9000, + 9500, + 10000, + 11000, + 12000, + 13000, + 14000, + 15000, + 16000, + 17000, + 18000, + 19000, + 20000, + 21000, + 22000, + 23000, + 24000, + 25000, + 26000, + 27000, + 28000, + 29000, + 30000 + ], + "default_bet": 100, + "base_bet": 10, + "paytable": { + "0": [ + 0, + 0, + 30, + 50, + 100 + ], + "1": [ + 0, + 0, + 30, + 50, + 100 + ], + "2": [ + 0, + 0, + 15, + 30, + 80 + ], + "3": [ + 0, + 0, + 10, + 20, + 60 + ], + "4": [ + 0, + 0, + 5, + 10, + 40 + ], + "5": [ + 0, + 0, + 5, + 10, + 40 + ], + "6": [ + 0, + 0, + 2, + 5, + 20 + ], + "7": [ + 0, + 0, + 2, + 5, + 20 + ], + "8": [ + 0, + 0, + 2, + 5, + 20 + ], + "9": [ + 0, + 0, + 1, + 3, + 10 + ], + "10": [ + 0, + 0, + 1, + 3, + 10 + ], + "11": [ + 0, + 0, + 0, + 0, + 0 + ] + }, + "paytables": { + "0": { + "default": [ + 0, + 0, + 30, + 50, + 100 + ] + }, + "1": { + "default": [ + 0, + 0, + 30, + 50, + 100 + ] + }, + "2": { + "default": [ + 0, + 0, + 15, + 30, + 80 + ] + }, + "3": { + "default": [ + 0, + 0, + 10, + 20, + 60 + ] + }, + "4": { + "default": [ + 0, + 0, + 5, + 10, + 40 + ] + }, + "5": { + "default": [ + 0, + 0, + 5, + 10, + 40 + ] + }, + "6": { + "default": [ + 0, + 0, + 2, + 5, + 20 + ] + }, + "7": { + "default": [ + 0, + 0, + 2, + 5, + 20 + ] + }, + "8": { + "default": [ + 0, + 0, + 2, + 5, + 20 + ] + }, + "9": { + "default": [ + 0, + 0, + 1, + 3, + 10 + ] + }, + "10": { + "default": [ + 0, + 0, + 1, + 3, + 10 + ] + }, + "11": { + "default": [ + 0, + 0, + 0, + 0, + 0 + ], + "scatter": [ + 0, + 0, + 0, + 0, + 0 + ] + } + }, + "special_symbols": [ + { + "kind": "wild", + "symbol": "0" + }, + { + "kind": "scatter", + "symbol": "11" + } + ], + "lines": [ + [ + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 1, + 1, + 1, + 1 + ], + [ + 2, + 2, + 2, + 2, + 2 + ], + [ + 3, + 3, + 3, + 3, + 3 + ], + [ + 0, + 1, + 0, + 1, + 0 + ], + [ + 1, + 0, + 1, + 0, + 1 + ], + [ + 1, + 2, + 1, + 2, + 1 + ], + [ + 2, + 1, + 2, + 1, + 2 + ], + [ + 2, + 3, + 2, + 3, + 2 + ], + [ + 3, + 2, + 3, + 2, + 3 + ], + [ + 0, + 1, + 1, + 1, + 0 + ], + [ + 1, + 0, + 0, + 0, + 1 + ], + [ + 1, + 2, + 2, + 2, + 1 + ], + [ + 2, + 1, + 1, + 1, + 2 + ], + [ + 2, + 3, + 3, + 3, + 2 + ], + [ + 3, + 2, + 2, + 2, + 3 + ] + ], + "reels": { + "main": [ + [ + "6", + "2", + "10", + "5", + "10", + "1", + "1", + "10", + "7", + "8", + "2", + "4", + "10", + "6", + "9", + "5", + "9", + "5", + "7", + "10", + "3", + "10", + "8", + "4", + "9", + "3", + "5", + "10", + "4", + "9", + "2", + "10", + "3", + "6", + "2", + "5", + "10", + "5", + "9", + "5", + "2", + "10", + "6", + "2", + "7", + "4", + "10", + "4", + "5", + "10", + "2", + "10", + "7", + "2", + "5", + "4", + "3", + "8", + "5", + "10", + "9", + "10", + "4", + "2", + "10", + "1", + "10", + "5" + ], + [ + "5", + "10", + "2", + "9", + "10", + "2", + "9", + "7", + "4", + "9", + "8", + "5", + "9", + "4", + "3", + "8", + "10", + "1", + "1", + "3", + "9", + "4", + "6", + "9", + "3", + "5", + "4", + "2", + "7", + "10", + "1", + "10", + "5", + "6", + "3", + "10", + "2", + "6", + "3", + "9", + "1", + "9", + "2", + "6", + "9", + "1", + "5", + "7", + "9", + "4", + "10", + "4", + "9", + "2", + "9", + "4", + "3", + "10", + "5", + "2", + "5", + "6", + "1", + "10", + "5", + "10" + ], + [ + "10", + "5", + "6", + "6", + "2", + "8", + "1", + "5", + "8", + "10", + "3", + "8", + "7", + "3", + "5", + "4", + "10", + "5", + "6", + "4", + "10", + "10", + "3", + "7", + "9", + "5", + "4", + "5", + "10", + "1", + "7", + "3", + "7", + "4", + "4", + "4", + "8", + "10", + "1", + "10", + "9", + "5", + "3", + "9", + "5", + "5", + "10", + "2", + "9", + "4", + "2", + "6", + "10", + "5", + "10", + "5", + "10", + "8", + "3", + "10", + "5" + ], + [ + "6", + "10", + "5", + "2", + "7", + "8", + "8", + "9", + "5", + "6", + "3", + "3", + "7", + "4", + "9", + "1", + "2", + "6", + "4", + "4", + "2", + "10", + "6", + "6", + "5", + "5", + "4", + "5", + "7", + "3", + "10", + "9", + "2", + "3", + "6", + "9", + "6", + "6", + "3", + "7", + "10", + "7", + "8", + "3", + "8", + "10", + "5", + "9", + "9", + "3", + "5", + "5", + "10", + "10", + "5", + "1", + "7", + "7", + "5", + "6", + "7", + "3", + "10", + "5", + "1" + ], + [ + "2", + "8", + "1", + "6", + "4", + "10", + "5", + "10", + "3", + "7", + "6", + "5", + "1", + "9", + "4", + "4", + "4", + "8", + "3", + "9", + "9", + "5", + "7", + "1", + "7", + "5", + "1", + "9", + "4", + "8", + "2", + "10", + "5", + "5", + "4", + "9", + "1", + "6", + "5", + "9", + "2", + "3", + "6", + "3", + "6", + "4", + "10", + "5", + "9", + "4", + "7", + "6", + "5", + "4", + "8", + "9", + "2", + "7", + "4", + "6", + "3", + "8", + "3", + "2", + "1" + ] + ], + "freespins": [ + [ + "6", + "6", + "5", + "7", + "4", + "8", + "10", + "5", + "10", + "6", + "9", + "5", + "7", + "7", + "3", + "8", + "8", + "9", + "7", + "10", + "4", + "10", + "9", + "2", + "4", + "9", + "6", + "3", + "7", + "7", + "5", + "9", + "4", + "10", + "2", + "9", + "4", + "8", + "8", + "6", + "5", + "6", + "10", + "5", + "9", + "8", + "5", + "7", + "4", + "10", + "6", + "3", + "9", + "8", + "6", + "4", + "9", + "1", + "1", + "1", + "1", + "10", + "9", + "5", + "10" + ], + [ + "5", + "1", + "3", + "5", + "9", + "1", + "5", + "1", + "2", + "5", + "6", + "5", + "6", + "5", + "3", + "8", + "5", + "1", + "6", + "1", + "5", + "4", + "6", + "2", + "3", + "1", + "4", + "5", + "7", + "5", + "6", + "2", + "5", + "1", + "1", + "1", + "1", + "1", + "5", + "10", + "6", + "3", + "2", + "6", + "4", + "5", + "1", + "6", + "5", + "9", + "1", + "5", + "1", + "6", + "5", + "4", + "5", + "9", + "2", + "4", + "5", + "1", + "9", + "2", + "8", + "5", + "6", + "5", + "6", + "4", + "1", + "5", + "1", + "1", + "5" + ], + [ + "5", + "5", + "1", + "6", + "5", + "1", + "5", + "8", + "5", + "6", + "5", + "8", + "5", + "3", + "8", + "5", + "6", + "5", + "1", + "4", + "5", + "6", + "4", + "3", + "1", + "3", + "5", + "4", + "4", + "10", + "5", + "6", + "7", + "5", + "3", + "5", + "7", + "1", + "5", + "5", + "4", + "1", + "1", + "5", + "10", + "6", + "5", + "5", + "6", + "5", + "3", + "1", + "5", + "6", + "2", + "1", + "6", + "1", + "3", + "5", + "4", + "9", + "5", + "6", + "5", + "1", + "7", + "5", + "2", + "4", + "8", + "5", + "1", + "5", + "1", + "1" + ], + [ + "1", + "1", + "6", + "3", + "1", + "7", + "8", + "3", + "9", + "6", + "5", + "4", + "3", + "1", + "1", + "5", + "4", + "1", + "2", + "10", + "6", + "5", + "5", + "3", + "7", + "1", + "3", + "9", + "10", + "1", + "5", + "9", + "5", + "6", + "1", + "6", + "10", + "1", + "8", + "5", + "3", + "6", + "4", + "8", + "10", + "1", + "9", + "5", + "5", + "10", + "1", + "10", + "2", + "5", + "7", + "5", + "6", + "1", + "6", + "2", + "1", + "5", + "6", + "1", + "4", + "1", + "1" + ], + [ + "10", + "8", + "6", + "8", + "10", + "5", + "10", + "3", + "9", + "6", + "7", + "7", + "7", + "4", + "9", + "4", + "10", + "3", + "9", + "9", + "5", + "10", + "7", + "1", + "2", + "10", + "5", + "5", + "9", + "9", + "6", + "6", + "9", + "2", + "3", + "6", + "4", + "10", + "9", + "8", + "7", + "6", + "5", + "4", + "8", + "9", + "10", + "7", + "8", + "6", + "6", + "1", + "1", + "1", + "1", + "1", + "1", + "8", + "4", + "10", + "9", + "5" + ] + ], + "respin": [ + [ + "10", + "6", + "10", + "5", + "8", + "9", + "10", + "10", + "4", + "6", + "5", + "10", + "7", + "7", + "3", + "8", + "8", + "9", + "9", + "9", + "5", + "1", + "8", + "10", + "9", + "2", + "10", + "5", + "6", + "10", + "7", + "7", + "5", + "9", + "10", + "2", + "10", + "7", + "10", + "6", + "4", + "8", + "8", + "10", + "6", + "5", + "10", + "5", + "6", + "10", + "9", + "8", + "7", + "6", + "5", + "9", + "10", + "8", + "5", + "8", + "6", + "9", + "6", + "4", + "10", + "6" + ], + [ + "5", + "9", + "10", + "9", + "10", + "7", + "4", + "9", + "8", + "10", + "9", + "10", + "3", + "8", + "10", + "8", + "10", + "9", + "4", + "6", + "9", + "1", + "10", + "9", + "4", + "7", + "7", + "10", + "9", + "10", + "3", + "10", + "10", + "6", + "6", + "3", + "8", + "9", + "10", + "9", + "8", + "6", + "9", + "5", + "7", + "9", + "4", + "10", + "9", + "9", + "2", + "9", + "4", + "10", + "10", + "5", + "9", + "8", + "6" + ], + [ + "10", + "10", + "6", + "6", + "8", + "8", + "9", + "5", + "8", + "10", + "3", + "8", + "7", + "7", + "5", + "4", + "6", + "9", + "4", + "10", + "10", + "3", + "7", + "6", + "4", + "10", + "9", + "4", + "10", + "10", + "6", + "3", + "9", + "7", + "4", + "4", + "10", + "8", + "10", + "5", + "10", + "9", + "10", + "9", + "5", + "1", + "9", + "10", + "5", + "10", + "2", + "9", + "8", + "7", + "6", + "5", + "4", + "10", + "10", + "5", + "9", + "8", + "7", + "10", + "6" + ], + [ + "6", + "10", + "8", + "7", + "8", + "8", + "9", + "9", + "5", + "6", + "7", + "7", + "4", + "9", + "10", + "8", + "6", + "4", + "4", + "2", + "10", + "6", + "6", + "5", + "5", + "7", + "7", + "1", + "9", + "10", + "3", + "6", + "9", + "8", + "6", + "7", + "9", + "7", + "8", + "3", + "8", + "10", + "9", + "10", + "10", + "7", + "5", + "10", + "9", + "9", + "4", + "7", + "7", + "9", + "10", + "7", + "6" + ], + [ + "10", + "8", + "6", + "8", + "9", + "5", + "7", + "3", + "7", + "6", + "7", + "7", + "7", + "4", + "4", + "8", + "9", + "9", + "5", + "9", + "7", + "9", + "8", + "8", + "10", + "5", + "8", + "7", + "6", + "5", + "9", + "4", + "9", + "6", + "9", + "9", + "3", + "6", + "8", + "9", + "4", + "10", + "9", + "8", + "7", + "6", + "5", + "4", + "8", + "9", + "10", + "7", + "8", + "6", + "6", + "8", + "10", + "7", + "9", + "9", + "7", + "10" + ] + ] + }, + "layout": { + "reels": 5, + "rows": 4 + }, + "currency": { + "code": "EUR", + "symbol": "€", + "subunits": 100, + "exponent": 2 + }, + "screen": [ + [ + "6", + "2", + "10", + "6" + ], + [ + "5", + "3", + "1", + "7" + ], + [ + "7", + "3", + "5", + "4" + ], + [ + "6", + "3", + "7", + "10" + ], + [ + "5", + "1", + "9", + "4" + ] + ], + "feature_options": { + "feature_multipliers": { + "freespin_buy": 20000, + "bonus_buy": 10000, + "bonus_chance": 300 + }, + "disabled_features": [] + } + }, + "balance": { + "game": 0, + "wallet": 108010 + }, + "flow": { + "round_id": 176213, + "last_action_id": "176213_1", + "state": "ready", + "command": "init", + "available_actions": [ + "init", + "spin" + ], + "purchased_feature": {} + } + }, + { + "api_version": "2", + "options": { + "available_bets": [ + 100, + 200, + 500, + 1000, + 1400, + 1600, + 1800, + 2000, + 2500, + 3000, + 3500, + 4000, + 4500, + 5000, + 5500, + 6000, + 6500, + 7000, + 7500, + 8000, + 8500, + 9000, + 9500, + 10000, + 11000, + 12000, + 13000, + 14000, + 15000, + 16000, + 17000, + 18000, + 19000, + 20000, + 21000, + 22000, + 23000, + 24000, + 25000, + 26000, + 27000, + 28000, + 29000, + 30000 + ], + "default_bet": 100, + "base_bet": 10, + "paytable": { + "0": [ + 0, + 0, + 30, + 50, + 100 + ], + "1": [ + 0, + 0, + 30, + 50, + 100 + ], + "2": [ + 0, + 0, + 15, + 30, + 80 + ], + "3": [ + 0, + 0, + 10, + 20, + 60 + ], + "4": [ + 0, + 0, + 5, + 10, + 40 + ], + "5": [ + 0, + 0, + 5, + 10, + 40 + ], + "6": [ + 0, + 0, + 2, + 5, + 20 + ], + "7": [ + 0, + 0, + 2, + 5, + 20 + ], + "8": [ + 0, + 0, + 2, + 5, + 20 + ], + "9": [ + 0, + 0, + 1, + 3, + 10 + ], + "10": [ + 0, + 0, + 1, + 3, + 10 + ], + "11": [ + 0, + 0, + 0, + 0, + 0 + ] + }, + "paytables": { + "0": { + "default": [ + 0, + 0, + 30, + 50, + 100 + ] + }, + "1": { + "default": [ + 0, + 0, + 30, + 50, + 100 + ] + }, + "2": { + "default": [ + 0, + 0, + 15, + 30, + 80 + ] + }, + "3": { + "default": [ + 0, + 0, + 10, + 20, + 60 + ] + }, + "4": { + "default": [ + 0, + 0, + 5, + 10, + 40 + ] + }, + "5": { + "default": [ + 0, + 0, + 5, + 10, + 40 + ] + }, + "6": { + "default": [ + 0, + 0, + 2, + 5, + 20 + ] + }, + "7": { + "default": [ + 0, + 0, + 2, + 5, + 20 + ] + }, + "8": { + "default": [ + 0, + 0, + 2, + 5, + 20 + ] + }, + "9": { + "default": [ + 0, + 0, + 1, + 3, + 10 + ] + }, + "10": { + "default": [ + 0, + 0, + 1, + 3, + 10 + ] + }, + "11": { + "default": [ + 0, + 0, + 0, + 0, + 0 + ], + "scatter": [ + 0, + 0, + 0, + 0, + 0 + ] + } + }, + "special_symbols": [ + { + "kind": "wild", + "symbol": "0" + }, + { + "kind": "scatter", + "symbol": "11" + } + ], + "lines": [ + [ + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 1, + 1, + 1, + 1 + ], + [ + 2, + 2, + 2, + 2, + 2 + ], + [ + 3, + 3, + 3, + 3, + 3 + ], + [ + 0, + 1, + 0, + 1, + 0 + ], + [ + 1, + 0, + 1, + 0, + 1 + ], + [ + 1, + 2, + 1, + 2, + 1 + ], + [ + 2, + 1, + 2, + 1, + 2 + ], + [ + 2, + 3, + 2, + 3, + 2 + ], + [ + 3, + 2, + 3, + 2, + 3 + ], + [ + 0, + 1, + 1, + 1, + 0 + ], + [ + 1, + 0, + 0, + 0, + 1 + ], + [ + 1, + 2, + 2, + 2, + 1 + ], + [ + 2, + 1, + 1, + 1, + 2 + ], + [ + 2, + 3, + 3, + 3, + 2 + ], + [ + 3, + 2, + 2, + 2, + 3 + ] + ], + "reels": { + "main": [ + [ + "6", + "2", + "10", + "5", + "10", + "1", + "1", + "10", + "7", + "8", + "2", + "4", + "10", + "6", + "9", + "5", + "9", + "5", + "7", + "10", + "3", + "10", + "8", + "4", + "9", + "3", + "5", + "10", + "4", + "9", + "2", + "10", + "3", + "6", + "2", + "5", + "10", + "5", + "9", + "5", + "2", + "10", + "6", + "2", + "7", + "4", + "10", + "4", + "5", + "10", + "2", + "10", + "7", + "2", + "5", + "4", + "3", + "8", + "5", + "10", + "9", + "10", + "4", + "2", + "10", + "1", + "10", + "5" + ], + [ + "5", + "10", + "2", + "9", + "10", + "2", + "9", + "7", + "4", + "9", + "8", + "5", + "9", + "4", + "3", + "8", + "10", + "1", + "1", + "3", + "9", + "4", + "6", + "9", + "3", + "5", + "4", + "2", + "7", + "10", + "1", + "10", + "5", + "6", + "3", + "10", + "2", + "6", + "3", + "9", + "1", + "9", + "2", + "6", + "9", + "1", + "5", + "7", + "9", + "4", + "10", + "4", + "9", + "2", + "9", + "4", + "3", + "10", + "5", + "2", + "5", + "6", + "1", + "10", + "5", + "10" + ], + [ + "10", + "5", + "6", + "6", + "2", + "8", + "1", + "5", + "8", + "10", + "3", + "8", + "7", + "3", + "5", + "4", + "10", + "5", + "6", + "4", + "10", + "10", + "3", + "7", + "9", + "5", + "4", + "5", + "10", + "1", + "7", + "3", + "7", + "4", + "4", + "4", + "8", + "10", + "1", + "10", + "9", + "5", + "3", + "9", + "5", + "5", + "10", + "2", + "9", + "4", + "2", + "6", + "10", + "5", + "10", + "5", + "10", + "8", + "3", + "10", + "5" + ], + [ + "6", + "10", + "5", + "2", + "7", + "8", + "8", + "9", + "5", + "6", + "3", + "3", + "7", + "4", + "9", + "1", + "2", + "6", + "4", + "4", + "2", + "10", + "6", + "6", + "5", + "5", + "4", + "5", + "7", + "3", + "10", + "9", + "2", + "3", + "6", + "9", + "6", + "6", + "3", + "7", + "10", + "7", + "8", + "3", + "8", + "10", + "5", + "9", + "9", + "3", + "5", + "5", + "10", + "10", + "5", + "1", + "7", + "7", + "5", + "6", + "7", + "3", + "10", + "5", + "1" + ], + [ + "2", + "8", + "1", + "6", + "4", + "10", + "5", + "10", + "3", + "7", + "6", + "5", + "1", + "9", + "4", + "4", + "4", + "8", + "3", + "9", + "9", + "5", + "7", + "1", + "7", + "5", + "1", + "9", + "4", + "8", + "2", + "10", + "5", + "5", + "4", + "9", + "1", + "6", + "5", + "9", + "2", + "3", + "6", + "3", + "6", + "4", + "10", + "5", + "9", + "4", + "7", + "6", + "5", + "4", + "8", + "9", + "2", + "7", + "4", + "6", + "3", + "8", + "3", + "2", + "1" + ] + ], + "freespins": [ + [ + "6", + "6", + "5", + "7", + "4", + "8", + "10", + "5", + "10", + "6", + "9", + "5", + "7", + "7", + "3", + "8", + "8", + "9", + "7", + "10", + "4", + "10", + "9", + "2", + "4", + "9", + "6", + "3", + "7", + "7", + "5", + "9", + "4", + "10", + "2", + "9", + "4", + "8", + "8", + "6", + "5", + "6", + "10", + "5", + "9", + "8", + "5", + "7", + "4", + "10", + "6", + "3", + "9", + "8", + "6", + "4", + "9", + "1", + "1", + "1", + "1", + "10", + "9", + "5", + "10" + ], + [ + "5", + "1", + "3", + "5", + "9", + "1", + "5", + "1", + "2", + "5", + "6", + "5", + "6", + "5", + "3", + "8", + "5", + "1", + "6", + "1", + "5", + "4", + "6", + "2", + "3", + "1", + "4", + "5", + "7", + "5", + "6", + "2", + "5", + "1", + "1", + "1", + "1", + "1", + "5", + "10", + "6", + "3", + "2", + "6", + "4", + "5", + "1", + "6", + "5", + "9", + "1", + "5", + "1", + "6", + "5", + "4", + "5", + "9", + "2", + "4", + "5", + "1", + "9", + "2", + "8", + "5", + "6", + "5", + "6", + "4", + "1", + "5", + "1", + "1", + "5" + ], + [ + "5", + "5", + "1", + "6", + "5", + "1", + "5", + "8", + "5", + "6", + "5", + "8", + "5", + "3", + "8", + "5", + "6", + "5", + "1", + "4", + "5", + "6", + "4", + "3", + "1", + "3", + "5", + "4", + "4", + "10", + "5", + "6", + "7", + "5", + "3", + "5", + "7", + "1", + "5", + "5", + "4", + "1", + "1", + "5", + "10", + "6", + "5", + "5", + "6", + "5", + "3", + "1", + "5", + "6", + "2", + "1", + "6", + "1", + "3", + "5", + "4", + "9", + "5", + "6", + "5", + "1", + "7", + "5", + "2", + "4", + "8", + "5", + "1", + "5", + "1", + "1" + ], + [ + "1", + "1", + "6", + "3", + "1", + "7", + "8", + "3", + "9", + "6", + "5", + "4", + "3", + "1", + "1", + "5", + "4", + "1", + "2", + "10", + "6", + "5", + "5", + "3", + "7", + "1", + "3", + "9", + "10", + "1", + "5", + "9", + "5", + "6", + "1", + "6", + "10", + "1", + "8", + "5", + "3", + "6", + "4", + "8", + "10", + "1", + "9", + "5", + "5", + "10", + "1", + "10", + "2", + "5", + "7", + "5", + "6", + "1", + "6", + "2", + "1", + "5", + "6", + "1", + "4", + "1", + "1" + ], + [ + "10", + "8", + "6", + "8", + "10", + "5", + "10", + "3", + "9", + "6", + "7", + "7", + "7", + "4", + "9", + "4", + "10", + "3", + "9", + "9", + "5", + "10", + "7", + "1", + "2", + "10", + "5", + "5", + "9", + "9", + "6", + "6", + "9", + "2", + "3", + "6", + "4", + "10", + "9", + "8", + "7", + "6", + "5", + "4", + "8", + "9", + "10", + "7", + "8", + "6", + "6", + "1", + "1", + "1", + "1", + "1", + "1", + "8", + "4", + "10", + "9", + "5" + ] + ], + "respin": [ + [ + "10", + "6", + "10", + "5", + "8", + "9", + "10", + "10", + "4", + "6", + "5", + "10", + "7", + "7", + "3", + "8", + "8", + "9", + "9", + "9", + "5", + "1", + "8", + "10", + "9", + "2", + "10", + "5", + "6", + "10", + "7", + "7", + "5", + "9", + "10", + "2", + "10", + "7", + "10", + "6", + "4", + "8", + "8", + "10", + "6", + "5", + "10", + "5", + "6", + "10", + "9", + "8", + "7", + "6", + "5", + "9", + "10", + "8", + "5", + "8", + "6", + "9", + "6", + "4", + "10", + "6" + ], + [ + "5", + "9", + "10", + "9", + "10", + "7", + "4", + "9", + "8", + "10", + "9", + "10", + "3", + "8", + "10", + "8", + "10", + "9", + "4", + "6", + "9", + "1", + "10", + "9", + "4", + "7", + "7", + "10", + "9", + "10", + "3", + "10", + "10", + "6", + "6", + "3", + "8", + "9", + "10", + "9", + "8", + "6", + "9", + "5", + "7", + "9", + "4", + "10", + "9", + "9", + "2", + "9", + "4", + "10", + "10", + "5", + "9", + "8", + "6" + ], + [ + "10", + "10", + "6", + "6", + "8", + "8", + "9", + "5", + "8", + "10", + "3", + "8", + "7", + "7", + "5", + "4", + "6", + "9", + "4", + "10", + "10", + "3", + "7", + "6", + "4", + "10", + "9", + "4", + "10", + "10", + "6", + "3", + "9", + "7", + "4", + "4", + "10", + "8", + "10", + "5", + "10", + "9", + "10", + "9", + "5", + "1", + "9", + "10", + "5", + "10", + "2", + "9", + "8", + "7", + "6", + "5", + "4", + "10", + "10", + "5", + "9", + "8", + "7", + "10", + "6" + ], + [ + "6", + "10", + "8", + "7", + "8", + "8", + "9", + "9", + "5", + "6", + "7", + "7", + "4", + "9", + "10", + "8", + "6", + "4", + "4", + "2", + "10", + "6", + "6", + "5", + "5", + "7", + "7", + "1", + "9", + "10", + "3", + "6", + "9", + "8", + "6", + "7", + "9", + "7", + "8", + "3", + "8", + "10", + "9", + "10", + "10", + "7", + "5", + "10", + "9", + "9", + "4", + "7", + "7", + "9", + "10", + "7", + "6" + ], + [ + "10", + "8", + "6", + "8", + "9", + "5", + "7", + "3", + "7", + "6", + "7", + "7", + "7", + "4", + "4", + "8", + "9", + "9", + "5", + "9", + "7", + "9", + "8", + "8", + "10", + "5", + "8", + "7", + "6", + "5", + "9", + "4", + "9", + "6", + "9", + "9", + "3", + "6", + "8", + "9", + "4", + "10", + "9", + "8", + "7", + "6", + "5", + "4", + "8", + "9", + "10", + "7", + "8", + "6", + "6", + "8", + "10", + "7", + "9", + "9", + "7", + "10" + ] + ] + }, + "layout": { + "reels": 5, + "rows": 4 + }, + "currency": { + "code": "EUR", + "symbol": "€", + "subunits": 100, + "exponent": 2 + }, + "screen": [ + [ + "10", + "2", + "10", + "6" + ], + [ + "1", + "10", + "5", + "7" + ], + [ + "3", + "9", + "5", + "5" + ], + [ + "9", + "9", + "3", + "5" + ], + [ + "5", + "5", + "4", + "9" + ] + ], + "feature_options": { + "feature_multipliers": { + "freespin_buy": 20000, + "bonus_buy": 10000, + "bonus_chance": 300 + }, + "disabled_features": [] + } + }, + "balance": { + "game": 0, + "wallet": 108010 + }, + "flow": { + "round_id": 176213, + "last_action_id": "176213_1", + "state": "ready", + "command": "init", + "available_actions": [ + "init", + "spin" + ], + "purchased_feature": {} + } + }, + { + "api_version": "2", + "options": { + "available_bets": [ + 100, + 200, + 500, + 1000, + 1400, + 1600, + 1800, + 2000, + 2500, + 3000, + 3500, + 4000, + 4500, + 5000, + 5500, + 6000, + 6500, + 7000, + 7500, + 8000, + 8500, + 9000, + 9500, + 10000, + 11000, + 12000, + 13000, + 14000, + 15000, + 16000, + 17000, + 18000, + 19000, + 20000, + 21000, + 22000, + 23000, + 24000, + 25000, + 26000, + 27000, + 28000, + 29000, + 30000 + ], + "default_bet": 100, + "base_bet": 10, + "paytable": { + "0": [ + 0, + 0, + 30, + 50, + 100 + ], + "1": [ + 0, + 0, + 30, + 50, + 100 + ], + "2": [ + 0, + 0, + 15, + 30, + 80 + ], + "3": [ + 0, + 0, + 10, + 20, + 60 + ], + "4": [ + 0, + 0, + 5, + 10, + 40 + ], + "5": [ + 0, + 0, + 5, + 10, + 40 + ], + "6": [ + 0, + 0, + 2, + 5, + 20 + ], + "7": [ + 0, + 0, + 2, + 5, + 20 + ], + "8": [ + 0, + 0, + 2, + 5, + 20 + ], + "9": [ + 0, + 0, + 1, + 3, + 10 + ], + "10": [ + 0, + 0, + 1, + 3, + 10 + ], + "11": [ + 0, + 0, + 0, + 0, + 0 + ] + }, + "paytables": { + "0": { + "default": [ + 0, + 0, + 30, + 50, + 100 + ] + }, + "1": { + "default": [ + 0, + 0, + 30, + 50, + 100 + ] + }, + "2": { + "default": [ + 0, + 0, + 15, + 30, + 80 + ] + }, + "3": { + "default": [ + 0, + 0, + 10, + 20, + 60 + ] + }, + "4": { + "default": [ + 0, + 0, + 5, + 10, + 40 + ] + }, + "5": { + "default": [ + 0, + 0, + 5, + 10, + 40 + ] + }, + "6": { + "default": [ + 0, + 0, + 2, + 5, + 20 + ] + }, + "7": { + "default": [ + 0, + 0, + 2, + 5, + 20 + ] + }, + "8": { + "default": [ + 0, + 0, + 2, + 5, + 20 + ] + }, + "9": { + "default": [ + 0, + 0, + 1, + 3, + 10 + ] + }, + "10": { + "default": [ + 0, + 0, + 1, + 3, + 10 + ] + }, + "11": { + "default": [ + 0, + 0, + 0, + 0, + 0 + ], + "scatter": [ + 0, + 0, + 0, + 0, + 0 + ] + } + }, + "special_symbols": [ + { + "kind": "wild", + "symbol": "0" + }, + { + "kind": "scatter", + "symbol": "11" + } + ], + "lines": [ + [ + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 1, + 1, + 1, + 1 + ], + [ + 2, + 2, + 2, + 2, + 2 + ], + [ + 3, + 3, + 3, + 3, + 3 + ], + [ + 0, + 1, + 0, + 1, + 0 + ], + [ + 1, + 0, + 1, + 0, + 1 + ], + [ + 1, + 2, + 1, + 2, + 1 + ], + [ + 2, + 1, + 2, + 1, + 2 + ], + [ + 2, + 3, + 2, + 3, + 2 + ], + [ + 3, + 2, + 3, + 2, + 3 + ], + [ + 0, + 1, + 1, + 1, + 0 + ], + [ + 1, + 0, + 0, + 0, + 1 + ], + [ + 1, + 2, + 2, + 2, + 1 + ], + [ + 2, + 1, + 1, + 1, + 2 + ], + [ + 2, + 3, + 3, + 3, + 2 + ], + [ + 3, + 2, + 2, + 2, + 3 + ] + ], + "reels": { + "main": [ + [ + "6", + "2", + "10", + "5", + "10", + "1", + "1", + "10", + "7", + "8", + "2", + "4", + "10", + "6", + "9", + "5", + "9", + "5", + "7", + "10", + "3", + "10", + "8", + "4", + "9", + "3", + "5", + "10", + "4", + "9", + "2", + "10", + "3", + "6", + "2", + "5", + "10", + "5", + "9", + "5", + "2", + "10", + "6", + "2", + "7", + "4", + "10", + "4", + "5", + "10", + "2", + "10", + "7", + "2", + "5", + "4", + "3", + "8", + "5", + "10", + "9", + "10", + "4", + "2", + "10", + "1", + "10", + "5" + ], + [ + "5", + "10", + "2", + "9", + "10", + "2", + "9", + "7", + "4", + "9", + "8", + "5", + "9", + "4", + "3", + "8", + "10", + "1", + "1", + "3", + "9", + "4", + "6", + "9", + "3", + "5", + "4", + "2", + "7", + "10", + "1", + "10", + "5", + "6", + "3", + "10", + "2", + "6", + "3", + "9", + "1", + "9", + "2", + "6", + "9", + "1", + "5", + "7", + "9", + "4", + "10", + "4", + "9", + "2", + "9", + "4", + "3", + "10", + "5", + "2", + "5", + "6", + "1", + "10", + "5", + "10" + ], + [ + "10", + "5", + "6", + "6", + "2", + "8", + "1", + "5", + "8", + "10", + "3", + "8", + "7", + "3", + "5", + "4", + "10", + "5", + "6", + "4", + "10", + "10", + "3", + "7", + "9", + "5", + "4", + "5", + "10", + "1", + "7", + "3", + "7", + "4", + "4", + "4", + "8", + "10", + "1", + "10", + "9", + "5", + "3", + "9", + "5", + "5", + "10", + "2", + "9", + "4", + "2", + "6", + "10", + "5", + "10", + "5", + "10", + "8", + "3", + "10", + "5" + ], + [ + "6", + "10", + "5", + "2", + "7", + "8", + "8", + "9", + "5", + "6", + "3", + "3", + "7", + "4", + "9", + "1", + "2", + "6", + "4", + "4", + "2", + "10", + "6", + "6", + "5", + "5", + "4", + "5", + "7", + "3", + "10", + "9", + "2", + "3", + "6", + "9", + "6", + "6", + "3", + "7", + "10", + "7", + "8", + "3", + "8", + "10", + "5", + "9", + "9", + "3", + "5", + "5", + "10", + "10", + "5", + "1", + "7", + "7", + "5", + "6", + "7", + "3", + "10", + "5", + "1" + ], + [ + "2", + "8", + "1", + "6", + "4", + "10", + "5", + "10", + "3", + "7", + "6", + "5", + "1", + "9", + "4", + "4", + "4", + "8", + "3", + "9", + "9", + "5", + "7", + "1", + "7", + "5", + "1", + "9", + "4", + "8", + "2", + "10", + "5", + "5", + "4", + "9", + "1", + "6", + "5", + "9", + "2", + "3", + "6", + "3", + "6", + "4", + "10", + "5", + "9", + "4", + "7", + "6", + "5", + "4", + "8", + "9", + "2", + "7", + "4", + "6", + "3", + "8", + "3", + "2", + "1" + ] + ], + "freespins": [ + [ + "6", + "6", + "5", + "7", + "4", + "8", + "10", + "5", + "10", + "6", + "9", + "5", + "7", + "7", + "3", + "8", + "8", + "9", + "7", + "10", + "4", + "10", + "9", + "2", + "4", + "9", + "6", + "3", + "7", + "7", + "5", + "9", + "4", + "10", + "2", + "9", + "4", + "8", + "8", + "6", + "5", + "6", + "10", + "5", + "9", + "8", + "5", + "7", + "4", + "10", + "6", + "3", + "9", + "8", + "6", + "4", + "9", + "1", + "1", + "1", + "1", + "10", + "9", + "5", + "10" + ], + [ + "5", + "1", + "3", + "5", + "9", + "1", + "5", + "1", + "2", + "5", + "6", + "5", + "6", + "5", + "3", + "8", + "5", + "1", + "6", + "1", + "5", + "4", + "6", + "2", + "3", + "1", + "4", + "5", + "7", + "5", + "6", + "2", + "5", + "1", + "1", + "1", + "1", + "1", + "5", + "10", + "6", + "3", + "2", + "6", + "4", + "5", + "1", + "6", + "5", + "9", + "1", + "5", + "1", + "6", + "5", + "4", + "5", + "9", + "2", + "4", + "5", + "1", + "9", + "2", + "8", + "5", + "6", + "5", + "6", + "4", + "1", + "5", + "1", + "1", + "5" + ], + [ + "5", + "5", + "1", + "6", + "5", + "1", + "5", + "8", + "5", + "6", + "5", + "8", + "5", + "3", + "8", + "5", + "6", + "5", + "1", + "4", + "5", + "6", + "4", + "3", + "1", + "3", + "5", + "4", + "4", + "10", + "5", + "6", + "7", + "5", + "3", + "5", + "7", + "1", + "5", + "5", + "4", + "1", + "1", + "5", + "10", + "6", + "5", + "5", + "6", + "5", + "3", + "1", + "5", + "6", + "2", + "1", + "6", + "1", + "3", + "5", + "4", + "9", + "5", + "6", + "5", + "1", + "7", + "5", + "2", + "4", + "8", + "5", + "1", + "5", + "1", + "1" + ], + [ + "1", + "1", + "6", + "3", + "1", + "7", + "8", + "3", + "9", + "6", + "5", + "4", + "3", + "1", + "1", + "5", + "4", + "1", + "2", + "10", + "6", + "5", + "5", + "3", + "7", + "1", + "3", + "9", + "10", + "1", + "5", + "9", + "5", + "6", + "1", + "6", + "10", + "1", + "8", + "5", + "3", + "6", + "4", + "8", + "10", + "1", + "9", + "5", + "5", + "10", + "1", + "10", + "2", + "5", + "7", + "5", + "6", + "1", + "6", + "2", + "1", + "5", + "6", + "1", + "4", + "1", + "1" + ], + [ + "10", + "8", + "6", + "8", + "10", + "5", + "10", + "3", + "9", + "6", + "7", + "7", + "7", + "4", + "9", + "4", + "10", + "3", + "9", + "9", + "5", + "10", + "7", + "1", + "2", + "10", + "5", + "5", + "9", + "9", + "6", + "6", + "9", + "2", + "3", + "6", + "4", + "10", + "9", + "8", + "7", + "6", + "5", + "4", + "8", + "9", + "10", + "7", + "8", + "6", + "6", + "1", + "1", + "1", + "1", + "1", + "1", + "8", + "4", + "10", + "9", + "5" + ] + ], + "respin": [ + [ + "10", + "6", + "10", + "5", + "8", + "9", + "10", + "10", + "4", + "6", + "5", + "10", + "7", + "7", + "3", + "8", + "8", + "9", + "9", + "9", + "5", + "1", + "8", + "10", + "9", + "2", + "10", + "5", + "6", + "10", + "7", + "7", + "5", + "9", + "10", + "2", + "10", + "7", + "10", + "6", + "4", + "8", + "8", + "10", + "6", + "5", + "10", + "5", + "6", + "10", + "9", + "8", + "7", + "6", + "5", + "9", + "10", + "8", + "5", + "8", + "6", + "9", + "6", + "4", + "10", + "6" + ], + [ + "5", + "9", + "10", + "9", + "10", + "7", + "4", + "9", + "8", + "10", + "9", + "10", + "3", + "8", + "10", + "8", + "10", + "9", + "4", + "6", + "9", + "1", + "10", + "9", + "4", + "7", + "7", + "10", + "9", + "10", + "3", + "10", + "10", + "6", + "6", + "3", + "8", + "9", + "10", + "9", + "8", + "6", + "9", + "5", + "7", + "9", + "4", + "10", + "9", + "9", + "2", + "9", + "4", + "10", + "10", + "5", + "9", + "8", + "6" + ], + [ + "10", + "10", + "6", + "6", + "8", + "8", + "9", + "5", + "8", + "10", + "3", + "8", + "7", + "7", + "5", + "4", + "6", + "9", + "4", + "10", + "10", + "3", + "7", + "6", + "4", + "10", + "9", + "4", + "10", + "10", + "6", + "3", + "9", + "7", + "4", + "4", + "10", + "8", + "10", + "5", + "10", + "9", + "10", + "9", + "5", + "1", + "9", + "10", + "5", + "10", + "2", + "9", + "8", + "7", + "6", + "5", + "4", + "10", + "10", + "5", + "9", + "8", + "7", + "10", + "6" + ], + [ + "6", + "10", + "8", + "7", + "8", + "8", + "9", + "9", + "5", + "6", + "7", + "7", + "4", + "9", + "10", + "8", + "6", + "4", + "4", + "2", + "10", + "6", + "6", + "5", + "5", + "7", + "7", + "1", + "9", + "10", + "3", + "6", + "9", + "8", + "6", + "7", + "9", + "7", + "8", + "3", + "8", + "10", + "9", + "10", + "10", + "7", + "5", + "10", + "9", + "9", + "4", + "7", + "7", + "9", + "10", + "7", + "6" + ], + [ + "10", + "8", + "6", + "8", + "9", + "5", + "7", + "3", + "7", + "6", + "7", + "7", + "7", + "4", + "4", + "8", + "9", + "9", + "5", + "9", + "7", + "9", + "8", + "8", + "10", + "5", + "8", + "7", + "6", + "5", + "9", + "4", + "9", + "6", + "9", + "9", + "3", + "6", + "8", + "9", + "4", + "10", + "9", + "8", + "7", + "6", + "5", + "4", + "8", + "9", + "10", + "7", + "8", + "6", + "6", + "8", + "10", + "7", + "9", + "9", + "7", + "10" + ] + ] + }, + "layout": { + "reels": 5, + "rows": 4 + }, + "currency": { + "code": "EUR", + "symbol": "€", + "subunits": 100, + "exponent": 2 + }, + "screen": [ + [ + "10", + "4", + "10", + "2" + ], + [ + "3", + "9", + "1", + "9" + ], + [ + "3", + "7", + "9", + "5" + ], + [ + "3", + "7", + "4", + "9" + ], + [ + "4", + "4", + "8", + "3" + ] + ], + "feature_options": { + "feature_multipliers": { + "freespin_buy": 20000, + "bonus_buy": 10000, + "bonus_chance": 300 + }, + "disabled_features": [] + } + }, + "balance": { + "game": 0, + "wallet": 108010 + }, + "flow": { + "round_id": 176213, + "last_action_id": "176213_1", + "state": "ready", + "command": "init", + "available_actions": [ + "init", + "spin" + ], + "purchased_feature": {} + } + }, + { + "api_version": "2", + "options": { + "available_bets": [ + 100, + 200, + 500, + 1000, + 1400, + 1600, + 1800, + 2000, + 2500, + 3000, + 3500, + 4000, + 4500, + 5000, + 5500, + 6000, + 6500, + 7000, + 7500, + 8000, + 8500, + 9000, + 9500, + 10000, + 11000, + 12000, + 13000, + 14000, + 15000, + 16000, + 17000, + 18000, + 19000, + 20000, + 21000, + 22000, + 23000, + 24000, + 25000, + 26000, + 27000, + 28000, + 29000, + 30000 + ], + "default_bet": 100, + "base_bet": 10, + "paytable": { + "0": [ + 0, + 0, + 30, + 50, + 100 + ], + "1": [ + 0, + 0, + 30, + 50, + 100 + ], + "2": [ + 0, + 0, + 15, + 30, + 80 + ], + "3": [ + 0, + 0, + 10, + 20, + 60 + ], + "4": [ + 0, + 0, + 5, + 10, + 40 + ], + "5": [ + 0, + 0, + 5, + 10, + 40 + ], + "6": [ + 0, + 0, + 2, + 5, + 20 + ], + "7": [ + 0, + 0, + 2, + 5, + 20 + ], + "8": [ + 0, + 0, + 2, + 5, + 20 + ], + "9": [ + 0, + 0, + 1, + 3, + 10 + ], + "10": [ + 0, + 0, + 1, + 3, + 10 + ], + "11": [ + 0, + 0, + 0, + 0, + 0 + ] + }, + "paytables": { + "0": { + "default": [ + 0, + 0, + 30, + 50, + 100 + ] + }, + "1": { + "default": [ + 0, + 0, + 30, + 50, + 100 + ] + }, + "2": { + "default": [ + 0, + 0, + 15, + 30, + 80 + ] + }, + "3": { + "default": [ + 0, + 0, + 10, + 20, + 60 + ] + }, + "4": { + "default": [ + 0, + 0, + 5, + 10, + 40 + ] + }, + "5": { + "default": [ + 0, + 0, + 5, + 10, + 40 + ] + }, + "6": { + "default": [ + 0, + 0, + 2, + 5, + 20 + ] + }, + "7": { + "default": [ + 0, + 0, + 2, + 5, + 20 + ] + }, + "8": { + "default": [ + 0, + 0, + 2, + 5, + 20 + ] + }, + "9": { + "default": [ + 0, + 0, + 1, + 3, + 10 + ] + }, + "10": { + "default": [ + 0, + 0, + 1, + 3, + 10 + ] + }, + "11": { + "default": [ + 0, + 0, + 0, + 0, + 0 + ], + "scatter": [ + 0, + 0, + 0, + 0, + 0 + ] + } + }, + "special_symbols": [ + { + "kind": "wild", + "symbol": "0" + }, + { + "kind": "scatter", + "symbol": "11" + } + ], + "lines": [ + [ + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 1, + 1, + 1, + 1 + ], + [ + 2, + 2, + 2, + 2, + 2 + ], + [ + 3, + 3, + 3, + 3, + 3 + ], + [ + 0, + 1, + 0, + 1, + 0 + ], + [ + 1, + 0, + 1, + 0, + 1 + ], + [ + 1, + 2, + 1, + 2, + 1 + ], + [ + 2, + 1, + 2, + 1, + 2 + ], + [ + 2, + 3, + 2, + 3, + 2 + ], + [ + 3, + 2, + 3, + 2, + 3 + ], + [ + 0, + 1, + 1, + 1, + 0 + ], + [ + 1, + 0, + 0, + 0, + 1 + ], + [ + 1, + 2, + 2, + 2, + 1 + ], + [ + 2, + 1, + 1, + 1, + 2 + ], + [ + 2, + 3, + 3, + 3, + 2 + ], + [ + 3, + 2, + 2, + 2, + 3 + ] + ], + "reels": { + "main": [ + [ + "6", + "2", + "10", + "5", + "10", + "1", + "1", + "10", + "7", + "8", + "2", + "4", + "10", + "6", + "9", + "5", + "9", + "5", + "7", + "10", + "3", + "10", + "8", + "4", + "9", + "3", + "5", + "10", + "4", + "9", + "2", + "10", + "3", + "6", + "2", + "5", + "10", + "5", + "9", + "5", + "2", + "10", + "6", + "2", + "7", + "4", + "10", + "4", + "5", + "10", + "2", + "10", + "7", + "2", + "5", + "4", + "3", + "8", + "5", + "10", + "9", + "10", + "4", + "2", + "10", + "1", + "10", + "5" + ], + [ + "5", + "10", + "2", + "9", + "10", + "2", + "9", + "7", + "4", + "9", + "8", + "5", + "9", + "4", + "3", + "8", + "10", + "1", + "1", + "3", + "9", + "4", + "6", + "9", + "3", + "5", + "4", + "2", + "7", + "10", + "1", + "10", + "5", + "6", + "3", + "10", + "2", + "6", + "3", + "9", + "1", + "9", + "2", + "6", + "9", + "1", + "5", + "7", + "9", + "4", + "10", + "4", + "9", + "2", + "9", + "4", + "3", + "10", + "5", + "2", + "5", + "6", + "1", + "10", + "5", + "10" + ], + [ + "10", + "5", + "6", + "6", + "2", + "8", + "1", + "5", + "8", + "10", + "3", + "8", + "7", + "3", + "5", + "4", + "10", + "5", + "6", + "4", + "10", + "10", + "3", + "7", + "9", + "5", + "4", + "5", + "10", + "1", + "7", + "3", + "7", + "4", + "4", + "4", + "8", + "10", + "1", + "10", + "9", + "5", + "3", + "9", + "5", + "5", + "10", + "2", + "9", + "4", + "2", + "6", + "10", + "5", + "10", + "5", + "10", + "8", + "3", + "10", + "5" + ], + [ + "6", + "10", + "5", + "2", + "7", + "8", + "8", + "9", + "5", + "6", + "3", + "3", + "7", + "4", + "9", + "1", + "2", + "6", + "4", + "4", + "2", + "10", + "6", + "6", + "5", + "5", + "4", + "5", + "7", + "3", + "10", + "9", + "2", + "3", + "6", + "9", + "6", + "6", + "3", + "7", + "10", + "7", + "8", + "3", + "8", + "10", + "5", + "9", + "9", + "3", + "5", + "5", + "10", + "10", + "5", + "1", + "7", + "7", + "5", + "6", + "7", + "3", + "10", + "5", + "1" + ], + [ + "2", + "8", + "1", + "6", + "4", + "10", + "5", + "10", + "3", + "7", + "6", + "5", + "1", + "9", + "4", + "4", + "4", + "8", + "3", + "9", + "9", + "5", + "7", + "1", + "7", + "5", + "1", + "9", + "4", + "8", + "2", + "10", + "5", + "5", + "4", + "9", + "1", + "6", + "5", + "9", + "2", + "3", + "6", + "3", + "6", + "4", + "10", + "5", + "9", + "4", + "7", + "6", + "5", + "4", + "8", + "9", + "2", + "7", + "4", + "6", + "3", + "8", + "3", + "2", + "1" + ] + ], + "freespins": [ + [ + "6", + "6", + "5", + "7", + "4", + "8", + "10", + "5", + "10", + "6", + "9", + "5", + "7", + "7", + "3", + "8", + "8", + "9", + "7", + "10", + "4", + "10", + "9", + "2", + "4", + "9", + "6", + "3", + "7", + "7", + "5", + "9", + "4", + "10", + "2", + "9", + "4", + "8", + "8", + "6", + "5", + "6", + "10", + "5", + "9", + "8", + "5", + "7", + "4", + "10", + "6", + "3", + "9", + "8", + "6", + "4", + "9", + "1", + "1", + "1", + "1", + "10", + "9", + "5", + "10" + ], + [ + "5", + "1", + "3", + "5", + "9", + "1", + "5", + "1", + "2", + "5", + "6", + "5", + "6", + "5", + "3", + "8", + "5", + "1", + "6", + "1", + "5", + "4", + "6", + "2", + "3", + "1", + "4", + "5", + "7", + "5", + "6", + "2", + "5", + "1", + "1", + "1", + "1", + "1", + "5", + "10", + "6", + "3", + "2", + "6", + "4", + "5", + "1", + "6", + "5", + "9", + "1", + "5", + "1", + "6", + "5", + "4", + "5", + "9", + "2", + "4", + "5", + "1", + "9", + "2", + "8", + "5", + "6", + "5", + "6", + "4", + "1", + "5", + "1", + "1", + "5" + ], + [ + "5", + "5", + "1", + "6", + "5", + "1", + "5", + "8", + "5", + "6", + "5", + "8", + "5", + "3", + "8", + "5", + "6", + "5", + "1", + "4", + "5", + "6", + "4", + "3", + "1", + "3", + "5", + "4", + "4", + "10", + "5", + "6", + "7", + "5", + "3", + "5", + "7", + "1", + "5", + "5", + "4", + "1", + "1", + "5", + "10", + "6", + "5", + "5", + "6", + "5", + "3", + "1", + "5", + "6", + "2", + "1", + "6", + "1", + "3", + "5", + "4", + "9", + "5", + "6", + "5", + "1", + "7", + "5", + "2", + "4", + "8", + "5", + "1", + "5", + "1", + "1" + ], + [ + "1", + "1", + "6", + "3", + "1", + "7", + "8", + "3", + "9", + "6", + "5", + "4", + "3", + "1", + "1", + "5", + "4", + "1", + "2", + "10", + "6", + "5", + "5", + "3", + "7", + "1", + "3", + "9", + "10", + "1", + "5", + "9", + "5", + "6", + "1", + "6", + "10", + "1", + "8", + "5", + "3", + "6", + "4", + "8", + "10", + "1", + "9", + "5", + "5", + "10", + "1", + "10", + "2", + "5", + "7", + "5", + "6", + "1", + "6", + "2", + "1", + "5", + "6", + "1", + "4", + "1", + "1" + ], + [ + "10", + "8", + "6", + "8", + "10", + "5", + "10", + "3", + "9", + "6", + "7", + "7", + "7", + "4", + "9", + "4", + "10", + "3", + "9", + "9", + "5", + "10", + "7", + "1", + "2", + "10", + "5", + "5", + "9", + "9", + "6", + "6", + "9", + "2", + "3", + "6", + "4", + "10", + "9", + "8", + "7", + "6", + "5", + "4", + "8", + "9", + "10", + "7", + "8", + "6", + "6", + "1", + "1", + "1", + "1", + "1", + "1", + "8", + "4", + "10", + "9", + "5" + ] + ], + "respin": [ + [ + "10", + "6", + "10", + "5", + "8", + "9", + "10", + "10", + "4", + "6", + "5", + "10", + "7", + "7", + "3", + "8", + "8", + "9", + "9", + "9", + "5", + "1", + "8", + "10", + "9", + "2", + "10", + "5", + "6", + "10", + "7", + "7", + "5", + "9", + "10", + "2", + "10", + "7", + "10", + "6", + "4", + "8", + "8", + "10", + "6", + "5", + "10", + "5", + "6", + "10", + "9", + "8", + "7", + "6", + "5", + "9", + "10", + "8", + "5", + "8", + "6", + "9", + "6", + "4", + "10", + "6" + ], + [ + "5", + "9", + "10", + "9", + "10", + "7", + "4", + "9", + "8", + "10", + "9", + "10", + "3", + "8", + "10", + "8", + "10", + "9", + "4", + "6", + "9", + "1", + "10", + "9", + "4", + "7", + "7", + "10", + "9", + "10", + "3", + "10", + "10", + "6", + "6", + "3", + "8", + "9", + "10", + "9", + "8", + "6", + "9", + "5", + "7", + "9", + "4", + "10", + "9", + "9", + "2", + "9", + "4", + "10", + "10", + "5", + "9", + "8", + "6" + ], + [ + "10", + "10", + "6", + "6", + "8", + "8", + "9", + "5", + "8", + "10", + "3", + "8", + "7", + "7", + "5", + "4", + "6", + "9", + "4", + "10", + "10", + "3", + "7", + "6", + "4", + "10", + "9", + "4", + "10", + "10", + "6", + "3", + "9", + "7", + "4", + "4", + "10", + "8", + "10", + "5", + "10", + "9", + "10", + "9", + "5", + "1", + "9", + "10", + "5", + "10", + "2", + "9", + "8", + "7", + "6", + "5", + "4", + "10", + "10", + "5", + "9", + "8", + "7", + "10", + "6" + ], + [ + "6", + "10", + "8", + "7", + "8", + "8", + "9", + "9", + "5", + "6", + "7", + "7", + "4", + "9", + "10", + "8", + "6", + "4", + "4", + "2", + "10", + "6", + "6", + "5", + "5", + "7", + "7", + "1", + "9", + "10", + "3", + "6", + "9", + "8", + "6", + "7", + "9", + "7", + "8", + "3", + "8", + "10", + "9", + "10", + "10", + "7", + "5", + "10", + "9", + "9", + "4", + "7", + "7", + "9", + "10", + "7", + "6" + ], + [ + "10", + "8", + "6", + "8", + "9", + "5", + "7", + "3", + "7", + "6", + "7", + "7", + "7", + "4", + "4", + "8", + "9", + "9", + "5", + "9", + "7", + "9", + "8", + "8", + "10", + "5", + "8", + "7", + "6", + "5", + "9", + "4", + "9", + "6", + "9", + "9", + "3", + "6", + "8", + "9", + "4", + "10", + "9", + "8", + "7", + "6", + "5", + "4", + "8", + "9", + "10", + "7", + "8", + "6", + "6", + "8", + "10", + "7", + "9", + "9", + "7", + "10" + ] + ] + }, + "layout": { + "reels": 5, + "rows": 4 + }, + "currency": { + "code": "EUR", + "symbol": "€", + "subunits": 100, + "exponent": 2 + }, + "screen": [ + [ + "4", + "10", + "4", + "6" + ], + [ + "10", + "1", + "9", + "7" + ], + [ + "9", + "5", + "6", + "6" + ], + [ + "5", + "2", + "7", + "8" + ], + [ + "5", + "9", + "4", + "7" + ] + ], + "feature_options": { + "feature_multipliers": { + "freespin_buy": 20000, + "bonus_buy": 10000, + "bonus_chance": 300 + }, + "disabled_features": [] + } + }, + "balance": { + "game": 0, + "wallet": 108010 + }, + "flow": { + "round_id": 176213, + "last_action_id": "176213_1", + "state": "ready", + "command": "init", + "available_actions": [ + "init", + "spin" + ], + "purchased_feature": {} + } + } +] diff --git a/dataPresets/data_2.json b/dataPresets/data_2.json new file mode 100644 index 0000000..c54319b --- /dev/null +++ b/dataPresets/data_2.json @@ -0,0 +1,2096 @@ +[ + { + "api_version": "2", + "options": { + "available_bets": [ + 100, + 200, + 500, + 1000, + 1400, + 1600, + 1800, + 2000, + 2500, + 3000, + 3500, + 4000, + 4500, + 5000, + 5500, + 6000, + 6500, + 7000, + 7500, + 8000, + 8500, + 9000, + 9500, + 10000, + 11000, + 12000, + 13000, + 14000, + 15000, + 16000, + 17000, + 18000, + 19000, + 20000, + 21000, + 22000, + 23000, + 24000, + 25000, + 26000, + 27000, + 28000, + 29000, + 30000, + 40000 + ], + "default_bet": 200, + "base_bet": 10, + "paytable": { + "0": [ + 0, + 0, + 30, + 50, + 100 + ], + "1": [ + 0, + 0, + 30, + 50, + 100 + ], + "2": [ + 0, + 0, + 15, + 30, + 80 + ], + "3": [ + 0, + 0, + 10, + 20, + 60 + ], + "4": [ + 0, + 0, + 5, + 10, + 40 + ], + "5": [ + 0, + 0, + 5, + 10, + 40 + ], + "6": [ + 0, + 0, + 2, + 5, + 20 + ], + "7": [ + 0, + 0, + 2, + 5, + 20 + ], + "8": [ + 0, + 0, + 2, + 5, + 20 + ], + "9": [ + 0, + 0, + 1, + 3, + 10 + ], + "10": [ + 0, + 0, + 1, + 3, + 10 + ], + "11": [ + 0, + 0, + 0, + 0, + 0 + ] + }, + "paytables": { + "0": { + "default": [ + 0, + 0, + 30, + 50, + 100 + ] + }, + "1": { + "default": [ + 0, + 0, + 30, + 50, + 100 + ] + }, + "2": { + "default": [ + 0, + 0, + 15, + 30, + 80 + ] + }, + "3": { + "default": [ + 0, + 0, + 10, + 20, + 60 + ] + }, + "4": { + "default": [ + 0, + 0, + 5, + 10, + 40 + ] + }, + "5": { + "default": [ + 0, + 0, + 5, + 10, + 40 + ] + }, + "6": { + "default": [ + 0, + 0, + 2, + 5, + 20 + ] + }, + "7": { + "default": [ + 0, + 0, + 2, + 5, + 20 + ] + }, + "8": { + "default": [ + 0, + 0, + 2, + 5, + 20 + ] + }, + "9": { + "default": [ + 0, + 0, + 1, + 3, + 10 + ] + }, + "10": { + "default": [ + 0, + 0, + 1, + 3, + 10 + ] + }, + "11": { + "default": [ + 0, + 0, + 0, + 0, + 0 + ], + "scatter": [ + 0, + 0, + 0, + 0, + 0 + ] + } + }, + "special_symbols": [ + { + "kind": "wild", + "symbol": "0" + }, + { + "kind": "scatter", + "symbol": "11" + } + ], + "lines": [ + [ + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 1, + 1, + 1, + 1 + ], + [ + 2, + 2, + 2, + 2, + 2 + ], + [ + 3, + 3, + 3, + 3, + 3 + ], + [ + 0, + 1, + 0, + 1, + 0 + ], + [ + 1, + 0, + 1, + 0, + 1 + ], + [ + 1, + 2, + 1, + 2, + 1 + ], + [ + 2, + 1, + 2, + 1, + 2 + ], + [ + 2, + 3, + 2, + 3, + 2 + ], + [ + 3, + 2, + 3, + 2, + 3 + ], + [ + 0, + 1, + 1, + 1, + 0 + ], + [ + 1, + 0, + 0, + 0, + 1 + ], + [ + 1, + 2, + 2, + 2, + 1 + ], + [ + 2, + 1, + 1, + 1, + 2 + ], + [ + 2, + 3, + 3, + 3, + 2 + ], + [ + 3, + 2, + 2, + 2, + 3 + ] + ], + "reels": { + "main": [ + [ + "6", + "2", + "10", + "5", + "10", + "1", + "1", + "10", + "7", + "8", + "2", + "4", + "10", + "6", + "9", + "5", + "9", + "5", + "7", + "10", + "3", + "10", + "8", + "4", + "9", + "3", + "5", + "10", + "4", + "9", + "2", + "10", + "3", + "6", + "2", + "5", + "10", + "5", + "9", + "5", + "2", + "10", + "6", + "2", + "7", + "4", + "10", + "4", + "5", + "10", + "2", + "10", + "7", + "2", + "5", + "4", + "3", + "8", + "5", + "10", + "9", + "10", + "4", + "2", + "10", + "1", + "10", + "5" + ], + [ + "5", + "10", + "2", + "9", + "10", + "2", + "9", + "7", + "4", + "9", + "8", + "5", + "9", + "4", + "3", + "8", + "10", + "1", + "1", + "3", + "9", + "4", + "6", + "9", + "3", + "5", + "4", + "2", + "7", + "10", + "1", + "10", + "5", + "6", + "3", + "10", + "2", + "6", + "3", + "9", + "1", + "9", + "2", + "6", + "9", + "1", + "5", + "7", + "9", + "4", + "10", + "4", + "9", + "2", + "9", + "4", + "3", + "10", + "5", + "2", + "5", + "6", + "1", + "10", + "5", + "10" + ], + [ + "10", + "5", + "6", + "6", + "2", + "8", + "1", + "5", + "8", + "10", + "3", + "8", + "7", + "3", + "5", + "4", + "10", + "5", + "6", + "4", + "10", + "10", + "3", + "7", + "9", + "5", + "4", + "5", + "10", + "1", + "7", + "3", + "7", + "4", + "4", + "4", + "8", + "10", + "1", + "10", + "9", + "5", + "3", + "9", + "5", + "5", + "10", + "2", + "9", + "4", + "2", + "6", + "10", + "5", + "10", + "5", + "10", + "8", + "3", + "10", + "5" + ], + [ + "6", + "10", + "5", + "2", + "7", + "8", + "8", + "9", + "5", + "6", + "3", + "3", + "7", + "4", + "9", + "1", + "2", + "6", + "4", + "4", + "2", + "10", + "6", + "6", + "5", + "5", + "4", + "5", + "7", + "3", + "10", + "9", + "2", + "3", + "6", + "9", + "6", + "6", + "3", + "7", + "10", + "7", + "8", + "3", + "8", + "10", + "5", + "9", + "9", + "3", + "5", + "5", + "10", + "10", + "5", + "1", + "7", + "7", + "5", + "6", + "7", + "3", + "10", + "5", + "1" + ], + [ + "2", + "8", + "1", + "6", + "4", + "10", + "5", + "10", + "3", + "7", + "6", + "5", + "1", + "9", + "4", + "4", + "4", + "8", + "3", + "9", + "9", + "5", + "7", + "1", + "7", + "5", + "1", + "9", + "4", + "8", + "2", + "10", + "5", + "5", + "4", + "9", + "1", + "6", + "5", + "9", + "2", + "3", + "6", + "3", + "6", + "4", + "10", + "5", + "9", + "4", + "7", + "6", + "5", + "4", + "8", + "9", + "2", + "7", + "4", + "6", + "3", + "8", + "3", + "2", + "1" + ] + ], + "freespins": [ + [ + "6", + "6", + "5", + "7", + "4", + "8", + "10", + "5", + "10", + "6", + "9", + "5", + "7", + "7", + "3", + "8", + "8", + "9", + "7", + "10", + "4", + "10", + "9", + "2", + "4", + "9", + "6", + "3", + "7", + "7", + "5", + "9", + "4", + "10", + "2", + "9", + "4", + "8", + "8", + "6", + "5", + "6", + "10", + "5", + "9", + "8", + "5", + "7", + "4", + "10", + "6", + "3", + "9", + "8", + "6", + "4", + "9", + "1", + "1", + "1", + "1", + "10", + "9", + "5", + "10" + ], + [ + "5", + "1", + "3", + "5", + "9", + "1", + "5", + "1", + "2", + "5", + "6", + "5", + "6", + "5", + "3", + "8", + "5", + "1", + "6", + "1", + "5", + "4", + "6", + "2", + "3", + "1", + "4", + "5", + "7", + "5", + "6", + "2", + "5", + "1", + "1", + "1", + "1", + "1", + "5", + "10", + "6", + "3", + "2", + "6", + "4", + "5", + "1", + "6", + "5", + "9", + "1", + "5", + "1", + "6", + "5", + "4", + "5", + "9", + "2", + "4", + "5", + "1", + "9", + "2", + "8", + "5", + "6", + "5", + "6", + "4", + "1", + "5", + "1", + "1", + "5" + ], + [ + "5", + "5", + "1", + "6", + "5", + "1", + "5", + "8", + "5", + "6", + "5", + "8", + "5", + "3", + "8", + "5", + "6", + "5", + "1", + "4", + "5", + "6", + "4", + "3", + "1", + "3", + "5", + "4", + "4", + "10", + "5", + "6", + "7", + "5", + "3", + "5", + "7", + "1", + "5", + "5", + "4", + "1", + "1", + "5", + "10", + "6", + "5", + "5", + "6", + "5", + "3", + "1", + "5", + "6", + "2", + "1", + "6", + "1", + "3", + "5", + "4", + "9", + "5", + "6", + "5", + "1", + "7", + "5", + "2", + "4", + "8", + "5", + "1", + "5", + "1", + "1" + ], + [ + "1", + "1", + "6", + "3", + "1", + "7", + "8", + "3", + "9", + "6", + "5", + "4", + "3", + "1", + "1", + "5", + "4", + "1", + "2", + "10", + "6", + "5", + "5", + "3", + "7", + "1", + "3", + "9", + "10", + "1", + "5", + "9", + "5", + "6", + "1", + "6", + "10", + "1", + "8", + "5", + "3", + "6", + "4", + "8", + "10", + "1", + "9", + "5", + "5", + "10", + "1", + "10", + "2", + "5", + "7", + "5", + "6", + "1", + "6", + "2", + "1", + "5", + "6", + "1", + "4", + "1", + "1" + ], + [ + "10", + "8", + "6", + "8", + "10", + "5", + "10", + "3", + "9", + "6", + "7", + "7", + "7", + "4", + "9", + "4", + "10", + "3", + "9", + "9", + "5", + "10", + "7", + "1", + "2", + "10", + "5", + "5", + "9", + "9", + "6", + "6", + "9", + "2", + "3", + "6", + "4", + "10", + "9", + "8", + "7", + "6", + "5", + "4", + "8", + "9", + "10", + "7", + "8", + "6", + "6", + "1", + "1", + "1", + "1", + "1", + "1", + "8", + "4", + "10", + "9", + "5" + ] + ], + "respin": [ + [ + "10", + "6", + "10", + "5", + "8", + "9", + "10", + "10", + "4", + "6", + "5", + "10", + "7", + "7", + "3", + "8", + "8", + "9", + "9", + "9", + "5", + "1", + "8", + "10", + "9", + "2", + "10", + "5", + "6", + "10", + "7", + "7", + "5", + "9", + "10", + "2", + "10", + "7", + "10", + "6", + "4", + "8", + "8", + "10", + "6", + "5", + "10", + "5", + "6", + "10", + "9", + "8", + "7", + "6", + "5", + "9", + "10", + "8", + "5", + "8", + "6", + "9", + "6", + "4", + "10", + "6" + ], + [ + "5", + "9", + "10", + "9", + "10", + "7", + "4", + "9", + "8", + "10", + "9", + "10", + "3", + "8", + "10", + "8", + "10", + "9", + "4", + "6", + "9", + "1", + "10", + "9", + "4", + "7", + "7", + "10", + "9", + "10", + "3", + "10", + "10", + "6", + "6", + "3", + "8", + "9", + "10", + "9", + "8", + "6", + "9", + "5", + "7", + "9", + "4", + "10", + "9", + "9", + "2", + "9", + "4", + "10", + "10", + "5", + "9", + "8", + "6" + ], + [ + "10", + "10", + "6", + "6", + "8", + "8", + "9", + "5", + "8", + "10", + "3", + "8", + "7", + "7", + "5", + "4", + "6", + "9", + "4", + "10", + "10", + "3", + "7", + "6", + "4", + "10", + "9", + "4", + "10", + "10", + "6", + "3", + "9", + "7", + "4", + "4", + "10", + "8", + "10", + "5", + "10", + "9", + "10", + "9", + "5", + "1", + "9", + "10", + "5", + "10", + "2", + "9", + "8", + "7", + "6", + "5", + "4", + "10", + "10", + "5", + "9", + "8", + "7", + "10", + "6" + ], + [ + "6", + "10", + "8", + "7", + "8", + "8", + "9", + "9", + "5", + "6", + "7", + "7", + "4", + "9", + "10", + "8", + "6", + "4", + "4", + "2", + "10", + "6", + "6", + "5", + "5", + "7", + "7", + "1", + "9", + "10", + "3", + "6", + "9", + "8", + "6", + "7", + "9", + "7", + "8", + "3", + "8", + "10", + "9", + "10", + "10", + "7", + "5", + "10", + "9", + "9", + "4", + "7", + "7", + "9", + "10", + "7", + "6" + ], + [ + "10", + "8", + "6", + "8", + "9", + "5", + "7", + "3", + "7", + "6", + "7", + "7", + "7", + "4", + "4", + "8", + "9", + "9", + "5", + "9", + "7", + "9", + "8", + "8", + "10", + "5", + "8", + "7", + "6", + "5", + "9", + "4", + "9", + "6", + "9", + "9", + "3", + "6", + "8", + "9", + "4", + "10", + "9", + "8", + "7", + "6", + "5", + "4", + "8", + "9", + "10", + "7", + "8", + "6", + "6", + "8", + "10", + "7", + "9", + "9", + "7", + "10" + ] + ] + }, + "layout": { + "reels": 5, + "rows": 4 + }, + "currency": { + "code": "EUR", + "symbol": "€", + "subunits": 100, + "exponent": 2 + }, + "screen": [ + [ + "10", + "4", + "6", + "2" + ], + [ + "10", + "5", + "10", + "5" + ], + [ + "9", + "3", + "9", + "5" + ], + [ + "5", + "4", + "5", + "7" + ], + [ + "4", + "4", + "8", + "3" + ] + ], + "feature_options": { + "feature_multipliers": { + "freespin_buy": 20000, + "bonus_buy": 10000, + "bonus_chance": 300 + }, + "disabled_features": [] + } + }, + "balance": { + "game": 0, + "wallet": 102260 + }, + "flow": { + "round_id": 392931, + "last_action_id": "392931_4", + "state": "ready", + "command": "init", + "available_actions": [ + "init", + "spin" + ], + "purchased_feature": {} + } + }, + { + "api_version": "2", + "features": { + "respins_issued": 3, + "respins_left": 3, + "sticky_wilds": [ + [ + [ + 0, + 0 + ], + 1, + 0 + ], + [ + [ + 1, + 1 + ], + 1, + 0 + ], + [ + [ + 4, + 3 + ], + 1, + 0 + ] + ] + }, + "outcome": { + "screen": [ + [ + "0", + "3", + "5", + "10" + ], + [ + "5", + "0", + "5", + "10" + ], + [ + "10", + "1", + "10", + "9" + ], + [ + "7", + "7", + "5", + "6" + ], + [ + "5", + "1", + "9", + "0" + ] + ], + "special_symbols": { + "wild": { + "0": [ + [ + 0, + 0 + ], + [ + 1, + 1 + ], + [ + 4, + 3 + ] + ] + } + }, + "bet": 200, + "win": 1240, + "wins": [ + [ + "line", + 40, + [ + 0, + 1, + 0 + ], + 4 + ], + [ + "line", + 1200, + [ + 0, + 1, + 1 + ], + 10 + ] + ], + "storage": { + "wilds": [ + [ + [ + 0, + 0 + ], + 1, + 0 + ], + [ + [ + 1, + 1 + ], + 1, + 0 + ], + [ + [ + 4, + 3 + ], + 1, + 0 + ] + ] + } + }, + "balance": { + "game": 1240, + "wallet": 102060 + }, + "flow": { + "round_id": 392951, + "last_action_id": "392951_1", + "state": "respin", + "command": "spin", + "available_actions": [ + "init", + "respin" + ], + "purchased_feature": {} + } + }, + { + "api_version": "2", + "features": { + "respins_issued": 3, + "respins_left": 2, + "sticky_wilds": [ + [ + [ + 0, + 0 + ], + 1, + 0 + ], + [ + [ + 1, + 1 + ], + 1, + 0 + ], + [ + [ + 4, + 3 + ], + 1, + 0 + ] + ] + }, + "outcome": { + "screen": [ + [ + "0", + "10", + "2", + "10" + ], + [ + "9", + "0", + "3", + "8" + ], + [ + "5", + "10", + "2", + "9" + ], + [ + "8", + "10", + "9", + "10" + ], + [ + "7", + "6", + "7", + "0" + ] + ], + "special_symbols": { + "wild": { + "0": [ + [ + 0, + 0 + ], + [ + 1, + 1 + ], + [ + 4, + 3 + ] + ] + } + }, + "bet": 200, + "win": 680, + "wins": [ + [ + "line", + 60, + [ + 1, + 1, + 1, + 1 + ], + 1 + ], + [ + "line", + 200, + [ + 0, + 1, + 0 + ], + 4 + ], + [ + "line", + 300, + [ + 2, + 1, + 2 + ], + 7 + ], + [ + "line", + 120, + [ + 0, + 1, + 1, + 1 + ], + 10 + ] + ], + "storage": { + "wilds": [ + [ + [ + 0, + 0 + ], + 1, + 0 + ], + [ + [ + 1, + 1 + ], + 1, + 0 + ], + [ + [ + 4, + 3 + ], + 1, + 0 + ] + ] + } + }, + "balance": { + "game": 1920, + "wallet": 102060 + }, + "flow": { + "round_id": 392951, + "last_action_id": "392951_2", + "state": "respin", + "command": "respin", + "available_actions": [ + "init", + "respin" + ], + "purchased_feature": {} + } + }, + { + "api_version": "2", + "features": { + "respins_issued": 3, + "respins_left": 1, + "sticky_wilds": [ + [ + [ + 0, + 0 + ], + 1, + 0 + ], + [ + [ + 1, + 1 + ], + 1, + 0 + ], + [ + [ + 4, + 3 + ], + 1, + 0 + ] + ] + }, + "outcome": { + "screen": [ + [ + "0", + "10", + "4", + "6" + ], + [ + "7", + "0", + "4", + "10" + ], + [ + "9", + "8", + "7", + "10" + ], + [ + "9", + "9", + "5", + "6" + ], + [ + "8", + "6", + "8", + "0" + ] + ], + "special_symbols": { + "wild": { + "0": [ + [ + 0, + 0 + ], + [ + 1, + 1 + ], + [ + 4, + 3 + ] + ] + } + }, + "bet": 200, + "win": 200, + "wins": [ + [ + "line", + 120, + [ + 0, + 1, + 0, + 1 + ], + 4 + ], + [ + "line", + 80, + [ + 0, + 1, + 1 + ], + 10 + ] + ], + "storage": { + "wilds": [ + [ + [ + 0, + 0 + ], + 1, + 0 + ], + [ + [ + 1, + 1 + ], + 1, + 0 + ], + [ + [ + 4, + 3 + ], + 1, + 0 + ] + ] + } + }, + "balance": { + "game": 2120, + "wallet": 102060 + }, + "flow": { + "round_id": 392951, + "last_action_id": "392951_3", + "state": "respin", + "command": "respin", + "available_actions": [ + "init", + "respin" + ], + "purchased_feature": {} + } + }, + { + "api_version": "2", + "features": { + "respins_issued": 3, + "respins_left": 0, + "sticky_wilds": [ + [ + [ + 0, + 0 + ], + 1, + 0 + ], + [ + [ + 1, + 1 + ], + 1, + 0 + ], + [ + [ + 4, + 3 + ], + 1, + 0 + ] + ] + }, + "outcome": { + "screen": [ + [ + "0", + "10", + "6", + "10" + ], + [ + "9", + "0", + "6", + "9" + ], + [ + "10", + "8", + "10", + "5" + ], + [ + "5", + "5", + "7", + "7" + ], + [ + "10", + "10", + "8", + "0" + ] + ], + "special_symbols": { + "wild": { + "0": [ + [ + 0, + 0 + ], + [ + 1, + 1 + ], + [ + 4, + 3 + ] + ] + } + }, + "bet": 200, + "win": 120, + "wins": [ + [ + "line", + 40, + [ + 0, + 1, + 0 + ], + 4 + ], + [ + "line", + 80, + [ + 0, + 1, + 1 + ], + 10 + ] + ], + "storage": { + "wilds": [ + [ + [ + 0, + 0 + ], + 1, + 0 + ], + [ + [ + 1, + 1 + ], + 1, + 0 + ], + [ + [ + 4, + 3 + ], + 1, + 0 + ] + ] + } + }, + "balance": { + "game": 2240, + "wallet": 102060 + }, + "flow": { + "round_id": 392951, + "last_action_id": "392951_4", + "state": "closed", + "command": "respin", + "available_actions": [ + "init", + "spin" + ], + "purchased_feature": {} + } + } +] diff --git a/dataPresets/data_3.json b/dataPresets/data_3.json new file mode 100644 index 0000000..facc43e --- /dev/null +++ b/dataPresets/data_3.json @@ -0,0 +1,1659 @@ +[ + { + "api_version": "2", + "options": { + "available_bets": [ + 100, + 200, + 500, + 1000, + 1400, + 1600, + 1800, + 2000, + 2500, + 3000, + 3500, + 4000, + 4500, + 5000, + 5500, + 6000, + 6500, + 7000, + 7500, + 8000, + 8500, + 9000, + 9500, + 10000, + 11000, + 12000, + 13000, + 14000, + 15000, + 16000, + 17000, + 18000, + 19000, + 20000, + 21000, + 22000, + 23000, + 24000, + 25000, + 26000, + 27000, + 28000, + 29000, + 30000, + 40000 + ], + "default_bet": 200, + "base_bet": 10, + "paytable": { + "0": [ + 0, + 0, + 30, + 50, + 100 + ], + "1": [ + 0, + 0, + 30, + 50, + 100 + ], + "2": [ + 0, + 0, + 15, + 30, + 80 + ], + "3": [ + 0, + 0, + 10, + 20, + 60 + ], + "4": [ + 0, + 0, + 5, + 10, + 40 + ], + "5": [ + 0, + 0, + 5, + 10, + 40 + ], + "6": [ + 0, + 0, + 2, + 5, + 20 + ], + "7": [ + 0, + 0, + 2, + 5, + 20 + ], + "8": [ + 0, + 0, + 2, + 5, + 20 + ], + "9": [ + 0, + 0, + 1, + 3, + 10 + ], + "10": [ + 0, + 0, + 1, + 3, + 10 + ], + "11": [ + 0, + 0, + 0, + 0, + 0 + ] + }, + "paytables": { + "0": { + "default": [ + 0, + 0, + 30, + 50, + 100 + ] + }, + "1": { + "default": [ + 0, + 0, + 30, + 50, + 100 + ] + }, + "2": { + "default": [ + 0, + 0, + 15, + 30, + 80 + ] + }, + "3": { + "default": [ + 0, + 0, + 10, + 20, + 60 + ] + }, + "4": { + "default": [ + 0, + 0, + 5, + 10, + 40 + ] + }, + "5": { + "default": [ + 0, + 0, + 5, + 10, + 40 + ] + }, + "6": { + "default": [ + 0, + 0, + 2, + 5, + 20 + ] + }, + "7": { + "default": [ + 0, + 0, + 2, + 5, + 20 + ] + }, + "8": { + "default": [ + 0, + 0, + 2, + 5, + 20 + ] + }, + "9": { + "default": [ + 0, + 0, + 1, + 3, + 10 + ] + }, + "10": { + "default": [ + 0, + 0, + 1, + 3, + 10 + ] + }, + "11": { + "default": [ + 0, + 0, + 0, + 0, + 0 + ], + "scatter": [ + 0, + 0, + 0, + 0, + 0 + ] + } + }, + "special_symbols": [ + { + "kind": "wild", + "symbol": "0" + }, + { + "kind": "scatter", + "symbol": "11" + } + ], + "lines": [ + [ + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 1, + 1, + 1, + 1 + ], + [ + 2, + 2, + 2, + 2, + 2 + ], + [ + 3, + 3, + 3, + 3, + 3 + ], + [ + 0, + 1, + 0, + 1, + 0 + ], + [ + 1, + 0, + 1, + 0, + 1 + ], + [ + 1, + 2, + 1, + 2, + 1 + ], + [ + 2, + 1, + 2, + 1, + 2 + ], + [ + 2, + 3, + 2, + 3, + 2 + ], + [ + 3, + 2, + 3, + 2, + 3 + ], + [ + 0, + 1, + 1, + 1, + 0 + ], + [ + 1, + 0, + 0, + 0, + 1 + ], + [ + 1, + 2, + 2, + 2, + 1 + ], + [ + 2, + 1, + 1, + 1, + 2 + ], + [ + 2, + 3, + 3, + 3, + 2 + ], + [ + 3, + 2, + 2, + 2, + 3 + ] + ], + "reels": { + "main": [ + [ + "6", + "2", + "10", + "5", + "10", + "1", + "1", + "10", + "7", + "8", + "2", + "4", + "10", + "6", + "9", + "5", + "9", + "5", + "7", + "10", + "3", + "10", + "8", + "4", + "9", + "3", + "5", + "10", + "4", + "9", + "2", + "10", + "3", + "6", + "2", + "5", + "10", + "5", + "9", + "5", + "2", + "10", + "6", + "2", + "7", + "4", + "10", + "4", + "5", + "10", + "2", + "10", + "7", + "2", + "5", + "4", + "3", + "8", + "5", + "10", + "9", + "10", + "4", + "2", + "10", + "1", + "10", + "5" + ], + [ + "5", + "10", + "2", + "9", + "10", + "2", + "9", + "7", + "4", + "9", + "8", + "5", + "9", + "4", + "3", + "8", + "10", + "1", + "1", + "3", + "9", + "4", + "6", + "9", + "3", + "5", + "4", + "2", + "7", + "10", + "1", + "10", + "5", + "6", + "3", + "10", + "2", + "6", + "3", + "9", + "1", + "9", + "2", + "6", + "9", + "1", + "5", + "7", + "9", + "4", + "10", + "4", + "9", + "2", + "9", + "4", + "3", + "10", + "5", + "2", + "5", + "6", + "1", + "10", + "5", + "10" + ], + [ + "10", + "5", + "6", + "6", + "2", + "8", + "1", + "5", + "8", + "10", + "3", + "8", + "7", + "3", + "5", + "4", + "10", + "5", + "6", + "4", + "10", + "10", + "3", + "7", + "9", + "5", + "4", + "5", + "10", + "1", + "7", + "3", + "7", + "4", + "4", + "4", + "8", + "10", + "1", + "10", + "9", + "5", + "3", + "9", + "5", + "5", + "10", + "2", + "9", + "4", + "2", + "6", + "10", + "5", + "10", + "5", + "10", + "8", + "3", + "10", + "5" + ], + [ + "6", + "10", + "5", + "2", + "7", + "8", + "8", + "9", + "5", + "6", + "3", + "3", + "7", + "4", + "9", + "1", + "2", + "6", + "4", + "4", + "2", + "10", + "6", + "6", + "5", + "5", + "4", + "5", + "7", + "3", + "10", + "9", + "2", + "3", + "6", + "9", + "6", + "6", + "3", + "7", + "10", + "7", + "8", + "3", + "8", + "10", + "5", + "9", + "9", + "3", + "5", + "5", + "10", + "10", + "5", + "1", + "7", + "7", + "5", + "6", + "7", + "3", + "10", + "5", + "1" + ], + [ + "2", + "8", + "1", + "6", + "4", + "10", + "5", + "10", + "3", + "7", + "6", + "5", + "1", + "9", + "4", + "4", + "4", + "8", + "3", + "9", + "9", + "5", + "7", + "1", + "7", + "5", + "1", + "9", + "4", + "8", + "2", + "10", + "5", + "5", + "4", + "9", + "1", + "6", + "5", + "9", + "2", + "3", + "6", + "3", + "6", + "4", + "10", + "5", + "9", + "4", + "7", + "6", + "5", + "4", + "8", + "9", + "2", + "7", + "4", + "6", + "3", + "8", + "3", + "2", + "1" + ] + ], + "freespins": [ + [ + "6", + "6", + "5", + "7", + "4", + "8", + "10", + "5", + "10", + "6", + "9", + "5", + "7", + "7", + "3", + "8", + "8", + "9", + "7", + "10", + "4", + "10", + "9", + "2", + "4", + "9", + "6", + "3", + "7", + "7", + "5", + "9", + "4", + "10", + "2", + "9", + "4", + "8", + "8", + "6", + "5", + "6", + "10", + "5", + "9", + "8", + "5", + "7", + "4", + "10", + "6", + "3", + "9", + "8", + "6", + "4", + "9", + "1", + "1", + "1", + "1", + "10", + "9", + "5", + "10" + ], + [ + "5", + "1", + "3", + "5", + "9", + "1", + "5", + "1", + "2", + "5", + "6", + "5", + "6", + "5", + "3", + "8", + "5", + "1", + "6", + "1", + "5", + "4", + "6", + "2", + "3", + "1", + "4", + "5", + "7", + "5", + "6", + "2", + "5", + "1", + "1", + "1", + "1", + "1", + "5", + "10", + "6", + "3", + "2", + "6", + "4", + "5", + "1", + "6", + "5", + "9", + "1", + "5", + "1", + "6", + "5", + "4", + "5", + "9", + "2", + "4", + "5", + "1", + "9", + "2", + "8", + "5", + "6", + "5", + "6", + "4", + "1", + "5", + "1", + "1", + "5" + ], + [ + "5", + "5", + "1", + "6", + "5", + "1", + "5", + "8", + "5", + "6", + "5", + "8", + "5", + "3", + "8", + "5", + "6", + "5", + "1", + "4", + "5", + "6", + "4", + "3", + "1", + "3", + "5", + "4", + "4", + "10", + "5", + "6", + "7", + "5", + "3", + "5", + "7", + "1", + "5", + "5", + "4", + "1", + "1", + "5", + "10", + "6", + "5", + "5", + "6", + "5", + "3", + "1", + "5", + "6", + "2", + "1", + "6", + "1", + "3", + "5", + "4", + "9", + "5", + "6", + "5", + "1", + "7", + "5", + "2", + "4", + "8", + "5", + "1", + "5", + "1", + "1" + ], + [ + "1", + "1", + "6", + "3", + "1", + "7", + "8", + "3", + "9", + "6", + "5", + "4", + "3", + "1", + "1", + "5", + "4", + "1", + "2", + "10", + "6", + "5", + "5", + "3", + "7", + "1", + "3", + "9", + "10", + "1", + "5", + "9", + "5", + "6", + "1", + "6", + "10", + "1", + "8", + "5", + "3", + "6", + "4", + "8", + "10", + "1", + "9", + "5", + "5", + "10", + "1", + "10", + "2", + "5", + "7", + "5", + "6", + "1", + "6", + "2", + "1", + "5", + "6", + "1", + "4", + "1", + "1" + ], + [ + "10", + "8", + "6", + "8", + "10", + "5", + "10", + "3", + "9", + "6", + "7", + "7", + "7", + "4", + "9", + "4", + "10", + "3", + "9", + "9", + "5", + "10", + "7", + "1", + "2", + "10", + "5", + "5", + "9", + "9", + "6", + "6", + "9", + "2", + "3", + "6", + "4", + "10", + "9", + "8", + "7", + "6", + "5", + "4", + "8", + "9", + "10", + "7", + "8", + "6", + "6", + "1", + "1", + "1", + "1", + "1", + "1", + "8", + "4", + "10", + "9", + "5" + ] + ], + "respin": [ + [ + "10", + "6", + "10", + "5", + "8", + "9", + "10", + "10", + "4", + "6", + "5", + "10", + "7", + "7", + "3", + "8", + "8", + "9", + "9", + "9", + "5", + "1", + "8", + "10", + "9", + "2", + "10", + "5", + "6", + "10", + "7", + "7", + "5", + "9", + "10", + "2", + "10", + "7", + "10", + "6", + "4", + "8", + "8", + "10", + "6", + "5", + "10", + "5", + "6", + "10", + "9", + "8", + "7", + "6", + "5", + "9", + "10", + "8", + "5", + "8", + "6", + "9", + "6", + "4", + "10", + "6" + ], + [ + "5", + "9", + "10", + "9", + "10", + "7", + "4", + "9", + "8", + "10", + "9", + "10", + "3", + "8", + "10", + "8", + "10", + "9", + "4", + "6", + "9", + "1", + "10", + "9", + "4", + "7", + "7", + "10", + "9", + "10", + "3", + "10", + "10", + "6", + "6", + "3", + "8", + "9", + "10", + "9", + "8", + "6", + "9", + "5", + "7", + "9", + "4", + "10", + "9", + "9", + "2", + "9", + "4", + "10", + "10", + "5", + "9", + "8", + "6" + ], + [ + "10", + "10", + "6", + "6", + "8", + "8", + "9", + "5", + "8", + "10", + "3", + "8", + "7", + "7", + "5", + "4", + "6", + "9", + "4", + "10", + "10", + "3", + "7", + "6", + "4", + "10", + "9", + "4", + "10", + "10", + "6", + "3", + "9", + "7", + "4", + "4", + "10", + "8", + "10", + "5", + "10", + "9", + "10", + "9", + "5", + "1", + "9", + "10", + "5", + "10", + "2", + "9", + "8", + "7", + "6", + "5", + "4", + "10", + "10", + "5", + "9", + "8", + "7", + "10", + "6" + ], + [ + "6", + "10", + "8", + "7", + "8", + "8", + "9", + "9", + "5", + "6", + "7", + "7", + "4", + "9", + "10", + "8", + "6", + "4", + "4", + "2", + "10", + "6", + "6", + "5", + "5", + "7", + "7", + "1", + "9", + "10", + "3", + "6", + "9", + "8", + "6", + "7", + "9", + "7", + "8", + "3", + "8", + "10", + "9", + "10", + "10", + "7", + "5", + "10", + "9", + "9", + "4", + "7", + "7", + "9", + "10", + "7", + "6" + ], + [ + "10", + "8", + "6", + "8", + "9", + "5", + "7", + "3", + "7", + "6", + "7", + "7", + "7", + "4", + "4", + "8", + "9", + "9", + "5", + "9", + "7", + "9", + "8", + "8", + "10", + "5", + "8", + "7", + "6", + "5", + "9", + "4", + "9", + "6", + "9", + "9", + "3", + "6", + "8", + "9", + "4", + "10", + "9", + "8", + "7", + "6", + "5", + "4", + "8", + "9", + "10", + "7", + "8", + "6", + "6", + "8", + "10", + "7", + "9", + "9", + "7", + "10" + ] + ] + }, + "layout": { + "reels": 5, + "rows": 4 + }, + "currency": { + "code": "EUR", + "symbol": "€", + "subunits": 100, + "exponent": 2 + }, + "screen": [ + [ + "6", + "8", + "2", + "4" + ], + [ + "9", + "3", + "3", + "8" + ], + [ + "2", + "9", + "1", + "5" + ], + [ + "1", + "6", + "10", + "5" + ], + [ + "6", + "4", + "10", + "5" + ] + ], + "feature_options": { + "feature_multipliers": { + "freespin_buy": 20000, + "bonus_buy": 10000, + "bonus_chance": 300 + }, + "disabled_features": [] + } + }, + "balance": { + "game": 0, + "wallet": 1387860 + }, + "flow": { + "round_id": 396403, + "last_action_id": "396403_11", + "state": "ready", + "command": "init", + "available_actions": [ + "init", + "spin" + ], + "purchased_feature": {} + } + }, + { + "api_version": "2", + "features": { + "freespins_issued": 10, + "freespins_left": 10 + }, + "outcome": { + "screen": [ + [ + "11", + "2", + "10", + "1" + ], + [ + "11", + "10", + "2", + "6" + ], + [ + "6", + "6", + "2", + "8" + ], + [ + "1", + "7", + "7", + "5" + ], + [ + "5", + "4", + "11", + "9" + ] + ], + "special_symbols": { + "scatter": { + "11": [ + [ + 0, + 0 + ], + [ + 1, + 0 + ], + [ + 4, + 2 + ] + ] + } + }, + "bet": 200, + "win": 300, + "wins": [ + [ + "line", + 300, + [ + 1, + 2, + 2 + ], + 12 + ] + ], + "freespins_issued": 10, + "storage": { + "wilds": [] + } + }, + "balance": { + "game": 300, + "wallet": 1387660 + }, + "flow": { + "round_id": 396404, + "last_action_id": "396404_1", + "state": "freespins", + "command": "spin", + "available_actions": [ + "init", + "freespin" + ], + "purchased_feature": {} + } + }, + { + "api_version": "2", + "features": { + "freespins_issued": 10, + "freespins_left": 9 + }, + "outcome": { + "screen": [ + [ + "7", + "11", + "9", + "4" + ], + [ + "2", + "4", + "5", + "1" + ], + [ + "5", + "5", + "6", + "5" + ], + [ + "5", + "4", + "3", + "1" + ], + [ + "6", + "6", + "1", + "1" + ] + ], + "special_symbols": { + "scatter": { + "11": [ + [ + 0, + 1 + ] + ] + } + }, + "bet": 200, + "win": 400, + "wins": [ + [ + "line", + 200, + [ + 1, + 2, + 1 + ], + 6 + ], + [ + "line", + 200, + [ + 3, + 2, + 3 + ], + 9 + ] + ], + "storage": { + "expanded_wilds": [ + [ + [ + 0, + 1 + ], + 2, + 0 + ] + ] + } + }, + "balance": { + "game": 700, + "wallet": 1387660 + }, + "flow": { + "round_id": 396404, + "last_action_id": "396404_2", + "state": "freespins", + "command": "freespin", + "available_actions": [ + "init", + "freespin" + ], + "purchased_feature": {} + } + } +] diff --git a/dataPresets/freespins.json b/dataPresets/freespins.json new file mode 100644 index 0000000..1bc9a23 --- /dev/null +++ b/dataPresets/freespins.json @@ -0,0 +1,2540 @@ +[ + { + "api_version": "2", + "options": { + "available_bets": [ + 10, + 20, + 50, + 100, + 200, + 300, + 500, + 1000, + 5000 + ], + "default_bet": 10, + "paytable": { + "0": [ + 0, + 0, + 30, + 50, + 100 + ], + "1": [ + 0, + 0, + 30, + 50, + 100 + ], + "2": [ + 0, + 0, + 15, + 30, + 80 + ], + "3": [ + 0, + 0, + 10, + 20, + 60 + ], + "4": [ + 0, + 0, + 5, + 10, + 40 + ], + "5": [ + 0, + 0, + 5, + 10, + 40 + ], + "6": [ + 0, + 0, + 2, + 5, + 20 + ], + "7": [ + 0, + 0, + 2, + 5, + 20 + ], + "8": [ + 0, + 0, + 2, + 5, + 20 + ], + "9": [ + 0, + 0, + 1, + 3, + 10 + ], + "10": [ + 0, + 0, + 1, + 3, + 10 + ], + "11": [ + 0, + 0, + 0, + 0, + 0 + ] + }, + "paytables": { + "0": { + "default": [ + 0, + 0, + 30, + 50, + 100 + ] + }, + "1": { + "default": [ + 0, + 0, + 30, + 50, + 100 + ] + }, + "2": { + "default": [ + 0, + 0, + 15, + 30, + 80 + ] + }, + "3": { + "default": [ + 0, + 0, + 10, + 20, + 60 + ] + }, + "4": { + "default": [ + 0, + 0, + 5, + 10, + 40 + ] + }, + "5": { + "default": [ + 0, + 0, + 5, + 10, + 40 + ] + }, + "6": { + "default": [ + 0, + 0, + 2, + 5, + 20 + ] + }, + "7": { + "default": [ + 0, + 0, + 2, + 5, + 20 + ] + }, + "8": { + "default": [ + 0, + 0, + 2, + 5, + 20 + ] + }, + "9": { + "default": [ + 0, + 0, + 1, + 3, + 10 + ] + }, + "10": { + "default": [ + 0, + 0, + 1, + 3, + 10 + ] + }, + "11": { + "default": [ + 0, + 0, + 0, + 0, + 0 + ], + "scatter": [ + 0, + 0, + 0, + 0, + 0 + ] + } + }, + "special_symbols": [ + { + "kind": "wild", + "symbol": "0" + }, + { + "kind": "scatter", + "symbol": "11" + } + ], + "lines": [ + [ + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 1, + 1, + 1, + 1 + ], + [ + 2, + 2, + 2, + 2, + 2 + ], + [ + 3, + 3, + 3, + 3, + 3 + ], + [ + 0, + 1, + 0, + 1, + 0 + ], + [ + 1, + 0, + 1, + 0, + 1 + ], + [ + 1, + 2, + 1, + 2, + 1 + ], + [ + 2, + 1, + 2, + 1, + 2 + ], + [ + 2, + 3, + 2, + 3, + 2 + ], + [ + 3, + 2, + 3, + 2, + 3 + ], + [ + 0, + 1, + 1, + 1, + 0 + ], + [ + 1, + 0, + 0, + 0, + 1 + ], + [ + 1, + 2, + 2, + 2, + 1 + ], + [ + 2, + 1, + 1, + 1, + 2 + ], + [ + 2, + 3, + 3, + 3, + 2 + ], + [ + 3, + 2, + 2, + 2, + 3 + ] + ], + "reels": { + "main": [ + [ + "6", + "2", + "10", + "5", + "10", + "1", + "1", + "10", + "7", + "8", + "2", + "4", + "10", + "6", + "9", + "5", + "9", + "5", + "7", + "10", + "3", + "10", + "8", + "4", + "9", + "3", + "5", + "10", + "4", + "9", + "2", + "10", + "3", + "6", + "2", + "5", + "10", + "5", + "9", + "5", + "2", + "10", + "6", + "2", + "7", + "4", + "10", + "4", + "5", + "10", + "2", + "10", + "7", + "2", + "5", + "4", + "3", + "8", + "5", + "10", + "9", + "10", + "4", + "2", + "10", + "1", + "10", + "5" + ], + [ + "5", + "10", + "2", + "9", + "10", + "2", + "9", + "7", + "4", + "9", + "8", + "5", + "9", + "4", + "3", + "8", + "10", + "1", + "1", + "3", + "9", + "4", + "6", + "9", + "3", + "5", + "4", + "2", + "7", + "10", + "1", + "10", + "5", + "6", + "3", + "10", + "2", + "6", + "3", + "9", + "1", + "9", + "2", + "6", + "9", + "1", + "5", + "7", + "9", + "4", + "10", + "4", + "9", + "2", + "9", + "4", + "3", + "10", + "5", + "2", + "5", + "6", + "1", + "10", + "5", + "10" + ], + [ + "10", + "5", + "6", + "6", + "2", + "8", + "1", + "5", + "8", + "10", + "3", + "8", + "7", + "3", + "5", + "4", + "10", + "5", + "6", + "4", + "10", + "10", + "3", + "7", + "9", + "5", + "4", + "5", + "10", + "1", + "7", + "3", + "7", + "4", + "4", + "4", + "8", + "10", + "1", + "10", + "9", + "5", + "3", + "9", + "5", + "5", + "10", + "2", + "9", + "4", + "2", + "6", + "10", + "5", + "10", + "5", + "10", + "8", + "3", + "10", + "5" + ], + [ + "6", + "10", + "5", + "2", + "7", + "8", + "8", + "9", + "5", + "6", + "3", + "3", + "7", + "4", + "9", + "1", + "2", + "6", + "4", + "4", + "2", + "10", + "6", + "6", + "5", + "5", + "4", + "5", + "7", + "3", + "10", + "9", + "2", + "3", + "6", + "9", + "6", + "6", + "3", + "7", + "10", + "7", + "8", + "3", + "8", + "10", + "5", + "9", + "9", + "3", + "5", + "5", + "10", + "10", + "5", + "1", + "7", + "7", + "5", + "6", + "7", + "3", + "10", + "5", + "1" + ], + [ + "2", + "8", + "1", + "6", + "4", + "10", + "5", + "10", + "3", + "7", + "6", + "5", + "1", + "9", + "4", + "4", + "4", + "8", + "3", + "9", + "9", + "5", + "7", + "1", + "7", + "5", + "1", + "9", + "4", + "8", + "2", + "10", + "5", + "5", + "4", + "9", + "1", + "6", + "5", + "9", + "2", + "3", + "6", + "3", + "6", + "4", + "10", + "5", + "9", + "4", + "7", + "6", + "5", + "4", + "8", + "9", + "2", + "7", + "4", + "6", + "3", + "8", + "3", + "2", + "1" + ] + ], + "freespins": [ + [ + "6", + "6", + "5", + "7", + "4", + "8", + "10", + "5", + "10", + "6", + "9", + "5", + "7", + "7", + "3", + "8", + "8", + "9", + "7", + "10", + "4", + "10", + "9", + "2", + "4", + "9", + "6", + "3", + "7", + "7", + "5", + "9", + "4", + "10", + "2", + "9", + "4", + "8", + "8", + "6", + "5", + "6", + "10", + "5", + "9", + "8", + "5", + "7", + "4", + "10", + "6", + "3", + "9", + "8", + "6", + "4", + "9", + "1", + "1", + "1", + "1", + "10", + "9", + "5", + "10" + ], + [ + "5", + "1", + "3", + "5", + "9", + "1", + "5", + "1", + "2", + "5", + "6", + "5", + "6", + "5", + "3", + "8", + "5", + "1", + "6", + "1", + "5", + "4", + "6", + "2", + "3", + "1", + "4", + "5", + "7", + "5", + "6", + "2", + "5", + "1", + "1", + "1", + "1", + "1", + "5", + "10", + "6", + "3", + "2", + "6", + "4", + "5", + "1", + "6", + "5", + "9", + "1", + "5", + "1", + "6", + "5", + "4", + "5", + "9", + "2", + "4", + "5", + "1", + "9", + "2", + "8", + "5", + "6", + "5", + "6", + "4", + "1", + "5", + "1", + "1", + "5" + ], + [ + "5", + "5", + "1", + "6", + "5", + "1", + "5", + "8", + "5", + "6", + "5", + "8", + "5", + "3", + "8", + "5", + "6", + "5", + "1", + "4", + "5", + "6", + "4", + "3", + "1", + "3", + "5", + "4", + "4", + "10", + "5", + "6", + "7", + "5", + "3", + "5", + "7", + "1", + "5", + "5", + "4", + "1", + "1", + "5", + "10", + "6", + "5", + "5", + "6", + "5", + "3", + "1", + "5", + "6", + "2", + "1", + "6", + "1", + "3", + "5", + "4", + "9", + "5", + "6", + "5", + "1", + "7", + "5", + "2", + "4", + "8", + "5", + "1", + "5", + "1", + "1" + ], + [ + "1", + "1", + "6", + "3", + "1", + "7", + "8", + "3", + "9", + "6", + "5", + "4", + "3", + "1", + "1", + "5", + "4", + "1", + "2", + "10", + "6", + "5", + "5", + "3", + "7", + "1", + "3", + "9", + "10", + "1", + "5", + "9", + "5", + "6", + "1", + "6", + "10", + "1", + "8", + "5", + "3", + "6", + "4", + "8", + "10", + "1", + "9", + "5", + "5", + "10", + "1", + "10", + "2", + "5", + "7", + "5", + "6", + "1", + "6", + "2", + "1", + "5", + "6", + "1", + "4", + "1", + "1" + ], + [ + "10", + "8", + "6", + "8", + "10", + "5", + "10", + "3", + "9", + "6", + "7", + "7", + "7", + "4", + "9", + "4", + "10", + "3", + "9", + "9", + "5", + "10", + "7", + "1", + "2", + "10", + "5", + "5", + "9", + "9", + "6", + "6", + "9", + "2", + "3", + "6", + "4", + "10", + "9", + "8", + "7", + "6", + "5", + "4", + "8", + "9", + "10", + "7", + "8", + "6", + "6", + "1", + "1", + "1", + "1", + "1", + "1", + "8", + "4", + "10", + "9", + "5" + ] + ], + "respin": [ + [ + "10", + "6", + "10", + "5", + "8", + "9", + "10", + "10", + "4", + "6", + "5", + "10", + "7", + "7", + "3", + "8", + "8", + "9", + "9", + "9", + "5", + "1", + "8", + "10", + "9", + "2", + "10", + "5", + "6", + "10", + "7", + "7", + "5", + "9", + "10", + "2", + "10", + "7", + "10", + "6", + "4", + "8", + "8", + "10", + "6", + "5", + "10", + "5", + "6", + "10", + "9", + "8", + "7", + "6", + "5", + "9", + "10", + "8", + "5", + "8", + "6", + "9", + "6", + "4", + "10", + "6" + ], + [ + "5", + "9", + "10", + "9", + "10", + "7", + "4", + "9", + "8", + "10", + "9", + "10", + "3", + "8", + "10", + "8", + "10", + "9", + "4", + "6", + "9", + "1", + "10", + "9", + "4", + "7", + "7", + "10", + "9", + "10", + "3", + "10", + "10", + "6", + "6", + "3", + "8", + "9", + "10", + "9", + "8", + "6", + "9", + "5", + "7", + "9", + "4", + "10", + "9", + "9", + "2", + "9", + "4", + "10", + "10", + "5", + "9", + "8", + "6" + ], + [ + "10", + "10", + "6", + "6", + "8", + "8", + "9", + "5", + "8", + "10", + "3", + "8", + "7", + "7", + "5", + "4", + "6", + "9", + "4", + "10", + "10", + "3", + "7", + "6", + "4", + "10", + "9", + "4", + "10", + "10", + "6", + "3", + "9", + "7", + "4", + "4", + "10", + "8", + "10", + "5", + "10", + "9", + "10", + "9", + "5", + "1", + "9", + "10", + "5", + "10", + "2", + "9", + "8", + "7", + "6", + "5", + "4", + "10", + "10", + "5", + "9", + "8", + "7", + "10", + "6" + ], + [ + "6", + "10", + "8", + "7", + "8", + "8", + "9", + "9", + "5", + "6", + "7", + "7", + "4", + "9", + "10", + "8", + "6", + "4", + "4", + "2", + "10", + "6", + "6", + "5", + "5", + "7", + "7", + "1", + "9", + "10", + "3", + "6", + "9", + "8", + "6", + "7", + "9", + "7", + "8", + "3", + "8", + "10", + "9", + "10", + "10", + "7", + "5", + "10", + "9", + "9", + "4", + "7", + "7", + "9", + "10", + "7", + "6" + ], + [ + "10", + "8", + "6", + "8", + "9", + "5", + "7", + "3", + "7", + "6", + "7", + "7", + "7", + "4", + "4", + "8", + "9", + "9", + "5", + "9", + "7", + "9", + "8", + "8", + "10", + "5", + "8", + "7", + "6", + "5", + "9", + "4", + "9", + "6", + "9", + "9", + "3", + "6", + "8", + "9", + "4", + "10", + "9", + "8", + "7", + "6", + "5", + "4", + "8", + "9", + "10", + "7", + "8", + "6", + "6", + "8", + "10", + "7", + "9", + "9", + "7", + "10" + ] + ] + }, + "layout": { + "reels": 5, + "rows": 4 + }, + "currency": { + "code": "EUR", + "symbol": "€", + "subunits": 100, + "exponent": 2 + }, + "screen": [ + [ + "4", + "6", + "2", + "6" + ], + [ + "3", + "9", + "1", + "9" + ], + [ + "7", + "9", + "5", + "4" + ], + [ + "6", + "3", + "3", + "7" + ], + [ + "5", + "9", + "2", + "3" + ] + ], + "feature_options": { + "feature_multipliers": { + "freespin_buy": 20000, + "bonus_buy": 10000 + }, + "disabled_features": [] + } + }, + "outcome":{ + "screen":[ + [ + "7", + "7", + "5", + "11" + ], + [ + "6", + "5", + "3", + "8" + ], + [ + "7", + "1", + "5", + "5" + ], + [ + "4", + "1", + "1", + "1" + ], + [ + "3", + "9", + "6", + "7" + ] + ], + "special_symbols":{ + "scatter":{ + "11":[ + [ + 0, + 3 + ] + ] + } + }, + "bet":10, + "win":15, + "wins":[ + [ + "line", + 15, + [ + 2, + 1, + 2 + ], + 7 + ] + ], + "storage":{ + "expanded_wilds":[ + [ + [ + 0, + 3 + ], + 3, + 0 + ] + ] + } + }, + "balance":{ + "game":15, + "wallet":95721 + }, + "flow": { + "round_id": 127898, + "last_action_id": "127898_1", + "state": "ready", + "command": "init", + "available_actions": [ + "init", + "spin" + ], + "purchased_feature": {} + } + }, + { + "api_version":"2", + "features":{ + "freespins_issued":10, + "freespins_left":10 + }, + "outcome":{ + "screen":[ + [ + "4", + "10", + "2", + "10" + ], + [ + "10", + "1", + "11", + "5" + ], + [ + "3", + "9", + "7", + "3" + ], + [ + "5", + "11", + "10", + "10" + ], + [ + "5", + "11", + "2", + "3" + ] + ], + "special_symbols":{ + "scatter":{ + "11":[ + [ + 1, + 2 + ], + [ + 3, + 1 + ], + [ + 4, + 1 + ] + ] + } + }, + "bet":10, + "win":0, + "wins":[ + + ], + "freespins_issued":10, + "storage":{ + "wilds":[ + + ] + } + }, + "balance":{ + "game":0, + "wallet":95721 + }, + "flow":{ + "round_id":113471, + "last_action_id":"113471_1", + "state":"freespins", + "command":"spin", + "available_actions":[ + "init", + "freespin" + ], + "purchased_feature":{ + "name":"freespin_buy" + } + } + }, + { + "api_version":"2", + "features":{ + "freespins_issued":10, + "freespins_left":9 + }, + "outcome":{ + "screen":[ + [ + "5", + "7", + "4", + "10" + ], + [ + "1", + "6", + "5", + "4" + ], + [ + "1", + "5", + "5", + "1" + ], + [ + "1", + "6", + "2", + "11" + ], + [ + "10", + "8", + "6", + "11" + ] + ], + "special_symbols":{ + "scatter":{ + "11":[ + [ + 3, + 3 + ], + [ + 4, + 3 + ] + ] + } + }, + "bet":10, + "win":0, + "wins":[ + + ], + "storage":{ + "expanded_wilds":[ + [ + [ + 3, + 3 + ], + 2, + 0 + ], + [ + [ + 4, + 3 + ], + 2, + 0 + ] + ] + } + }, + "balance":{ + "game":0, + "wallet":95721 + }, + "flow":{ + "round_id":113471, + "last_action_id":"113471_2", + "state":"freespins", + "command":"freespin", + "available_actions":[ + "init", + "freespin" + ], + "purchased_feature":{ + "name":"freespin_buy" + } + } + }, + { + "api_version":"2", + "features":{ + "freespins_issued":10, + "freespins_left":8 + }, + "outcome":{ + "screen":[ + [ + "7", + "7", + "5", + "11" + ], + [ + "6", + "5", + "3", + "8" + ], + [ + "7", + "1", + "5", + "5" + ], + [ + "4", + "1", + "1", + "1" + ], + [ + "3", + "9", + "6", + "7" + ] + ], + "special_symbols":{ + "scatter":{ + "11":[ + [ + 0, + 3 + ] + ] + } + }, + "bet":10, + "win":15, + "wins":[ + [ + "line", + 15, + [ + 2, + 1, + 2 + ], + 7 + ] + ], + "storage":{ + "expanded_wilds":[ + [ + [ + 0, + 3 + ], + 3, + 0 + ] + ] + } + }, + "balance":{ + "game":15, + "wallet":95721 + }, + "flow":{ + "round_id":113471, + "last_action_id":"113471_3", + "state":"freespins", + "command":"freespin", + "available_actions":[ + "init", + "freespin" + ], + "purchased_feature":{ + "name":"freespin_buy" + } + } + }, + { + "api_version":"2", + "features":{ + "freespins_issued":10, + "freespins_left":7 + }, + "outcome":{ + "screen":[ + [ + "5", + "7", + "4", + "10" + ], + [ + "5", + "1", + "1", + "1" + ], + [ + "5", + "1", + "5", + "8" + ], + [ + "6", + "5", + "4", + "3" + ], + [ + "9", + "4", + "10", + "11" + ] + ], + "special_symbols":{ + "scatter":{ + "11":[ + [ + 4, + 3 + ] + ] + } + }, + "bet":10, + "win":5, + "wins":[ + [ + "line", + 5, + [ + 0, + 0, + 0 + ], + 0 + ] + ], + "storage":{ + "expanded_wilds":[ + [ + [ + 4, + 3 + ], + 2, + 0 + ] + ] + } + }, + "balance":{ + "game":20, + "wallet":95721 + }, + "flow":{ + "round_id":113471, + "last_action_id":"113471_4", + "state":"freespins", + "command":"freespin", + "available_actions":[ + "init", + "freespin" + ], + "purchased_feature":{ + "name":"freespin_buy" + } + } + }, + { + "api_version":"2", + "features":{ + "freespins_issued":10, + "freespins_left":6 + }, + "outcome":{ + "screen":[ + [ + "4", + "10", + "2", + "9" + ], + [ + "5", + "6", + "4", + "1" + ], + [ + "7", + "1", + "5", + "5" + ], + [ + "11", + "5", + "9", + "5" + ], + [ + "9", + "6", + "6", + "9" + ] + ], + "special_symbols":{ + "scatter":{ + "11":[ + [ + 3, + 0 + ] + ] + } + }, + "bet":10, + "win":0, + "wins":[ + + ], + "storage":{ + "expanded_wilds":[ + [ + [ + 3, + 0 + ], + 2, + 0 + ] + ] + } + }, + "balance":{ + "game":20, + "wallet":95721 + }, + "flow":{ + "round_id":113471, + "last_action_id":"113471_5", + "state":"freespins", + "command":"freespin", + "available_actions":[ + "init", + "freespin" + ], + "purchased_feature":{ + "name":"freespin_buy" + } + } + }, + { + "api_version":"2", + "features":{ + "freespins_issued":10, + "freespins_left":5 + }, + "outcome":{ + "screen":[ + [ + "7", + "4", + "10", + "6" + ], + [ + "5", + "4", + "5", + "9" + ], + [ + "1", + "6", + "5", + "1" + ], + [ + "11", + "9", + "5", + "6" + ], + [ + "8", + "4", + "10", + "9" + ] + ], + "special_symbols":{ + "scatter":{ + "11":[ + [ + 3, + 0 + ] + ] + } + }, + "bet":10, + "win":0, + "wins":[ + + ], + "storage":{ + "expanded_wilds":[ + [ + [ + 3, + 0 + ], + 4, + 0 + ] + ] + } + }, + "balance":{ + "game":20, + "wallet":95721 + }, + "flow":{ + "round_id":113471, + "last_action_id":"113471_6", + "state":"freespins", + "command":"freespin", + "available_actions":[ + "init", + "freespin" + ], + "purchased_feature":{ + "name":"freespin_buy" + } + } + }, + { + "api_version":"2", + "features":{ + "freespins_issued":10, + "freespins_left":4 + }, + "outcome":{ + "screen":[ + [ + "8", + "9", + "7", + "10" + ], + [ + "1", + "5", + "1", + "6" + ], + [ + "5", + "2", + "4", + "8" + ], + [ + "5", + "3", + "7", + "1" + ], + [ + "6", + "6", + "11", + "1" + ] + ], + "special_symbols":{ + "scatter":{ + "11":[ + [ + 4, + 2 + ] + ] + } + }, + "bet":10, + "win":0, + "wins":[ + + ], + "storage":{ + "expanded_wilds":[ + [ + [ + 4, + 2 + ], + 2, + 0 + ] + ] + } + }, + "balance":{ + "game":20, + "wallet":95721 + }, + "flow":{ + "round_id":113471, + "last_action_id":"113471_7", + "state":"freespins", + "command":"freespin", + "available_actions":[ + "init", + "freespin" + ], + "purchased_feature":{ + "name":"freespin_buy" + } + } + }, + { + "api_version":"2", + "features":{ + "freespins_issued":10, + "freespins_left":3 + }, + "outcome":{ + "screen":[ + [ + "1", + "10", + "9", + "5" + ], + [ + "1", + "1", + "1", + "1" + ], + [ + "5", + "5", + "6", + "5" + ], + [ + "5", + "7", + "5", + "6" + ], + [ + "10", + "7", + "8", + "11" + ] + ], + "special_symbols":{ + "scatter":{ + "11":[ + [ + 4, + 3 + ] + ] + } + }, + "bet":10, + "win":0, + "wins":[ + + ], + "storage":{ + "expanded_wilds":[ + [ + [ + 4, + 3 + ], + 4, + 0 + ] + ] + } + }, + "balance":{ + "game":20, + "wallet":95721 + }, + "flow":{ + "round_id":113471, + "last_action_id":"113471_8", + "state":"freespins", + "command":"freespin", + "available_actions":[ + "init", + "freespin" + ], + "purchased_feature":{ + "name":"freespin_buy" + } + } + }, + { + "api_version":"2", + "features":{ + "freespins_issued":10, + "freespins_left":2 + }, + "outcome":{ + "screen":[ + [ + "7", + "7", + "3", + "8" + ], + [ + "1", + "1", + "1", + "1" + ], + [ + "6", + "11", + "3", + "5" + ], + [ + "5", + "3", + "7", + "1" + ], + [ + "7", + "1", + "2", + "10" + ] + ], + "special_symbols":{ + "scatter":{ + "11":[ + [ + 2, + 1 + ] + ] + } + }, + "bet":10, + "win":0, + "wins":[ + + ], + "storage":{ + "expanded_wilds":[ + [ + [ + 2, + 1 + ], + 5, + 1 + ] + ] + } + }, + "balance":{ + "game":20, + "wallet":95721 + }, + "flow":{ + "round_id":113471, + "last_action_id":"113471_9", + "state":"freespins", + "command":"freespin", + "available_actions":[ + "init", + "freespin" + ], + "purchased_feature":{ + "name":"freespin_buy" + } + } + }, + { + "api_version":"2", + "features":{ + "freespins_issued":10, + "freespins_left":1 + }, + "outcome":{ + "screen":[ + [ + "5", + "10", + "6", + "9" + ], + [ + "5", + "9", + "2", + "4" + ], + [ + "5", + "4", + "4", + "10" + ], + [ + "1", + "11", + "2", + "1" + ], + [ + "6", + "8", + "10", + "5" + ] + ], + "special_symbols":{ + "scatter":{ + "11":[ + [ + 3, + 1 + ] + ] + } + }, + "bet":10, + "win":20, + "wins":[ + [ + "line", + 20, + [ + 0, + 0, + 0, + 0 + ], + 0 + ] + ], + "storage":{ + "expanded_wilds":[ + [ + [ + 3, + 1 + ], + 2, + 0 + ] + ] + } + }, + "balance":{ + "game":40, + "wallet":95721 + }, + "flow":{ + "round_id":113471, + "last_action_id":"113471_10", + "state":"freespins", + "command":"freespin", + "available_actions":[ + "init", + "freespin" + ], + "purchased_feature":{ + "name":"freespin_buy" + } + } + }, + { + "api_version":"2", + "features":{ + "freespins_issued":10, + "freespins_left":0 + }, + "outcome":{ + "screen":[ + [ + "4", + "11", + "9", + "2" + ], + [ + "4", + "5", + "1", + "9" + ], + [ + "3", + "5", + "4", + "9" + ], + [ + "10", + "11", + "5", + "5" + ], + [ + "10", + "7", + "8", + "6" + ] + ], + "special_symbols":{ + "scatter":{ + "11":[ + [ + 0, + 1 + ], + [ + 3, + 1 + ] + ] + } + }, + "bet":10, + "win":216, + "wins":[ + [ + "line", + 60, + [ + 1, + 1, + 1, + 1 + ], + 1 + ], + [ + "line", + 18, + [ + 3, + 3, + 3, + 3 + ], + 3 + ], + [ + "line", + 60, + [ + 0, + 1, + 1, + 1 + ], + 10 + ], + [ + "line", + 60, + [ + 2, + 1, + 1, + 1 + ], + 13 + ], + [ + "line", + 18, + [ + 2, + 3, + 3, + 3 + ], + 14 + ] + ], + "storage":{ + "expanded_wilds":[ + [ + [ + 0, + 1 + ], + 4, + 0 + ], + [ + [ + 3, + 1 + ], + 2, + 0 + ] + ] + } + }, + "balance":{ + "game":256, + "wallet":95721 + }, + "flow":{ + "round_id":113471, + "last_action_id":"113471_11", + "state":"closed", + "command":"freespin", + "available_actions":[ + "init", + "spin" + ], + "purchased_feature":{ + "name":"freespin_buy" + } + } + } +] diff --git a/dataPresets/respins.json b/dataPresets/respins.json new file mode 100644 index 0000000..209099c --- /dev/null +++ b/dataPresets/respins.json @@ -0,0 +1,2247 @@ +[ + { + "api_version": "2", + "options": { + "available_bets": [ + 10, + 20, + 50, + 100 + ], + "default_bet": 10, + "base_bet": 10, + "paytable": { + "0": [ + 0, + 0, + 30, + 50, + 100 + ], + "1": [ + 0, + 0, + 30, + 50, + 100 + ], + "2": [ + 0, + 0, + 15, + 30, + 80 + ], + "3": [ + 0, + 0, + 10, + 20, + 60 + ], + "4": [ + 0, + 0, + 5, + 10, + 40 + ], + "5": [ + 0, + 0, + 5, + 10, + 40 + ], + "6": [ + 0, + 0, + 2, + 5, + 20 + ], + "7": [ + 0, + 0, + 2, + 5, + 20 + ], + "8": [ + 0, + 0, + 2, + 5, + 20 + ], + "9": [ + 0, + 0, + 1, + 3, + 10 + ], + "10": [ + 0, + 0, + 1, + 3, + 10 + ], + "11": [ + 0, + 0, + 0, + 0, + 0 + ] + }, + "paytables": { + "0": { + "default": [ + 0, + 0, + 30, + 50, + 100 + ] + }, + "1": { + "default": [ + 0, + 0, + 30, + 50, + 100 + ] + }, + "2": { + "default": [ + 0, + 0, + 15, + 30, + 80 + ] + }, + "3": { + "default": [ + 0, + 0, + 10, + 20, + 60 + ] + }, + "4": { + "default": [ + 0, + 0, + 5, + 10, + 40 + ] + }, + "5": { + "default": [ + 0, + 0, + 5, + 10, + 40 + ] + }, + "6": { + "default": [ + 0, + 0, + 2, + 5, + 20 + ] + }, + "7": { + "default": [ + 0, + 0, + 2, + 5, + 20 + ] + }, + "8": { + "default": [ + 0, + 0, + 2, + 5, + 20 + ] + }, + "9": { + "default": [ + 0, + 0, + 1, + 3, + 10 + ] + }, + "10": { + "default": [ + 0, + 0, + 1, + 3, + 10 + ] + }, + "11": { + "default": [ + 0, + 0, + 0, + 0, + 0 + ], + "scatter": [ + 0, + 0, + 0, + 0, + 0 + ] + } + }, + "special_symbols": [ + { + "kind": "wild", + "symbol": "0" + }, + { + "kind": "scatter", + "symbol": "11" + } + ], + "lines": [ + [ + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 1, + 1, + 1, + 1 + ], + [ + 2, + 2, + 2, + 2, + 2 + ], + [ + 3, + 3, + 3, + 3, + 3 + ], + [ + 0, + 1, + 0, + 1, + 0 + ], + [ + 1, + 0, + 1, + 0, + 1 + ], + [ + 1, + 2, + 1, + 2, + 1 + ], + [ + 2, + 1, + 2, + 1, + 2 + ], + [ + 2, + 3, + 2, + 3, + 2 + ], + [ + 3, + 2, + 3, + 2, + 3 + ], + [ + 0, + 1, + 1, + 1, + 0 + ], + [ + 1, + 0, + 0, + 0, + 1 + ], + [ + 1, + 2, + 2, + 2, + 1 + ], + [ + 2, + 1, + 1, + 1, + 2 + ], + [ + 2, + 3, + 3, + 3, + 2 + ], + [ + 3, + 2, + 2, + 2, + 3 + ] + ], + "reels": { + "main": [ + [ + "6", + "2", + "10", + "5", + "10", + "1", + "1", + "10", + "7", + "8", + "2", + "4", + "10", + "6", + "9", + "5", + "9", + "5", + "7", + "10", + "3", + "10", + "8", + "4", + "9", + "3", + "5", + "10", + "4", + "9", + "2", + "10", + "3", + "6", + "2", + "5", + "10", + "5", + "9", + "5", + "2", + "10", + "6", + "2", + "7", + "4", + "10", + "4", + "5", + "10", + "2", + "10", + "7", + "2", + "5", + "4", + "3", + "8", + "5", + "10", + "9", + "10", + "4", + "2", + "10", + "1", + "10", + "5" + ], + [ + "5", + "10", + "2", + "9", + "10", + "2", + "9", + "7", + "4", + "9", + "8", + "5", + "9", + "4", + "3", + "8", + "10", + "1", + "1", + "3", + "9", + "4", + "6", + "9", + "3", + "5", + "4", + "2", + "7", + "10", + "1", + "10", + "5", + "6", + "3", + "10", + "2", + "6", + "3", + "9", + "1", + "9", + "2", + "6", + "9", + "1", + "5", + "7", + "9", + "4", + "10", + "4", + "9", + "2", + "9", + "4", + "3", + "10", + "5", + "2", + "5", + "6", + "1", + "10", + "5", + "10" + ], + [ + "10", + "5", + "6", + "6", + "2", + "8", + "1", + "5", + "8", + "10", + "3", + "8", + "7", + "3", + "5", + "4", + "10", + "5", + "6", + "4", + "10", + "10", + "3", + "7", + "9", + "5", + "4", + "5", + "10", + "1", + "7", + "3", + "7", + "4", + "4", + "4", + "8", + "10", + "1", + "10", + "9", + "5", + "3", + "9", + "5", + "5", + "10", + "2", + "9", + "4", + "2", + "6", + "10", + "5", + "10", + "5", + "10", + "8", + "3", + "10", + "5" + ], + [ + "6", + "10", + "5", + "2", + "7", + "8", + "8", + "9", + "5", + "6", + "3", + "3", + "7", + "4", + "9", + "1", + "2", + "6", + "4", + "4", + "2", + "10", + "6", + "6", + "5", + "5", + "4", + "5", + "7", + "3", + "10", + "9", + "2", + "3", + "6", + "9", + "6", + "6", + "3", + "7", + "10", + "7", + "8", + "3", + "8", + "10", + "5", + "9", + "9", + "3", + "5", + "5", + "10", + "10", + "5", + "1", + "7", + "7", + "5", + "6", + "7", + "3", + "10", + "5", + "1" + ], + [ + "2", + "8", + "1", + "6", + "4", + "10", + "5", + "10", + "3", + "7", + "6", + "5", + "1", + "9", + "4", + "4", + "4", + "8", + "3", + "9", + "9", + "5", + "7", + "1", + "7", + "5", + "1", + "9", + "4", + "8", + "2", + "10", + "5", + "5", + "4", + "9", + "1", + "6", + "5", + "9", + "2", + "3", + "6", + "3", + "6", + "4", + "10", + "5", + "9", + "4", + "7", + "6", + "5", + "4", + "8", + "9", + "2", + "7", + "4", + "6", + "3", + "8", + "3", + "2", + "1" + ] + ], + "freespins": [ + [ + "6", + "6", + "5", + "7", + "4", + "8", + "10", + "5", + "10", + "6", + "9", + "5", + "7", + "7", + "3", + "8", + "8", + "9", + "7", + "10", + "4", + "10", + "9", + "2", + "4", + "9", + "6", + "3", + "7", + "7", + "5", + "9", + "4", + "10", + "2", + "9", + "4", + "8", + "8", + "6", + "5", + "6", + "10", + "5", + "9", + "8", + "5", + "7", + "4", + "10", + "6", + "3", + "9", + "8", + "6", + "4", + "9", + "1", + "1", + "1", + "1", + "10", + "9", + "5", + "10" + ], + [ + "5", + "1", + "3", + "5", + "9", + "1", + "5", + "1", + "2", + "5", + "6", + "5", + "6", + "5", + "3", + "8", + "5", + "1", + "6", + "1", + "5", + "4", + "6", + "2", + "3", + "1", + "4", + "5", + "7", + "5", + "6", + "2", + "5", + "1", + "1", + "1", + "1", + "1", + "5", + "10", + "6", + "3", + "2", + "6", + "4", + "5", + "1", + "6", + "5", + "9", + "1", + "5", + "1", + "6", + "5", + "4", + "5", + "9", + "2", + "4", + "5", + "1", + "9", + "2", + "8", + "5", + "6", + "5", + "6", + "4", + "1", + "5", + "1", + "1", + "5" + ], + [ + "5", + "5", + "1", + "6", + "5", + "1", + "5", + "8", + "5", + "6", + "5", + "8", + "5", + "3", + "8", + "5", + "6", + "5", + "1", + "4", + "5", + "6", + "4", + "3", + "1", + "3", + "5", + "4", + "4", + "10", + "5", + "6", + "7", + "5", + "3", + "5", + "7", + "1", + "5", + "5", + "4", + "1", + "1", + "5", + "10", + "6", + "5", + "5", + "6", + "5", + "3", + "1", + "5", + "6", + "2", + "1", + "6", + "1", + "3", + "5", + "4", + "9", + "5", + "6", + "5", + "1", + "7", + "5", + "2", + "4", + "8", + "5", + "1", + "5", + "1", + "1" + ], + [ + "1", + "1", + "6", + "3", + "1", + "7", + "8", + "3", + "9", + "6", + "5", + "4", + "3", + "1", + "1", + "5", + "4", + "1", + "2", + "10", + "6", + "5", + "5", + "3", + "7", + "1", + "3", + "9", + "10", + "1", + "5", + "9", + "5", + "6", + "1", + "6", + "10", + "1", + "8", + "5", + "3", + "6", + "4", + "8", + "10", + "1", + "9", + "5", + "5", + "10", + "1", + "10", + "2", + "5", + "7", + "5", + "6", + "1", + "6", + "2", + "1", + "5", + "6", + "1", + "4", + "1", + "1" + ], + [ + "10", + "8", + "6", + "8", + "10", + "5", + "10", + "3", + "9", + "6", + "7", + "7", + "7", + "4", + "9", + "4", + "10", + "3", + "9", + "9", + "5", + "10", + "7", + "1", + "2", + "10", + "5", + "5", + "9", + "9", + "6", + "6", + "9", + "2", + "3", + "6", + "4", + "10", + "9", + "8", + "7", + "6", + "5", + "4", + "8", + "9", + "10", + "7", + "8", + "6", + "6", + "1", + "1", + "1", + "1", + "1", + "1", + "8", + "4", + "10", + "9", + "5" + ] + ], + "respin": [ + [ + "10", + "6", + "10", + "5", + "8", + "9", + "10", + "10", + "4", + "6", + "5", + "10", + "7", + "7", + "3", + "8", + "8", + "9", + "9", + "9", + "5", + "1", + "8", + "10", + "9", + "2", + "10", + "5", + "6", + "10", + "7", + "7", + "5", + "9", + "10", + "2", + "10", + "7", + "10", + "6", + "4", + "8", + "8", + "10", + "6", + "5", + "10", + "5", + "6", + "10", + "9", + "8", + "7", + "6", + "5", + "9", + "10", + "8", + "5", + "8", + "6", + "9", + "6", + "4", + "10", + "6" + ], + [ + "5", + "9", + "10", + "9", + "10", + "7", + "4", + "9", + "8", + "10", + "9", + "10", + "3", + "8", + "10", + "8", + "10", + "9", + "4", + "6", + "9", + "1", + "10", + "9", + "4", + "7", + "7", + "10", + "9", + "10", + "3", + "10", + "10", + "6", + "6", + "3", + "8", + "9", + "10", + "9", + "8", + "6", + "9", + "5", + "7", + "9", + "4", + "10", + "9", + "9", + "2", + "9", + "4", + "10", + "10", + "5", + "9", + "8", + "6" + ], + [ + "10", + "10", + "6", + "6", + "8", + "8", + "9", + "5", + "8", + "10", + "3", + "8", + "7", + "7", + "5", + "4", + "6", + "9", + "4", + "10", + "10", + "3", + "7", + "6", + "4", + "10", + "9", + "4", + "10", + "10", + "6", + "3", + "9", + "7", + "4", + "4", + "10", + "8", + "10", + "5", + "10", + "9", + "10", + "9", + "5", + "1", + "9", + "10", + "5", + "10", + "2", + "9", + "8", + "7", + "6", + "5", + "4", + "10", + "10", + "5", + "9", + "8", + "7", + "10", + "6" + ], + [ + "6", + "10", + "8", + "7", + "8", + "8", + "9", + "9", + "5", + "6", + "7", + "7", + "4", + "9", + "10", + "8", + "6", + "4", + "4", + "2", + "10", + "6", + "6", + "5", + "5", + "7", + "7", + "1", + "9", + "10", + "3", + "6", + "9", + "8", + "6", + "7", + "9", + "7", + "8", + "3", + "8", + "10", + "9", + "10", + "10", + "7", + "5", + "10", + "9", + "9", + "4", + "7", + "7", + "9", + "10", + "7", + "6" + ], + [ + "10", + "8", + "6", + "8", + "9", + "5", + "7", + "3", + "7", + "6", + "7", + "7", + "7", + "4", + "4", + "8", + "9", + "9", + "5", + "9", + "7", + "9", + "8", + "8", + "10", + "5", + "8", + "7", + "6", + "5", + "9", + "4", + "9", + "6", + "9", + "9", + "3", + "6", + "8", + "9", + "4", + "10", + "9", + "8", + "7", + "6", + "5", + "4", + "8", + "9", + "10", + "7", + "8", + "6", + "6", + "8", + "10", + "7", + "9", + "9", + "7", + "10" + ] + ] + }, + "layout": { + "reels": 5, + "rows": 4 + }, + "currency": { + "code": "EUR", + "symbol": "€", + "subunits": 100, + "exponent": 2 + }, + "screen": [ + [ + "2", + "10", + "6", + "2" + ], + [ + "10", + "5", + "1", + "5" + ], + [ + "3", + "9", + "5", + "9" + ], + [ + "3", + "10", + "5", + "1" + ], + [ + "5", + "7", + "1", + "7" + ] + ], + "feature_options": { + "feature_multipliers": { + "freespin_buy": 20000, + "bonus_buy": 10000, + "bonus_chance": 300 + }, + "disabled_features": [] + } + }, + "balance": { + "game": 0, + "wallet": 99973 + }, + "flow": { + "round_id": 335843, + "last_action_id": "335843_1", + "state": "ready", + "command": "init", + "available_actions": [ + "init", + "spin" + ], + "purchased_feature": {} + } + }, + { + "api_version": "2", + "features": { + "respins_issued": 3, + "respins_left": 3, + "sticky_wilds": [ + [ + [ + 0, + 0 + ], + 2, + 0 + ], + [ + [ + 1, + 0 + ], + 3, + 0 + ], + [ + [ + 2, + 0 + ], + 4, + 0 + ] + ] + }, + "outcome": { + "screen": [ + [ + "0", + "2", + "5", + "10" + ], + [ + "0", + "9", + "1", + "5" + ], + [ + "0", + "7", + "4", + "4" + ], + [ + "8", + "9", + "5", + "6" + ], + [ + "8", + "3", + "2", + "1" + ] + ], + "special_symbols": { + "wild": { + "0": [ + [ + 0, + 0 + ], + [ + 1, + 0 + ], + [ + 2, + 0 + ] + ] + } + }, + "bet": 10, + "win": 393, + "wins": [ + [ + "line", + 270, + [ + 0, + 0, + 0 + ], + 0 + ], + [ + "line", + 18, + [ + 0, + 1, + 0, + 1 + ], + 4 + ], + [ + "line", + 105, + [ + 1, + 0, + 0 + ], + 11 + ] + ], + "storage": { + "wilds": [ + [ + [ + 0, + 0 + ], + 2, + 0 + ], + [ + [ + 1, + 0 + ], + 3, + 0 + ], + [ + [ + 2, + 0 + ], + 4, + 0 + ] + ] + } + }, + "balance": { + "game": 393, + "wallet": 99963 + }, + "flow": { + "round_id": 335844, + "last_action_id": "335844_1", + "state": "respin", + "command": "spin", + "available_actions": [ + "init", + "respin" + ], + "purchased_feature": {} + } + }, + { + "api_version": "2", + "features": { + "respins_issued": 3, + "respins_left": 3, + "sticky_wilds": [ + [ + [ + 1, + 0 + ], + 4, + 0 + ], + [ + [ + 0, + 0 + ], + 2, + 0 + ], + [ + [ + 2, + 0 + ], + 4, + 0 + ] + ] + }, + "outcome": { + "screen": [ + [ + "0", + "6", + "10", + "5" + ], + [ + "0", + "10", + "9", + "10" + ], + [ + "0", + "9", + "4", + "10" + ], + [ + "3", + "8", + "10", + "9" + ], + [ + "3", + "7", + "6", + "7" + ] + ], + "special_symbols": { + "wild": { + "0": [ + [ + 0, + 0 + ], + [ + 1, + 0 + ], + [ + 2, + 0 + ] + ] + } + }, + "bet": 10, + "win": 623, + "wins": [ + [ + "line", + 600, + [ + 0, + 0, + 0, + 0, + 0 + ], + 0 + ], + [ + "line", + 6, + [ + 0, + 1, + 0 + ], + 4 + ], + [ + "line", + 16, + [ + 1, + 0, + 0 + ], + 11 + ], + [ + "line", + 1, + [ + 2, + 3, + 3 + ], + 14 + ] + ], + "storage": { + "wilds": [ + [ + [ + 1, + 0 + ], + 4, + 0 + ], + [ + [ + 0, + 0 + ], + 2, + 0 + ], + [ + [ + 2, + 0 + ], + 4, + 0 + ] + ] + } + }, + "balance": { + "game": 1016, + "wallet": 99963 + }, + "flow": { + "round_id": 335844, + "last_action_id": "335844_2", + "state": "respin", + "command": "respin", + "available_actions": [ + "init", + "respin" + ], + "purchased_feature": {} + } + }, + { + "api_version": "2", + "features": { + "respins_issued": 3, + "respins_left": 2, + "sticky_wilds": [ + [ + [ + 1, + 0 + ], + 4, + 0 + ], + [ + [ + 0, + 0 + ], + 2, + 0 + ], + [ + [ + 2, + 0 + ], + 4, + 0 + ] + ] + }, + "outcome": { + "screen": [ + [ + "0", + "10", + "6", + "4" + ], + [ + "0", + "10", + "3", + "10" + ], + [ + "0", + "5", + "9", + "8" + ], + [ + "7", + "4", + "9", + "10" + ], + [ + "6", + "9", + "9", + "3" + ] + ], + "special_symbols": { + "wild": { + "0": [ + [ + 0, + 0 + ], + [ + 1, + 0 + ], + [ + 2, + 0 + ] + ] + } + }, + "bet": 10, + "win": 314, + "wins": [ + [ + "line", + 300, + [ + 0, + 0, + 0 + ], + 0 + ], + [ + "line", + 6, + [ + 0, + 1, + 0 + ], + 4 + ], + [ + "line", + 8, + [ + 1, + 0, + 0 + ], + 11 + ] + ], + "storage": { + "wilds": [ + [ + [ + 1, + 0 + ], + 4, + 0 + ], + [ + [ + 0, + 0 + ], + 2, + 0 + ], + [ + [ + 2, + 0 + ], + 4, + 0 + ] + ] + } + }, + "balance": { + "game": 1330, + "wallet": 99963 + }, + "flow": { + "round_id": 335844, + "last_action_id": "335844_3", + "state": "respin", + "command": "respin", + "available_actions": [ + "init", + "respin" + ], + "purchased_feature": {} + } + }, + { + "api_version": "2", + "features": { + "respins_issued": 3, + "respins_left": 1, + "sticky_wilds": [ + [ + [ + 1, + 0 + ], + 4, + 0 + ], + [ + [ + 0, + 0 + ], + 2, + 0 + ], + [ + [ + 2, + 0 + ], + 4, + 0 + ] + ] + }, + "outcome": { + "screen": [ + [ + "0", + "5", + "9", + "10" + ], + [ + "0", + "3", + "8", + "9" + ], + [ + "0", + "4", + "10", + "10" + ], + [ + "7", + "4", + "9", + "10" + ], + [ + "9", + "4", + "9", + "6" + ] + ], + "special_symbols": { + "wild": { + "0": [ + [ + 0, + 0 + ], + [ + 1, + 0 + ], + [ + 2, + 0 + ] + ] + } + }, + "bet": 10, + "win": 400, + "wins": [ + [ + "line", + 300, + [ + 0, + 0, + 0 + ], + 0 + ], + [ + "line", + 60, + [ + 0, + 1, + 0 + ], + 4 + ], + [ + "line", + 40, + [ + 1, + 0, + 0 + ], + 11 + ] + ], + "storage": { + "wilds": [ + [ + [ + 1, + 0 + ], + 4, + 0 + ], + [ + [ + 0, + 0 + ], + 2, + 0 + ], + [ + [ + 2, + 0 + ], + 4, + 0 + ] + ] + } + }, + "balance": { + "game": 1730, + "wallet": 99963 + }, + "flow": { + "round_id": 335844, + "last_action_id": "335844_4", + "state": "respin", + "command": "respin", + "available_actions": [ + "init", + "respin" + ], + "purchased_feature": {} + } + }, + { + "api_version": "2", + "features": { + "respins_issued": 3, + "respins_left": 0, + "sticky_wilds": [ + [ + [ + 1, + 0 + ], + 4, + 0 + ], + [ + [ + 0, + 0 + ], + 2, + 0 + ], + [ + [ + 2, + 0 + ], + 4, + 0 + ] + ] + }, + "outcome": { + "screen": [ + [ + "0", + "9", + "10", + "2" + ], + [ + "0", + "7", + "4", + "9" + ], + [ + "0", + "10", + "10", + "5" + ], + [ + "6", + "4", + "4", + "2" + ], + [ + "9", + "7", + "9", + "8" + ] + ], + "special_symbols": { + "wild": { + "0": [ + [ + 0, + 0 + ], + [ + 1, + 0 + ], + [ + 2, + 0 + ] + ] + } + }, + "bet": 10, + "win": 320, + "wins": [ + [ + "line", + 300, + [ + 0, + 0, + 0 + ], + 0 + ], + [ + "line", + 12, + [ + 0, + 1, + 0 + ], + 4 + ], + [ + "line", + 8, + [ + 1, + 0, + 0 + ], + 11 + ] + ], + "storage": { + "wilds": [ + [ + [ + 1, + 0 + ], + 4, + 0 + ], + [ + [ + 0, + 0 + ], + 2, + 0 + ], + [ + [ + 2, + 0 + ], + 4, + 0 + ] + ] + } + }, + "balance": { + "game": 2050, + "wallet": 99963 + }, + "flow": { + "round_id": 335844, + "last_action_id": "335844_5", + "state": "closed", + "command": "respin", + "available_actions": [ + "init", + "spin" + ], + "purchased_feature": {} + } + } +] \ No newline at end of file diff --git a/dataPresets/respins_2.json b/dataPresets/respins_2.json new file mode 100644 index 0000000..feaa124 --- /dev/null +++ b/dataPresets/respins_2.json @@ -0,0 +1,2060 @@ +[{ + "api_version": "2", + "options": { + "available_bets": [ + 100, + 200, + 500, + 1000, + 1400, + 1600, + 1800, + 2000, + 2500, + 3000, + 3500, + 4000, + 4500, + 5000, + 5500, + 6000, + 6500, + 7000, + 7500, + 8000, + 8500, + 9000, + 9500, + 10000, + 11000, + 12000, + 13000, + 14000, + 15000, + 16000, + 17000, + 18000, + 19000, + 20000, + 21000, + 22000, + 23000, + 24000, + 25000, + 26000, + 27000, + 28000, + 29000, + 30000, + 40000 + ], + "default_bet": 200, + "base_bet": 10, + "paytable": { + "0": [ + 0, + 0, + 30, + 50, + 100 + ], + "1": [ + 0, + 0, + 30, + 50, + 100 + ], + "2": [ + 0, + 0, + 15, + 30, + 80 + ], + "3": [ + 0, + 0, + 10, + 20, + 60 + ], + "4": [ + 0, + 0, + 5, + 10, + 40 + ], + "5": [ + 0, + 0, + 5, + 10, + 40 + ], + "6": [ + 0, + 0, + 2, + 5, + 20 + ], + "7": [ + 0, + 0, + 2, + 5, + 20 + ], + "8": [ + 0, + 0, + 2, + 5, + 20 + ], + "9": [ + 0, + 0, + 1, + 3, + 10 + ], + "10": [ + 0, + 0, + 1, + 3, + 10 + ], + "11": [ + 0, + 0, + 0, + 0, + 0 + ] + }, + "paytables": { + "0": { + "default": [ + 0, + 0, + 30, + 50, + 100 + ] + }, + "1": { + "default": [ + 0, + 0, + 30, + 50, + 100 + ] + }, + "2": { + "default": [ + 0, + 0, + 15, + 30, + 80 + ] + }, + "3": { + "default": [ + 0, + 0, + 10, + 20, + 60 + ] + }, + "4": { + "default": [ + 0, + 0, + 5, + 10, + 40 + ] + }, + "5": { + "default": [ + 0, + 0, + 5, + 10, + 40 + ] + }, + "6": { + "default": [ + 0, + 0, + 2, + 5, + 20 + ] + }, + "7": { + "default": [ + 0, + 0, + 2, + 5, + 20 + ] + }, + "8": { + "default": [ + 0, + 0, + 2, + 5, + 20 + ] + }, + "9": { + "default": [ + 0, + 0, + 1, + 3, + 10 + ] + }, + "10": { + "default": [ + 0, + 0, + 1, + 3, + 10 + ] + }, + "11": { + "default": [ + 0, + 0, + 0, + 0, + 0 + ], + "scatter": [ + 0, + 0, + 0, + 0, + 0 + ] + } + }, + "special_symbols": [ + { + "kind": "wild", + "symbol": "0" + }, + { + "kind": "scatter", + "symbol": "11" + } + ], + "lines": [ + [ + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 1, + 1, + 1, + 1 + ], + [ + 2, + 2, + 2, + 2, + 2 + ], + [ + 3, + 3, + 3, + 3, + 3 + ], + [ + 0, + 1, + 0, + 1, + 0 + ], + [ + 1, + 0, + 1, + 0, + 1 + ], + [ + 1, + 2, + 1, + 2, + 1 + ], + [ + 2, + 1, + 2, + 1, + 2 + ], + [ + 2, + 3, + 2, + 3, + 2 + ], + [ + 3, + 2, + 3, + 2, + 3 + ], + [ + 0, + 1, + 1, + 1, + 0 + ], + [ + 1, + 0, + 0, + 0, + 1 + ], + [ + 1, + 2, + 2, + 2, + 1 + ], + [ + 2, + 1, + 1, + 1, + 2 + ], + [ + 2, + 3, + 3, + 3, + 2 + ], + [ + 3, + 2, + 2, + 2, + 3 + ] + ], + "reels": { + "main": [ + [ + "6", + "2", + "10", + "5", + "10", + "1", + "1", + "10", + "7", + "8", + "2", + "4", + "10", + "6", + "9", + "5", + "9", + "5", + "7", + "10", + "3", + "10", + "8", + "4", + "9", + "3", + "5", + "10", + "4", + "9", + "2", + "10", + "3", + "6", + "2", + "5", + "10", + "5", + "9", + "5", + "2", + "10", + "6", + "2", + "7", + "4", + "10", + "4", + "5", + "10", + "2", + "10", + "7", + "2", + "5", + "4", + "3", + "8", + "5", + "10", + "9", + "10", + "4", + "2", + "10", + "1", + "10", + "5" + ], + [ + "5", + "10", + "2", + "9", + "10", + "2", + "9", + "7", + "4", + "9", + "8", + "5", + "9", + "4", + "3", + "8", + "10", + "1", + "1", + "3", + "9", + "4", + "6", + "9", + "3", + "5", + "4", + "2", + "7", + "10", + "1", + "10", + "5", + "6", + "3", + "10", + "2", + "6", + "3", + "9", + "1", + "9", + "2", + "6", + "9", + "1", + "5", + "7", + "9", + "4", + "10", + "4", + "9", + "2", + "9", + "4", + "3", + "10", + "5", + "2", + "5", + "6", + "1", + "10", + "5", + "10" + ], + [ + "10", + "5", + "6", + "6", + "2", + "8", + "1", + "5", + "8", + "10", + "3", + "8", + "7", + "3", + "5", + "4", + "10", + "5", + "6", + "4", + "10", + "10", + "3", + "7", + "9", + "5", + "4", + "5", + "10", + "1", + "7", + "3", + "7", + "4", + "4", + "4", + "8", + "10", + "1", + "10", + "9", + "5", + "3", + "9", + "5", + "5", + "10", + "2", + "9", + "4", + "2", + "6", + "10", + "5", + "10", + "5", + "10", + "8", + "3", + "10", + "5" + ], + [ + "6", + "10", + "5", + "2", + "7", + "8", + "8", + "9", + "5", + "6", + "3", + "3", + "7", + "4", + "9", + "1", + "2", + "6", + "4", + "4", + "2", + "10", + "6", + "6", + "5", + "5", + "4", + "5", + "7", + "3", + "10", + "9", + "2", + "3", + "6", + "9", + "6", + "6", + "3", + "7", + "10", + "7", + "8", + "3", + "8", + "10", + "5", + "9", + "9", + "3", + "5", + "5", + "10", + "10", + "5", + "1", + "7", + "7", + "5", + "6", + "7", + "3", + "10", + "5", + "1" + ], + [ + "2", + "8", + "1", + "6", + "4", + "10", + "5", + "10", + "3", + "7", + "6", + "5", + "1", + "9", + "4", + "4", + "4", + "8", + "3", + "9", + "9", + "5", + "7", + "1", + "7", + "5", + "1", + "9", + "4", + "8", + "2", + "10", + "5", + "5", + "4", + "9", + "1", + "6", + "5", + "9", + "2", + "3", + "6", + "3", + "6", + "4", + "10", + "5", + "9", + "4", + "7", + "6", + "5", + "4", + "8", + "9", + "2", + "7", + "4", + "6", + "3", + "8", + "3", + "2", + "1" + ] + ], + "freespins": [ + [ + "6", + "6", + "5", + "7", + "4", + "8", + "10", + "5", + "10", + "6", + "9", + "5", + "7", + "7", + "3", + "8", + "8", + "9", + "7", + "10", + "4", + "10", + "9", + "2", + "4", + "9", + "6", + "3", + "7", + "7", + "5", + "9", + "4", + "10", + "2", + "9", + "4", + "8", + "8", + "6", + "5", + "6", + "10", + "5", + "9", + "8", + "5", + "7", + "4", + "10", + "6", + "3", + "9", + "8", + "6", + "4", + "9", + "1", + "1", + "1", + "1", + "10", + "9", + "5", + "10" + ], + [ + "5", + "1", + "3", + "5", + "9", + "1", + "5", + "1", + "2", + "5", + "6", + "5", + "6", + "5", + "3", + "8", + "5", + "1", + "6", + "1", + "5", + "4", + "6", + "2", + "3", + "1", + "4", + "5", + "7", + "5", + "6", + "2", + "5", + "1", + "1", + "1", + "1", + "1", + "5", + "10", + "6", + "3", + "2", + "6", + "4", + "5", + "1", + "6", + "5", + "9", + "1", + "5", + "1", + "6", + "5", + "4", + "5", + "9", + "2", + "4", + "5", + "1", + "9", + "2", + "8", + "5", + "6", + "5", + "6", + "4", + "1", + "5", + "1", + "1", + "5" + ], + [ + "5", + "5", + "1", + "6", + "5", + "1", + "5", + "8", + "5", + "6", + "5", + "8", + "5", + "3", + "8", + "5", + "6", + "5", + "1", + "4", + "5", + "6", + "4", + "3", + "1", + "3", + "5", + "4", + "4", + "10", + "5", + "6", + "7", + "5", + "3", + "5", + "7", + "1", + "5", + "5", + "4", + "1", + "1", + "5", + "10", + "6", + "5", + "5", + "6", + "5", + "3", + "1", + "5", + "6", + "2", + "1", + "6", + "1", + "3", + "5", + "4", + "9", + "5", + "6", + "5", + "1", + "7", + "5", + "2", + "4", + "8", + "5", + "1", + "5", + "1", + "1" + ], + [ + "1", + "1", + "6", + "3", + "1", + "7", + "8", + "3", + "9", + "6", + "5", + "4", + "3", + "1", + "1", + "5", + "4", + "1", + "2", + "10", + "6", + "5", + "5", + "3", + "7", + "1", + "3", + "9", + "10", + "1", + "5", + "9", + "5", + "6", + "1", + "6", + "10", + "1", + "8", + "5", + "3", + "6", + "4", + "8", + "10", + "1", + "9", + "5", + "5", + "10", + "1", + "10", + "2", + "5", + "7", + "5", + "6", + "1", + "6", + "2", + "1", + "5", + "6", + "1", + "4", + "1", + "1" + ], + [ + "10", + "8", + "6", + "8", + "10", + "5", + "10", + "3", + "9", + "6", + "7", + "7", + "7", + "4", + "9", + "4", + "10", + "3", + "9", + "9", + "5", + "10", + "7", + "1", + "2", + "10", + "5", + "5", + "9", + "9", + "6", + "6", + "9", + "2", + "3", + "6", + "4", + "10", + "9", + "8", + "7", + "6", + "5", + "4", + "8", + "9", + "10", + "7", + "8", + "6", + "6", + "1", + "1", + "1", + "1", + "1", + "1", + "8", + "4", + "10", + "9", + "5" + ] + ], + "respin": [ + [ + "10", + "6", + "10", + "5", + "8", + "9", + "10", + "10", + "4", + "6", + "5", + "10", + "7", + "7", + "3", + "8", + "8", + "9", + "9", + "9", + "5", + "1", + "8", + "10", + "9", + "2", + "10", + "5", + "6", + "10", + "7", + "7", + "5", + "9", + "10", + "2", + "10", + "7", + "10", + "6", + "4", + "8", + "8", + "10", + "6", + "5", + "10", + "5", + "6", + "10", + "9", + "8", + "7", + "6", + "5", + "9", + "10", + "8", + "5", + "8", + "6", + "9", + "6", + "4", + "10", + "6" + ], + [ + "5", + "9", + "10", + "9", + "10", + "7", + "4", + "9", + "8", + "10", + "9", + "10", + "3", + "8", + "10", + "8", + "10", + "9", + "4", + "6", + "9", + "1", + "10", + "9", + "4", + "7", + "7", + "10", + "9", + "10", + "3", + "10", + "10", + "6", + "6", + "3", + "8", + "9", + "10", + "9", + "8", + "6", + "9", + "5", + "7", + "9", + "4", + "10", + "9", + "9", + "2", + "9", + "4", + "10", + "10", + "5", + "9", + "8", + "6" + ], + [ + "10", + "10", + "6", + "6", + "8", + "8", + "9", + "5", + "8", + "10", + "3", + "8", + "7", + "7", + "5", + "4", + "6", + "9", + "4", + "10", + "10", + "3", + "7", + "6", + "4", + "10", + "9", + "4", + "10", + "10", + "6", + "3", + "9", + "7", + "4", + "4", + "10", + "8", + "10", + "5", + "10", + "9", + "10", + "9", + "5", + "1", + "9", + "10", + "5", + "10", + "2", + "9", + "8", + "7", + "6", + "5", + "4", + "10", + "10", + "5", + "9", + "8", + "7", + "10", + "6" + ], + [ + "6", + "10", + "8", + "7", + "8", + "8", + "9", + "9", + "5", + "6", + "7", + "7", + "4", + "9", + "10", + "8", + "6", + "4", + "4", + "2", + "10", + "6", + "6", + "5", + "5", + "7", + "7", + "1", + "9", + "10", + "3", + "6", + "9", + "8", + "6", + "7", + "9", + "7", + "8", + "3", + "8", + "10", + "9", + "10", + "10", + "7", + "5", + "10", + "9", + "9", + "4", + "7", + "7", + "9", + "10", + "7", + "6" + ], + [ + "10", + "8", + "6", + "8", + "9", + "5", + "7", + "3", + "7", + "6", + "7", + "7", + "7", + "4", + "4", + "8", + "9", + "9", + "5", + "9", + "7", + "9", + "8", + "8", + "10", + "5", + "8", + "7", + "6", + "5", + "9", + "4", + "9", + "6", + "9", + "9", + "3", + "6", + "8", + "9", + "4", + "10", + "9", + "8", + "7", + "6", + "5", + "4", + "8", + "9", + "10", + "7", + "8", + "6", + "6", + "8", + "10", + "7", + "9", + "9", + "7", + "10" + ] + ] + }, + "layout": { + "reels": 5, + "rows": 4 + }, + "currency": { + "code": "EUR", + "symbol": "€", + "subunits": 100, + "exponent": 2 + }, + "screen": [ + [ + "6", + "10", + "6", + "2" + ], + [ + "5", + "3", + "1", + "7" + ], + [ + "5", + "9", + "9", + "3" + ], + [ + "3", + "10", + "5", + "1" + ], + [ + "8", + "3", + "9", + "9" + ] + ], + "feature_options": { + "feature_multipliers": { + "freespin_buy": 20200, + "bonus_buy": 10100, + "bonus_chance": 300 + }, + "disabled_features": [] + } + }, + "balance": { + "game": 0, + "wallet": 113497 + }, + "flow": { + "round_id": 356249, + "last_action_id": "356249_1", + "state": "ready", + "command": "init", + "available_actions": [ + "init", + "spin" + ], + "purchased_feature": {} + } +}, +{ + "api_version": "2", + "features": { + "respins_issued": 3, + "respins_left": 3, + "sticky_wilds": [ + [ + [ + 1, + 1 + ], + 3, + 0 + ], + [ + [ + 2, + 3 + ], + 2, + 0 + ], + [ + [ + 3, + 3 + ], + 1, + 0 + ] + ] + }, + "outcome": { + "screen": [ + [ + "4", + "10", + "4", + "6" + ], + [ + "10", + "0", + "10", + "1" + ], + [ + "3", + "5", + "4", + "0" + ], + [ + "5", + "6", + "7", + "0" + ], + [ + "9", + "5", + "7", + "1" + ] + ], + "special_symbols": { + "wild": { + "0": [ + [ + 1, + 1 + ], + [ + 2, + 3 + ], + [ + 3, + 3 + ] + ] + } + }, + "bet": 200, + "win": 300, + "wins": [ + [ + "line", + 300, + [ + 2, + 1, + 2 + ], + 7 + ] + ], + "storage": { + "wilds": [ + [ + [ + 1, + 1 + ], + 3, + 0 + ], + [ + [ + 2, + 3 + ], + 2, + 0 + ], + [ + [ + 3, + 3 + ], + 1, + 0 + ] + ] + } + }, + "balance": { + "game": 300, + "wallet": 93297 + }, + "flow": { + "round_id": 356253, + "last_action_id": "356253_1", + "state": "respin", + "command": "spin", + "available_actions": [ + "init", + "respin" + ], + "purchased_feature": { + "name": "bonus_buy" + } + } +}, +{ + "api_version": "2", + "features": { + "respins_issued": 3, + "respins_left": 2, + "sticky_wilds": [ + [ + [ + 1, + 1 + ], + 3, + 0 + ], + [ + [ + 2, + 3 + ], + 2, + 0 + ], + [ + [ + 3, + 3 + ], + 1, + 0 + ] + ] + }, + "outcome": { + "screen": [ + [ + "4", + "8", + "8", + "10" + ], + [ + "8", + "0", + "5", + "9" + ], + [ + "6", + "8", + "8", + "0" + ], + [ + "4", + "4", + "2", + "0" + ], + [ + "9", + "4", + "10", + "9" + ] + ], + "special_symbols": { + "wild": { + "0": [ + [ + 1, + 1 + ], + [ + 2, + 3 + ], + [ + 3, + 3 + ] + ] + } + }, + "bet": 200, + "win": 400, + "wins": [ + [ + "line", + 120, + [ + 1, + 1, + 1 + ], + 1 + ], + [ + "line", + 40, + [ + 1, + 0, + 1 + ], + 5 + ], + [ + "line", + 120, + [ + 2, + 1, + 2 + ], + 7 + ], + [ + "line", + 120, + [ + 2, + 1, + 1 + ], + 13 + ] + ], + "storage": { + "wilds": [ + [ + [ + 1, + 1 + ], + 3, + 0 + ], + [ + [ + 2, + 3 + ], + 2, + 0 + ], + [ + [ + 3, + 3 + ], + 1, + 0 + ] + ] + } + }, + "balance": { + "game": 700, + "wallet": 93297 + }, + "flow": { + "round_id": 356253, + "last_action_id": "356253_2", + "state": "respin", + "command": "respin", + "available_actions": [ + "init", + "respin" + ], + "purchased_feature": { + "name": "bonus_buy" + } + } +}, +{ + "api_version": "2", + "features": { + "respins_issued": 3, + "respins_left": 1, + "sticky_wilds": [ + [ + [ + 1, + 1 + ], + 3, + 0 + ], + [ + [ + 2, + 3 + ], + 2, + 0 + ], + [ + [ + 3, + 3 + ], + 1, + 0 + ] + ] + }, + "outcome": { + "screen": [ + [ + "10", + "4", + "6", + "5" + ], + [ + "9", + "0", + "9", + "4" + ], + [ + "6", + "3", + "9", + "0" + ], + [ + "5", + "6", + "7", + "0" + ], + [ + "8", + "9", + "9", + "5" + ] + ], + "special_symbols": { + "wild": { + "0": [ + [ + 1, + 1 + ], + [ + 2, + 3 + ], + [ + 3, + 3 + ] + ] + } + }, + "bet": 200, + "win": 0, + "wins": [], + "storage": { + "wilds": [ + [ + [ + 1, + 1 + ], + 3, + 0 + ], + [ + [ + 2, + 3 + ], + 2, + 0 + ], + [ + [ + 3, + 3 + ], + 1, + 0 + ] + ] + } + }, + "balance": { + "game": 700, + "wallet": 93297 + }, + "flow": { + "round_id": 356253, + "last_action_id": "356253_3", + "state": "respin", + "command": "respin", + "available_actions": [ + "init", + "respin" + ], + "purchased_feature": { + "name": "bonus_buy" + } + } +}, +{ + "api_version": "2", + "features": { + "respins_issued": 3, + "respins_left": 0, + "sticky_wilds": [ + [ + [ + 1, + 1 + ], + 3, + 0 + ], + [ + [ + 2, + 3 + ], + 2, + 0 + ], + [ + [ + 3, + 3 + ], + 1, + 0 + ] + ] + }, + "outcome": { + "screen": [ + [ + "7", + "6", + "5", + "9" + ], + [ + "5", + "0", + "10", + "9" + ], + [ + "3", + "9", + "7", + "0" + ], + [ + "7", + "9", + "10", + "0" + ], + [ + "3", + "6", + "8", + "9" + ] + ], + "special_symbols": { + "wild": { + "0": [ + [ + 1, + 1 + ], + [ + 2, + 3 + ], + [ + 3, + 3 + ] + ] + } + }, + "bet": 200, + "win": 600, + "wins": [ + [ + "line", + 600, + [ + 3, + 3, + 3, + 3, + 3 + ], + 3 + ] + ], + "storage": { + "wilds": [ + [ + [ + 1, + 1 + ], + 3, + 0 + ], + [ + [ + 2, + 3 + ], + 2, + 0 + ], + [ + [ + 3, + 3 + ], + 1, + 0 + ] + ] + } + }, + "balance": { + "game": 1300, + "wallet": 93297 + }, + "flow": { + "round_id": 356253, + "last_action_id": "356253_4", + "state": "closed", + "command": "respin", + "available_actions": [ + "init", + "spin" + ], + "purchased_feature": { + "name": "bonus_buy" + } + } +}] \ No newline at end of file diff --git a/dataPresets/wild_init.json b/dataPresets/wild_init.json new file mode 100644 index 0000000..4cad72b --- /dev/null +++ b/dataPresets/wild_init.json @@ -0,0 +1,2096 @@ +[{ + "api_version": "2", + "options": { + "available_bets": [ + 100, + 200, + 500, + 1000, + 1400, + 1600, + 1800, + 2000, + 2500, + 3000, + 3500, + 4000, + 4500, + 5000, + 5500, + 6000, + 6500, + 7000, + 7500, + 8000, + 8500, + 9000, + 9500, + 10000, + 11000, + 12000, + 13000, + 14000, + 15000, + 16000, + 17000, + 18000, + 19000, + 20000, + 21000, + 22000, + 23000, + 24000, + 25000, + 26000, + 27000, + 28000, + 29000, + 30000, + 40000 + ], + "default_bet": 200, + "base_bet": 10, + "paytable": { + "0": [ + 0, + 0, + 30, + 50, + 100 + ], + "1": [ + 0, + 0, + 30, + 50, + 100 + ], + "2": [ + 0, + 0, + 15, + 30, + 80 + ], + "3": [ + 0, + 0, + 10, + 20, + 60 + ], + "4": [ + 0, + 0, + 5, + 10, + 40 + ], + "5": [ + 0, + 0, + 5, + 10, + 40 + ], + "6": [ + 0, + 0, + 2, + 5, + 20 + ], + "7": [ + 0, + 0, + 2, + 5, + 20 + ], + "8": [ + 0, + 0, + 2, + 5, + 20 + ], + "9": [ + 0, + 0, + 1, + 3, + 10 + ], + "10": [ + 0, + 0, + 1, + 3, + 10 + ], + "11": [ + 0, + 0, + 0, + 0, + 0 + ] + }, + "paytables": { + "0": { + "default": [ + 0, + 0, + 30, + 50, + 100 + ] + }, + "1": { + "default": [ + 0, + 0, + 30, + 50, + 100 + ] + }, + "2": { + "default": [ + 0, + 0, + 15, + 30, + 80 + ] + }, + "3": { + "default": [ + 0, + 0, + 10, + 20, + 60 + ] + }, + "4": { + "default": [ + 0, + 0, + 5, + 10, + 40 + ] + }, + "5": { + "default": [ + 0, + 0, + 5, + 10, + 40 + ] + }, + "6": { + "default": [ + 0, + 0, + 2, + 5, + 20 + ] + }, + "7": { + "default": [ + 0, + 0, + 2, + 5, + 20 + ] + }, + "8": { + "default": [ + 0, + 0, + 2, + 5, + 20 + ] + }, + "9": { + "default": [ + 0, + 0, + 1, + 3, + 10 + ] + }, + "10": { + "default": [ + 0, + 0, + 1, + 3, + 10 + ] + }, + "11": { + "default": [ + 0, + 0, + 0, + 0, + 0 + ], + "scatter": [ + 0, + 0, + 0, + 0, + 0 + ] + } + }, + "special_symbols": { + "wild": { + "0": [ + [ + 1, + 1 + ], + [ + 2, + 3 + ], + [ + 3, + 3 + ] + ] + } + }, + "lines": [ + [ + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 1, + 1, + 1, + 1 + ], + [ + 2, + 2, + 2, + 2, + 2 + ], + [ + 3, + 3, + 3, + 3, + 3 + ], + [ + 0, + 1, + 0, + 1, + 0 + ], + [ + 1, + 0, + 1, + 0, + 1 + ], + [ + 1, + 2, + 1, + 2, + 1 + ], + [ + 2, + 1, + 2, + 1, + 2 + ], + [ + 2, + 3, + 2, + 3, + 2 + ], + [ + 3, + 2, + 3, + 2, + 3 + ], + [ + 0, + 1, + 1, + 1, + 0 + ], + [ + 1, + 0, + 0, + 0, + 1 + ], + [ + 1, + 2, + 2, + 2, + 1 + ], + [ + 2, + 1, + 1, + 1, + 2 + ], + [ + 2, + 3, + 3, + 3, + 2 + ], + [ + 3, + 2, + 2, + 2, + 3 + ] + ], + "reels": { + "main": [ + [ + "6", + "2", + "10", + "5", + "10", + "1", + "1", + "10", + "7", + "8", + "2", + "4", + "10", + "6", + "9", + "5", + "9", + "5", + "7", + "10", + "3", + "10", + "8", + "4", + "9", + "3", + "5", + "10", + "4", + "9", + "2", + "10", + "3", + "6", + "2", + "5", + "10", + "5", + "9", + "5", + "2", + "10", + "6", + "2", + "7", + "4", + "10", + "4", + "5", + "10", + "2", + "10", + "7", + "2", + "5", + "4", + "3", + "8", + "5", + "10", + "9", + "10", + "4", + "2", + "10", + "1", + "10", + "5" + ], + [ + "5", + "10", + "2", + "9", + "10", + "2", + "9", + "7", + "4", + "9", + "8", + "5", + "9", + "4", + "3", + "8", + "10", + "1", + "1", + "3", + "9", + "4", + "6", + "9", + "3", + "5", + "4", + "2", + "7", + "10", + "1", + "10", + "5", + "6", + "3", + "10", + "2", + "6", + "3", + "9", + "1", + "9", + "2", + "6", + "9", + "1", + "5", + "7", + "9", + "4", + "10", + "4", + "9", + "2", + "9", + "4", + "3", + "10", + "5", + "2", + "5", + "6", + "1", + "10", + "5", + "10" + ], + [ + "10", + "5", + "6", + "6", + "2", + "8", + "1", + "5", + "8", + "10", + "3", + "8", + "7", + "3", + "5", + "4", + "10", + "5", + "6", + "4", + "10", + "10", + "3", + "7", + "9", + "5", + "4", + "5", + "10", + "1", + "7", + "3", + "7", + "4", + "4", + "4", + "8", + "10", + "1", + "10", + "9", + "5", + "3", + "9", + "5", + "5", + "10", + "2", + "9", + "4", + "2", + "6", + "10", + "5", + "10", + "5", + "10", + "8", + "3", + "10", + "5" + ], + [ + "6", + "10", + "5", + "2", + "7", + "8", + "8", + "9", + "5", + "6", + "3", + "3", + "7", + "4", + "9", + "1", + "2", + "6", + "4", + "4", + "2", + "10", + "6", + "6", + "5", + "5", + "4", + "5", + "7", + "3", + "10", + "9", + "2", + "3", + "6", + "9", + "6", + "6", + "3", + "7", + "10", + "7", + "8", + "3", + "8", + "10", + "5", + "9", + "9", + "3", + "5", + "5", + "10", + "10", + "5", + "1", + "7", + "7", + "5", + "6", + "7", + "3", + "10", + "5", + "1" + ], + [ + "2", + "8", + "1", + "6", + "4", + "10", + "5", + "10", + "3", + "7", + "6", + "5", + "1", + "9", + "4", + "4", + "4", + "8", + "3", + "9", + "9", + "5", + "7", + "1", + "7", + "5", + "1", + "9", + "4", + "8", + "2", + "10", + "5", + "5", + "4", + "9", + "1", + "6", + "5", + "9", + "2", + "3", + "6", + "3", + "6", + "4", + "10", + "5", + "9", + "4", + "7", + "6", + "5", + "4", + "8", + "9", + "2", + "7", + "4", + "6", + "3", + "8", + "3", + "2", + "1" + ] + ], + "freespins": [ + [ + "6", + "6", + "5", + "7", + "4", + "8", + "10", + "5", + "10", + "6", + "9", + "5", + "7", + "7", + "3", + "8", + "8", + "9", + "7", + "10", + "4", + "10", + "9", + "2", + "4", + "9", + "6", + "3", + "7", + "7", + "5", + "9", + "4", + "10", + "2", + "9", + "4", + "8", + "8", + "6", + "5", + "6", + "10", + "5", + "9", + "8", + "5", + "7", + "4", + "10", + "6", + "3", + "9", + "8", + "6", + "4", + "9", + "1", + "1", + "1", + "1", + "10", + "9", + "5", + "10" + ], + [ + "5", + "1", + "3", + "5", + "9", + "1", + "5", + "1", + "2", + "5", + "6", + "5", + "6", + "5", + "3", + "8", + "5", + "1", + "6", + "1", + "5", + "4", + "6", + "2", + "3", + "1", + "4", + "5", + "7", + "5", + "6", + "2", + "5", + "1", + "1", + "1", + "1", + "1", + "5", + "10", + "6", + "3", + "2", + "6", + "4", + "5", + "1", + "6", + "5", + "9", + "1", + "5", + "1", + "6", + "5", + "4", + "5", + "9", + "2", + "4", + "5", + "1", + "9", + "2", + "8", + "5", + "6", + "5", + "6", + "4", + "1", + "5", + "1", + "1", + "5" + ], + [ + "5", + "5", + "1", + "6", + "5", + "1", + "5", + "8", + "5", + "6", + "5", + "8", + "5", + "3", + "8", + "5", + "6", + "5", + "1", + "4", + "5", + "6", + "4", + "3", + "1", + "3", + "5", + "4", + "4", + "10", + "5", + "6", + "7", + "5", + "3", + "5", + "7", + "1", + "5", + "5", + "4", + "1", + "1", + "5", + "10", + "6", + "5", + "5", + "6", + "5", + "3", + "1", + "5", + "6", + "2", + "1", + "6", + "1", + "3", + "5", + "4", + "9", + "5", + "6", + "5", + "1", + "7", + "5", + "2", + "4", + "8", + "5", + "1", + "5", + "1", + "1" + ], + [ + "1", + "1", + "6", + "3", + "1", + "7", + "8", + "3", + "9", + "6", + "5", + "4", + "3", + "1", + "1", + "5", + "4", + "1", + "2", + "10", + "6", + "5", + "5", + "3", + "7", + "1", + "3", + "9", + "10", + "1", + "5", + "9", + "5", + "6", + "1", + "6", + "10", + "1", + "8", + "5", + "3", + "6", + "4", + "8", + "10", + "1", + "9", + "5", + "5", + "10", + "1", + "10", + "2", + "5", + "7", + "5", + "6", + "1", + "6", + "2", + "1", + "5", + "6", + "1", + "4", + "1", + "1" + ], + [ + "10", + "8", + "6", + "8", + "10", + "5", + "10", + "3", + "9", + "6", + "7", + "7", + "7", + "4", + "9", + "4", + "10", + "3", + "9", + "9", + "5", + "10", + "7", + "1", + "2", + "10", + "5", + "5", + "9", + "9", + "6", + "6", + "9", + "2", + "3", + "6", + "4", + "10", + "9", + "8", + "7", + "6", + "5", + "4", + "8", + "9", + "10", + "7", + "8", + "6", + "6", + "1", + "1", + "1", + "1", + "1", + "1", + "8", + "4", + "10", + "9", + "5" + ] + ], + "respin": [ + [ + "10", + "6", + "10", + "5", + "8", + "9", + "10", + "10", + "4", + "6", + "5", + "10", + "7", + "7", + "3", + "8", + "8", + "9", + "9", + "9", + "5", + "1", + "8", + "10", + "9", + "2", + "10", + "5", + "6", + "10", + "7", + "7", + "5", + "9", + "10", + "2", + "10", + "7", + "10", + "6", + "4", + "8", + "8", + "10", + "6", + "5", + "10", + "5", + "6", + "10", + "9", + "8", + "7", + "6", + "5", + "9", + "10", + "8", + "5", + "8", + "6", + "9", + "6", + "4", + "10", + "6" + ], + [ + "5", + "9", + "10", + "9", + "10", + "7", + "4", + "9", + "8", + "10", + "9", + "10", + "3", + "8", + "10", + "8", + "10", + "9", + "4", + "6", + "9", + "1", + "10", + "9", + "4", + "7", + "7", + "10", + "9", + "10", + "3", + "10", + "10", + "6", + "6", + "3", + "8", + "9", + "10", + "9", + "8", + "6", + "9", + "5", + "7", + "9", + "4", + "10", + "9", + "9", + "2", + "9", + "4", + "10", + "10", + "5", + "9", + "8", + "6" + ], + [ + "10", + "10", + "6", + "6", + "8", + "8", + "9", + "5", + "8", + "10", + "3", + "8", + "7", + "7", + "5", + "4", + "6", + "9", + "4", + "10", + "10", + "3", + "7", + "6", + "4", + "10", + "9", + "4", + "10", + "10", + "6", + "3", + "9", + "7", + "4", + "4", + "10", + "8", + "10", + "5", + "10", + "9", + "10", + "9", + "5", + "1", + "9", + "10", + "5", + "10", + "2", + "9", + "8", + "7", + "6", + "5", + "4", + "10", + "10", + "5", + "9", + "8", + "7", + "10", + "6" + ], + [ + "6", + "10", + "8", + "7", + "8", + "8", + "9", + "9", + "5", + "6", + "7", + "7", + "4", + "9", + "10", + "8", + "6", + "4", + "4", + "2", + "10", + "6", + "6", + "5", + "5", + "7", + "7", + "1", + "9", + "10", + "3", + "6", + "9", + "8", + "6", + "7", + "9", + "7", + "8", + "3", + "8", + "10", + "9", + "10", + "10", + "7", + "5", + "10", + "9", + "9", + "4", + "7", + "7", + "9", + "10", + "7", + "6" + ], + [ + "10", + "8", + "6", + "8", + "9", + "5", + "7", + "3", + "7", + "6", + "7", + "7", + "7", + "4", + "4", + "8", + "9", + "9", + "5", + "9", + "7", + "9", + "8", + "8", + "10", + "5", + "8", + "7", + "6", + "5", + "9", + "4", + "9", + "6", + "9", + "9", + "3", + "6", + "8", + "9", + "4", + "10", + "9", + "8", + "7", + "6", + "5", + "4", + "8", + "9", + "10", + "7", + "8", + "6", + "6", + "8", + "10", + "7", + "9", + "9", + "7", + "10" + ] + ] + }, + "layout": { + "reels": 5, + "rows": 4 + }, + "currency": { + "code": "EUR", + "symbol": "€", + "subunits": 100, + "exponent": 2 + }, + "screen": [ + [ + "4", + "10", + "4", + "6" + ], + [ + "10", + "0", + "10", + "1" + ], + [ + "3", + "5", + "4", + "0" + ], + [ + "5", + "6", + "7", + "0" + ], + [ + "9", + "5", + "7", + "1" + ] + ], + "feature_options": { + "feature_multipliers": { + "freespin_buy": 20200, + "bonus_buy": 10100, + "bonus_chance": 300 + }, + "disabled_features": [] + }, + "storage": { + "wilds": [ + [ + [ + 1, + 1 + ], + 3, + 0 + ], + [ + [ + 2, + 3 + ], + 2, + 0 + ], + [ + [ + 3, + 3 + ], + 1, + 0 + ] + ] + } + }, + "balance": { + "game": 0, + "wallet": 113497 + }, + "flow": { + "round_id": 356249, + "last_action_id": "356249_1", + "state": "ready", + "command": "init", + "available_actions": [ + "init", + "spin" + ], + "purchased_feature": {} + } +}, +{ + "api_version": "2", + "features": { + "respins_issued": 3, + "respins_left": 3, + "sticky_wilds": [ + [ + [ + 1, + 1 + ], + 3, + 0 + ], + [ + [ + 2, + 3 + ], + 2, + 0 + ], + [ + [ + 3, + 3 + ], + 1, + 0 + ] + ] + }, + "outcome": { + "screen": [ + [ + "4", + "10", + "4", + "6" + ], + [ + "10", + "0", + "10", + "1" + ], + [ + "3", + "5", + "4", + "0" + ], + [ + "5", + "6", + "7", + "0" + ], + [ + "9", + "5", + "7", + "1" + ] + ], + "special_symbols": { + "wild": { + "0": [ + [ + 1, + 1 + ], + [ + 2, + 3 + ], + [ + 3, + 3 + ] + ] + } + }, + "bet": 200, + "win": 300, + "wins": [ + [ + "line", + 300, + [ + 2, + 1, + 2 + ], + 7 + ] + ], + "storage": { + "wilds": [ + [ + [ + 1, + 1 + ], + 3, + 0 + ], + [ + [ + 2, + 3 + ], + 2, + 0 + ], + [ + [ + 3, + 3 + ], + 1, + 0 + ] + ] + } + }, + "balance": { + "game": 300, + "wallet": 93297 + }, + "flow": { + "round_id": 356253, + "last_action_id": "356253_1", + "state": "respin", + "command": "spin", + "available_actions": [ + "init", + "respin" + ], + "purchased_feature": { + "name": "bonus_buy" + } + } +}, +{ + "api_version": "2", + "features": { + "respins_issued": 3, + "respins_left": 2, + "sticky_wilds": [ + [ + [ + 1, + 1 + ], + 3, + 0 + ], + [ + [ + 2, + 3 + ], + 2, + 0 + ], + [ + [ + 3, + 3 + ], + 1, + 0 + ] + ] + }, + "outcome": { + "screen": [ + [ + "4", + "8", + "8", + "10" + ], + [ + "8", + "0", + "5", + "9" + ], + [ + "6", + "8", + "8", + "0" + ], + [ + "4", + "4", + "2", + "0" + ], + [ + "9", + "4", + "10", + "9" + ] + ], + "special_symbols": { + "wild": { + "0": [ + [ + 1, + 1 + ], + [ + 2, + 3 + ], + [ + 3, + 3 + ] + ] + } + }, + "bet": 200, + "win": 400, + "wins": [ + [ + "line", + 120, + [ + 1, + 1, + 1 + ], + 1 + ], + [ + "line", + 40, + [ + 1, + 0, + 1 + ], + 5 + ], + [ + "line", + 120, + [ + 2, + 1, + 2 + ], + 7 + ], + [ + "line", + 120, + [ + 2, + 1, + 1 + ], + 13 + ] + ], + "storage": { + "wilds": [ + [ + [ + 1, + 1 + ], + 3, + 0 + ], + [ + [ + 2, + 3 + ], + 2, + 0 + ], + [ + [ + 3, + 3 + ], + 1, + 0 + ] + ] + } + }, + "balance": { + "game": 700, + "wallet": 93297 + }, + "flow": { + "round_id": 356253, + "last_action_id": "356253_2", + "state": "respin", + "command": "respin", + "available_actions": [ + "init", + "respin" + ], + "purchased_feature": { + "name": "bonus_buy" + } + } +}, +{ + "api_version": "2", + "features": { + "respins_issued": 3, + "respins_left": 1, + "sticky_wilds": [ + [ + [ + 1, + 1 + ], + 3, + 0 + ], + [ + [ + 2, + 3 + ], + 2, + 0 + ], + [ + [ + 3, + 3 + ], + 1, + 0 + ] + ] + }, + "outcome": { + "screen": [ + [ + "10", + "4", + "6", + "5" + ], + [ + "9", + "0", + "9", + "4" + ], + [ + "6", + "3", + "9", + "0" + ], + [ + "5", + "6", + "7", + "0" + ], + [ + "8", + "9", + "9", + "5" + ] + ], + "special_symbols": { + "wild": { + "0": [ + [ + 1, + 1 + ], + [ + 2, + 3 + ], + [ + 3, + 3 + ] + ] + } + }, + "bet": 200, + "win": 0, + "wins": [], + "storage": { + "wilds": [ + [ + [ + 1, + 1 + ], + 3, + 0 + ], + [ + [ + 2, + 3 + ], + 2, + 0 + ], + [ + [ + 3, + 3 + ], + 1, + 0 + ] + ] + } + }, + "balance": { + "game": 700, + "wallet": 93297 + }, + "flow": { + "round_id": 356253, + "last_action_id": "356253_3", + "state": "respin", + "command": "respin", + "available_actions": [ + "init", + "respin" + ], + "purchased_feature": { + "name": "bonus_buy" + } + } +}, +{ + "api_version": "2", + "features": { + "respins_issued": 3, + "respins_left": 0, + "sticky_wilds": [ + [ + [ + 1, + 1 + ], + 3, + 0 + ], + [ + [ + 2, + 3 + ], + 2, + 0 + ], + [ + [ + 3, + 3 + ], + 1, + 0 + ] + ] + }, + "outcome": { + "screen": [ + [ + "7", + "6", + "5", + "9" + ], + [ + "5", + "0", + "10", + "9" + ], + [ + "3", + "9", + "7", + "0" + ], + [ + "7", + "9", + "10", + "0" + ], + [ + "3", + "6", + "8", + "9" + ] + ], + "special_symbols": { + "wild": { + "0": [ + [ + 1, + 1 + ], + [ + 2, + 3 + ], + [ + 3, + 3 + ] + ] + } + }, + "bet": 200, + "win": 600, + "wins": [ + [ + "line", + 600, + [ + 3, + 3, + 3, + 3, + 3 + ], + 3 + ] + ], + "storage": { + "wilds": [ + [ + [ + 1, + 1 + ], + 3, + 0 + ], + [ + [ + 2, + 3 + ], + 2, + 0 + ], + [ + [ + 3, + 3 + ], + 1, + 0 + ] + ] + } + }, + "balance": { + "game": 1300, + "wallet": 93297 + }, + "flow": { + "round_id": 356253, + "last_action_id": "356253_4", + "state": "closed", + "command": "respin", + "available_actions": [ + "init", + "spin" + ], + "purchased_feature": { + "name": "bonus_buy" + } + } +}] \ No newline at end of file diff --git a/jest.config.js b/jest.config.js new file mode 100644 index 0000000..e7736ae --- /dev/null +++ b/jest.config.js @@ -0,0 +1,6 @@ +module.exports = { + testMatch: [ + '**/*.test.js', // Найти все тесты с .test.js + '**/*.spec.js' // Или .spec.js + ], +}; diff --git a/jsconfig.json b/jsconfig.json new file mode 100644 index 0000000..cc0f902 --- /dev/null +++ b/jsconfig.json @@ -0,0 +1,22 @@ +{ + "compilerOptions": { + "baseUrl": ".", + "paths": { + "services": [ + "../services" + ], + "utils": [ + "../utils" + ], + "extensions": [ + "../extensions" + ], + "decorators": [ + "../decorators" + ], + "base": [ + "../base" + ] + } + } +} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..4d861a5 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,11891 @@ +{ + "name": "amazon_game_of_gold", + "version": "1.0.4", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "amazon_game_of_gold", + "version": "1.0.4", + "license": "ISC", + "dependencies": { + "@popiplay/slot-game-kit": "file:.yalc/@popiplay/slot-game-kit", + "@popiplay/slot-machines": "1.1.18", + "@popiplay/state-machine": "1.0.6" + } + }, + ".yalc/@popiplay/slot-game-kit": { + "version": "0.6.15", + "license": "ISC", + "dependencies": { + "@amplitude/analytics-browser": "^2.30.1", + "@popiplay/fairygui-dom-fork": "^1.0.12", + "@popiplay/formatter": "^1.0.2", + "@types/fscreen": "^1.0.4" + }, + "bin": { + "slotgamekit": "scripts/slotgamekit.js" + }, + "peerDependencies": { + "@babel/core": "^7.21.8", + "@babel/plugin-proposal-decorators": "^7.23.7", + "@babel/plugin-transform-runtime": "^7.25.9", + "@babel/polyfill": "^7.12.1", + "@babel/preset-env": "^7.21.5", + "@babel/preset-react": "^7.18.6", + "@babel/runtime": "^7.21.5", + "@pixi-spine/runtime-4.1": "^4.0.3", + "@pixi/core": "^7.4.2", + "@pixi/events": "^7.4.2", + "@pixi/filter-glow": "^5.2.1", + "@pixi/filter-motion-blur": "^5.1.1", + "@pixi/particle-emitter": "^5.0.8", + "@pixi/sound": "^5.2.2", + "@pixi/ui": "^1.1.1", + "@popiplay/fairygui-dom-fork": "^1.0.12", + "@popiplay/state-machine": "^1.0.6", + "@sentry/browser": "^7.94.1", + "@sentry/webpack-plugin": "^2.10.3", + "babel-jest": "^29.7.0", + "babel-loader": "^8.3.0", + "clean-webpack-plugin": "^4.0.0", + "copy-webpack-plugin": "^10.2.4", + "css-loader": "^6.8.1", + "eslint": "^8.57.0", + "eslint-config-google": "^0.14.0", + "eventemitter3": "^5.0.1", + "file-loader": "^6.2.0", + "fscreen": "^1.2.0", + "gsap": "^3.10.4", + "html-loader": "^3.1.0", + "html-webpack-plugin": "^5.5.0", + "ip": "^1.1.5", + "jest": "^29.7.0", + "lil-gui": "^0.17.0", + "mini-css-extract-plugin": "^2.5.3", + "node-fetch": "^3.3.0", + "pixi-spine": "^4.0.4", + "pixi.js": "^7.4.2", + "portfinder-sync": "0.0.2", + "raw-loader": "^4.0.2", + "spritesheet-js": "^1.2.6", + "stats.js": "^0.17.0", + "style-loader": "^3.3.2", + "t": "^0.5.1", + "tweakpane": "^4.0.5", + "webpack": "^5.68.0", + "webpack-cli": "^4.9.2", + "webpack-dev-server": "^4.7.3", + "webpack-merge": "^5.8.0" + } + }, + "node_modules/@amplitude/analytics-browser": { + "version": "2.30.1", + "resolved": "https://registry.npmjs.org/@amplitude/analytics-browser/-/analytics-browser-2.30.1.tgz", + "integrity": "sha512-uNCYjOdwBKXKPXlH1t2HayMRpzQ64hF8cIq78Y42/cAq+3Zhz4Hxy4IKmu9Sx+cC7p3QpToXjnhozQdnnjEeYg==", + "dependencies": { + "@amplitude/analytics-core": "^2.31.1", + "@amplitude/plugin-autocapture-browser": "^1.17.1", + "@amplitude/plugin-network-capture-browser": "^1.6.13", + "@amplitude/plugin-page-url-enrichment-browser": "^0.5.2", + "@amplitude/plugin-page-view-tracking-browser": "^2.5.7", + "@amplitude/plugin-web-vitals-browser": "^0.1.0-beta.35", + "tslib": "^2.4.1" + } + }, + "node_modules/@amplitude/analytics-connector": { + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/@amplitude/analytics-connector/-/analytics-connector-1.6.4.tgz", + "integrity": "sha512-SpIv0IQMNIq6SH3UqFGiaZyGSc7PBZwRdq7lvP0pBxW8i4Ny+8zwI0pV+VMfMHQwWY3wdIbWw5WQphNjpdq1/Q==" + }, + "node_modules/@amplitude/analytics-core": { + "version": "2.31.1", + "resolved": "https://registry.npmjs.org/@amplitude/analytics-core/-/analytics-core-2.31.1.tgz", + "integrity": "sha512-ynk7l24be7L/E6m/XDq0gZdwAKmmS3fE+5BLFF+usljFlWvUY59qFjAZbv6DkaMQA6IGDm9ocgg4VnlNxdX6bA==", + "dependencies": { + "@amplitude/analytics-connector": "^1.6.4", + "tslib": "^2.4.1" + } + }, + "node_modules/@amplitude/plugin-autocapture-browser": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/@amplitude/plugin-autocapture-browser/-/plugin-autocapture-browser-1.17.1.tgz", + "integrity": "sha512-KuWQbyo+DUH1Z066ubhLzH3r8R/r0e0SU8ecPF0oPhvD19VH0uYQ/nt+S+0lMvkivy5GLPyjkBAzCHhjbM0TFQ==", + "dependencies": { + "@amplitude/analytics-core": "^2.31.1", + "rxjs": "^7.8.1", + "tslib": "^2.4.1" + } + }, + "node_modules/@amplitude/plugin-network-capture-browser": { + "version": "1.6.13", + "resolved": "https://registry.npmjs.org/@amplitude/plugin-network-capture-browser/-/plugin-network-capture-browser-1.6.13.tgz", + "integrity": "sha512-tf8/UQnEeT1Y7SCXLTQAeX+8/taV7gXW7Z4f5Dk1m9FKq34mn2hh9k3es+3SVmd7FS2D+nixnlaEvUX2TSLr3A==", + "dependencies": { + "@amplitude/analytics-core": "^2.31.1", + "rxjs": "^7.8.1", + "tslib": "^2.4.1" + } + }, + "node_modules/@amplitude/plugin-page-url-enrichment-browser": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/@amplitude/plugin-page-url-enrichment-browser/-/plugin-page-url-enrichment-browser-0.5.2.tgz", + "integrity": "sha512-jofoyuZ2Ye7KjQQCnjL6L1u+QcvGB2GJMhDoNS6Nkb1jg7JdSxpD+8qvjSIFo727UXmbqEGFuZ68i6PnzIzsHQ==", + "dependencies": { + "@amplitude/analytics-core": "^2.31.1", + "tslib": "^2.4.1" + } + }, + "node_modules/@amplitude/plugin-page-view-tracking-browser": { + "version": "2.5.7", + "resolved": "https://registry.npmjs.org/@amplitude/plugin-page-view-tracking-browser/-/plugin-page-view-tracking-browser-2.5.7.tgz", + "integrity": "sha512-CW9gtVBH6n74vqSXa4gTmAL8NuNDYoLHXLY2j+qn1noP7QUBk1BD1TTCuSWqB6CMkTzBLF1zSjnE0MgPoTe8yA==", + "dependencies": { + "@amplitude/analytics-core": "^2.31.1", + "tslib": "^2.4.1" + } + }, + "node_modules/@amplitude/plugin-web-vitals-browser": { + "version": "0.1.0-frustrationanalytics.0", + "resolved": "https://registry.npmjs.org/@amplitude/plugin-web-vitals-browser/-/plugin-web-vitals-browser-0.1.0-frustrationanalytics.0.tgz", + "integrity": "sha512-xv4sje6/D8r+SgNFTA22FJ5PhtdhN+VSydvs63Frll+qWlyQwaZ1IgDbPyqjzryEkldHRPD7GUaQual+geoIYg==", + "dependencies": { + "@amplitude/analytics-core": "^2.14.0-frustrationanalytics.0", + "rxjs": "^7.8.1", + "tslib": "^2.4.1", + "web-vitals": "^5.0.1" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", + "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==", + "peer": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.27.1", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.5.tgz", + "integrity": "sha512-6uFXyCayocRbqhZOB+6XcuZbkMNimwfVGFji8CTZnCzOHVGvDqzvitu1re2AU5LROliz7eQPhB8CpAMvnx9EjA==", + "peer": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.5.tgz", + "integrity": "sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw==", + "peer": true, + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.28.5", + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-module-transforms": "^7.28.3", + "@babel/helpers": "^7.28.4", + "@babel/parser": "^7.28.5", + "@babel/template": "^7.27.2", + "@babel/traverse": "^7.28.5", + "@babel/types": "^7.28.5", + "@jridgewell/remapping": "^2.3.5", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/generator": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.5.tgz", + "integrity": "sha512-3EwLFhZ38J4VyIP6WNtt2kUdW9dokXA9Cr4IVIFHuCpZ3H8/YFOl5JjZHisrn1fATPBmKKqXzDFvh9fUwHz6CQ==", + "peer": true, + "dependencies": { + "@babel/parser": "^7.28.5", + "@babel/types": "^7.28.5", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.27.3", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.3.tgz", + "integrity": "sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==", + "peer": true, + "dependencies": { + "@babel/types": "^7.27.3" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz", + "integrity": "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==", + "peer": true, + "dependencies": { + "@babel/compat-data": "^7.27.2", + "@babel/helper-validator-option": "^7.27.1", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.28.5.tgz", + "integrity": "sha512-q3WC4JfdODypvxArsJQROfupPBq9+lMwjKq7C33GhbFYJsufD0yd/ziwD+hJucLeWsnFPWZjsU2DNFqBPE7jwQ==", + "peer": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.3", + "@babel/helper-member-expression-to-functions": "^7.28.5", + "@babel/helper-optimise-call-expression": "^7.27.1", + "@babel/helper-replace-supers": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", + "@babel/traverse": "^7.28.5", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.28.5.tgz", + "integrity": "sha512-N1EhvLtHzOvj7QQOUCCS3NrPJP8c5W6ZXCHDn7Yialuy1iu4r5EmIYkXlKNqT99Ciw+W0mDqWoR6HWMZlFP3hw==", + "peer": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.3", + "regexpu-core": "^6.3.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.5.tgz", + "integrity": "sha512-uJnGFcPsWQK8fvjgGP5LZUZZsYGIoPeRjSF5PGwrelYgq7Q15/Ft9NGFp1zglwgIv//W0uG4BevRuSJRyylZPg==", + "peer": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-plugin-utils": "^7.27.1", + "debug": "^4.4.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.22.10" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/helper-globals": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", + "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", + "peer": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.28.5.tgz", + "integrity": "sha512-cwM7SBRZcPCLgl8a7cY0soT1SptSzAlMH39vwiRpOQkJlh53r5hdHwLSCZpQdVLT39sZt+CRpNwYG4Y2v77atg==", + "peer": true, + "dependencies": { + "@babel/traverse": "^7.28.5", + "@babel/types": "^7.28.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz", + "integrity": "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==", + "peer": true, + "dependencies": { + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.3.tgz", + "integrity": "sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==", + "peer": true, + "dependencies": { + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1", + "@babel/traverse": "^7.28.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.27.1.tgz", + "integrity": "sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==", + "peer": true, + "dependencies": { + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz", + "integrity": "sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==", + "peer": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.27.1.tgz", + "integrity": "sha512-7fiA521aVw8lSPeI4ZOD3vRFkoqkJcS+z4hFo82bFSH/2tNd6eJ5qCVMS5OzDmZh/kaHQeBaeyxK6wljcPtveA==", + "peer": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-wrap-function": "^7.27.1", + "@babel/traverse": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.27.1.tgz", + "integrity": "sha512-7EHz6qDZc8RYS5ElPoShMheWvEgERonFCs7IAonWLLUTXW59DP14bCZt89/GKyreYn8g3S83m21FelHKbeDCKA==", + "peer": true, + "dependencies": { + "@babel/helper-member-expression-to-functions": "^7.27.1", + "@babel/helper-optimise-call-expression": "^7.27.1", + "@babel/traverse": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.27.1.tgz", + "integrity": "sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg==", + "peer": true, + "dependencies": { + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", + "peer": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", + "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", + "peer": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", + "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", + "peer": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.28.3.tgz", + "integrity": "sha512-zdf983tNfLZFletc0RRXYrHrucBEg95NIFMkn6K9dbeMYnsgHaSBGcQqdsCSStG2PYwRre0Qc2NNSCXbG+xc6g==", + "peer": true, + "dependencies": { + "@babel/template": "^7.27.2", + "@babel/traverse": "^7.28.3", + "@babel/types": "^7.28.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.4.tgz", + "integrity": "sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==", + "peer": true, + "dependencies": { + "@babel/template": "^7.27.2", + "@babel/types": "^7.28.4" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.5.tgz", + "integrity": "sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ==", + "peer": true, + "dependencies": { + "@babel/types": "^7.28.5" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.28.5.tgz", + "integrity": "sha512-87GDMS3tsmMSi/3bWOte1UblL+YUTFMV8SZPZ2eSEL17s74Cw/l63rR6NmGVKMYW2GYi85nE+/d6Hw5N0bEk2Q==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/traverse": "^7.28.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.27.1.tgz", + "integrity": "sha512-qNeq3bCKnGgLkEXUuFry6dPlGfCdQNZbn7yUAPCInwAJHMU7THJfrBSozkcWq5sNM6RcF3S8XyQL2A52KNR9IA==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.27.1.tgz", + "integrity": "sha512-g4L7OYun04N1WyqMNjldFwlfPCLVkgB54A/YCXICZYBsvJJE3kByKv9c9+R/nAfmIfjl2rKYLNyMHboYbZaWaA==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.27.1.tgz", + "integrity": "sha512-oO02gcONcD5O1iTLi/6frMJBIwWEHceWGSGqrpCmEL8nogiS6J9PBlE48CaK20/Jx1LuRml9aDftLgdjXT8+Cw==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", + "@babel/plugin-transform-optional-chaining": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.28.3.tgz", + "integrity": "sha512-b6YTX108evsvE4YgWyQ921ZAFFQm3Bn+CA3+ZXlNVnPhx+UfsVURoPjfGAPCjBgrqo30yX/C2nZGX96DxvR9Iw==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/traverse": "^7.28.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-proposal-decorators": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.28.0.tgz", + "integrity": "sha512-zOiZqvANjWDUaUS9xMxbMcK/Zccztbe/6ikvUXaG9nsPH3w6qh5UaPGAnirI/WhIbZ8m3OHU0ReyPrknG+ZKeg==", + "peer": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/plugin-syntax-decorators": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", + "peer": true, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-decorators": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.27.1.tgz", + "integrity": "sha512-YMq8Z87Lhl8EGkmb0MwYkt36QnxC+fzCgrl66ereamPlYToRpIk5nUjKUY3QKLWq8mwUB1BgbeXcTJhZOCDg5A==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.27.1.tgz", + "integrity": "sha512-UT/Jrhw57xg4ILHLFnzFpPDlMbcdEicaAtjPQpbj9wa8T4r5KVWCimHcL/460g8Ht0DMxDyjsLgiWSkVjnwPFg==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.27.1.tgz", + "integrity": "sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.27.1.tgz", + "integrity": "sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.27.1.tgz", + "integrity": "sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-unicode-sets-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", + "peer": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.27.1.tgz", + "integrity": "sha512-8Z4TGic6xW70FKThA5HYEKKyBpOOsucTOD1DjU3fZxDg+K3zBJcXMFnt/4yQiZnf5+MiOMSXQ9PaEK/Ilh1DeA==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-generator-functions": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.28.0.tgz", + "integrity": "sha512-BEOdvX4+M765icNPZeidyADIvQ1m1gmunXufXxvRESy/jNNyfovIqUyE7MVgGBjWktCoJlzvFA1To2O4ymIO3Q==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-remap-async-to-generator": "^7.27.1", + "@babel/traverse": "^7.28.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.27.1.tgz", + "integrity": "sha512-NREkZsZVJS4xmTr8qzE5y8AfIPqsdQfRuUiLRTEzb7Qii8iFWCyDKaUV2c0rCuh4ljDZ98ALHP/PetiBV2nddA==", + "peer": true, + "dependencies": { + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-remap-async-to-generator": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.27.1.tgz", + "integrity": "sha512-cnqkuOtZLapWYZUYM5rVIdv1nXYuFVIltZ6ZJ7nIj585QsjKM5dhL2Fu/lICXZ1OyIAFc7Qy+bvDAtTXqGrlhg==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.28.5.tgz", + "integrity": "sha512-45DmULpySVvmq9Pj3X9B+62Xe+DJGov27QravQJU1LLcapR6/10i+gYVAucGGJpHBp5mYxIMK4nDAT/QDLr47g==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-properties": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.27.1.tgz", + "integrity": "sha512-D0VcalChDMtuRvJIu3U/fwWjf8ZMykz5iZsg77Nuj821vCKI3zCyRLwRdWbsuJ/uRwZhZ002QtCqIkwC/ZkvbA==", + "peer": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-static-block": { + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.28.3.tgz", + "integrity": "sha512-LtPXlBbRoc4Njl/oh1CeD/3jC+atytbnf/UqLoqTDcEYGUPj022+rvfkbDYieUrSj3CaV4yHDByPE+T2HwfsJg==", + "peer": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.28.3", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.28.4.tgz", + "integrity": "sha512-cFOlhIYPBv/iBoc+KS3M6et2XPtbT2HiCRfBXWtfpc9OAyostldxIf9YAYB6ypURBBbx+Qv6nyrLzASfJe+hBA==", + "peer": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.3", + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-globals": "^7.28.0", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-replace-supers": "^7.27.1", + "@babel/traverse": "^7.28.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.27.1.tgz", + "integrity": "sha512-lj9PGWvMTVksbWiDT2tW68zGS/cyo4AkZ/QTp0sQT0mjPopCmrSkzxeXkznjqBxzDI6TclZhOJbBmbBLjuOZUw==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/template": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.28.5.tgz", + "integrity": "sha512-Kl9Bc6D0zTUcFUvkNuQh4eGXPKKNDOJQXVyyM4ZAQPMveniJdxi8XMJwLo+xSoW3MIq81bD33lcUe9kZpl0MCw==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/traverse": "^7.28.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.27.1.tgz", + "integrity": "sha512-gEbkDVGRvjj7+T1ivxrfgygpT7GUd4vmODtYpbs0gZATdkX8/iSnOtZSxiZnsgm1YjTgjI6VKBGSJJevkrclzw==", + "peer": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.27.1.tgz", + "integrity": "sha512-MTyJk98sHvSs+cvZ4nOauwTTG1JeonDjSGvGGUNHreGQns+Mpt6WX/dVzWBHgg+dYZhkC4X+zTDfkTU+Vy9y7Q==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.27.1.tgz", + "integrity": "sha512-hkGcueTEzuhB30B3eJCbCYeCaaEQOmQR0AdvzpD4LoN0GXMWzzGSuRrxR2xTnCrvNbVwK9N6/jQ92GSLfiZWoQ==", + "peer": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-dynamic-import": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.27.1.tgz", + "integrity": "sha512-MHzkWQcEmjzzVW9j2q8LGjwGWpG2mjwaaB0BNQwst3FIjqsg8Ct/mIZlvSPJvfi9y2AC8mi/ktxbFVL9pZ1I4A==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-explicit-resource-management": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-explicit-resource-management/-/plugin-transform-explicit-resource-management-7.28.0.tgz", + "integrity": "sha512-K8nhUcn3f6iB+P3gwCv/no7OdzOZQcKchW6N389V6PD8NUWKZHzndOd9sPDVbMoBsbmjMqlB4L9fm+fEFNVlwQ==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/plugin-transform-destructuring": "^7.28.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.28.5.tgz", + "integrity": "sha512-D4WIMaFtwa2NizOp+dnoFjRez/ClKiC2BqqImwKd1X28nqBtZEyCYJ2ozQrrzlxAFrcrjxo39S6khe9RNDlGzw==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-export-namespace-from": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.27.1.tgz", + "integrity": "sha512-tQvHWSZ3/jH2xuq/vZDy0jNn+ZdXJeM8gHvX4lnJmsc3+50yPlWdZXIc5ay+umX+2/tJIqHqiEqcJvxlmIvRvQ==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.27.1.tgz", + "integrity": "sha512-BfbWFFEJFQzLCQ5N8VocnCtA8J1CLkNTe2Ms2wocj75dd6VpiqS5Z5quTYcUoo4Yq+DN0rtikODccuv7RU81sw==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.27.1.tgz", + "integrity": "sha512-1bQeydJF9Nr1eBCMMbC+hdwmRlsv5XYOMu03YSWFwNs0HsAmtSxxF1fyuYPqemVldVyFmlCU7w8UE14LupUSZQ==", + "peer": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/traverse": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-json-strings": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.27.1.tgz", + "integrity": "sha512-6WVLVJiTjqcQauBhn1LkICsR2H+zm62I3h9faTDKt1qP4jn2o72tSvqMwtGFKGTpojce0gJs+76eZ2uCHRZh0Q==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.27.1.tgz", + "integrity": "sha512-0HCFSepIpLTkLcsi86GG3mTUzxV5jpmbv97hTETW3yzrAij8aqlD36toB1D0daVFJM8NK6GvKO0gslVQmm+zZA==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-logical-assignment-operators": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.28.5.tgz", + "integrity": "sha512-axUuqnUTBuXyHGcJEVVh9pORaN6wC5bYfE7FGzPiaWa3syib9m7g+/IT/4VgCOe2Upef43PHzeAvcrVek6QuuA==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.27.1.tgz", + "integrity": "sha512-hqoBX4dcZ1I33jCSWcXrP+1Ku7kdqXf1oeah7ooKOIiAdKQ+uqftgCFNOSzA5AMS2XIHEYeGFg4cKRCdpxzVOQ==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.27.1.tgz", + "integrity": "sha512-iCsytMg/N9/oFq6n+gFTvUYDZQOMK5kEdeYxmxt91fcJGycfxVP9CnrxoliM0oumFERba2i8ZtwRUCMhvP1LnA==", + "peer": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.27.1.tgz", + "integrity": "sha512-OJguuwlTYlN0gBZFRPqwOGNWssZjfIUdS7HMYtN8c1KmwpwHFBwTeFZrg9XZa+DFTitWOW5iTAG7tyCUPsCCyw==", + "peer": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.28.5.tgz", + "integrity": "sha512-vn5Jma98LCOeBy/KpeQhXcV2WZgaRUtjwQmjoBuLNlOmkg0fB5pdvYVeWRYI69wWKwK2cD1QbMiUQnoujWvrew==", + "peer": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.28.3", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-validator-identifier": "^7.28.5", + "@babel/traverse": "^7.28.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.27.1.tgz", + "integrity": "sha512-iQBE/xC5BV1OxJbp6WG7jq9IWiD+xxlZhLrdwpPkTX3ydmXdvoCpyfJN7acaIBZaOqTfr76pgzqBJflNbeRK+w==", + "peer": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.27.1.tgz", + "integrity": "sha512-SstR5JYy8ddZvD6MhV0tM/j16Qds4mIpJTOd1Yu9J9pJjH93bxHECF7pgtc28XvkzTD6Pxcm/0Z73Hvk7kb3Ng==", + "peer": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.27.1.tgz", + "integrity": "sha512-f6PiYeqXQ05lYq3TIfIDu/MtliKUbNwkGApPUvyo6+tc7uaR4cPjPe7DFPr15Uyycg2lZU6btZ575CuQoYh7MQ==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.27.1.tgz", + "integrity": "sha512-aGZh6xMo6q9vq1JGcw58lZ1Z0+i0xB2x0XaauNIUXd6O1xXc3RwoWEBlsTQrY4KQ9Jf0s5rgD6SiNkaUdJegTA==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-numeric-separator": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.27.1.tgz", + "integrity": "sha512-fdPKAcujuvEChxDBJ5c+0BTaS6revLV7CJL08e4m3de8qJfNIuCc2nc7XJYOjBoTMJeqSmwXJ0ypE14RCjLwaw==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-rest-spread": { + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.28.4.tgz", + "integrity": "sha512-373KA2HQzKhQCYiRVIRr+3MjpCObqzDlyrM6u4I201wL8Mp2wHf7uB8GhDwis03k2ti8Zr65Zyyqs1xOxUF/Ew==", + "peer": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/plugin-transform-destructuring": "^7.28.0", + "@babel/plugin-transform-parameters": "^7.27.7", + "@babel/traverse": "^7.28.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.27.1.tgz", + "integrity": "sha512-SFy8S9plRPbIcxlJ8A6mT/CxFdJx/c04JEctz4jf8YZaVS2px34j7NXRrlGlHkN/M2gnpL37ZpGRGVFLd3l8Ng==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-replace-supers": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-catch-binding": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.27.1.tgz", + "integrity": "sha512-txEAEKzYrHEX4xSZN4kJ+OfKXFVSWKB2ZxM9dpcE3wT7smwkNmXo5ORRlVzMVdJbD+Q8ILTgSD7959uj+3Dm3Q==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-chaining": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.28.5.tgz", + "integrity": "sha512-N6fut9IZlPnjPwgiQkXNhb+cT8wQKFlJNqcZkWlcTqkcqx6/kU4ynGmLFoa4LViBSirn05YAwk+sQBbPfxtYzQ==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.27.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.27.7.tgz", + "integrity": "sha512-qBkYTYCb76RRxUM6CcZA5KRu8K4SM8ajzVeUgVdMVO9NN9uI/GaVmBg/WKJJGnNokV9SY8FxNOVWGXzqzUidBg==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-methods": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.27.1.tgz", + "integrity": "sha512-10FVt+X55AjRAYI9BrdISN9/AQWHqldOeZDUoLyif1Kn05a56xVBXb8ZouL8pZ9jem8QpXaOt8TS7RHUIS+GPA==", + "peer": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-property-in-object": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.27.1.tgz", + "integrity": "sha512-5J+IhqTi1XPa0DXF83jYOaARrX+41gOewWbkPyjMNRDqgOCqdffGh8L3f/Ek5utaEBZExjSAzcyjmV9SSAWObQ==", + "peer": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.27.1.tgz", + "integrity": "sha512-oThy3BCuCha8kDZ8ZkgOg2exvPYUlprMukKQXI1r1pJ47NCvxfkEy8vK+r/hT9nF0Aa4H1WUPZZjHTFtAhGfmQ==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-display-name": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.28.0.tgz", + "integrity": "sha512-D6Eujc2zMxKjfa4Zxl4GHMsmhKKZ9VpcqIchJLvwTxad9zWIYulwYItBovpDOoNLISpcZSXoDJ5gaGbQUDqViA==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.27.1.tgz", + "integrity": "sha512-2KH4LWGSrJIkVf5tSiBFYuXDAoWRq2MMwgivCf+93dd0GQi8RXLjKA/0EvRnVV5G0hrHczsquXuD01L8s6dmBw==", + "peer": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/plugin-syntax-jsx": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-development": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.27.1.tgz", + "integrity": "sha512-ykDdF5yI4f1WrAolLqeF3hmYU12j9ntLQl/AOG1HAS21jxyg1Q0/J/tpREuYLfatGdGmXp/3yS0ZA76kOlVq9Q==", + "peer": true, + "dependencies": { + "@babel/plugin-transform-react-jsx": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-pure-annotations": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.27.1.tgz", + "integrity": "sha512-JfuinvDOsD9FVMTHpzA/pBLisxpv1aSf+OIV8lgH3MuWrks19R27e6a6DipIg4aX1Zm9Wpb04p8wljfKrVSnPA==", + "peer": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.28.4.tgz", + "integrity": "sha512-+ZEdQlBoRg9m2NnzvEeLgtvBMO4tkFBw5SQIUgLICgTrumLoU7lr+Oghi6km2PFj+dbUt2u1oby2w3BDO9YQnA==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regexp-modifiers": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.27.1.tgz", + "integrity": "sha512-TtEciroaiODtXvLZv4rmfMhkCv8jx3wgKpL68PuiPh2M4fvz5jhsA7697N1gMvkvr/JTF13DrFYyEbY9U7cVPA==", + "peer": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.27.1.tgz", + "integrity": "sha512-V2ABPHIJX4kC7HegLkYoDpfg9PVmuWy/i6vUM5eGK22bx4YVFD3M5F0QQnWQoDs6AGsUWTVOopBiMFQgHaSkVw==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.28.5.tgz", + "integrity": "sha512-20NUVgOrinudkIBzQ2bNxP08YpKprUkRTiRSd2/Z5GOdPImJGkoN4Z7IQe1T5AdyKI1i5L6RBmluqdSzvaq9/w==", + "peer": true, + "dependencies": { + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "babel-plugin-polyfill-corejs2": "^0.4.14", + "babel-plugin-polyfill-corejs3": "^0.13.0", + "babel-plugin-polyfill-regenerator": "^0.6.5", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.27.1.tgz", + "integrity": "sha512-N/wH1vcn4oYawbJ13Y/FxcQrWk63jhfNa7jef0ih7PHSIHX2LB7GWE1rkPrOnka9kwMxb6hMl19p7lidA+EHmQ==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.27.1.tgz", + "integrity": "sha512-kpb3HUqaILBJcRFVhFUs6Trdd4mkrzcGXss+6/mxUd273PfbWqSDHRzMT2234gIg2QYfAjvXLSquP1xECSg09Q==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.27.1.tgz", + "integrity": "sha512-lhInBO5bi/Kowe2/aLdBAawijx+q1pQzicSgnkB6dUPc1+RC8QmJHKf2OjvU+NZWitguJHEaEmbV6VWEouT58g==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.27.1.tgz", + "integrity": "sha512-fBJKiV7F2DxZUkg5EtHKXQdbsbURW3DZKQUWphDum0uRP6eHGGa/He9mc0mypL680pb+e/lDIthRohlv8NCHkg==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.27.1.tgz", + "integrity": "sha512-RiSILC+nRJM7FY5srIyc4/fGIwUhyDuuBSdWn4y6yT6gm652DpCHZjIipgn6B7MQ1ITOUnAKWixEUjQRIBIcLw==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.27.1.tgz", + "integrity": "sha512-Ysg4v6AmF26k9vpfFuTZg8HRfVWzsh1kVfowA23y9j/Gu6dOuahdUVhkLqpObp3JIv27MLSii6noRnuKN8H0Mg==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-property-regex": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.27.1.tgz", + "integrity": "sha512-uW20S39PnaTImxp39O5qFlHLS9LJEmANjMG7SxIhap8rCHqu0Ik+tLEPX5DKmHn6CsWQ7j3lix2tFOa5YtL12Q==", + "peer": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.27.1.tgz", + "integrity": "sha512-xvINq24TRojDuyt6JGtHmkVkrfVV3FPT16uytxImLeBZqW3/H52yN+kM1MGuyPkIQxrzKwPHs5U/MP3qKyzkGw==", + "peer": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-sets-regex": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.27.1.tgz", + "integrity": "sha512-EtkOujbc4cgvb0mlpQefi4NTPBzhSIevblFevACNLUspmrALgmEBdL/XfnyyITfd8fKBZrZys92zOWcik7j9Tw==", + "peer": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/polyfill": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/polyfill/-/polyfill-7.12.1.tgz", + "integrity": "sha512-X0pi0V6gxLi6lFZpGmeNa4zxtwEmCs42isWLNjZZDE0Y8yVfgu0T2OAHlzBbdYlqbW/YXVvoBHpATEM+goCj8g==", + "deprecated": "🚨 This package has been deprecated in favor of separate inclusion of a polyfill and regenerator-runtime (when needed). See the @babel/polyfill docs (https://babeljs.io/docs/en/babel-polyfill) for more information.", + "peer": true, + "dependencies": { + "core-js": "^2.6.5", + "regenerator-runtime": "^0.13.4" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.28.5.tgz", + "integrity": "sha512-S36mOoi1Sb6Fz98fBfE+UZSpYw5mJm0NUHtIKrOuNcqeFauy1J6dIvXm2KRVKobOSaGq4t/hBXdN4HGU3wL9Wg==", + "peer": true, + "dependencies": { + "@babel/compat-data": "^7.28.5", + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-validator-option": "^7.27.1", + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.28.5", + "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.27.1", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.27.1", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.27.1", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.28.3", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", + "@babel/plugin-syntax-import-assertions": "^7.27.1", + "@babel/plugin-syntax-import-attributes": "^7.27.1", + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.27.1", + "@babel/plugin-transform-async-generator-functions": "^7.28.0", + "@babel/plugin-transform-async-to-generator": "^7.27.1", + "@babel/plugin-transform-block-scoped-functions": "^7.27.1", + "@babel/plugin-transform-block-scoping": "^7.28.5", + "@babel/plugin-transform-class-properties": "^7.27.1", + "@babel/plugin-transform-class-static-block": "^7.28.3", + "@babel/plugin-transform-classes": "^7.28.4", + "@babel/plugin-transform-computed-properties": "^7.27.1", + "@babel/plugin-transform-destructuring": "^7.28.5", + "@babel/plugin-transform-dotall-regex": "^7.27.1", + "@babel/plugin-transform-duplicate-keys": "^7.27.1", + "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.27.1", + "@babel/plugin-transform-dynamic-import": "^7.27.1", + "@babel/plugin-transform-explicit-resource-management": "^7.28.0", + "@babel/plugin-transform-exponentiation-operator": "^7.28.5", + "@babel/plugin-transform-export-namespace-from": "^7.27.1", + "@babel/plugin-transform-for-of": "^7.27.1", + "@babel/plugin-transform-function-name": "^7.27.1", + "@babel/plugin-transform-json-strings": "^7.27.1", + "@babel/plugin-transform-literals": "^7.27.1", + "@babel/plugin-transform-logical-assignment-operators": "^7.28.5", + "@babel/plugin-transform-member-expression-literals": "^7.27.1", + "@babel/plugin-transform-modules-amd": "^7.27.1", + "@babel/plugin-transform-modules-commonjs": "^7.27.1", + "@babel/plugin-transform-modules-systemjs": "^7.28.5", + "@babel/plugin-transform-modules-umd": "^7.27.1", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.27.1", + "@babel/plugin-transform-new-target": "^7.27.1", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.27.1", + "@babel/plugin-transform-numeric-separator": "^7.27.1", + "@babel/plugin-transform-object-rest-spread": "^7.28.4", + "@babel/plugin-transform-object-super": "^7.27.1", + "@babel/plugin-transform-optional-catch-binding": "^7.27.1", + "@babel/plugin-transform-optional-chaining": "^7.28.5", + "@babel/plugin-transform-parameters": "^7.27.7", + "@babel/plugin-transform-private-methods": "^7.27.1", + "@babel/plugin-transform-private-property-in-object": "^7.27.1", + "@babel/plugin-transform-property-literals": "^7.27.1", + "@babel/plugin-transform-regenerator": "^7.28.4", + "@babel/plugin-transform-regexp-modifiers": "^7.27.1", + "@babel/plugin-transform-reserved-words": "^7.27.1", + "@babel/plugin-transform-shorthand-properties": "^7.27.1", + "@babel/plugin-transform-spread": "^7.27.1", + "@babel/plugin-transform-sticky-regex": "^7.27.1", + "@babel/plugin-transform-template-literals": "^7.27.1", + "@babel/plugin-transform-typeof-symbol": "^7.27.1", + "@babel/plugin-transform-unicode-escapes": "^7.27.1", + "@babel/plugin-transform-unicode-property-regex": "^7.27.1", + "@babel/plugin-transform-unicode-regex": "^7.27.1", + "@babel/plugin-transform-unicode-sets-regex": "^7.27.1", + "@babel/preset-modules": "0.1.6-no-external-plugins", + "babel-plugin-polyfill-corejs2": "^0.4.14", + "babel-plugin-polyfill-corejs3": "^0.13.0", + "babel-plugin-polyfill-regenerator": "^0.6.5", + "core-js-compat": "^3.43.0", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-modules": { + "version": "0.1.6-no-external-plugins", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", + "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/preset-react": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.28.5.tgz", + "integrity": "sha512-Z3J8vhRq7CeLjdC58jLv4lnZ5RKFUJWqH5emvxmv9Hv3BD1T9R/Im713R4MTKwvFaV74ejZ3sM01LyEKk4ugNQ==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-validator-option": "^7.27.1", + "@babel/plugin-transform-react-display-name": "^7.28.0", + "@babel/plugin-transform-react-jsx": "^7.27.1", + "@babel/plugin-transform-react-jsx-development": "^7.27.1", + "@babel/plugin-transform-react-pure-annotations": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.4.tgz", + "integrity": "sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ==", + "peer": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz", + "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==", + "peer": true, + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/parser": "^7.27.2", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.5.tgz", + "integrity": "sha512-TCCj4t55U90khlYkVV/0TfkJkAkUg3jZFA3Neb7unZT8CPok7iiRfaX0F+WnqWqt7OxhOn0uBKXCw4lbL8W0aQ==", + "peer": true, + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.28.5", + "@babel/helper-globals": "^7.28.0", + "@babel/parser": "^7.28.5", + "@babel/template": "^7.27.2", + "@babel/types": "^7.28.5", + "debug": "^4.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.5.tgz", + "integrity": "sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==", + "peer": true, + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.28.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "peer": true + }, + "node_modules/@discoveryjs/json-ext": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", + "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", + "peer": true, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.0.tgz", + "integrity": "sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g==", + "peer": true, + "dependencies": { + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.12.2", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.2.tgz", + "integrity": "sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==", + "peer": true, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "peer": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "peer": true + }, + "node_modules/@eslint/eslintrc/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "peer": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@eslint/eslintrc/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "peer": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@eslint/js": { + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz", + "integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==", + "peer": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz", + "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==", + "deprecated": "Use @eslint/config-array instead", + "peer": true, + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.3", + "debug": "^4.3.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/config-array/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "peer": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "peer": true, + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", + "deprecated": "Use @eslint/object-schema instead", + "peer": true + }, + "node_modules/@isaacs/balanced-match": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@isaacs/balanced-match/-/balanced-match-4.0.1.tgz", + "integrity": "sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==", + "peer": true, + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/@isaacs/brace-expansion": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@isaacs/brace-expansion/-/brace-expansion-5.0.0.tgz", + "integrity": "sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA==", + "peer": true, + "dependencies": { + "@isaacs/balanced-match": "^4.0.1" + }, + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "peer": true, + "dependencies": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "peer": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "peer": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "peer": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "peer": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/console": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", + "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", + "peer": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/core": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", + "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", + "peer": true, + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/reporters": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^29.7.0", + "jest-config": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-resolve-dependencies": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "jest-watcher": "^29.7.0", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/environment": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", + "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", + "peer": true, + "dependencies": { + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", + "peer": true, + "dependencies": { + "expect": "^29.7.0", + "jest-snapshot": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/expect-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", + "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", + "peer": true, + "dependencies": { + "jest-get-type": "^29.6.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/fake-timers": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", + "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", + "peer": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@sinonjs/fake-timers": "^10.0.2", + "@types/node": "*", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/globals": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", + "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", + "peer": true, + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/types": "^29.6.3", + "jest-mock": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/reporters": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", + "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", + "peer": true, + "dependencies": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^6.0.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "slash": "^3.0.0", + "string-length": "^4.0.1", + "strip-ansi": "^6.0.0", + "v8-to-istanbul": "^9.0.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/reporters/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "peer": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@jest/reporters/node_modules/istanbul-lib-instrument": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz", + "integrity": "sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==", + "peer": true, + "dependencies": { + "@babel/core": "^7.23.9", + "@babel/parser": "^7.23.9", + "@istanbuljs/schema": "^0.1.3", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^7.5.4" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@jest/reporters/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "peer": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@jest/reporters/node_modules/semver": { + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "peer": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@jest/schemas": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "peer": true, + "dependencies": { + "@sinclair/typebox": "^0.27.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/source-map": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz", + "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==", + "peer": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.18", + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/test-result": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz", + "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==", + "peer": true, + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/test-sequencer": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz", + "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==", + "peer": true, + "dependencies": { + "@jest/test-result": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/transform": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", + "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", + "peer": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^2.0.0", + "fast-json-stable-stringify": "^2.1.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "write-file-atomic": "^4.0.2" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/types": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", + "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", + "peer": true, + "dependencies": { + "@jest/schemas": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "peer": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/remapping": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", + "peer": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "peer": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.11", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.11.tgz", + "integrity": "sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==", + "peer": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "peer": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "peer": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@leichtgewicht/ip-codec": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz", + "integrity": "sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==", + "peer": true + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "peer": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "peer": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "peer": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@pixi-spine/base": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@pixi-spine/base/-/base-4.0.6.tgz", + "integrity": "sha512-m7tbwGF9LTWoDP3/p1lj7tPYUiZroFGJa3hqCpDT24oP0+qPwm81zhvOddcvKpm9WvyG7EahQfncayXMNm0n7A==", + "peer": true, + "peerDependencies": { + "@pixi/core": "^7.0.0", + "@pixi/display": "^7.0.0", + "@pixi/graphics": "^7.0.0", + "@pixi/mesh": "^7.0.0", + "@pixi/mesh-extras": "^7.0.0", + "@pixi/sprite": "^7.0.0" + } + }, + "node_modules/@pixi-spine/loader-base": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@pixi-spine/loader-base/-/loader-base-4.0.6.tgz", + "integrity": "sha512-sdbT1fbjHJFxESn8R2vulIyPu6xVBocJhrfs/kdpEWmsGUHTFdh7ANKaCqvXPvQh6wO5tgJNGhuLxtSu8VNzYg==", + "peer": true, + "peerDependencies": { + "@pixi-spine/base": "^4.0.0", + "@pixi/assets": " ^7.0.0", + "@pixi/core": "^7.0.0" + } + }, + "node_modules/@pixi-spine/loader-uni": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@pixi-spine/loader-uni/-/loader-uni-4.0.6.tgz", + "integrity": "sha512-DCu4YRVXoC/BGyxVVlWiaFs/4H62PbM6vx6OiH/Xt5PYSvYSAFlM/GnYRabgvFD0W1iOHQxfY4F7jdz8SjNs4Q==", + "peer": true, + "peerDependencies": { + "@pixi-spine/base": "^4.0.0", + "@pixi-spine/loader-base": "^4.0.0", + "@pixi-spine/runtime-3.7": "^4.0.0", + "@pixi-spine/runtime-3.8": "^4.0.0", + "@pixi-spine/runtime-4.1": "^4.0.0", + "@pixi/assets": " ^7.0.0", + "@pixi/core": "^7.0.0", + "@pixi/display": "^7.0.0", + "@pixi/graphics": "^7.0.0", + "@pixi/mesh": "^7.0.0", + "@pixi/mesh-extras": "^7.0.0", + "@pixi/sprite": "^7.0.0" + } + }, + "node_modules/@pixi-spine/runtime-3.7": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@pixi-spine/runtime-3.7/-/runtime-3.7-4.0.6.tgz", + "integrity": "sha512-bl2I0PsECKKncfLjH2xUggNcnzRTVCBQGGLHLxhUJsiOqQ56VY5eFHPpkf91Pk2fZN6P9X+RNvZntW7Z5GKQRQ==", + "peer": true, + "peerDependencies": { + "@pixi-spine/base": "^4.0.0", + "@pixi/core": "^7.0.0" + } + }, + "node_modules/@pixi-spine/runtime-3.8": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@pixi-spine/runtime-3.8/-/runtime-3.8-4.0.6.tgz", + "integrity": "sha512-caHEFt7Iwzercec5cOI+Sf2tzOT4ejNAn6ZjBurWAEeXZ8YCaj41PTnlnJAh6ex80AP3WWFJcbnqcXV/6G0sMA==", + "peer": true, + "peerDependencies": { + "@pixi-spine/base": "^4.0.0", + "@pixi/core": "^7.0.0" + } + }, + "node_modules/@pixi-spine/runtime-4.0": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@pixi-spine/runtime-4.0/-/runtime-4.0-4.0.6.tgz", + "integrity": "sha512-C4aHtbpg0UNmCd/0zS2SQ96fdcrwpx0AkHBi3TO/JXbh6fM6DQOObV+EXtxTNIY8Y/ntJtqM3Rz5d1pmgY6d3g==", + "peer": true, + "peerDependencies": { + "@pixi-spine/base": "^4.0.0", + "@pixi/core": "^7.0.0" + } + }, + "node_modules/@pixi-spine/runtime-4.1": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@pixi-spine/runtime-4.1/-/runtime-4.1-4.0.6.tgz", + "integrity": "sha512-hiX6of8Usll/zIubGB5ufPY0JaBGt0Yvpc0zEXCtxyWCx3habp8XtPNta3MmEQUVChD0nX5yks8vtzxAahFJew==", + "peer": true, + "peerDependencies": { + "@pixi-spine/base": "^4.0.0", + "@pixi/core": "^7.0.0" + } + }, + "node_modules/@pixi/accessibility": { + "version": "7.4.3", + "resolved": "https://registry.npmjs.org/@pixi/accessibility/-/accessibility-7.4.3.tgz", + "integrity": "sha512-tCr0yeWpMe0yucFvEPidy5a7gVJGpTjqGrDpSEBYT/kbScfUwcoX49RrckCCCiXDlyO4WRh9lVVuHXTvqRLIMg==", + "peer": true, + "peerDependencies": { + "@pixi/core": "7.4.3", + "@pixi/display": "7.4.3", + "@pixi/events": "7.4.3" + } + }, + "node_modules/@pixi/app": { + "version": "7.4.3", + "resolved": "https://registry.npmjs.org/@pixi/app/-/app-7.4.3.tgz", + "integrity": "sha512-opyWMuO0Ir8pf1DYUR++wAA6ZfNU+nIX2z95R2OD172HbcdhB4/HD7leLIIAny/LciEdMqlWEBhXK7N93YWbdg==", + "peer": true, + "peerDependencies": { + "@pixi/core": "7.4.3", + "@pixi/display": "7.4.3" + } + }, + "node_modules/@pixi/assets": { + "version": "7.4.3", + "resolved": "https://registry.npmjs.org/@pixi/assets/-/assets-7.4.3.tgz", + "integrity": "sha512-StvjiJBSp/j9hHkGu8AFHNvwYUazXq64WhyhytztyDMRkg/l/cL7EcttY5T0qZNWlIpccdr60LUKrWDOuMpkiw==", + "peer": true, + "dependencies": { + "@types/css-font-loading-module": "^0.0.12" + }, + "peerDependencies": { + "@pixi/core": "7.4.3" + } + }, + "node_modules/@pixi/color": { + "version": "7.4.3", + "resolved": "https://registry.npmjs.org/@pixi/color/-/color-7.4.3.tgz", + "integrity": "sha512-a6R+bXKeXMDcRmjYQoBIK+v2EYqxSX49wcjAY579EYM/WrFKS98nSees6lqVUcLKrcQh2DT9srJHX7XMny3voQ==", + "peer": true, + "dependencies": { + "@pixi/colord": "^2.9.6" + } + }, + "node_modules/@pixi/colord": { + "version": "2.9.6", + "resolved": "https://registry.npmjs.org/@pixi/colord/-/colord-2.9.6.tgz", + "integrity": "sha512-nezytU2pw587fQstUu1AsJZDVEynjskwOL+kibwcdxsMBFqPsFFNA7xl0ii/gXuDi6M0xj3mfRJj8pBSc2jCfA==", + "peer": true + }, + "node_modules/@pixi/compressed-textures": { + "version": "7.4.3", + "resolved": "https://registry.npmjs.org/@pixi/compressed-textures/-/compressed-textures-7.4.3.tgz", + "integrity": "sha512-uJ3CC+lNX4HIxs6IxEESO50/0A1KxSVm6CO9UlkXzTsNj9ynmdy5BkJ1dzii7LCdqGcHIXHO01yvKuUbJBBQtw==", + "peer": true, + "peerDependencies": { + "@pixi/assets": "7.4.3", + "@pixi/core": "7.4.3" + } + }, + "node_modules/@pixi/constants": { + "version": "7.4.3", + "resolved": "https://registry.npmjs.org/@pixi/constants/-/constants-7.4.3.tgz", + "integrity": "sha512-QGmwJUNQy/vVEHzL6VGQvnwawLZ1wceZMI8HwJAT4/I2uAzbBeFDdmCS8WsTpSWLZjF/DszDc1D8BFp4pVJ5UQ==", + "peer": true + }, + "node_modules/@pixi/core": { + "version": "7.4.3", + "resolved": "https://registry.npmjs.org/@pixi/core/-/core-7.4.3.tgz", + "integrity": "sha512-5YDs11faWgVVTL8VZtLU05/Fl47vaP5Tnsbf+y/WRR0VSW3KhRRGTBU1J3Gdc2xEWbJhUK07KGP7eSZpvtPVgA==", + "peer": true, + "dependencies": { + "@pixi/color": "7.4.3", + "@pixi/constants": "7.4.3", + "@pixi/extensions": "7.4.3", + "@pixi/math": "7.4.3", + "@pixi/runner": "7.4.3", + "@pixi/settings": "7.4.3", + "@pixi/ticker": "7.4.3", + "@pixi/utils": "7.4.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/pixijs" + } + }, + "node_modules/@pixi/display": { + "version": "7.4.3", + "resolved": "https://registry.npmjs.org/@pixi/display/-/display-7.4.3.tgz", + "integrity": "sha512-b5m2dAaoNAVdxz1oDaxl3XZ059NEOcNtGkxTOZ4EYCw/jcp9sZXkgSROHRzsGn4k+NugH7+9MP4Id2Z0kkdUhw==", + "peer": true, + "peerDependencies": { + "@pixi/core": "7.4.3" + } + }, + "node_modules/@pixi/events": { + "version": "7.4.3", + "resolved": "https://registry.npmjs.org/@pixi/events/-/events-7.4.3.tgz", + "integrity": "sha512-o3j/5Dxq6WDVS6eHfURB/cf/MP+NcsF/eC5PnbSHjXxJmDE7PoTVwLvxexm5uuvNRpFh/6/Fn0V8Vl4gV8sc8w==", + "peer": true, + "peerDependencies": { + "@pixi/core": "7.4.3", + "@pixi/display": "7.4.3" + } + }, + "node_modules/@pixi/extensions": { + "version": "7.4.3", + "resolved": "https://registry.npmjs.org/@pixi/extensions/-/extensions-7.4.3.tgz", + "integrity": "sha512-FhoiYkHQEDYHUE7wXhqfsTRz6KxLXjuMbSiAwnLb9uG1vAgp6q6qd6HEsf4X30YaZbLFY8a4KY6hFZWjF+4Fdw==", + "peer": true + }, + "node_modules/@pixi/extract": { + "version": "7.4.3", + "resolved": "https://registry.npmjs.org/@pixi/extract/-/extract-7.4.3.tgz", + "integrity": "sha512-HNvGNrEVaeVsbcnIO1MsHpjZbTwo9nIlaOEBzDGcL6JWwzuB1RnzUke7WUCndCUt91sGUdvPnvgCvy9/NNFg3w==", + "peer": true, + "peerDependencies": { + "@pixi/core": "7.4.3" + } + }, + "node_modules/@pixi/filter-alpha": { + "version": "7.4.3", + "resolved": "https://registry.npmjs.org/@pixi/filter-alpha/-/filter-alpha-7.4.3.tgz", + "integrity": "sha512-YFdUB1I53USQb+9TEhS849dV2KZhbnNGIoBbOSThUJfXQc4pDguIFWMagVToAQYgmZ4C4AtYfVjaSEELrMcCdA==", + "peer": true, + "peerDependencies": { + "@pixi/core": "7.4.3" + } + }, + "node_modules/@pixi/filter-blur": { + "version": "7.4.3", + "resolved": "https://registry.npmjs.org/@pixi/filter-blur/-/filter-blur-7.4.3.tgz", + "integrity": "sha512-ZFzS9L/whdRbs5A/EUgF3yQaBcxNarmbuwaMgrfnpQ84mRczkGByqDLGToadiufyals07ufTrXBGRle9lbtEDA==", + "peer": true, + "peerDependencies": { + "@pixi/core": "7.4.3" + } + }, + "node_modules/@pixi/filter-color-matrix": { + "version": "7.4.3", + "resolved": "https://registry.npmjs.org/@pixi/filter-color-matrix/-/filter-color-matrix-7.4.3.tgz", + "integrity": "sha512-TNu0h20SrzjUWIb5v19dAp1vPpqtG0w2XF9kIHN91bMNaf3R1jzhpWG6TtaVO9eo1IolWcEJLw38jIohyC+KNw==", + "peer": true, + "peerDependencies": { + "@pixi/core": "7.4.3" + } + }, + "node_modules/@pixi/filter-displacement": { + "version": "7.4.3", + "resolved": "https://registry.npmjs.org/@pixi/filter-displacement/-/filter-displacement-7.4.3.tgz", + "integrity": "sha512-ax+cFA2mEnKgqf9F8qInpv09GNWzjwnASLETpwPXzWBtlAlNCeHV2tCv3+SlMdEKUkwG9sA7AmjjjC2JBUyt+Q==", + "peer": true, + "peerDependencies": { + "@pixi/core": "7.4.3" + } + }, + "node_modules/@pixi/filter-fxaa": { + "version": "7.4.3", + "resolved": "https://registry.npmjs.org/@pixi/filter-fxaa/-/filter-fxaa-7.4.3.tgz", + "integrity": "sha512-y9jhho5cCflhEsPtNqqsd+XJHsb+/ysht4rG/VHQ8Z6pScHYpbgiEpowryGq8uSMQQwx6zKNS2DPiXdiOHPZsg==", + "peer": true, + "peerDependencies": { + "@pixi/core": "7.4.3" + } + }, + "node_modules/@pixi/filter-glow": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/@pixi/filter-glow/-/filter-glow-5.2.1.tgz", + "integrity": "sha512-94I4XePDF9yqqA6KQuhPSphEHPJ2lXfqJLn0Bes8VVdwft0Ianj1wALqjoSUeBWqiJbhjBEXGDNkRZhPHvY3Xg==", + "peer": true, + "peerDependencies": { + "@pixi/core": "^7.0.0-X" + } + }, + "node_modules/@pixi/filter-motion-blur": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@pixi/filter-motion-blur/-/filter-motion-blur-5.1.1.tgz", + "integrity": "sha512-I94s3pW2GutjCyXiKQ/dI4Vl9JKne+Q8QgGRn1mrk0Uwg6DDO/OQI3jqv01S+SCTU3LZqhR/p8AQyxeDmOhr2w==", + "peer": true, + "peerDependencies": { + "@pixi/core": "^7.0.0-X" + } + }, + "node_modules/@pixi/filter-noise": { + "version": "7.4.3", + "resolved": "https://registry.npmjs.org/@pixi/filter-noise/-/filter-noise-7.4.3.tgz", + "integrity": "sha512-rwgSO3BKe1jW/P5CaOcfLKjfpl674aBEo/igi/3QLxA3ORhILNqWRsKkOwP8xF/ejI5NE4rMEkdv0LScbdGFhA==", + "peer": true, + "peerDependencies": { + "@pixi/core": "7.4.3" + } + }, + "node_modules/@pixi/graphics": { + "version": "7.4.3", + "resolved": "https://registry.npmjs.org/@pixi/graphics/-/graphics-7.4.3.tgz", + "integrity": "sha512-wWLivD8/URb8A7X4TqCZGG39C91IE+aOuWY/z9NCz5Z6WvA/VWnsc5fLTlO+ggjGHgKF0cSucCXZfUe1wm0AOQ==", + "peer": true, + "peerDependencies": { + "@pixi/core": "7.4.3", + "@pixi/display": "7.4.3", + "@pixi/sprite": "7.4.3" + } + }, + "node_modules/@pixi/math": { + "version": "7.4.3", + "resolved": "https://registry.npmjs.org/@pixi/math/-/math-7.4.3.tgz", + "integrity": "sha512-/uJOVhR2DOZ+zgdI6Bs/CwcXT4bNRKsS+TqX3ekRIxPCwaLra+Qdm7aDxT5cTToDzdxbKL5+rwiLu3Y1egILDw==", + "peer": true + }, + "node_modules/@pixi/mesh": { + "version": "7.4.3", + "resolved": "https://registry.npmjs.org/@pixi/mesh/-/mesh-7.4.3.tgz", + "integrity": "sha512-CikqFPtKvU3Zj986/MSoC8X39CWv5CEpiEW/tYp47p4tgQNDSkNWYnDiNYgb+4VX6pNsBrgX4DALLdTR17SlSA==", + "peer": true, + "peerDependencies": { + "@pixi/core": "7.4.3", + "@pixi/display": "7.4.3" + } + }, + "node_modules/@pixi/mesh-extras": { + "version": "7.4.3", + "resolved": "https://registry.npmjs.org/@pixi/mesh-extras/-/mesh-extras-7.4.3.tgz", + "integrity": "sha512-EqpxpVZoTObyupxMSzuUsCGmWPQioW84n9EO9Ajawkk/HYA+qKFZ5viKiEThIUBYgv4Apn/7c0U3Feg7Ez4uQQ==", + "peer": true, + "peerDependencies": { + "@pixi/core": "7.4.3", + "@pixi/mesh": "7.4.3" + } + }, + "node_modules/@pixi/mixin-cache-as-bitmap": { + "version": "7.4.3", + "resolved": "https://registry.npmjs.org/@pixi/mixin-cache-as-bitmap/-/mixin-cache-as-bitmap-7.4.3.tgz", + "integrity": "sha512-NgvDdgSgd2tfcTSc+SWF12JJjVVz5ZrkSlhX0idSp/LSako82AiFJlD2xqH9GUsEcA6sqBBlnu7nrGkPTHQdhA==", + "peer": true, + "peerDependencies": { + "@pixi/core": "7.4.3", + "@pixi/display": "7.4.3", + "@pixi/sprite": "7.4.3" + } + }, + "node_modules/@pixi/mixin-get-child-by-name": { + "version": "7.4.3", + "resolved": "https://registry.npmjs.org/@pixi/mixin-get-child-by-name/-/mixin-get-child-by-name-7.4.3.tgz", + "integrity": "sha512-HLhDxHwafQT+CxbqQx9w9ivJIyAOg9JJ/6m4fNymVuDWeuMGcxDxBD7DukdUYIieT+RD/RlxdPEmq8YoromlFA==", + "peer": true, + "peerDependencies": { + "@pixi/display": "7.4.3" + } + }, + "node_modules/@pixi/mixin-get-global-position": { + "version": "7.4.3", + "resolved": "https://registry.npmjs.org/@pixi/mixin-get-global-position/-/mixin-get-global-position-7.4.3.tgz", + "integrity": "sha512-k09kvkS379EypCIWgXMY7uiXtWk1BsaJyTYlV16Co0AsmNPdFd+wUozMx1xV6rxcGiWXsxr/1k9fbETuYkcXCQ==", + "peer": true, + "peerDependencies": { + "@pixi/core": "7.4.3", + "@pixi/display": "7.4.3" + } + }, + "node_modules/@pixi/particle-container": { + "version": "7.4.3", + "resolved": "https://registry.npmjs.org/@pixi/particle-container/-/particle-container-7.4.3.tgz", + "integrity": "sha512-0DfJF5C0XTfuI2FsLYvMKCOtqWjXWGOWfA6m4l0W/Ke/qw5zKIOEhgjPLw4qNRtOhmEfkVKJUGp66Ap/ya2YzA==", + "peer": true, + "peerDependencies": { + "@pixi/core": "7.4.3", + "@pixi/display": "7.4.3", + "@pixi/sprite": "7.4.3" + } + }, + "node_modules/@pixi/particle-emitter": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/@pixi/particle-emitter/-/particle-emitter-5.0.8.tgz", + "integrity": "sha512-OzuZ4+esQo+zJ0u3htuNHHMAE8Ixmr3nz3tEfrTGZHje1vnGyie3ANQj9F0V4OM47oi9jd70njVCmeb7bTkS9A==", + "peer": true, + "peerDependencies": { + "@pixi/constants": ">=6.0.4 <8.0.0", + "@pixi/core": ">=6.0.4 <8.0.0", + "@pixi/display": ">=6.0.4 <8.0.0", + "@pixi/math": ">=6.0.4 <8.0.0", + "@pixi/sprite": ">=6.0.4 <8.0.0", + "@pixi/ticker": ">=6.0.4 <8.0.0" + } + }, + "node_modules/@pixi/prepare": { + "version": "7.4.3", + "resolved": "https://registry.npmjs.org/@pixi/prepare/-/prepare-7.4.3.tgz", + "integrity": "sha512-OjJHGKXPzwP5OLKxBnTBnKMOktHynLvO0TQPqTYgNtmGQzY109mypCqM4M+s/V+uYmBo/T+sXvBahj98q/f1tA==", + "peer": true, + "peerDependencies": { + "@pixi/core": "7.4.3", + "@pixi/display": "7.4.3", + "@pixi/graphics": "7.4.3", + "@pixi/text": "7.4.3" + } + }, + "node_modules/@pixi/runner": { + "version": "7.4.3", + "resolved": "https://registry.npmjs.org/@pixi/runner/-/runner-7.4.3.tgz", + "integrity": "sha512-TJyfp7y23u5vvRAyYhVSa7ytq0PdKSvPLXu4G3meoFh1oxTLHH6g/RIzLuxUAThPG2z7ftthuW3qWq6dRV+dhw==", + "peer": true + }, + "node_modules/@pixi/settings": { + "version": "7.4.3", + "resolved": "https://registry.npmjs.org/@pixi/settings/-/settings-7.4.3.tgz", + "integrity": "sha512-SmGK8smc0PxRB9nr0UJioEtE9hl4gvj9OedCvZx3bxBwA3omA5BmP3CyhQfN8XJ29+o2OUL01r3zAPVol4l4lA==", + "peer": true, + "dependencies": { + "@pixi/constants": "7.4.3", + "@types/css-font-loading-module": "^0.0.12", + "ismobilejs": "^1.1.0" + } + }, + "node_modules/@pixi/sound": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/@pixi/sound/-/sound-5.2.3.tgz", + "integrity": "sha512-PMWZv3su6ykBUA6roN5OYMOCdl03eunK4iCB4rBbhxCM2qt6h0MFQNymr/DLBOa6AjV3ilOseHLu/9s/YKxYZw==", + "peer": true, + "peerDependencies": { + "@pixi/assets": "^7.0.0", + "@pixi/core": "^7.0.0" + } + }, + "node_modules/@pixi/sprite": { + "version": "7.4.3", + "resolved": "https://registry.npmjs.org/@pixi/sprite/-/sprite-7.4.3.tgz", + "integrity": "sha512-iNBrpOFF9nXDT6m2jcyYy6l/sRzklLDDck1eFHprHZwvNquY2nzRfh+RGBCecxhBcijiLJ3fsZN33fP0LDXkvw==", + "peer": true, + "peerDependencies": { + "@pixi/core": "7.4.3", + "@pixi/display": "7.4.3" + } + }, + "node_modules/@pixi/sprite-animated": { + "version": "7.4.3", + "resolved": "https://registry.npmjs.org/@pixi/sprite-animated/-/sprite-animated-7.4.3.tgz", + "integrity": "sha512-mw5YIec8KfO1Jv9qrDNvGoD7Dlmcgww5YlMtd+ARi7Zzo+6ziNw899LXtoaKX1+3BXdZbYNyJAx3C5r30NtwXA==", + "peer": true, + "peerDependencies": { + "@pixi/core": "7.4.3", + "@pixi/sprite": "7.4.3" + } + }, + "node_modules/@pixi/sprite-tiling": { + "version": "7.4.3", + "resolved": "https://registry.npmjs.org/@pixi/sprite-tiling/-/sprite-tiling-7.4.3.tgz", + "integrity": "sha512-kUa9cEcMsGXSIZoXA7LhW4oo0eWa30w0KYd7mZ0bqalBMfOcvsGZMN701Lc5lpE8URw+8yu5bnyGLbrxhWBTuw==", + "peer": true, + "peerDependencies": { + "@pixi/core": "7.4.3", + "@pixi/display": "7.4.3", + "@pixi/sprite": "7.4.3" + } + }, + "node_modules/@pixi/spritesheet": { + "version": "7.4.3", + "resolved": "https://registry.npmjs.org/@pixi/spritesheet/-/spritesheet-7.4.3.tgz", + "integrity": "sha512-Ce4xZzUxUSKfiROUjjVCBYNLuCcDEWKJ822bSV9rkgVHItu3q04VnEww0DXO+9K0hKv4Ukjjk8aP6Pz0LgPm7A==", + "peer": true, + "peerDependencies": { + "@pixi/assets": "7.4.3", + "@pixi/core": "7.4.3" + } + }, + "node_modules/@pixi/text": { + "version": "7.4.3", + "resolved": "https://registry.npmjs.org/@pixi/text/-/text-7.4.3.tgz", + "integrity": "sha512-IAF0iu04rPg3oiL0HZsEZI44fpJxq3UZ4xTmx8l1RyhhSXiElLvvSlSH57vt/BKMQZtCs+AqEit7yn8heK2+nQ==", + "peer": true, + "peerDependencies": { + "@pixi/core": "7.4.3", + "@pixi/sprite": "7.4.3" + } + }, + "node_modules/@pixi/text-bitmap": { + "version": "7.4.3", + "resolved": "https://registry.npmjs.org/@pixi/text-bitmap/-/text-bitmap-7.4.3.tgz", + "integrity": "sha512-TnBocJm7f5nMAYwYcsojc62uCrOYauAGH26o3pNrlqmHDRDQ7FzPOGvkYZGYFREbUycloLSRlYpSy0FB9ZdV4Q==", + "peer": true, + "peerDependencies": { + "@pixi/assets": "7.4.3", + "@pixi/core": "7.4.3", + "@pixi/display": "7.4.3", + "@pixi/mesh": "7.4.3", + "@pixi/text": "7.4.3" + } + }, + "node_modules/@pixi/text-html": { + "version": "7.4.3", + "resolved": "https://registry.npmjs.org/@pixi/text-html/-/text-html-7.4.3.tgz", + "integrity": "sha512-nm9K9gjSZAU8ETwQZBE3kMGNdO1IzyghxoRTcJCWKhekiGDpUQhopfNhqieNZ7reVJpvhpFQWjbyaHDehndUaQ==", + "peer": true, + "peerDependencies": { + "@pixi/core": "7.4.3", + "@pixi/display": "7.4.3", + "@pixi/sprite": "7.4.3", + "@pixi/text": "7.4.3" + } + }, + "node_modules/@pixi/ticker": { + "version": "7.4.3", + "resolved": "https://registry.npmjs.org/@pixi/ticker/-/ticker-7.4.3.tgz", + "integrity": "sha512-tHsAD0iOUb6QSGGw+c8cyRBvxsq/NlfzIFBZLEHhWZ+Bx4a0MmXup6I/yJDGmyPCYE+ctCcAfY13wKAzdiVFgQ==", + "peer": true, + "dependencies": { + "@pixi/extensions": "7.4.3", + "@pixi/settings": "7.4.3", + "@pixi/utils": "7.4.3" + } + }, + "node_modules/@pixi/ui": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@pixi/ui/-/ui-1.2.4.tgz", + "integrity": "sha512-kxB/q1pv4KOPZwg3+qQepD+uAoysBZdwDYmsnS2kioATBJpFIb7z7Ebgbji3H6UWYCF8uIBekpGH4KVc5ixXKA==", + "peer": true, + "dependencies": { + "tweedle.js": "^2.1.0", + "typed-signals": "^2.5.0" + }, + "peerDependencies": { + "@pixi/core": "^7.3.1", + "@pixi/display": "^7.3.1", + "@pixi/events": "^7.3.1", + "@pixi/graphics": "^7.3.1", + "@pixi/sprite": "^7.3.1", + "@pixi/text": "^7.3.1", + "@pixi/text-bitmap": "^7.3.1", + "@pixi/text-html": "^7.3.1" + } + }, + "node_modules/@pixi/utils": { + "version": "7.4.3", + "resolved": "https://registry.npmjs.org/@pixi/utils/-/utils-7.4.3.tgz", + "integrity": "sha512-NO3Y9HAn2UKS1YdxffqsPp+kDpVm8XWvkZcS/E+rBzY9VTLnNOI7cawSRm+dacdET3a8Jad3aDKEDZ0HmAqAFA==", + "peer": true, + "dependencies": { + "@pixi/color": "7.4.3", + "@pixi/constants": "7.4.3", + "@pixi/settings": "7.4.3", + "@types/earcut": "^2.1.0", + "earcut": "^2.2.4", + "eventemitter3": "^4.0.0", + "url": "^0.11.0" + } + }, + "node_modules/@pixi/utils/node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "peer": true + }, + "node_modules/@popiplay/fairygui-dom-fork": { + "version": "1.0.12", + "resolved": "https://gitlab.popiplay.dev/api/v4/projects/544/packages/npm/@popiplay/fairygui-dom-fork/-/@popiplay/fairygui-dom-fork-1.0.12.tgz", + "integrity": "sha1-vmfWH1sO7mPIMDvwbiFmUxef/Bg=", + "dependencies": { + "@types/node": "^14.0.1", + "@ungap/custom-elements": "^1.0.0", + "lodash": "^4.17.15" + } + }, + "node_modules/@popiplay/formatter": { + "version": "1.0.2", + "resolved": "https://gitlab.popiplay.dev/api/v4/projects/720/packages/npm/@popiplay/formatter/-/@popiplay/formatter-1.0.2.tgz", + "integrity": "sha1-y5h/eUrssn2SiWRwY7Hl4+eFoNY=" + }, + "node_modules/@popiplay/slot-game-kit": { + "resolved": ".yalc/@popiplay/slot-game-kit", + "link": true + }, + "node_modules/@popiplay/slot-machines": { + "version": "1.1.18", + "resolved": "https://gitlab.popiplay.dev/api/v4/projects/255/packages/npm/@popiplay/slot-machines/-/@popiplay/slot-machines-1.1.18.tgz", + "integrity": "sha1-vqJ+hJOKrb93HSWPKZB7eUKBE7g=", + "peerDependencies": { + "@pixi/filter-motion-blur": "^5.1.1", + "@popiplay/state-machine": "^1.0.6", + "pixi-spine": "^4.0.4", + "pixi.js": "^7.4.2" + } + }, + "node_modules/@popiplay/state-machine": { + "version": "1.0.6", + "resolved": "https://gitlab.popiplay.dev/api/v4/projects/254/packages/npm/@popiplay/state-machine/-/@popiplay/state-machine-1.0.6.tgz", + "integrity": "sha1-7hDC1AZDh8b3o/SsZhid22FgWH8=" + }, + "node_modules/@sentry-internal/feedback": { + "version": "7.120.4", + "resolved": "https://registry.npmjs.org/@sentry-internal/feedback/-/feedback-7.120.4.tgz", + "integrity": "sha512-eSwgvTdrh03zYYaI6UVOjI9p4VmKg6+c2+CBQfRZX++6wwnCVsNv7XF7WUIpVGBAkJ0N2oapjQmCzJKGKBRWQg==", + "peer": true, + "dependencies": { + "@sentry/core": "7.120.4", + "@sentry/types": "7.120.4", + "@sentry/utils": "7.120.4" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@sentry-internal/replay-canvas": { + "version": "7.120.4", + "resolved": "https://registry.npmjs.org/@sentry-internal/replay-canvas/-/replay-canvas-7.120.4.tgz", + "integrity": "sha512-2+W4CgUL1VzrPjArbTid4WhKh7HH21vREVilZdvffQPVwOEpgNTPAb69loQuTlhJVveh9hWTj2nE5UXLbLP+AA==", + "peer": true, + "dependencies": { + "@sentry/core": "7.120.4", + "@sentry/replay": "7.120.4", + "@sentry/types": "7.120.4", + "@sentry/utils": "7.120.4" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@sentry-internal/tracing": { + "version": "7.120.4", + "resolved": "https://registry.npmjs.org/@sentry-internal/tracing/-/tracing-7.120.4.tgz", + "integrity": "sha512-Fz5+4XCg3akeoFK+K7g+d7HqGMjmnLoY2eJlpONJmaeT9pXY7yfUyXKZMmMajdE2LxxKJgQ2YKvSCaGVamTjHw==", + "peer": true, + "dependencies": { + "@sentry/core": "7.120.4", + "@sentry/types": "7.120.4", + "@sentry/utils": "7.120.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@sentry/babel-plugin-component-annotate": { + "version": "2.23.1", + "resolved": "https://registry.npmjs.org/@sentry/babel-plugin-component-annotate/-/babel-plugin-component-annotate-2.23.1.tgz", + "integrity": "sha512-l1z8AvI6k9I+2z49OgvP3SlzB1M0Lw24KtceiJibNaSyQwxsItoT9/XftZ/8BBtkosVmNOTQhL1eUsSkuSv1LA==", + "peer": true, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@sentry/browser": { + "version": "7.120.4", + "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-7.120.4.tgz", + "integrity": "sha512-ymlNtIPG6HAKzM/JXpWVGCzCNufZNADfy+O/olZuVJW5Be1DtOFyRnBvz0LeKbmxJbXb2lX/XMhuen6PXPdoQw==", + "peer": true, + "dependencies": { + "@sentry-internal/feedback": "7.120.4", + "@sentry-internal/replay-canvas": "7.120.4", + "@sentry-internal/tracing": "7.120.4", + "@sentry/core": "7.120.4", + "@sentry/integrations": "7.120.4", + "@sentry/replay": "7.120.4", + "@sentry/types": "7.120.4", + "@sentry/utils": "7.120.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@sentry/bundler-plugin-core": { + "version": "2.23.1", + "resolved": "https://registry.npmjs.org/@sentry/bundler-plugin-core/-/bundler-plugin-core-2.23.1.tgz", + "integrity": "sha512-JA6utNiwMKv6Jfj0Hmk0DI/XUizSHg7HhhkFETKhRlYEhZAdkyz1atDBg0ncKNgRBKyHeSYWcMFtUyo26VB76w==", + "peer": true, + "dependencies": { + "@babel/core": "^7.18.5", + "@sentry/babel-plugin-component-annotate": "2.23.1", + "@sentry/cli": "2.39.1", + "dotenv": "^16.3.1", + "find-up": "^5.0.0", + "glob": "^9.3.2", + "magic-string": "0.30.8", + "unplugin": "1.0.1" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@sentry/cli": { + "version": "2.22.2", + "resolved": "https://registry.npmjs.org/@sentry/cli/-/cli-2.22.2.tgz", + "integrity": "sha512-p3qShwT59GgKbaZ1Y49wxyE2ZTHc69PgBlaP2ilBOIdtntMkOhvd8YbGdQFlMzmWcLR2ybSj9cXqMi7wIUQL6A==", + "hasInstallScript": true, + "peer": true, + "dependencies": { + "https-proxy-agent": "^5.0.0", + "node-fetch": "^2.6.7", + "progress": "^2.0.3", + "proxy-from-env": "^1.1.0", + "which": "^2.0.2" + }, + "bin": { + "sentry-cli": "bin/sentry-cli" + }, + "engines": { + "node": ">= 10" + }, + "optionalDependencies": { + "@sentry/cli-darwin": "2.22.2", + "@sentry/cli-linux-arm": "2.22.2", + "@sentry/cli-linux-arm64": "2.22.2", + "@sentry/cli-linux-i686": "2.22.2", + "@sentry/cli-linux-x64": "2.22.2", + "@sentry/cli-win32-i686": "2.22.2", + "@sentry/cli-win32-x64": "2.22.2" + } + }, + "node_modules/@sentry/cli-darwin": { + "version": "2.22.2", + "resolved": "https://registry.npmjs.org/@sentry/cli-darwin/-/cli-darwin-2.22.2.tgz", + "integrity": "sha512-FjQOEASBi81sFuXLtuzE9Jzfk95HQmWxx7qa3KwfKbH5XcA04tmoZO0InGhxAm9cjxJtCVOMMhHOKkqaP4rLNw==", + "optional": true, + "os": [ + "darwin" + ], + "peer": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/@sentry/cli-linux-arm": { + "version": "2.22.2", + "resolved": "https://registry.npmjs.org/@sentry/cli-linux-arm/-/cli-linux-arm-2.22.2.tgz", + "integrity": "sha512-Gb05dGcj9wsbOrJsOkCQ+WlBuuHQ6yb2lArceGiWKQAQdKBRFwdeS0aemVyHdOaDBS29YRzNPZ/i9vwBHPffJg==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux", + "freebsd" + ], + "peer": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/@sentry/cli-linux-arm64": { + "version": "2.22.2", + "resolved": "https://registry.npmjs.org/@sentry/cli-linux-arm64/-/cli-linux-arm64-2.22.2.tgz", + "integrity": "sha512-qQAjOR1ftXgY2uv1Rw3fp9jbw3JVq6KXOg87BLXkKZQvAwsAIlcm5EDFpqNaS9N62YixtOjLZCuSKLRmLQOPrQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux", + "freebsd" + ], + "peer": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/@sentry/cli-linux-i686": { + "version": "2.22.2", + "resolved": "https://registry.npmjs.org/@sentry/cli-linux-i686/-/cli-linux-i686-2.22.2.tgz", + "integrity": "sha512-Z9GWumk3kdkYImHyEuij9qa2Z99l9T3uadsoCp1lv7LkDGDn++8P4Iq7UkZ7XDnsl+JCC3oFt26K+ULrfjsTTQ==", + "cpu": [ + "x86", + "ia32" + ], + "optional": true, + "os": [ + "linux", + "freebsd" + ], + "peer": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/@sentry/cli-linux-x64": { + "version": "2.22.2", + "resolved": "https://registry.npmjs.org/@sentry/cli-linux-x64/-/cli-linux-x64-2.22.2.tgz", + "integrity": "sha512-QvEbXJ/qzWNInhz+ovhKOxrEkjOHwekE+I4vxjmxquTGyVJR/b20tpWsK/LunAD7MHegDYfoiHhII2qV9pDqxg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux", + "freebsd" + ], + "peer": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/@sentry/cli-win32-i686": { + "version": "2.22.2", + "resolved": "https://registry.npmjs.org/@sentry/cli-win32-i686/-/cli-win32-i686-2.22.2.tgz", + "integrity": "sha512-EBNbPP7sMoWbyfg5wZTELgt6gQ5S3GWoe+Tp58t7osWqVMfX1Ny00BWNAdzmG0PMzwUFCkK+0auFH+KdM6di/A==", + "cpu": [ + "x86", + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "peer": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/@sentry/cli-win32-x64": { + "version": "2.22.2", + "resolved": "https://registry.npmjs.org/@sentry/cli-win32-x64/-/cli-win32-x64-2.22.2.tgz", + "integrity": "sha512-Lv2RdLrkEBkWxozO9HsJgKKybTNGrocM8QMaumdSpd/goeN3Zut2nh7hYSM3Z1UWJmVnLirmOBxA8g6RRO9v1Q==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "peer": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/@sentry/cli/node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "peer": true, + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/@sentry/core": { + "version": "7.120.4", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.120.4.tgz", + "integrity": "sha512-TXu3Q5kKiq8db9OXGkWyXUbIxMMuttB5vJ031yolOl5T/B69JRyAoKuojLBjRv1XX583gS1rSSoX8YXX7ATFGA==", + "peer": true, + "dependencies": { + "@sentry/types": "7.120.4", + "@sentry/utils": "7.120.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@sentry/integrations": { + "version": "7.120.4", + "resolved": "https://registry.npmjs.org/@sentry/integrations/-/integrations-7.120.4.tgz", + "integrity": "sha512-kkBTLk053XlhDCg7OkBQTIMF4puqFibeRO3E3YiVc4PGLnocXMaVpOSCkMqAc1k1kZ09UgGi8DxfQhnFEjUkpA==", + "peer": true, + "dependencies": { + "@sentry/core": "7.120.4", + "@sentry/types": "7.120.4", + "@sentry/utils": "7.120.4", + "localforage": "^1.8.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@sentry/replay": { + "version": "7.120.4", + "resolved": "https://registry.npmjs.org/@sentry/replay/-/replay-7.120.4.tgz", + "integrity": "sha512-FW8sPenNFfnO/K7sncsSTX4rIVak9j7VUiLIagJrcqZIC7d1dInFNjy8CdVJUlyz3Y3TOgIl3L3+ZpjfyMnaZg==", + "peer": true, + "dependencies": { + "@sentry-internal/tracing": "7.120.4", + "@sentry/core": "7.120.4", + "@sentry/types": "7.120.4", + "@sentry/utils": "7.120.4" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@sentry/types": { + "version": "7.120.4", + "resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.120.4.tgz", + "integrity": "sha512-cUq2hSSe6/qrU6oZsEP4InMI5VVdD86aypE+ENrQ6eZEVLTCYm1w6XhW1NvIu3UuWh7gZec4a9J7AFpYxki88Q==", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@sentry/utils": { + "version": "7.120.4", + "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.120.4.tgz", + "integrity": "sha512-zCKpyDIWKHwtervNK2ZlaK8mMV7gVUijAgFeJStH+CU/imcdquizV3pFLlSQYRswG+Lbyd6CT/LGRh3IbtkCFw==", + "peer": true, + "dependencies": { + "@sentry/types": "7.120.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@sentry/webpack-plugin": { + "version": "2.23.1", + "resolved": "https://registry.npmjs.org/@sentry/webpack-plugin/-/webpack-plugin-2.23.1.tgz", + "integrity": "sha512-b+/A0BFryfIsLdKIsjRn9gZTxIoY+YxF31bAEWcecOSK4IMHxhzKjgIuWh5xBPQAWY5Eff961AoQlStTcipmWQ==", + "peer": true, + "dependencies": { + "@sentry/bundler-plugin-core": "2.23.1", + "unplugin": "1.0.1", + "uuid": "^9.0.0" + }, + "engines": { + "node": ">= 14" + }, + "peerDependencies": { + "webpack": ">=4.40.0" + } + }, + "node_modules/@sinclair/typebox": { + "version": "0.27.8", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", + "peer": true + }, + "node_modules/@sinonjs/commons": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", + "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", + "peer": true, + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@sinonjs/fake-timers": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", + "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", + "peer": true, + "dependencies": { + "@sinonjs/commons": "^3.0.0" + } + }, + "node_modules/@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "peer": true, + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz", + "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==", + "peer": true, + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "peer": true, + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.28.0.tgz", + "integrity": "sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==", + "peer": true, + "dependencies": { + "@babel/types": "^7.28.2" + } + }, + "node_modules/@types/body-parser": { + "version": "1.19.6", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.6.tgz", + "integrity": "sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g==", + "peer": true, + "dependencies": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "node_modules/@types/bonjour": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.13.tgz", + "integrity": "sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==", + "peer": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect": { + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", + "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", + "peer": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect-history-api-fallback": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz", + "integrity": "sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==", + "peer": true, + "dependencies": { + "@types/express-serve-static-core": "*", + "@types/node": "*" + } + }, + "node_modules/@types/css-font-loading-module": { + "version": "0.0.12", + "resolved": "https://registry.npmjs.org/@types/css-font-loading-module/-/css-font-loading-module-0.0.12.tgz", + "integrity": "sha512-x2tZZYkSxXqWvTDgveSynfjq/T2HyiZHXb00j/+gy19yp70PHCizM48XFdjBCWH7eHBD0R5i/pw9yMBP/BH5uA==", + "peer": true + }, + "node_modules/@types/earcut": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@types/earcut/-/earcut-2.1.4.tgz", + "integrity": "sha512-qp3m9PPz4gULB9MhjGID7wpo3gJ4bTGXm7ltNDsmOvsPduTeHp8wSW9YckBj3mljeOh4F0m2z/0JKAALRKbmLQ==", + "peer": true + }, + "node_modules/@types/eslint": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.1.tgz", + "integrity": "sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==", + "peer": true, + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/eslint-scope": { + "version": "3.7.7", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", + "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", + "peer": true, + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "peer": true + }, + "node_modules/@types/express": { + "version": "4.17.25", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.25.tgz", + "integrity": "sha512-dVd04UKsfpINUnK0yBoYHDF3xu7xVH4BuDotC/xGuycx4CgbP48X/KF/586bcObxT0HENHXEU8Nqtu6NR+eKhw==", + "peer": true, + "dependencies": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.33", + "@types/qs": "*", + "@types/serve-static": "^1" + } + }, + "node_modules/@types/express-serve-static-core": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-5.1.0.tgz", + "integrity": "sha512-jnHMsrd0Mwa9Cf4IdOzbz543y4XJepXrbia2T4b6+spXC2We3t1y6K44D3mR8XMFSXMCf3/l7rCgddfx7UNVBA==", + "peer": true, + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*", + "@types/send": "*" + } + }, + "node_modules/@types/express/node_modules/@types/express-serve-static-core": { + "version": "4.19.7", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.7.tgz", + "integrity": "sha512-FvPtiIf1LfhzsaIXhv/PHan/2FeQBbtBDtfX2QfvPxdUelMDEckK08SM6nqo1MIZY3RUlfA+HV8+hFUSio78qg==", + "peer": true, + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*", + "@types/send": "*" + } + }, + "node_modules/@types/fscreen": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@types/fscreen/-/fscreen-1.0.4.tgz", + "integrity": "sha512-TsjxyAUvlvuQyao9vNk0yES4nY07K9xoAbkhgXU948JG39EqlLxniWuW9OiZde9Q8ACSpu3fmbXXRAfb/l/HqQ==" + }, + "node_modules/@types/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", + "peer": true, + "dependencies": { + "@types/minimatch": "*", + "@types/node": "*" + } + }, + "node_modules/@types/graceful-fs": { + "version": "4.1.9", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", + "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", + "peer": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/html-minifier-terser": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", + "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==", + "peer": true + }, + "node_modules/@types/http-errors": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.5.tgz", + "integrity": "sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg==", + "peer": true + }, + "node_modules/@types/http-proxy": { + "version": "1.17.17", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.17.tgz", + "integrity": "sha512-ED6LB+Z1AVylNTu7hdzuBqOgMnvG/ld6wGCG8wFnAzKX5uyW2K3WD52v0gnLCTK/VLpXtKckgWuyScYK6cSPaw==", + "peer": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", + "peer": true + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", + "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", + "peer": true, + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", + "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", + "peer": true, + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "peer": true + }, + "node_modules/@types/mime": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", + "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==", + "peer": true + }, + "node_modules/@types/minimatch": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-6.0.0.tgz", + "integrity": "sha512-zmPitbQ8+6zNutpwgcQuLcsEpn/Cj54Kbn7L5pX0Os5kdWplB7xPgEh/g+SWOB/qmows2gpuCaPyduq8ZZRnxA==", + "deprecated": "This is a stub types definition. minimatch provides its own type definitions, so you do not need this installed.", + "peer": true, + "dependencies": { + "minimatch": "*" + } + }, + "node_modules/@types/node": { + "version": "14.18.63", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.63.tgz", + "integrity": "sha512-fAtCfv4jJg+ExtXhvCkCqUKZ+4ok/JQk01qDKhL5BDDoS3AxKXhV5/MAVUZyQnSEd2GT92fkgZl0pz0Q0AzcIQ==" + }, + "node_modules/@types/node-forge": { + "version": "1.3.14", + "resolved": "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.14.tgz", + "integrity": "sha512-mhVF2BnD4BO+jtOp7z1CdzaK4mbuK0LLQYAvdOLqHTavxFNq4zA1EmYkpnFjP8HOUzedfQkRnp0E2ulSAYSzAw==", + "peer": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/qs": { + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.14.0.tgz", + "integrity": "sha512-eOunJqu0K1923aExK6y8p6fsihYEn/BYuQ4g0CxAAgFc4b/ZLN4CrsRZ55srTdqoiLzU2B2evC+apEIxprEzkQ==", + "peer": true + }, + "node_modules/@types/range-parser": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", + "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==", + "peer": true + }, + "node_modules/@types/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==", + "peer": true + }, + "node_modules/@types/send": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@types/send/-/send-1.2.1.tgz", + "integrity": "sha512-arsCikDvlU99zl1g69TcAB3mzZPpxgw0UQnaHeC1Nwb015xp8bknZv5rIfri9xTOcMuaVgvabfIRA7PSZVuZIQ==", + "peer": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/serve-index": { + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.4.tgz", + "integrity": "sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==", + "peer": true, + "dependencies": { + "@types/express": "*" + } + }, + "node_modules/@types/serve-static": { + "version": "1.15.10", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.10.tgz", + "integrity": "sha512-tRs1dB+g8Itk72rlSI2ZrW6vZg0YrLI81iQSTkMmOqnqCaNr/8Ek4VwWcN5vZgCYWbg/JJSGBlUaYGAOP73qBw==", + "peer": true, + "dependencies": { + "@types/http-errors": "*", + "@types/node": "*", + "@types/send": "<1" + } + }, + "node_modules/@types/serve-static/node_modules/@types/send": { + "version": "0.17.6", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.6.tgz", + "integrity": "sha512-Uqt8rPBE8SY0RK8JB1EzVOIZ32uqy8HwdxCnoCOsYrvnswqmFZ/k+9Ikidlk/ImhsdvBsloHbAlewb2IEBV/Og==", + "peer": true, + "dependencies": { + "@types/mime": "^1", + "@types/node": "*" + } + }, + "node_modules/@types/sockjs": { + "version": "0.3.36", + "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.36.tgz", + "integrity": "sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==", + "peer": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/stack-utils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", + "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", + "peer": true + }, + "node_modules/@types/ws": { + "version": "8.18.1", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.18.1.tgz", + "integrity": "sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==", + "peer": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/yargs": { + "version": "17.0.34", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.34.tgz", + "integrity": "sha512-KExbHVa92aJpw9WDQvzBaGVE2/Pz+pLZQloT2hjL8IqsZnV62rlPOYvNnLmf/L2dyllfVUOVBj64M0z/46eR2A==", + "peer": true, + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "21.0.3", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", + "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", + "peer": true + }, + "node_modules/@ungap/custom-elements": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@ungap/custom-elements/-/custom-elements-1.3.0.tgz", + "integrity": "sha512-f4q/s76+8nOy+fhrNHyetuoPDR01lmlZB5czfCG+OOnBw/Wf+x48DcCDPmMQY7oL8xYFL8qfenMoiS8DUkKBUw==" + }, + "node_modules/@ungap/structured-clone": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz", + "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==", + "peer": true + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz", + "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==", + "peer": true, + "dependencies": { + "@webassemblyjs/helper-numbers": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz", + "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==", + "peer": true + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz", + "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==", + "peer": true + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz", + "integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==", + "peer": true + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz", + "integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==", + "peer": true, + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.13.2", + "@webassemblyjs/helper-api-error": "1.13.2", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz", + "integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==", + "peer": true + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz", + "integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==", + "peer": true, + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/wasm-gen": "1.14.1" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz", + "integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==", + "peer": true, + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.13.2.tgz", + "integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==", + "peer": true, + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.13.2.tgz", + "integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==", + "peer": true + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz", + "integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==", + "peer": true, + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/helper-wasm-section": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-opt": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1", + "@webassemblyjs/wast-printer": "1.14.1" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz", + "integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==", + "peer": true, + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz", + "integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==", + "peer": true, + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz", + "integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==", + "peer": true, + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-api-error": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz", + "integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==", + "peer": true, + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webpack-cli/configtest": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.2.0.tgz", + "integrity": "sha512-4FB8Tj6xyVkyqjj1OaTqCjXYULB9FMkqQ8yGrZjRDrYh0nOE+7Lhs45WioWQQMV+ceFlE368Ukhe6xdvJM9Egg==", + "peer": true, + "peerDependencies": { + "webpack": "4.x.x || 5.x.x", + "webpack-cli": "4.x.x" + } + }, + "node_modules/@webpack-cli/info": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-1.5.0.tgz", + "integrity": "sha512-e8tSXZpw2hPl2uMJY6fsMswaok5FdlGNRTktvFk2sD8RjH0hE2+XistawJx1vmKteh4NmGmNUrp+Tb2w+udPcQ==", + "peer": true, + "dependencies": { + "envinfo": "^7.7.3" + }, + "peerDependencies": { + "webpack-cli": "4.x.x" + } + }, + "node_modules/@webpack-cli/serve": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.7.0.tgz", + "integrity": "sha512-oxnCNGj88fL+xzV+dacXs44HcDwf1ovs3AuEzvP7mqXw7fQntqIhQ1BRmynh4qEKQSSSRSWVyXRjmTbZIX9V2Q==", + "peer": true, + "peerDependencies": { + "webpack-cli": "4.x.x" + }, + "peerDependenciesMeta": { + "webpack-dev-server": { + "optional": true + } + } + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "peer": true + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "peer": true + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "peer": true, + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/accepts/node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "peer": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", + "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", + "peer": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-import-phases": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/acorn-import-phases/-/acorn-import-phases-1.0.4.tgz", + "integrity": "sha512-wKmbr/DDiIXzEOiWrTTUcDm24kQ2vGfZQvM2fwg2vXqR5uW6aapr7ObPtj1th32b9u90/Pf4AItvdTh42fBmVQ==", + "peer": true, + "engines": { + "node": ">=10.13.0" + }, + "peerDependencies": { + "acorn": "^8.14.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "peer": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "peer": true, + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "peer": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "peer": true, + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ajv-formats/node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "peer": true, + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "peer": true + }, + "node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "peer": true, + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "peer": true, + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-escapes/node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "peer": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-html-community": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", + "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", + "engines": [ + "node >= 0.8.0" + ], + "peer": true, + "bin": { + "ansi-html": "bin/ansi-html" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "peer": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "peer": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "peer": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", + "peer": true + }, + "node_modules/array-union": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-3.0.1.tgz", + "integrity": "sha512-1OvF9IbWwaeiM9VhzYXVQacMibxpXOMYVNIvMtKRyX9SImBXpKcFr8XvFDeEslCyuH/t6KRt7HEO94AlP8Iatw==", + "peer": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/async": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", + "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", + "peer": true + }, + "node_modules/babel-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", + "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", + "peer": true, + "dependencies": { + "@jest/transform": "^29.7.0", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^29.6.3", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.8.0" + } + }, + "node_modules/babel-loader": { + "version": "8.4.1", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.4.1.tgz", + "integrity": "sha512-nXzRChX+Z1GoE6yWavBQg6jDslyFF3SDjl2paADuoQtQW10JqShJt62R6eJQ5m/pjJFDT8xgKIWSP85OY8eXeA==", + "peer": true, + "dependencies": { + "find-cache-dir": "^3.3.1", + "loader-utils": "^2.0.4", + "make-dir": "^3.1.0", + "schema-utils": "^2.6.5" + }, + "engines": { + "node": ">= 8.9" + }, + "peerDependencies": { + "@babel/core": "^7.0.0", + "webpack": ">=2" + } + }, + "node_modules/babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-jest-hoist": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", + "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", + "peer": true, + "dependencies": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.1.14", + "@types/babel__traverse": "^7.0.6" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.4.14", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.14.tgz", + "integrity": "sha512-Co2Y9wX854ts6U8gAAPXfn0GmAyctHuK8n0Yhfjd6t30g7yvKjspvvOo9yG+z52PZRgFErt7Ka2pYnXCjLKEpg==", + "peer": true, + "dependencies": { + "@babel/compat-data": "^7.27.7", + "@babel/helper-define-polyfill-provider": "^0.6.5", + "semver": "^6.3.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.13.0.tgz", + "integrity": "sha512-U+GNwMdSFgzVmfhNm8GJUX88AadB3uo9KpJqS3FaqNIPKgySuvMb+bHPsOmmuWyIcuqZj/pzt1RUIUZns4y2+A==", + "peer": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.5", + "core-js-compat": "^3.43.0" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.5.tgz", + "integrity": "sha512-ISqQ2frbiNU9vIJkzg7dlPpznPZ4jOiUQ1uSmB0fEHeowtN3COYRsXr/xexn64NpU13P06jc/L5TgiJXOgrbEg==", + "peer": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.5" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-preset-current-node-syntax": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.2.0.tgz", + "integrity": "sha512-E/VlAEzRrsLEb2+dv8yp3bo4scof3l9nR4lrld+Iy5NyVqgVYUJnDAmunkhPMisRI32Qc4iRiz425d8vM++2fg==", + "peer": true, + "dependencies": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-import-attributes": "^7.24.7", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5" + }, + "peerDependencies": { + "@babel/core": "^7.0.0 || ^8.0.0-0" + } + }, + "node_modules/babel-preset-jest": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", + "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", + "peer": true, + "dependencies": { + "babel-plugin-jest-hoist": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "peer": true + }, + "node_modules/baseline-browser-mapping": { + "version": "2.8.21", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.8.21.tgz", + "integrity": "sha512-JU0h5APyQNsHOlAM7HnQnPToSDQoEBZqzu/YBlqDnEeymPnZDREeXJA3KBMQee+dKteAxZ2AtvQEvVYdZf241Q==", + "peer": true, + "bin": { + "baseline-browser-mapping": "dist/cli.js" + } + }, + "node_modules/batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", + "peer": true + }, + "node_modules/big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "peer": true, + "engines": { + "node": "*" + } + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "peer": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/binpacking": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/binpacking/-/binpacking-0.0.1.tgz", + "integrity": "sha512-egOC0ynCAu+4XMry+CR5/GVQYcZdWi5QAJcO4t35Z957Xniu+bVJFRNOr3HiYd3UXEwKxk56Q1pyOxA6+rx1lg==", + "peer": true, + "engines": { + "node": "*" + } + }, + "node_modules/body-parser": { + "version": "1.20.3", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz", + "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", + "peer": true, + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.5", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.13.0", + "raw-body": "2.5.2", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "peer": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "peer": true + }, + "node_modules/body-parser/node_modules/qs": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", + "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", + "peer": true, + "dependencies": { + "side-channel": "^1.0.6" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/bonjour-service": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.3.0.tgz", + "integrity": "sha512-3YuAUiSkWykd+2Azjgyxei8OWf8thdn8AITIog2M4UICzoqfjlqr64WIjEXZllf/W6vK1goqleSR6brGomxQqA==", + "peer": true, + "dependencies": { + "fast-deep-equal": "^3.1.3", + "multicast-dns": "^7.2.5" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "peer": true + }, + "node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "peer": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "peer": true, + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.27.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.27.0.tgz", + "integrity": "sha512-AXVQwdhot1eqLihwasPElhX2tAZiBjWdJ9i/Zcj2S6QYIjkx62OKSfnobkriB81C3l4w0rVy3Nt4jaTBltYEpw==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "peer": true, + "dependencies": { + "baseline-browser-mapping": "^2.8.19", + "caniuse-lite": "^1.0.30001751", + "electron-to-chromium": "^1.5.238", + "node-releases": "^2.0.26", + "update-browserslist-db": "^1.1.4" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "peer": true, + "dependencies": { + "node-int64": "^0.4.0" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "peer": true + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "peer": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "peer": true, + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "peer": true, + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/camel-case": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", + "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", + "peer": true, + "dependencies": { + "pascal-case": "^3.1.2", + "tslib": "^2.0.3" + } + }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001751", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001751.tgz", + "integrity": "sha512-A0QJhug0Ly64Ii3eIqHu5X51ebln3k4yTUkY1j8drqpWHVreg/VLijN48cZ1bYPiqOQuqpkIKnzr/Ul8V+p6Cw==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "peer": true + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "peer": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "peer": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "peer": true, + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "peer": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/chrome-trace-event": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", + "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", + "peer": true, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/cjs-module-lexer": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.4.3.tgz", + "integrity": "sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==", + "peer": true + }, + "node_modules/clean-css": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.3.tgz", + "integrity": "sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==", + "peer": true, + "dependencies": { + "source-map": "~0.6.0" + }, + "engines": { + "node": ">= 10.0" + } + }, + "node_modules/clean-webpack-plugin": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/clean-webpack-plugin/-/clean-webpack-plugin-4.0.0.tgz", + "integrity": "sha512-WuWE1nyTNAyW5T7oNyys2EN0cfP2fdRxhxnIQWiAp0bMabPdHhoGxM8A6YL2GhqwgrPnnaemVE7nv5XJ2Fhh2w==", + "peer": true, + "dependencies": { + "del": "^4.1.1" + }, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "webpack": ">=4.0.0 <6.0.0" + } + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "peer": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "peer": true, + "dependencies": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "peer": true, + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/collect-v8-coverage": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.3.tgz", + "integrity": "sha512-1L5aqIkwPfiodaMgQunkF1zRhNqifHBmtbbbxcr6yVxxBnliw4TDOW6NxpO8DJLgJ16OT+Y4ztZqP6p/FtXnAw==", + "peer": true + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "peer": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "peer": true + }, + "node_modules/colorette": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", + "peer": true + }, + "node_modules/commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "peer": true, + "engines": { + "node": ">= 12" + } + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "peer": true + }, + "node_modules/compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "peer": true, + "dependencies": { + "mime-db": ">= 1.43.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/compression": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.8.1.tgz", + "integrity": "sha512-9mAqGPHLakhCLeNyxPkK4xVo746zQ/czLH1Ky+vkitMnWfWZps8r0qXuwhwizagCRttsL4lfG4pIOvaWLpAP0w==", + "peer": true, + "dependencies": { + "bytes": "3.1.2", + "compressible": "~2.0.18", + "debug": "2.6.9", + "negotiator": "~0.6.4", + "on-headers": "~1.1.0", + "safe-buffer": "5.2.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/compression/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "peer": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/compression/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "peer": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "peer": true + }, + "node_modules/connect-history-api-fallback": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", + "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==", + "peer": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "peer": true, + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "peer": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "peer": true + }, + "node_modules/cookie": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz", + "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==", + "peer": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", + "peer": true + }, + "node_modules/copy-webpack-plugin": { + "version": "10.2.4", + "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-10.2.4.tgz", + "integrity": "sha512-xFVltahqlsRcyyJqQbDY6EYTtyQZF9rf+JPjwHObLdPFMEISqkFkr7mFoVOC6BfYS/dNThyoQKvziugm+OnwBg==", + "peer": true, + "dependencies": { + "fast-glob": "^3.2.7", + "glob-parent": "^6.0.1", + "globby": "^12.0.2", + "normalize-path": "^3.0.0", + "schema-utils": "^4.0.0", + "serialize-javascript": "^6.0.0" + }, + "engines": { + "node": ">= 12.20.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + } + }, + "node_modules/copy-webpack-plugin/node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "peer": true, + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/copy-webpack-plugin/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "peer": true, + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/copy-webpack-plugin/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "peer": true + }, + "node_modules/copy-webpack-plugin/node_modules/schema-utils": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.3.tgz", + "integrity": "sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==", + "peer": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/core-js": { + "version": "2.6.12", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", + "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==", + "deprecated": "core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.", + "hasInstallScript": true, + "peer": true + }, + "node_modules/core-js-compat": { + "version": "3.46.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.46.0.tgz", + "integrity": "sha512-p9hObIIEENxSV8xIu+V68JjSeARg6UVMG5mR+JEUguG3sI6MsiS1njz2jHmyJDvA+8jX/sytkBHup6kxhM9law==", + "peer": true, + "dependencies": { + "browserslist": "^4.26.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "peer": true + }, + "node_modules/create-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", + "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", + "peer": true, + "dependencies": { + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "prompts": "^2.0.1" + }, + "bin": { + "create-jest": "bin/create-jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "peer": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/css-loader": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.11.0.tgz", + "integrity": "sha512-CTJ+AEQJjq5NzLga5pE39qdiSV56F8ywCIsqNIRF0r7BDgWsN25aazToqAFg7ZrtA/U016xudB3ffgweORxX7g==", + "peer": true, + "dependencies": { + "icss-utils": "^5.1.0", + "postcss": "^8.4.33", + "postcss-modules-extract-imports": "^3.1.0", + "postcss-modules-local-by-default": "^4.0.5", + "postcss-modules-scope": "^3.2.0", + "postcss-modules-values": "^4.0.0", + "postcss-value-parser": "^4.2.0", + "semver": "^7.5.4" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "@rspack/core": "0.x || 1.x", + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "@rspack/core": { + "optional": true + }, + "webpack": { + "optional": true + } + } + }, + "node_modules/css-loader/node_modules/semver": { + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "peer": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/css-select": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "peer": true, + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-what": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.2.2.tgz", + "integrity": "sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==", + "peer": true, + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "peer": true, + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/data-uri-to-buffer": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", + "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==", + "peer": true, + "engines": { + "node": ">= 12" + } + }, + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "peer": true, + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/dedent": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.7.0.tgz", + "integrity": "sha512-HGFtf8yhuhGhqO07SV79tRp+br4MnbdjeVxotpn1QBl30pcLLCQjX5b2295ll0fv8RKDKsmWYrl05usHM9CewQ==", + "peer": true, + "peerDependencies": { + "babel-plugin-macros": "^3.1.0" + }, + "peerDependenciesMeta": { + "babel-plugin-macros": { + "optional": true + } + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "peer": true + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/default-gateway": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", + "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", + "peer": true, + "dependencies": { + "execa": "^5.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/del": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/del/-/del-4.1.1.tgz", + "integrity": "sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==", + "peer": true, + "dependencies": { + "@types/glob": "^7.1.1", + "globby": "^6.1.0", + "is-path-cwd": "^2.0.0", + "is-path-in-cwd": "^2.0.0", + "p-map": "^2.0.0", + "pify": "^4.0.1", + "rimraf": "^2.6.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/del/node_modules/array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==", + "peer": true, + "dependencies": { + "array-uniq": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/del/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "peer": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/del/node_modules/globby": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", + "integrity": "sha512-KVbFv2TQtbzCoxAnfD6JcHZTYCzyliEaaeM/gH8qQdkKr5s0OP9scEgvdcngyk7AVdY6YVW/TJHd+lQ/Df3Daw==", + "peer": true, + "dependencies": { + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/del/node_modules/globby/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/del/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "peer": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "peer": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "peer": true, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", + "peer": true + }, + "node_modules/diff-sequences": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", + "peer": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "peer": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dns-packet": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.1.tgz", + "integrity": "sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==", + "peer": true, + "dependencies": { + "@leichtgewicht/ip-codec": "^2.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "peer": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/dom-converter": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", + "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", + "peer": true, + "dependencies": { + "utila": "~0.4" + } + }, + "node_modules/dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "peer": true, + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "peer": true + }, + "node_modules/domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "peer": true, + "dependencies": { + "domelementtype": "^2.2.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "peer": true, + "dependencies": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/dot-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "peer": true, + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/dotenv": { + "version": "16.6.1", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.6.1.tgz", + "integrity": "sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==", + "peer": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "peer": true, + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/earcut": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/earcut/-/earcut-2.2.4.tgz", + "integrity": "sha512-/pjZsA1b4RPHbeWZQn66SWS8nZZWLQQ23oE3Eam7aroEFGEvwKAsJfZ9ytiEMycfzXWpca4FA9QIOehf7PocBQ==", + "peer": true + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "peer": true + }, + "node_modules/electron-to-chromium": { + "version": "1.5.243", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.243.tgz", + "integrity": "sha512-ZCphxFW3Q1TVhcgS9blfut1PX8lusVi2SvXQgmEEnK4TCmE1JhH2JkjJN+DNt0pJJwfBri5AROBnz2b/C+YU9g==", + "peer": true + }, + "node_modules/emittery": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", + "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", + "peer": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "peer": true + }, + "node_modules/emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "peer": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "peer": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/enhanced-resolve": { + "version": "5.18.3", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.3.tgz", + "integrity": "sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww==", + "peer": true, + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "peer": true, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/envinfo": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.19.0.tgz", + "integrity": "sha512-DoSM9VyG6O3vqBf+p3Gjgr/Q52HYBBtO3v+4koAxt1MnWr+zEnxE+nke/yXS4lt2P4SYCHQ4V3f1i88LQVOpAw==", + "peer": true, + "bin": { + "envinfo": "dist/cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/error-ex": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.4.tgz", + "integrity": "sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==", + "peer": true, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "peer": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "peer": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-module-lexer": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz", + "integrity": "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==", + "peer": true + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "peer": true, + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "peer": true + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "peer": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz", + "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==", + "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", + "peer": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.1", + "@humanwhocodes/config-array": "^0.13.0", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-config-google": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/eslint-config-google/-/eslint-config-google-0.14.0.tgz", + "integrity": "sha512-WsbX4WbjuMvTdeVL6+J3rK1RGhCTqjsFjX7UMSMgZiyxxaNLkoJENbrGExzERFeoTpGw3F3FypTiWAP9ZXzkEw==", + "peer": true, + "engines": { + "node": ">=0.10.0" + }, + "peerDependencies": { + "eslint": ">=5.16.0" + } + }, + "node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "peer": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "peer": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "peer": true + }, + "node_modules/eslint/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "peer": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/eslint/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "peer": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "peer": true, + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "peer": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esquery": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", + "peer": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "peer": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "peer": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "peer": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/eventemitter3": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", + "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", + "peer": true + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "peer": true, + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "peer": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "peer": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", + "peer": true, + "dependencies": { + "@jest/expect-utils": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/express": { + "version": "4.21.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.21.2.tgz", + "integrity": "sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==", + "peer": true, + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.3", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.7.1", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.3.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.3", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.12", + "proxy-addr": "~2.0.7", + "qs": "6.13.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.19.0", + "serve-static": "1.16.2", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "peer": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "peer": true + }, + "node_modules/express/node_modules/qs": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", + "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", + "peer": true, + "dependencies": { + "side-channel": "^1.0.6" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "peer": true + }, + "node_modules/fast-glob": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "peer": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.8" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "peer": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "peer": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "peer": true + }, + "node_modules/fast-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.0.tgz", + "integrity": "sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "peer": true + }, + "node_modules/fastest-levenshtein": { + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", + "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", + "peer": true, + "engines": { + "node": ">= 4.9.1" + } + }, + "node_modules/fastq": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", + "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==", + "peer": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/faye-websocket": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", + "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", + "peer": true, + "dependencies": { + "websocket-driver": ">=0.5.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "peer": true, + "dependencies": { + "bser": "2.1.1" + } + }, + "node_modules/fetch-blob": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", + "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "paypal", + "url": "https://paypal.me/jimmywarting" + } + ], + "peer": true, + "dependencies": { + "node-domexception": "^1.0.0", + "web-streams-polyfill": "^3.0.3" + }, + "engines": { + "node": "^12.20 || >= 14.13" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "peer": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/file-loader": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz", + "integrity": "sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==", + "peer": true, + "dependencies": { + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/file-loader/node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "peer": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "peer": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz", + "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", + "peer": true, + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "peer": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "peer": true + }, + "node_modules/find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "peer": true, + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "peer": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "peer": true, + "bin": { + "flat": "cli.js" + } + }, + "node_modules/flat-cache": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "peer": true, + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flat-cache/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "peer": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/flat-cache/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "peer": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/flat-cache/node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "peer": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/flatted": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", + "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", + "peer": true + }, + "node_modules/follow-redirects": { + "version": "1.15.11", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.11.tgz", + "integrity": "sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "peer": true, + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/formdata-polyfill": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", + "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", + "peer": true, + "dependencies": { + "fetch-blob": "^3.1.2" + }, + "engines": { + "node": ">=12.20.0" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "peer": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "peer": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs-monkey": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.1.0.tgz", + "integrity": "sha512-QMUezzXWII9EV5aTFXW1UBVUO77wYPpjqIF8/AviUCThNeSYZykpoTixUeaNNBwmCev0AMDWMAni+f8Hxb1IFw==", + "peer": true + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "peer": true + }, + "node_modules/fscreen": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fscreen/-/fscreen-1.2.0.tgz", + "integrity": "sha512-hlq4+BU0hlPmwsFjwGGzZ+OZ9N/wq9Ljg/sq3pX+2CD7hrJsX9tJgWWK/wiNTFM212CLHWhicOoqwXyZGGetJg==", + "peer": true + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "peer": true, + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "peer": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "peer": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "peer": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "peer": true, + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "peer": true, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "peer": true, + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "peer": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/glob": { + "version": "9.3.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-9.3.5.tgz", + "integrity": "sha512-e1LleDykUz2Iu+MTYdkSsuWX8lvAjAcs0Xef0lNIu0S2wOAzuTxCJtcd9S3cijlwYF18EsU3rzb8jPVobxDh9Q==", + "peer": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "minimatch": "^8.0.2", + "minipass": "^4.2.4", + "path-scurry": "^1.6.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "peer": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "peer": true + }, + "node_modules/glob/node_modules/brace-expansion": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "peer": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/glob/node_modules/minimatch": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-8.0.4.tgz", + "integrity": "sha512-W0Wvr9HyFXZRGIDgCicunpQ299OKXs9RgZfaukz4qAW/pJhcpUfupc9c+OObPOFueNy8VSrZgEmDtk6Kh4WzDA==", + "peer": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "peer": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globby": { + "version": "12.2.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-12.2.0.tgz", + "integrity": "sha512-wiSuFQLZ+urS9x2gGPl1H5drc5twabmm4m2gTR27XDFyjUHJUNsS8o/2aKyIF6IoBaR630atdher0XJ5g6OMmA==", + "peer": true, + "dependencies": { + "array-union": "^3.0.1", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.7", + "ignore": "^5.1.9", + "merge2": "^1.4.1", + "slash": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globby/node_modules/slash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "peer": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "peer": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "peer": true + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "peer": true + }, + "node_modules/gsap": { + "version": "3.13.0", + "resolved": "https://registry.npmjs.org/gsap/-/gsap-3.13.0.tgz", + "integrity": "sha512-QL7MJ2WMjm1PHWsoFrAQH/J8wUeqZvMtHO58qdekHpCfhvhSL4gSiz6vJf5EeMP0LOn3ZCprL2ki/gjED8ghVw==", + "peer": true + }, + "node_modules/handle-thing": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", + "peer": true + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "peer": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "peer": true, + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "peer": true, + "bin": { + "he": "bin/he" + } + }, + "node_modules/hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", + "peer": true, + "dependencies": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + } + }, + "node_modules/hpack.js/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "peer": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/hpack.js/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "peer": true + }, + "node_modules/hpack.js/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "peer": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/html-entities": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.6.0.tgz", + "integrity": "sha512-kig+rMn/QOVRvr7c86gQ8lWXq+Hkv6CbAH1hLu+RG338StTpE8Z0b44SDVaqVu7HGKf27frdmUYEs9hTUX/cLQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/mdevils" + }, + { + "type": "patreon", + "url": "https://patreon.com/mdevils" + } + ], + "peer": true + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "peer": true + }, + "node_modules/html-loader": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/html-loader/-/html-loader-3.1.2.tgz", + "integrity": "sha512-9WQlLiAV5N9fCna4MUmBW/ifaUbuFZ2r7IZmtXzhyfyi4zgPEjXsmsYCKs+yT873MzRj+f1WMjuAiPNA7C6Tcw==", + "peer": true, + "dependencies": { + "html-minifier-terser": "^6.0.2", + "parse5": "^6.0.1" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/html-minifier-terser": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", + "integrity": "sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==", + "peer": true, + "dependencies": { + "camel-case": "^4.1.2", + "clean-css": "^5.2.2", + "commander": "^8.3.0", + "he": "^1.2.0", + "param-case": "^3.0.4", + "relateurl": "^0.2.7", + "terser": "^5.10.0" + }, + "bin": { + "html-minifier-terser": "cli.js" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/html-webpack-plugin": { + "version": "5.6.4", + "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.6.4.tgz", + "integrity": "sha512-V/PZeWsqhfpE27nKeX9EO2sbR+D17A+tLf6qU+ht66jdUsN0QLKJN27Z+1+gHrVMKgndBahes0PU6rRihDgHTw==", + "peer": true, + "dependencies": { + "@types/html-minifier-terser": "^6.0.0", + "html-minifier-terser": "^6.0.2", + "lodash": "^4.17.21", + "pretty-error": "^4.0.0", + "tapable": "^2.0.0" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/html-webpack-plugin" + }, + "peerDependencies": { + "@rspack/core": "0.x || 1.x", + "webpack": "^5.20.0" + }, + "peerDependenciesMeta": { + "@rspack/core": { + "optional": true + }, + "webpack": { + "optional": true + } + } + }, + "node_modules/htmlparser2": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", + "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "peer": true, + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.0.0", + "domutils": "^2.5.2", + "entities": "^2.0.0" + } + }, + "node_modules/http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==", + "peer": true + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "peer": true, + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-parser-js": { + "version": "0.5.10", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.10.tgz", + "integrity": "sha512-Pysuw9XpUq5dVc/2SMHpuTY01RFl8fttgcyunjL7eEMhGM3cI4eOmiCycJDVCo/7O7ClfQD3SaI6ftDzqOXYMA==", + "peer": true + }, + "node_modules/http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "peer": true, + "dependencies": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/http-proxy-middleware": { + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.9.tgz", + "integrity": "sha512-c1IyJYLYppU574+YI7R4QyX2ystMtVXZwIdzazUIPIJsHuWNd+mho2j+bKoHftndicGj9yh+xjd+l0yj7VeT1Q==", + "peer": true, + "dependencies": { + "@types/http-proxy": "^1.17.8", + "http-proxy": "^1.18.1", + "is-glob": "^4.0.1", + "is-plain-obj": "^3.0.0", + "micromatch": "^4.0.2" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "@types/express": "^4.17.13" + }, + "peerDependenciesMeta": { + "@types/express": { + "optional": true + } + } + }, + "node_modules/http-proxy/node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "peer": true + }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "peer": true, + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "peer": true, + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "peer": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/icss-utils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", + "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", + "peer": true, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "peer": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/immediate": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", + "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==", + "peer": true + }, + "node_modules/import-fresh": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", + "peer": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-fresh/node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "peer": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/import-local": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.2.0.tgz", + "integrity": "sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==", + "peer": true, + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "peer": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "peer": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "peer": true + }, + "node_modules/interpret": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz", + "integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==", + "peer": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/ip": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.9.tgz", + "integrity": "sha512-cyRxvOEpNHNtchU3Ln9KC/auJgup87llfQpQ+t5ghoC/UhL16SWzbueiCsdTnWmqAWl7LadfuwhlqmtOaqMHdQ==", + "peer": true + }, + "node_modules/ipaddr.js": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.2.0.tgz", + "integrity": "sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==", + "peer": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "peer": true + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "peer": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-core-module": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "peer": true, + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "peer": true, + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "peer": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "peer": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-path-cwd": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", + "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-path-in-cwd": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz", + "integrity": "sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==", + "peer": true, + "dependencies": { + "is-path-inside": "^2.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-path-in-cwd/node_modules/is-path-inside": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz", + "integrity": "sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==", + "peer": true, + "dependencies": { + "path-is-inside": "^1.0.2" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", + "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", + "peer": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "peer": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "peer": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "peer": true, + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "peer": true + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "peer": true + }, + "node_modules/ismobilejs": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ismobilejs/-/ismobilejs-1.1.1.tgz", + "integrity": "sha512-VaFW53yt8QO61k2WJui0dHf4SlL8lxBofUuUmwBo0ljPk0Drz2TiuDW4jo3wDcv41qy/SxrJ+VAzJ/qYqsmzRw==", + "peer": true + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "peer": true, + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", + "peer": true, + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-report/node_modules/make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "peer": true, + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/istanbul-lib-report/node_modules/semver": { + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "peer": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "peer": true, + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-reports": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.2.0.tgz", + "integrity": "sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==", + "peer": true, + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", + "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", + "peer": true, + "dependencies": { + "@jest/core": "^29.7.0", + "@jest/types": "^29.6.3", + "import-local": "^3.0.2", + "jest-cli": "^29.7.0" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-changed-files": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz", + "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", + "peer": true, + "dependencies": { + "execa": "^5.0.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-circus": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", + "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", + "peer": true, + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^1.0.0", + "is-generator-fn": "^2.0.0", + "jest-each": "^29.7.0", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0", + "pretty-format": "^29.7.0", + "pure-rand": "^6.0.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-cli": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", + "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", + "peer": true, + "dependencies": { + "@jest/core": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "create-jest": "^29.7.0", + "exit": "^0.1.2", + "import-local": "^3.0.2", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "yargs": "^17.3.1" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-config": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", + "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", + "peer": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/test-sequencer": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-jest": "^29.7.0", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-circus": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@types/node": "*", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/jest-config/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "peer": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/jest-config/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "peer": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/jest-diff": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", + "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", + "peer": true, + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^29.6.3", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-docblock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", + "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", + "peer": true, + "dependencies": { + "detect-newline": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-each": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz", + "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", + "peer": true, + "dependencies": { + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "jest-util": "^29.7.0", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-environment-node": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", + "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", + "peer": true, + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-get-type": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", + "peer": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-haste-map": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", + "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", + "peer": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@types/graceful-fs": "^4.1.3", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "micromatch": "^4.0.4", + "walker": "^1.0.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + } + }, + "node_modules/jest-leak-detector": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", + "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", + "peer": true, + "dependencies": { + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-matcher-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", + "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", + "peer": true, + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-message-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", + "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", + "peer": true, + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^29.6.3", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-mock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", + "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", + "peer": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-pnp-resolver": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", + "peer": true, + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "jest-resolve": "*" + }, + "peerDependenciesMeta": { + "jest-resolve": { + "optional": true + } + } + }, + "node_modules/jest-regex-util": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", + "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", + "peer": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-resolve": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", + "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", + "peer": true, + "dependencies": { + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "resolve": "^1.20.0", + "resolve.exports": "^2.0.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-resolve-dependencies": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", + "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", + "peer": true, + "dependencies": { + "jest-regex-util": "^29.6.3", + "jest-snapshot": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-runner": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", + "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", + "peer": true, + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/environment": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-leak-detector": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-resolve": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-util": "^29.7.0", + "jest-watcher": "^29.7.0", + "jest-worker": "^29.7.0", + "p-limit": "^3.1.0", + "source-map-support": "0.5.13" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-runtime": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", + "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", + "peer": true, + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/globals": "^29.7.0", + "@jest/source-map": "^29.6.3", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-runtime/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "peer": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/jest-runtime/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "peer": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/jest-snapshot": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", + "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", + "peer": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-jsx": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/types": "^7.3.3", + "@jest/expect-utils": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "natural-compare": "^1.4.0", + "pretty-format": "^29.7.0", + "semver": "^7.5.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-snapshot/node_modules/semver": { + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "peer": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", + "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", + "peer": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-validate": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", + "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", + "peer": true, + "dependencies": { + "@jest/types": "^29.6.3", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "leven": "^3.1.0", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-validate/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "peer": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-watcher": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", + "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", + "peer": true, + "dependencies": { + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "jest-util": "^29.7.0", + "string-length": "^4.0.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-worker": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", + "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", + "peer": true, + "dependencies": { + "@types/node": "*", + "jest-util": "^29.7.0", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "peer": true + }, + "node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "peer": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "peer": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "peer": true + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "peer": true + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "peer": true + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "peer": true + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "peer": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "peer": true, + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/launch-editor": { + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.12.0.tgz", + "integrity": "sha512-giOHXoOtifjdHqUamwKq6c49GzBdLjvxrd2D+Q4V6uOHopJv7p9VJxikDsQ/CBXZbEITgUqSVHXLTG3VhPP1Dg==", + "peer": true, + "dependencies": { + "picocolors": "^1.1.1", + "shell-quote": "^1.8.3" + } + }, + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "peer": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lie": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/lie/-/lie-3.1.1.tgz", + "integrity": "sha512-RiNhHysUjhrDQntfYSfY4MU24coXXdEOgw9WGcKHNeEwffDYbF//u87M1EWaMGzuFoSbqW0C9C6lEEhDOAswfw==", + "peer": true, + "dependencies": { + "immediate": "~3.0.5" + } + }, + "node_modules/lil-gui": { + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/lil-gui/-/lil-gui-0.17.0.tgz", + "integrity": "sha512-MVBHmgY+uEbmJNApAaPbtvNh1RCAeMnKym82SBjtp5rODTYKWtM+MXHCifLe2H2Ti1HuBGBtK/5SyG4ShQ3pUQ==", + "peer": true + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "peer": true + }, + "node_modules/loader-runner": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.1.tgz", + "integrity": "sha512-IWqP2SCPhyVFTBtRcgMHdzlf9ul25NwaFx4wCEH/KjAXuuHY4yNjvPXsBokp8jCB936PyWRaPKUNh8NvylLp2Q==", + "peer": true, + "engines": { + "node": ">=6.11.5" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "peer": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/localforage": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/localforage/-/localforage-1.10.0.tgz", + "integrity": "sha512-14/H1aX7hzBBmmh7sGPd+AOMkkIrHM3Z1PAyGgZigA1H1p5O5ANnMyWzvpAETtG68/dC4pC0ncy3+PPGzXZHPg==", + "peer": true, + "dependencies": { + "lie": "3.1.1" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "peer": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "peer": true + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "peer": true + }, + "node_modules/lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "peer": true, + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "peer": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/magic-string": { + "version": "0.30.8", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.8.tgz", + "integrity": "sha512-ISQTe55T2ao7XtlAStud6qwYPZjE4GK1S/BeVPus4jrq6JuOnQ00YKQC581RWhR122W7msZV263KzVeLoqidyQ==", + "peer": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "peer": true, + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "peer": true, + "dependencies": { + "tmpl": "1.0.5" + } + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "peer": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "peer": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/memfs": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.5.3.tgz", + "integrity": "sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==", + "peer": true, + "dependencies": { + "fs-monkey": "^1.0.4" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", + "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", + "peer": true, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "peer": true + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "peer": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "peer": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "peer": true, + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "peer": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "peer": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "peer": true, + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/mini-css-extract-plugin": { + "version": "2.9.4", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.9.4.tgz", + "integrity": "sha512-ZWYT7ln73Hptxqxk2DxPU9MmapXRhxkJD6tkSR04dnQxm8BGu2hzgKLugK5yySD97u/8yy7Ma7E76k9ZdvtjkQ==", + "peer": true, + "dependencies": { + "schema-utils": "^4.0.0", + "tapable": "^2.2.1" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/mini-css-extract-plugin/node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "peer": true, + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/mini-css-extract-plugin/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "peer": true, + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/mini-css-extract-plugin/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "peer": true + }, + "node_modules/mini-css-extract-plugin/node_modules/schema-utils": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.3.tgz", + "integrity": "sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==", + "peer": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "peer": true + }, + "node_modules/minimatch": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.1.1.tgz", + "integrity": "sha512-enIvLvRAFZYXJzkCYG5RKmPfrFArdLv+R+lbQ53BmIMLIry74bjKzX6iHAm8WYamJkhSSEabrWN5D97XnKObjQ==", + "peer": true, + "dependencies": { + "@isaacs/brace-expansion": "^5.0.0" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "peer": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minipass": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.8.tgz", + "integrity": "sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "peer": true + }, + "node_modules/multicast-dns": { + "version": "7.2.5", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", + "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", + "peer": true, + "dependencies": { + "dns-packet": "^5.2.2", + "thunky": "^1.0.2" + }, + "bin": { + "multicast-dns": "cli.js" + } + }, + "node_modules/mustache": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/mustache/-/mustache-0.7.3.tgz", + "integrity": "sha512-Og/1AGzDp6b/9eYdgjn60HTQeIEKU8luLeYmLdsQDMTdhn385XH+IzcFy+zp9pmTHJt399KsIJ4MEtlNRLpOfw==", + "peer": true + }, + "node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "peer": true, + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "peer": true + }, + "node_modules/negotiator": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.4.tgz", + "integrity": "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==", + "peer": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "peer": true + }, + "node_modules/no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "peer": true, + "dependencies": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "node_modules/node-domexception": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", + "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", + "deprecated": "Use your platform's native DOMException instead", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "github", + "url": "https://paypal.me/jimmywarting" + } + ], + "peer": true, + "engines": { + "node": ">=10.5.0" + } + }, + "node_modules/node-fetch": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.2.tgz", + "integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==", + "peer": true, + "dependencies": { + "data-uri-to-buffer": "^4.0.0", + "fetch-blob": "^3.1.4", + "formdata-polyfill": "^4.0.10" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/node-fetch" + } + }, + "node_modules/node-forge": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", + "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", + "peer": true, + "engines": { + "node": ">= 6.13.0" + } + }, + "node_modules/node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "peer": true + }, + "node_modules/node-releases": { + "version": "2.0.27", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.27.tgz", + "integrity": "sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==", + "peer": true + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "peer": true, + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "peer": true, + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", + "peer": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", + "peer": true + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "peer": true, + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/on-headers": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.1.0.tgz", + "integrity": "sha512-737ZY3yNnXy37FHkQxPzt4UZ2UWPWiCZWLvFZ4fu5cueciegX0zGPnrlY6bwRg4FdQOe9YU8MkmJwGhoMybl8A==", + "peer": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "peer": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "peer": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/open": { + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", + "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", + "peer": true, + "dependencies": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/optimist": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", + "integrity": "sha512-snN4O4TkigujZphWLN0E//nQmm7790RYaE53DdL7ZYwee2D8DDo9/EyYiKUfN3rneWUjhJnueija3G9I2i0h3g==", + "peer": true, + "dependencies": { + "minimist": "~0.0.1", + "wordwrap": "~0.0.2" + } + }, + "node_modules/optimist/node_modules/minimist": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", + "integrity": "sha512-iotkTvxc+TwOm5Ieim8VnSNvCDjCK9S8G3scJ50ZthspSxa7jx50jkhYduuAtAjvfDUwSgOwf8+If99AlOEhyw==", + "peer": true + }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "peer": true, + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "peer": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "peer": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-map": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", + "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/p-retry": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", + "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", + "peer": true, + "dependencies": { + "@types/retry": "0.12.0", + "retry": "^0.13.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/param-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", + "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", + "peer": true, + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "peer": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "peer": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", + "peer": true + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "peer": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/pascal-case": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", + "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "peer": true, + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==", + "peer": true + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "peer": true + }, + "node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "peer": true, + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "peer": true + }, + "node_modules/path-scurry/node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "peer": true, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/path-to-regexp": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz", + "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==", + "peer": true + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "peer": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "peer": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", + "peer": true, + "dependencies": { + "pinkie": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pirates": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz", + "integrity": "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==", + "peer": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/pixi-spine": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pixi-spine/-/pixi-spine-4.0.6.tgz", + "integrity": "sha512-LeMvCStLs5kHDpIRXUizuRwYshIk4Ma5tHVkxH1cYG3k/+a+Iqy1KSBHiKewtoedWznAvxwjoYZD67ZGvUtb2Q==", + "peer": true, + "dependencies": { + "@pixi-spine/base": "^4.0.6", + "@pixi-spine/loader-base": "^4.0.6", + "@pixi-spine/loader-uni": "^4.0.6", + "@pixi-spine/runtime-3.7": "^4.0.6", + "@pixi-spine/runtime-3.8": "^4.0.6", + "@pixi-spine/runtime-4.0": "^4.0.6", + "@pixi-spine/runtime-4.1": "^4.0.6" + }, + "peerDependencies": { + "@pixi/assets": "^7.0.0", + "@pixi/core": "^7.0.0", + "@pixi/display": "^7.0.0", + "@pixi/graphics": "^7.0.0", + "@pixi/mesh": "^7.0.0", + "@pixi/mesh-extras": "^7.0.0", + "@pixi/sprite": "^7.0.0" + } + }, + "node_modules/pixi.js": { + "version": "7.4.3", + "resolved": "https://registry.npmjs.org/pixi.js/-/pixi.js-7.4.3.tgz", + "integrity": "sha512-uIWdH0EI2dVgNoqN9aFaHCmR0V65OEhMkXs2sek3c/QP2ItV6UoM+ouX9esSv3ibo20F+J5D1XwnQhUZI6wqeQ==", + "peer": true, + "dependencies": { + "@pixi/accessibility": "7.4.3", + "@pixi/app": "7.4.3", + "@pixi/assets": "7.4.3", + "@pixi/compressed-textures": "7.4.3", + "@pixi/core": "7.4.3", + "@pixi/display": "7.4.3", + "@pixi/events": "7.4.3", + "@pixi/extensions": "7.4.3", + "@pixi/extract": "7.4.3", + "@pixi/filter-alpha": "7.4.3", + "@pixi/filter-blur": "7.4.3", + "@pixi/filter-color-matrix": "7.4.3", + "@pixi/filter-displacement": "7.4.3", + "@pixi/filter-fxaa": "7.4.3", + "@pixi/filter-noise": "7.4.3", + "@pixi/graphics": "7.4.3", + "@pixi/mesh": "7.4.3", + "@pixi/mesh-extras": "7.4.3", + "@pixi/mixin-cache-as-bitmap": "7.4.3", + "@pixi/mixin-get-child-by-name": "7.4.3", + "@pixi/mixin-get-global-position": "7.4.3", + "@pixi/particle-container": "7.4.3", + "@pixi/prepare": "7.4.3", + "@pixi/sprite": "7.4.3", + "@pixi/sprite-animated": "7.4.3", + "@pixi/sprite-tiling": "7.4.3", + "@pixi/spritesheet": "7.4.3", + "@pixi/text": "7.4.3", + "@pixi/text-bitmap": "7.4.3", + "@pixi/text-html": "7.4.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/pixijs" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "peer": true, + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "peer": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "peer": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "peer": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "peer": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/platform-command": { + "version": "0.0.1", + "resolved": "git+ssh://git@gitlab.com/gitlabdev/platform-command.git#3f02478b2cbe88d516c0d17b2c221d3c3b96e16f", + "peer": true + }, + "node_modules/portfinder": { + "version": "1.0.38", + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.38.tgz", + "integrity": "sha512-rEwq/ZHlJIKw++XtLAO8PPuOQA/zaPJOZJ37BVuN97nLpMJeuDVLVGRwbFoBgLudgdTMP2hdRJP++H+8QOA3vg==", + "peer": true, + "dependencies": { + "async": "^3.2.6", + "debug": "^4.3.6" + }, + "engines": { + "node": ">= 10.12" + } + }, + "node_modules/portfinder-sync": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/portfinder-sync/-/portfinder-sync-0.0.2.tgz", + "integrity": "sha512-DqCu/ZhZ+ItcRIWolmbAQl3dqSVQ9RSHJit5CaEm7Kvhu15IcS/CPjOSuLFSv4DCq2FfHsrxmfl9afIpYVPuzg==", + "peer": true, + "dependencies": { + "minimist": "^1.2.0", + "portfinder": "^1.0.10" + } + }, + "node_modules/postcss": { + "version": "8.5.6", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", + "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "peer": true, + "dependencies": { + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-modules-extract-imports": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz", + "integrity": "sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==", + "peer": true, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-local-by-default": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.2.0.tgz", + "integrity": "sha512-5kcJm/zk+GJDSfw+V/42fJ5fhjL5YbFDl8nVdXkJPLLW+Vf9mTD5Xe0wqIaDnLuL2U6cDNpTr+UQ+v2HWIBhzw==", + "peer": true, + "dependencies": { + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^7.0.0", + "postcss-value-parser": "^4.1.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-scope": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.2.1.tgz", + "integrity": "sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA==", + "peer": true, + "dependencies": { + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-values": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", + "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "peer": true, + "dependencies": { + "icss-utils": "^5.0.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-selector-parser": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", + "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", + "peer": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "peer": true + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "peer": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/pretty-error": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-4.0.0.tgz", + "integrity": "sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==", + "peer": true, + "dependencies": { + "lodash": "^4.17.20", + "renderkid": "^3.0.0" + } + }, + "node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "peer": true, + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "peer": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "peer": true + }, + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "peer": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "peer": true, + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "peer": true, + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/proxy-addr/node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "peer": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "peer": true + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/pure-rand": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.1.0.tgz", + "integrity": "sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/dubzzz" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fast-check" + } + ], + "peer": true + }, + "node_modules/qs": { + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.0.tgz", + "integrity": "sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==", + "peer": true, + "dependencies": { + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "peer": true + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "peer": true, + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "peer": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "peer": true, + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/raw-loader": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-4.0.2.tgz", + "integrity": "sha512-ZnScIV3ag9A4wPX/ZayxL/jZH+euYb6FcUinPcgiQW0+UBtEv0O6Q3lGd3cqJ+GHH+rksEv3Pj99oxJ3u3VIKA==", + "peer": true, + "dependencies": { + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/raw-loader/node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "peer": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "peer": true + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "peer": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "peer": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/rechoir": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.7.1.tgz", + "integrity": "sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg==", + "peer": true, + "dependencies": { + "resolve": "^1.9.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "peer": true + }, + "node_modules/regenerate-unicode-properties": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.2.tgz", + "integrity": "sha512-m03P+zhBeQd1RGnYxrGyDAPpWX/epKirLrp8e3qevZdVkKtnCrjjWczIbYc8+xd6vcTStVlqfycTx1KR4LOr0g==", + "peer": true, + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", + "peer": true + }, + "node_modules/regexpu-core": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.4.0.tgz", + "integrity": "sha512-0ghuzq67LI9bLXpOX/ISfve/Mq33a4aFRzoQYhnnok1JOFpmE/A2TBGkNVenOGEeSBCjIiWcc6MVOG5HEQv0sA==", + "peer": true, + "dependencies": { + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.2.2", + "regjsgen": "^0.8.0", + "regjsparser": "^0.13.0", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.2.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==", + "peer": true + }, + "node_modules/regjsparser": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.13.0.tgz", + "integrity": "sha512-NZQZdC5wOE/H3UT28fVGL+ikOZcEzfMGk/c3iN9UGxzWHMa1op7274oyiUVrAG4B2EuFhus8SvkaYnhvW92p9Q==", + "peer": true, + "dependencies": { + "jsesc": "~3.1.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/relateurl": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", + "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==", + "peer": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/renderkid": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-3.0.0.tgz", + "integrity": "sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==", + "peer": true, + "dependencies": { + "css-select": "^4.1.3", + "dom-converter": "^0.2.0", + "htmlparser2": "^6.1.0", + "lodash": "^4.17.21", + "strip-ansi": "^6.0.1" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "peer": true + }, + "node_modules/resolve": { + "version": "1.22.11", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz", + "integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==", + "peer": true, + "dependencies": { + "is-core-module": "^2.16.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "peer": true, + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve.exports": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.3.tgz", + "integrity": "sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==", + "peer": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/retry": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", + "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", + "peer": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/reusify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", + "peer": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "peer": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/rimraf/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "peer": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "peer": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "peer": true, + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/rxjs": { + "version": "7.8.2", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz", + "integrity": "sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "peer": true + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "peer": true + }, + "node_modules/schema-utils": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", + "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", + "peer": true, + "dependencies": { + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 8.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==", + "peer": true + }, + "node_modules/selfsigned": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.4.1.tgz", + "integrity": "sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==", + "peer": true, + "dependencies": { + "@types/node-forge": "^1.3.0", + "node-forge": "^1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "peer": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/send": { + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", + "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", + "peer": true, + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "peer": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "peer": true + }, + "node_modules/send/node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "peer": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/serialize-javascript": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", + "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", + "peer": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", + "peer": true, + "dependencies": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/serve-index/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "peer": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/serve-index/node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "peer": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", + "peer": true, + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", + "peer": true + }, + "node_modules/serve-index/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "peer": true + }, + "node_modules/serve-index/node_modules/setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "peer": true + }, + "node_modules/serve-index/node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "peer": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-static": { + "version": "1.16.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", + "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", + "peer": true, + "dependencies": { + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.19.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "peer": true + }, + "node_modules/shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "peer": true, + "dependencies": { + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "peer": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/shell-quote": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.3.tgz", + "integrity": "sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==", + "peer": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "peer": true, + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "peer": true, + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "peer": true, + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "peer": true, + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/sigmund": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", + "integrity": "sha512-fCvEXfh6NWpm+YSuY2bpXb/VIihqWA6hLsgboC+0nl71Q7N7o2eaCW8mJa/NLvQhs6jpd3VZV4UiUQlV6+lc8g==", + "peer": true + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "peer": true + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "peer": true + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/sockjs": { + "version": "0.3.24", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", + "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", + "peer": true, + "dependencies": { + "faye-websocket": "^0.11.3", + "uuid": "^8.3.2", + "websocket-driver": "^0.7.4" + } + }, + "node_modules/sockjs/node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "peer": true, + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", + "peer": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/spdy": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", + "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", + "peer": true, + "dependencies": { + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/spdy-transport": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", + "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", + "peer": true, + "dependencies": { + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "hpack.js": "^2.1.6", + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "peer": true + }, + "node_modules/spritesheet-js": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/spritesheet-js/-/spritesheet-js-1.2.8.tgz", + "integrity": "sha512-9FLHBlG6VlbNNDXYaUtxV8s74BPwW1QyqKFmBsaxu7Woa8BbczBg9/qEE/W9hbUYtCU5LAGW0lAgbzK7LjIruw==", + "peer": true, + "dependencies": { + "async": "~0.2.9", + "binpacking": "~0.0.1", + "glob": "~3.2.6", + "mustache": "~0.7.2", + "optimist": "~0.6.0", + "platform-command": "git+https://gitlab.com/gitlabdev/platform-command.git", + "underscore": "1.9.2" + }, + "bin": { + "spritesheet-js": "index.js" + } + }, + "node_modules/spritesheet-js/node_modules/async": { + "version": "0.2.10", + "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz", + "integrity": "sha512-eAkdoKxU6/LkKDBzLpT+t6Ff5EtfSF4wx1WfJiPEEV7WNLnDaRXk0oVysiEPm262roaachGexwUv94WhSgN5TQ==", + "peer": true + }, + "node_modules/spritesheet-js/node_modules/glob": { + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/glob/-/glob-3.2.11.tgz", + "integrity": "sha512-hVb0zwEZwC1FXSKRPFTeOtN7AArJcJlI6ULGLtrstaswKNlrTJqAA+1lYlSUop4vjA423xlBzqfVS3iWGlqJ+g==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "peer": true, + "dependencies": { + "inherits": "2", + "minimatch": "0.3" + }, + "engines": { + "node": "*" + } + }, + "node_modules/spritesheet-js/node_modules/lru-cache": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz", + "integrity": "sha512-WpibWJ60c3AgAz8a2iYErDrcT2C7OmKnsWhIcHOjkUHFjkXncJhtLxNSqUmxRxRunpb5I8Vprd7aNSd2NtksJQ==", + "peer": true + }, + "node_modules/spritesheet-js/node_modules/minimatch": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.3.0.tgz", + "integrity": "sha512-WFX1jI1AaxNTZVOHLBVazwTWKaQjoykSzCBNXB72vDTCzopQGtyP91tKdFK5cv1+qMwPyiTu1HqUriqplI8pcA==", + "deprecated": "Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue", + "peer": true, + "dependencies": { + "lru-cache": "2", + "sigmund": "~1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/stack-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "peer": true, + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/stack-utils/node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/stats.js": { + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/stats.js/-/stats.js-0.17.0.tgz", + "integrity": "sha512-hNKz8phvYLPEcRkeG1rsGmV5ChMjKDAWU7/OJJdDErPBNChQXxCo3WZurGpnWc6gZhAzEPFad1aVgyOANH1sMw==", + "peer": true + }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "peer": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "peer": true, + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "peer": true, + "dependencies": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "peer": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "peer": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "peer": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/style-loader": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-3.3.4.tgz", + "integrity": "sha512-0WqXzrsMTyb8yjZJHDqwmnwRJvhALK9LfRtRc6B4UTWe8AijYLZYZ9thuJTZc2VfQWINADW/j+LiJnfy2RoC1w==", + "peer": true, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "peer": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/t": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/t/-/t-0.5.1.tgz", + "integrity": "sha512-VPWkKwJPOldeqDKesRwOLhKNbVRUbzh8yoFWqwMTXqQ2BpdY7SHJqPbIRb6qfidlFhh2LBNBDJQGjPnqQcwSgg==", + "peer": true, + "engines": { + "node": "*" + } + }, + "node_modules/tapable": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.0.tgz", + "integrity": "sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==", + "peer": true, + "engines": { + "node": ">=6" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/terser": { + "version": "5.44.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.44.0.tgz", + "integrity": "sha512-nIVck8DK+GM/0Frwd+nIhZ84pR/BX7rmXMfYwyg+Sri5oGVE99/E3KvXqpC2xHFxyqXyGHTKBSioxxplrO4I4w==", + "peer": true, + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.15.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "5.3.14", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.14.tgz", + "integrity": "sha512-vkZjpUjb6OMS7dhV+tILUW6BhpDR7P2L/aQSAv+Uwk+m8KATX9EccViHTJR2qDtACKPIYndLGCyl3FMo+r2LMw==", + "peer": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.25", + "jest-worker": "^27.4.5", + "schema-utils": "^4.3.0", + "serialize-javascript": "^6.0.2", + "terser": "^5.31.1" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "uglify-js": { + "optional": true + } + } + }, + "node_modules/terser-webpack-plugin/node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "peer": true, + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/terser-webpack-plugin/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "peer": true, + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/terser-webpack-plugin/node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "peer": true, + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/terser-webpack-plugin/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "peer": true + }, + "node_modules/terser-webpack-plugin/node_modules/schema-utils": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.3.tgz", + "integrity": "sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==", + "peer": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/terser-webpack-plugin/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "peer": true + }, + "node_modules/terser/node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "peer": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "peer": true, + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/test-exclude/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "peer": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/test-exclude/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "peer": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "peer": true + }, + "node_modules/thunky": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", + "peer": true + }, + "node_modules/tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "peer": true + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "peer": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "peer": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "peer": true + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==" + }, + "node_modules/tweakpane": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/tweakpane/-/tweakpane-4.0.5.tgz", + "integrity": "sha512-rxEXdSI+ArlG1RyO6FghC4ZUX8JkEfz8F3v1JuteXSV0pEtHJzyo07fcDG+NsJfN5L39kSbCYbB9cBGHyuI/tQ==", + "peer": true, + "funding": { + "url": "https://github.com/sponsors/cocopon" + } + }, + "node_modules/tweedle.js": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tweedle.js/-/tweedle.js-2.1.0.tgz", + "integrity": "sha512-0ReQgVjepoZkE6t0upWNgCRbplHkQJQYk1LStXugwSR728GLFmGDRuaQJlxeC/iBlxud6+P1RdODjaO25vHAqw==", + "peer": true + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "peer": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "peer": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "peer": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "peer": true, + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typed-signals": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/typed-signals/-/typed-signals-2.5.0.tgz", + "integrity": "sha512-m9lHc3eBCJerXYdx+G0uWZihyUXdqTzzgOdqiDDsoUo75WjhFJH6vP5/6w/xhyu04zoxHUqgYhf9FEt85dk/Ng==", + "peer": true + }, + "node_modules/underscore": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.2.tgz", + "integrity": "sha512-D39qtimx0c1fI3ya1Lnhk3E9nONswSKhnffBI0gME9C99fYOkNi04xs8K6pePLhvl1frbDemkaBQ5ikWllR2HQ==", + "peer": true + }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz", + "integrity": "sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==", + "peer": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "peer": true, + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.1.tgz", + "integrity": "sha512-JQ84qTuMg4nVkx8ga4A16a1epI9H6uTXAknqxkGF/aFfRLw1xC/Bp24HNLaZhHSkWd3+84t8iXnp1J0kYcZHhg==", + "peer": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.2.0.tgz", + "integrity": "sha512-hpbDzxUY9BFwX+UeBnxv3Sh1q7HFxj48DTmXchNgRa46lO8uj3/1iEn3MiNUYTg1g9ctIqXCCERn8gYZhHC5lQ==", + "peer": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "peer": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/unplugin": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/unplugin/-/unplugin-1.0.1.tgz", + "integrity": "sha512-aqrHaVBWW1JVKBHmGo33T5TxeL0qWzfvjWokObHA9bYmN7eNDkwOxmLjhioHl9878qDFMAaT51XNroRyuz7WxA==", + "peer": true, + "dependencies": { + "acorn": "^8.8.1", + "chokidar": "^3.5.3", + "webpack-sources": "^3.2.3", + "webpack-virtual-modules": "^0.5.0" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.4.tgz", + "integrity": "sha512-q0SPT4xyU84saUX+tomz1WLkxUbuaJnR1xWt17M7fJtEJigJeWUNGUqrauFXsHnqev9y9JTRGwk13tFBuKby4A==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "peer": true, + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "peer": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/url": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.4.tgz", + "integrity": "sha512-oCwdVC7mTuWiPyjLUz/COz5TLk6wgp0RCsN+wHZ2Ekneac9w8uuV0njcbbie2ME+Vs+d6duwmYuR3HgQXs1fOg==", + "peer": true, + "dependencies": { + "punycode": "^1.4.1", + "qs": "^6.12.3" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/url/node_modules/punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", + "peer": true + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "peer": true + }, + "node_modules/utila": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", + "integrity": "sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==", + "peer": true + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "peer": true, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "peer": true, + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/v8-to-istanbul": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz", + "integrity": "sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==", + "peer": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^2.0.0" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "peer": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "peer": true, + "dependencies": { + "makeerror": "1.0.12" + } + }, + "node_modules/watchpack": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.4.tgz", + "integrity": "sha512-c5EGNOiyxxV5qmTtAB7rbiXxi1ooX1pQKMLX/MIabJjRA0SJBQOjKF+KSVfHkr9U1cADPon0mRiVe/riyaiDUA==", + "peer": true, + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "peer": true, + "dependencies": { + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/web-streams-polyfill": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz", + "integrity": "sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==", + "peer": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/web-vitals": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/web-vitals/-/web-vitals-5.1.0.tgz", + "integrity": "sha512-ArI3kx5jI0atlTtmV0fWU3fjpLmq/nD3Zr1iFFlJLaqa5wLBkUSzINwBPySCX/8jRyjlmy1Volw1kz1g9XE4Jg==" + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "peer": true + }, + "node_modules/webpack": { + "version": "5.102.1", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.102.1.tgz", + "integrity": "sha512-7h/weGm9d/ywQ6qzJ+Xy+r9n/3qgp/thalBbpOi5i223dPXKi04IBtqPN9nTd+jBc7QKfvDbaBnFipYp4sJAUQ==", + "peer": true, + "dependencies": { + "@types/eslint-scope": "^3.7.7", + "@types/estree": "^1.0.8", + "@types/json-schema": "^7.0.15", + "@webassemblyjs/ast": "^1.14.1", + "@webassemblyjs/wasm-edit": "^1.14.1", + "@webassemblyjs/wasm-parser": "^1.14.1", + "acorn": "^8.15.0", + "acorn-import-phases": "^1.0.3", + "browserslist": "^4.26.3", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.17.3", + "es-module-lexer": "^1.2.1", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.11", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^4.3.3", + "tapable": "^2.3.0", + "terser-webpack-plugin": "^5.3.11", + "watchpack": "^2.4.4", + "webpack-sources": "^3.3.3" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-cli": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.10.0.tgz", + "integrity": "sha512-NLhDfH/h4O6UOy+0LSso42xvYypClINuMNBVVzX4vX98TmTaTUxwRbXdhucbFMd2qLaCTcLq/PdYrvi8onw90w==", + "peer": true, + "dependencies": { + "@discoveryjs/json-ext": "^0.5.0", + "@webpack-cli/configtest": "^1.2.0", + "@webpack-cli/info": "^1.5.0", + "@webpack-cli/serve": "^1.7.0", + "colorette": "^2.0.14", + "commander": "^7.0.0", + "cross-spawn": "^7.0.3", + "fastest-levenshtein": "^1.0.12", + "import-local": "^3.0.2", + "interpret": "^2.2.0", + "rechoir": "^0.7.0", + "webpack-merge": "^5.7.3" + }, + "bin": { + "webpack-cli": "bin/cli.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "4.x.x || 5.x.x" + }, + "peerDependenciesMeta": { + "@webpack-cli/generators": { + "optional": true + }, + "@webpack-cli/migrate": { + "optional": true + }, + "webpack-bundle-analyzer": { + "optional": true + }, + "webpack-dev-server": { + "optional": true + } + } + }, + "node_modules/webpack-cli/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "peer": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/webpack-dev-middleware": { + "version": "5.3.4", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.4.tgz", + "integrity": "sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q==", + "peer": true, + "dependencies": { + "colorette": "^2.0.10", + "memfs": "^3.4.3", + "mime-types": "^2.1.31", + "range-parser": "^1.2.1", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/webpack-dev-middleware/node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "peer": true, + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/webpack-dev-middleware/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "peer": true, + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/webpack-dev-middleware/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "peer": true + }, + "node_modules/webpack-dev-middleware/node_modules/schema-utils": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.3.tgz", + "integrity": "sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==", + "peer": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/webpack-dev-server": { + "version": "4.15.2", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.15.2.tgz", + "integrity": "sha512-0XavAZbNJ5sDrCbkpWL8mia0o5WPOd2YGtxrEiZkBK9FjLppIUK2TgxK6qGD2P3hUXTJNNPVibrerKcx5WkR1g==", + "peer": true, + "dependencies": { + "@types/bonjour": "^3.5.9", + "@types/connect-history-api-fallback": "^1.3.5", + "@types/express": "^4.17.13", + "@types/serve-index": "^1.9.1", + "@types/serve-static": "^1.13.10", + "@types/sockjs": "^0.3.33", + "@types/ws": "^8.5.5", + "ansi-html-community": "^0.0.8", + "bonjour-service": "^1.0.11", + "chokidar": "^3.5.3", + "colorette": "^2.0.10", + "compression": "^1.7.4", + "connect-history-api-fallback": "^2.0.0", + "default-gateway": "^6.0.3", + "express": "^4.17.3", + "graceful-fs": "^4.2.6", + "html-entities": "^2.3.2", + "http-proxy-middleware": "^2.0.3", + "ipaddr.js": "^2.0.1", + "launch-editor": "^2.6.0", + "open": "^8.0.9", + "p-retry": "^4.5.0", + "rimraf": "^3.0.2", + "schema-utils": "^4.0.0", + "selfsigned": "^2.1.1", + "serve-index": "^1.9.1", + "sockjs": "^0.3.24", + "spdy": "^4.0.2", + "webpack-dev-middleware": "^5.3.4", + "ws": "^8.13.0" + }, + "bin": { + "webpack-dev-server": "bin/webpack-dev-server.js" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.37.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "webpack": { + "optional": true + }, + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-dev-server/node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "peer": true, + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/webpack-dev-server/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "peer": true, + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/webpack-dev-server/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "peer": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/webpack-dev-server/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "peer": true + }, + "node_modules/webpack-dev-server/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "peer": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/webpack-dev-server/node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "peer": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/webpack-dev-server/node_modules/schema-utils": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.3.tgz", + "integrity": "sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==", + "peer": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/webpack-merge": { + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.10.0.tgz", + "integrity": "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==", + "peer": true, + "dependencies": { + "clone-deep": "^4.0.1", + "flat": "^5.0.2", + "wildcard": "^2.0.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/webpack-sources": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.3.3.tgz", + "integrity": "sha512-yd1RBzSGanHkitROoPFd6qsrxt+oFhg/129YzheDGqeustzX0vTZJZsSsQjVQC4yzBQ56K55XU8gaNCtIzOnTg==", + "peer": true, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack-virtual-modules": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.5.0.tgz", + "integrity": "sha512-kyDivFZ7ZM0BVOUteVbDFhlRt7Ah/CSPwJdi8hBpkK7QLumUqdLtVfm/PX/hkcnrvr0i77fO5+TjZ94Pe+C9iw==", + "peer": true + }, + "node_modules/webpack/node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "peer": true, + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/webpack/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "peer": true, + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/webpack/node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "peer": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/webpack/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "peer": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/webpack/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "peer": true + }, + "node_modules/webpack/node_modules/schema-utils": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.3.tgz", + "integrity": "sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==", + "peer": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/websocket-driver": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", + "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", + "peer": true, + "dependencies": { + "http-parser-js": ">=0.5.1", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/websocket-extensions": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", + "peer": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "peer": true, + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "peer": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/wildcard": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", + "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==", + "peer": true + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wordwrap": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", + "integrity": "sha512-1tMA907+V4QmxV7dbRvb4/8MaRALK6q9Abid3ndMYnbyo8piisCmeONVqVSXqQA3KaP4SLt5b7ud6E2sqP8TFw==", + "peer": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "peer": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "peer": true + }, + "node_modules/write-file-atomic": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", + "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", + "peer": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/ws": { + "version": "8.18.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz", + "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==", + "peer": true, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "peer": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "peer": true + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "peer": true, + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "peer": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..5d2ef04 --- /dev/null +++ b/package.json @@ -0,0 +1,32 @@ +{ + "name": "amazon_game_of_gold", + "storageId": "amazongameofgold.popiplay.com", + "version": "1.0.4", + "description": "the Popiplay's game", + "author": "studio-b", + "license": "ISC", + "scripts": { + "test": "jest", + "install-yalc": "yalc add @popiplay/slot-game-kit && yalc add @popiplay/slot-machines && npm install", + "prebuild": "npm run locales -- src/assets/rules/locales/ src/assets/configs/ .html locales.json && npm run locales -- src/assets/translations/locales/ src/assets/configs/ .json translations.json", + "prod": "npm run prebuild && slotgamekit prod", + "staging": "npm run prebuild && slotgamekit staging", + "dev": "npm run prebuild && slotgamekit dev", + "serve": "npm run prebuild && slotgamekit watch", + "locales": "node scripts/buildLocalesConfig.js", + "scenesPreview": "webpack serve --config ./sandbox/scenesPreview/webpack.scenesPreview.js", + "audio-stereo": "audiosprite -e ogg,mp3 -f jukebox -g 0.1 -c 2 -i 1 -l debug -o ./src/assets/sounds/stereoAudioSprite ./audioSource/stereo/*", + "audio-mono": "audiosprite -e ogg,mp3 -f jukebox -g 0.1 -c 1 -i 1 -l debug -o ./src/assets/sounds/monoAudioSprite ./audioSource/mono/*", + "audio-sprite": "npm run audio-stereo && npm run audio-mono", + "clean": "rm -R node_modules dist", + "clean-yalc": "rm -R .yalc yalc.lock" + }, + "dependencies": { + "@popiplay/slot-game-kit": "file:.yalc/@popiplay/slot-game-kit", + "@popiplay/slot-machines": "1.1.18", + "@popiplay/state-machine": "1.0.6" + }, + "overrides": { + "@sentry/cli": "2.22.2" + } +} diff --git a/public/imgs/error_popup_icon.png b/public/imgs/error_popup_icon.png new file mode 100644 index 0000000..3d83e7b Binary files /dev/null and b/public/imgs/error_popup_icon.png differ diff --git a/public/index.html b/public/index.html new file mode 100644 index 0000000..5b6a43c --- /dev/null +++ b/public/index.html @@ -0,0 +1,79 @@ + + + + + + + + + + + + + + + + POPIPLAY | AMAZON CITY OF GOLD + + + + + + + + + + diff --git a/sandbox/scenesPreview/scenesPreview.js b/sandbox/scenesPreview/scenesPreview.js new file mode 100644 index 0000000..e5adde6 --- /dev/null +++ b/sandbox/scenesPreview/scenesPreview.js @@ -0,0 +1,127 @@ +import "pixi.js"; +import "pixi-spine"; // Do this once at the very start of your code. This registers the loader! +import "../../extensions/GlobalPointerEvents"; + +import "../../src/styles/main.css"; +import { Assets } from "pixi.js"; + +import { Locator } from "@popiplay/slot-game-kit"; +import Renderer2D from "services/Renderer/Renderer2D.js"; +import { SETTINGS } from "@popiplay/slot-game-kit"; +import Events from "services/Events/Events.js"; +import Audio from "services/Audio/Audio.js"; +import DevScenes from "services/Scenes/DevScenes.js"; +import PreloadScene from "../../src/game/scene/PreloadScene/PreloadScene.js"; +import DevClock from "services/Clock/DevClock.js"; +import StartScene from "../../src/game/scene/StartScene/StartScene.js"; +import MainGameScene from "../../src/game/scene/MainGameScene/MainGameScene.js"; +import Debug from "services/Debug/Debug.js"; +import DebugViewport from "services/Viewport/DebugViewport.js"; +import UI from "../../src/game/scene/UI/UI.js"; +import RespinsScene from "../../src/game/scene/RespinsScene/RespinsScene"; +import DevLocales from "../../services/Locales/DevLocales"; +import FreespinsScene from "src/game/scene/FreespinsScene/FreespinsScene"; + +Locator.provide(new DevClock()); +Locator.provide(new Renderer2D(SETTINGS.renderer)); +Locator.provide(new DebugViewport(SETTINGS.viewport)); +// Locator.provide(new ResizableViewport(SETTINGS.viewport)); +Locator.provide(new Events()); +// Locator.provide(new LogAudio()); +Locator.provide(new Audio()); +Locator.provide(new DevScenes(Locator.viewport)); +Locator.provide(new Debug()); +Locator.provide(new DevLocales("en")); + +const content = document.createElement("div"); +content.classList.add("content"); +document.body.appendChild(content); +const container = document.createElement("div"); +container.classList.add("canvas-wrapper"); +content.appendChild(container); +Locator.renderer.view.classList.add("webgl"); +container.appendChild(Locator.renderer.view); +Locator.viewport.resize(); + +const setMaps = (scene) => { + const keys = Assets.get("slotMachine").symbolsKeys; + scene.machine.inputs.initMap = new Array(5 * 4) + .fill(null) + .map(() => { return { key: keys[Math.floor(Math.random() * keys.length)] }; }); + scene.machine.inputs.screenMap = new Array(5 * 4) + .fill(null) + .map(() => { return { key: keys[Math.floor(Math.random() * keys.length)] }; }); + scene.machine.inputs.spin = true; +}; + +const preSet = (scene) => { + const keys = Assets.get("slotMachine").symbolsKeys; + scene.inputs = { + model: { currency: null }, + gameData: { + screenMap: new Array(5 * 4) + .fill(null) + .map(() => { return { key: keys[Math.floor(Math.random() * keys.length)] }; }) + } + }; +}; + +Assets.init({ + manifest: "./manifest.json", +}) + .then(async () => { + + await Assets.loadBundle("atlases"); + await Assets.loadBundle("preload"); + await Assets.loadBundle("fonts"); + await Assets.loadBundle("symbols"); + await Assets.loadBundle("gameplay"); + await Assets.loadBundle("intro"); + await Assets.loadBundle("sounds"); + await Assets.loadBundle("win_popups"); + await Assets.loadBundle("ui"); + await Assets.loadBundle("bonus_popups"); + await Assets.loadBundle("locales"); + await Locator.locales.load(); + }) + .then(() => { + console.log("Welcome to sandbox!"); + + Locator.scenes.add("preloader", new PreloadScene()); + Locator.scenes.add("startscene", new StartScene()); + Locator.scenes.add("main", new MainGameScene()); + Locator.scenes.add("respins", new RespinsScene()); + Locator.scenes.add("freespins", new FreespinsScene()); + Locator.scenes.add("gameplayui", new UI()); + // Locator.scenes.add("largewin", new BigWinScene()); + // Locator.scenes.get("largewin").inputs.win = 10000000; + // Locator.scenes.add("totalwin", new TotalWinScene()); + // Locator.scenes.add("maxwin", new MaxWinScene()); + // Locator.scenes.add("BuyBonus", new BuyBonus()); + // Locator.scenes.add("win_bonus_game", new WinBonusGameScene()); + // Locator.scenes.add("freespins_left", new FreespinsLeftScene()); + + Locator.clock.on("tick", (dt) => { + Locator.scenes.update(dt); + Locator.renderer.render(Locator.viewport); + }); + Locator.clock.run(); + Locator.viewport.on("resize", (e) => { + Locator.scenes.resize(e); + }); + Locator.viewport.resize(); + + const sceneNames = ["main", "respins", "freespins"]; + sceneNames.forEach((sceneName) => { + const scene = Locator.scenes.get(sceneName); + preSet(scene); + scene.on("run", () => { + setMaps(scene); + }); + }); + + Locator.scenes.run("gameplayui"); + Locator.scenes.run("main"); + // Locator.scenes.run("freespins"); + // Locator.scenes.run("respins"); + }); diff --git a/sandbox/scenesPreview/webpack.scenesPreview.js b/sandbox/scenesPreview/webpack.scenesPreview.js new file mode 100644 index 0000000..b3d1d1a --- /dev/null +++ b/sandbox/scenesPreview/webpack.scenesPreview.js @@ -0,0 +1,12 @@ +const path = require('path'); +const {merge} = require('webpack-merge'); +const devConfig = require('../../bundler/webpack.dev.js'); + +module.exports = (env) => { + return merge( + devConfig(env), + { + entry: path.resolve(__dirname, `./scenesPreview.js`), + } + ); +} diff --git a/scripts/buildLocalesConfig.js b/scripts/buildLocalesConfig.js new file mode 100644 index 0000000..d1bad3e --- /dev/null +++ b/scripts/buildLocalesConfig.js @@ -0,0 +1,38 @@ +const fs = require('fs'); +const path = require('path'); + +/** + * Builds a configuration file for rules locales based on the input directory. + * This script generates a configuration file containing a list of locales, + * based on the existing files with the specified extension in the input directory. + * This enhances the game's accessibility to different languages. + * + * @param {string} inputDirectory - The directory to read the files from. + * @param {string} outputDirectory - The directory to write the configuration file to. + * @param {string} extname - The extension of the files to be included. + * @param {string} outputFileName - The name of output file. + * @returns {void} + */ +function buildLocalesConfig(inputDirectory, outputDirectory, extname, outputFileName) { + // Get all files from the input directory + const files = fs.readdirSync(inputDirectory); + + // Filter only files with the provided extension + const filteredFiles = files.filter(file => path.extname(file) === extname); + + // Remove extensions from filenames + const fileNamesWithoutExtensions = filteredFiles.map(file => path.parse(file).name); + + // Write the array of filenames to the new file in the output directory + fs.writeFileSync( + path.join(outputDirectory, outputFileName), + JSON.stringify(fileNamesWithoutExtensions, null, 2) // 2 spaces for indentation in the output json + ); +} + +const inputDirectory = process.argv[2]; +const outputDirectory = process.argv[3]; +const extname = process.argv[4]; +const outputFileName = process.argv[5]; + +buildLocalesConfig(inputDirectory, outputDirectory, extname, outputFileName); diff --git a/scripts/prebuild.sh b/scripts/prebuild.sh new file mode 100755 index 0000000..bb957fb --- /dev/null +++ b/scripts/prebuild.sh @@ -0,0 +1,3 @@ +#!/bin/bash +npm run locales -- src/assets/rules/locales/ src/assets/configs/ .html locales.json +npm run locales -- src/assets/translations/locales/ src/assets/configs/ .json translations.json diff --git a/services/Clock/DevClock.js b/services/Clock/DevClock.js new file mode 100644 index 0000000..873dcbd --- /dev/null +++ b/services/Clock/DevClock.js @@ -0,0 +1,64 @@ +import Clock from "services/Clock/Clock.js"; + +export default class DevClock extends Clock { + constructor() { + super(); + + window.addEventListener("keyup", e => { + if (this.timeScale) { + this.previousNonZeroTimeScale = this.timeScale; + } + switch (e.key) { + case "p": + case "P": + this.togglePause(); + break; + case "1": + this.setTimeScale(1); + break; + case "2": + this.setTimeScale(2); + break; + case "3": + this.setTimeScale(3); + break; + case "8": + this.setTimeScale(0.25); + break; + case "9": + this.setTimeScale(0.5); + break; + case "0": + this.setTimeScale(1); + break; + case "ArrowLeft": + this.setTimeScale(this.previousNonZeroTimeScale * 0.5); + break; + case "ArrowRight": + this.setTimeScale(this.previousNonZeroTimeScale * 2); + break; + case "ArrowUp": + this.setTimeScale(1); + break; + case "ArrowDown": + this.setTimeScale(this.timeScale ? 0 : this.previousNonZeroTimeScale); + break; + } + }); + } + + pause() { + super.pause(); + console.log("Paused"); + } + + resume() { + super.resume(); + console.log("Resumed"); + } + + togglePause() { + if (this.paused) this.resume(); + else this.pause(); + } +} diff --git a/src/assets/bitmapFonts/multiplier_value_font.fnt b/src/assets/bitmapFonts/multiplier_value_font.fnt new file mode 100644 index 0000000..83a2d6f --- /dev/null +++ b/src/assets/bitmapFonts/multiplier_value_font.fnt @@ -0,0 +1,16 @@ +info face="multiplier_value_font" size=90 bold=0 italic=0 charset="" unicode=1 stretchH=100 smooth=1 aa=1 padding=1,1,1,1 spacing=1,1 +common lineHeight=104 base=83 scaleW=218 scaleH=218 pages=1 packed=0 +page id=0 file="multiplier_value_font.png" +chars count=12 +char id=32 x=0 y=0 width=0 height=0 xoffset=0 yoffset=0 xadvance=26 page=0 chnl=15 +char id=48 x=167 y=0 width=51 height=71 xoffset=-1 yoffset=-1 xadvance=49 page=0 chnl=15 +char id=49 x=0 y=74 width=42 height=72 xoffset=-1 yoffset=-1 xadvance=41 page=0 chnl=15 +char id=50 x=0 y=147 width=52 height=71 xoffset=-1 yoffset=-1 xadvance=50 page=0 chnl=15 +char id=51 x=53 y=147 width=42 height=71 xoffset=0 yoffset=0 xadvance=41 page=0 chnl=15 +char id=52 x=143 y=147 width=54 height=69 xoffset=-1 yoffset=-1 xadvance=52 page=0 chnl=15 +char id=53 x=96 y=147 width=46 height=71 xoffset=-1 yoffset=-1 xadvance=44 page=0 chnl=15 +char id=54 x=0 y=0 width=56 height=73 xoffset=-1 yoffset=-1 xadvance=54 page=0 chnl=15 +char id=55 x=43 y=74 width=50 height=69 xoffset=-1 yoffset=-1 xadvance=48 page=0 chnl=15 +char id=56 x=57 y=0 width=52 height=73 xoffset=-1 yoffset=-1 xadvance=50 page=0 chnl=15 +char id=57 x=110 y=0 width=56 height=73 xoffset=-1 yoffset=-1 xadvance=54 page=0 chnl=15 +char id=88 x=94 y=74 width=55 height=63 xoffset=-1 yoffset=8 xadvance=54 page=0 chnl=15 diff --git a/src/assets/bitmapFonts/multiplier_value_font.png b/src/assets/bitmapFonts/multiplier_value_font.png new file mode 100644 index 0000000..b450bbf Binary files /dev/null and b/src/assets/bitmapFonts/multiplier_value_font.png differ diff --git a/src/assets/bitmapFonts/wild_multiplier_font.fnt b/src/assets/bitmapFonts/wild_multiplier_font.fnt new file mode 100644 index 0000000..8c10405 --- /dev/null +++ b/src/assets/bitmapFonts/wild_multiplier_font.fnt @@ -0,0 +1,16 @@ +info face="wild_multiplier_font" size=90 bold=0 italic=0 charset="" unicode=1 stretchH=100 smooth=1 aa=1 padding=1,1,1,1 spacing=1,1 +common lineHeight=104 base=83 scaleW=209 scaleH=218 pages=1 packed=0 +page id=0 file="wild_multiplier_font.png" +chars count=12 +char id=32 x=0 y=0 width=0 height=0 xoffset=0 yoffset=0 xadvance=26 page=0 chnl=15 +char id=48 x=0 y=0 width=53 height=73 xoffset=-1 yoffset=-1 xadvance=51 page=0 chnl=15 +char id=49 x=166 y=0 width=43 height=72 xoffset=-1 yoffset=-1 xadvance=41 page=0 chnl=15 +char id=50 x=150 y=74 width=53 height=71 xoffset=-1 yoffset=-1 xadvance=51 page=0 chnl=15 +char id=51 x=58 y=74 width=43 height=72 xoffset=-1 yoffset=-1 xadvance=41 page=0 chnl=15 +char id=52 x=0 y=148 width=55 height=70 xoffset=-1 yoffset=-1 xadvance=53 page=0 chnl=15 +char id=53 x=102 y=74 width=47 height=72 xoffset=-1 yoffset=-1 xadvance=45 page=0 chnl=15 +char id=54 x=54 y=0 width=57 height=73 xoffset=-1 yoffset=-1 xadvance=55 page=0 chnl=15 +char id=55 x=56 y=148 width=51 height=70 xoffset=-1 yoffset=-1 xadvance=49 page=0 chnl=15 +char id=56 x=112 y=0 width=53 height=73 xoffset=-1 yoffset=-1 xadvance=51 page=0 chnl=15 +char id=57 x=0 y=74 width=57 height=73 xoffset=-1 yoffset=-1 xadvance=55 page=0 chnl=15 +char id=88 x=108 y=148 width=56 height=64 xoffset=-1 yoffset=8 xadvance=55 page=0 chnl=15 diff --git a/src/assets/bitmapFonts/wild_multiplier_font.png b/src/assets/bitmapFonts/wild_multiplier_font.png new file mode 100644 index 0000000..a893f6c Binary files /dev/null and b/src/assets/bitmapFonts/wild_multiplier_font.png differ diff --git a/src/assets/configs/locales.json b/src/assets/configs/locales.json new file mode 100644 index 0000000..39ca987 --- /dev/null +++ b/src/assets/configs/locales.json @@ -0,0 +1,14 @@ +[ + "de", + "en-SOCIAL", + "en", + "es", + "fi", + "fr-CA", + "nl", + "no", + "pt-BR", + "ru", + "sv", + "tr" +] \ No newline at end of file diff --git a/src/assets/configs/slotMachine.json b/src/assets/configs/slotMachine.json new file mode 100644 index 0000000..2c4afbb --- /dev/null +++ b/src/assets/configs/slotMachine.json @@ -0,0 +1,115 @@ +{ + "width": 424, + "height": 340, + "reels": 5, + "slots": 4, + "symbolsKeys": ["L", "I", "J", "H", "G", "F", "E", "D", "C", "B", "A", "K", "M", "N"], + "wilds": ["N", "M", "L"], + "scatters": ["K"], + "symbols": { + "A": { + "key": "A", + "spine": "low_symbols", + "skin": "low_05", + "zIndex": 1 + }, + "B": { + "key": "B", + "spine": "low_symbols", + "skin": "low_04", + "zIndex": 1 + }, + "C": { + "key": "C", + "spine": "low_symbols", + "skin": "low_03", + "zIndex": 1 + }, + "D": { + "key": "D", + "spine": "low_symbols", + "skin": "low_02", + "zIndex": 1 + }, + "E": { + "key": "E", + "spine": "low_symbols", + "skin": "low_01", + "zIndex": 1 + }, + "F": { + "key": "F", + "spine": "middle_symbols", + "skin": "m3", + "zIndex": 1 + }, + "G": { + "key": "G", + "spine": "middle_symbols", + "skin": "m2", + "zIndex": 1 + }, + "H": { + "key": "H", + "spine": "middle_symbols", + "skin": "m1", + "zIndex": 1 + }, + "I": { + "key": "I", + "spine": "high_symbols", + "skin": "h1", + "zIndex": 1 + }, + "J": { + "key": "J", + "spine": "high_symbols", + "skin": "h2", + "zIndex": 1 + }, + "K": { + "key": "K", + "spine": "scatter", + "skin": "default", + "zIndex": 3 + }, + "L": { + "key": "L", + "spine": "wild", + "skin": "wild_1", + "zIndex": 3 + }, + "M": { + "key": "M", + "spine": "wild", + "skin": "wild_2", + "zIndex": 3 + }, + "N": { + "key": "N", + "spine": "wild", + "skin": "wild_3", + "zIndex": 3 + } + }, + "expandedSymbols": { + "K1": { + "key": "K1", + "spine": "expanding", + "skin": "w1", + "zIndex": 21 + }, + "K2": { + "key": "K2", + "spine": "expanding", + "skin": "w2", + "zIndex": 21 + }, + "K3": { + "key": "K3", + "spine": "expanding", + "skin": "w3", + "zIndex": 21 + } + } +} diff --git a/src/assets/configs/translations.json b/src/assets/configs/translations.json new file mode 100644 index 0000000..39ca987 --- /dev/null +++ b/src/assets/configs/translations.json @@ -0,0 +1,14 @@ +[ + "de", + "en-SOCIAL", + "en", + "es", + "fi", + "fr-CA", + "nl", + "no", + "pt-BR", + "ru", + "sv", + "tr" +] \ No newline at end of file diff --git a/src/assets/fonts/FormaDJRBold.ttf b/src/assets/fonts/FormaDJRBold.ttf new file mode 100644 index 0000000..c07fd78 Binary files /dev/null and b/src/assets/fonts/FormaDJRBold.ttf differ diff --git a/src/assets/fonts/KreadonExtraBold.ttf b/src/assets/fonts/KreadonExtraBold.ttf new file mode 100644 index 0000000..f8151f8 Binary files /dev/null and b/src/assets/fonts/KreadonExtraBold.ttf differ diff --git a/src/assets/fonts/Opensans.ttf b/src/assets/fonts/Opensans.ttf new file mode 100644 index 0000000..ac587b4 Binary files /dev/null and b/src/assets/fonts/Opensans.ttf differ diff --git a/src/assets/fonts/Oxanium.ttf b/src/assets/fonts/Oxanium.ttf new file mode 100644 index 0000000..63702dd Binary files /dev/null and b/src/assets/fonts/Oxanium.ttf differ diff --git a/src/assets/fonts/PromptBold.ttf b/src/assets/fonts/PromptBold.ttf new file mode 100644 index 0000000..ae5e7b9 Binary files /dev/null and b/src/assets/fonts/PromptBold.ttf differ diff --git a/src/assets/fonts/PromptLight.ttf b/src/assets/fonts/PromptLight.ttf new file mode 100644 index 0000000..2cce8ed Binary files /dev/null and b/src/assets/fonts/PromptLight.ttf differ diff --git a/src/assets/fonts/PromptMedium.ttf b/src/assets/fonts/PromptMedium.ttf new file mode 100644 index 0000000..0f3ba02 Binary files /dev/null and b/src/assets/fonts/PromptMedium.ttf differ diff --git a/src/assets/fonts/SouthbankLT.woff b/src/assets/fonts/SouthbankLT.woff new file mode 100755 index 0000000..f6a4b0b Binary files /dev/null and b/src/assets/fonts/SouthbankLT.woff differ diff --git a/src/assets/fonts/UniSansHeavyCapsItalic.ttf b/src/assets/fonts/UniSansHeavyCapsItalic.ttf new file mode 100644 index 0000000..82bed4f Binary files /dev/null and b/src/assets/fonts/UniSansHeavyCapsItalic.ttf differ diff --git a/src/assets/fonts/UniSansThin.otf b/src/assets/fonts/UniSansThin.otf new file mode 100755 index 0000000..bc79cd6 Binary files /dev/null and b/src/assets/fonts/UniSansThin.otf differ diff --git a/src/assets/manifest.json b/src/assets/manifest.json new file mode 100644 index 0000000..9f57b9b --- /dev/null +++ b/src/assets/manifest.json @@ -0,0 +1,624 @@ +{ + "bundles": [ + { + "name": "preload", + "assets": [ + { + "name": "preloader", + "srcs": "spines/preloader/preloader.skel", + "data": { + "spineSkeletonScale": 0.425 + } + } + ] + }, + { + "name": "fonts", + "assets": [ + { + "name": "PromptBold", + "srcs": "fonts/PromptBold.ttf", + "data": { + "weights": ["bold"] + } + }, + { + "name": "Oxanium", + "srcs": "fonts/Oxanium.ttf", + "data": { + "weights": ["lighter", "normal", "bold"] + } + }, + { + "name": "Opensans", + "srcs": "fonts/Opensans.ttf", + "data": { + "weights": ["lighter", "normal", "bold"] + } + }, + { + "name": "FormaDJRBold", + "srcs": "fonts/FormaDJRBold.ttf", + "data": { + "weights": ["bold"] + } + }, + { + "name": "PromptLight", + "srcs": "fonts/PromptLight.ttf" + }, + { + "name": "PromptMedium", + "srcs": "fonts/PromptMedium.ttf" + }, + { + "name": "SouthbankLT", + "srcs": "fonts/SouthbankLT.woff" + }, + { + "name": "KreadonExtraBold", + "srcs": "fonts/KreadonExtraBold.ttf" + }, + { + "name": "UniSansHeavyCapsItalic", + "srcs": "fonts/UniSansHeavyCapsItalic.ttf" + }, + { + "name": "UniSansThin", + "srcs": "fonts/UniSansThin.otf" + } + ] + }, + { + "name": "ios_scroll", + "assets": [ + { + "name": "ios_scroll", + "srcs": "spines/ios/ios_scroll.skel", + "data": { + "spineSkeletonScale": 0.8 + } + } + ] + }, + { + "name": "atlases", + "assets": [ + { + "name": "ui", + "srcs": "spines/ui/ui.atlas" + } + ] + }, + { + "name": "intro", + "assets": [ + { + "name": "start_page_ui", + "srcs": "spines/ui/start_page_ui.skel", + "data": { + "spineAtlasAlias": "ui", + "spineAtlasFile": "spines/ui/ui.atlas", + "spineSkeletonScale": 0.4 + } + }, + { + "name": "start_page", + "srcs": "spines/startPage/startpage.skel", + "data": { + "spineSkeletonScale": 0.45 + } + } + ] + }, + { + "name": "ui", + "assets": [ + { + "name": "keyboard", + "srcs": "spines/ui/keyboard.skel", + "data": { + "spineAtlasAlias": "ui", + "spineAtlasFile": "spines/ui/ui.atlas", + "spineSkeletonScale": 0.4 + } + }, + { + "name": "autospins_settings", + "srcs": "spines/ui/autospin_settings.skel", + "data": { + "spineAtlasAlias": "ui", + "spineAtlasFile": "spines/ui/ui.atlas", + "spineSkeletonScale": 0.4 + } + }, + { + "name": "game_settings", + "srcs": "spines/ui/settings.skel", + "data": { + "spineAtlasAlias": "ui", + "spineAtlasFile": "spines/ui/ui.atlas", + "spineSkeletonScale": 0.26 + } + }, + { + "name": "buttons", + "srcs": "spines/ui/buttons.skel", + "data": { + "spineSkeletonScale": 0.5 + } + } + ] + }, + { + "name": "gameplay", + "assets": [ + { + "name": "slotMachine", + "srcs": "configs/slotMachine.json" + }, + { + "name": "main_game_background", + "srcs": "spines/gameviews/main_game_background.skel", + "data": { + "spineSkeletonScale": 0.305, + "spineAtlasAlias": "gameviews", + "spineAtlasFile": "spines/gameviews/gameview.atlas" + } + }, + { + "name": "respins_game_background", + "srcs": "spines/gameviews/respins_game_background.skel", + "data": { + "spineSkeletonScale": 0.3, + "spineAtlasAlias": "gameviews", + "spineAtlasFile": "spines/gameviews/gameview.atlas" + } + }, + { + "name": "freespins_game_background", + "srcs": "spines/gameviews/freespins_game_background.skel", + "data": { + "spineSkeletonScale": 0.3, + "spineAtlasAlias": "gameviews", + "spineAtlasFile": "spines/gameviews/gameview.atlas" + } + }, + { + "name": "reels", + "srcs": "spines/gameviews/reels.skel", + "data": { + "spineSkeletonScale": 0.305, + "spineAtlasAlias": "gameviews", + "spineAtlasFile": "spines/gameviews/gameview.atlas" + } + }, + { + "name": "transition", + "srcs": "spines/transition/transition.skel", + "data": { + "spineSkeletonScale": 0.32, + "spineAtlasAlias": "transition", + "spineAtlasFile": "spines/transition/transition.atlas" + } + }, + { + "name": "main_character_placeholder", + "srcs": "spines/gameviews/main_character_placeholder.skel", + "data": { + "spineSkeletonScale": 0.305, + "spineAtlasAlias": "gameviews", + "spineAtlasFile": "spines/gameviews/gameview.atlas" + } + }, + { + "name": "main_game_character", + "srcs": "spines/gameviews/main_game_character.skel", + "data": { + "spineSkeletonScale": 0.3 + } + }, + { + "name": "respins_character", + "srcs": "spines/gameviews/respins_character.skel", + "data": { + "spineSkeletonScale": 0.3 + } + }, + { + "name": "freespins_character_left", + "srcs": "spines/gameviews/freespins_character_left.skel", + "data": { + "spineSkeletonScale": 0.3 + } + }, + { + "name": "freespins_character_right", + "srcs": "spines/gameviews/freespins_character_right.skel", + "data": { + "spineSkeletonScale": 0.3 + } + }, + { + "name": "respins_character_placeholder", + "srcs": "spines/gameviews/respins_character_placeholder.skel", + "data": { + "spineSkeletonScale": 0.3, + "spineAtlasAlias": "gameviews", + "spineAtlasFile": "spines/gameviews/gameview.atlas" + } + }, + { + "name": "freespins_character_placeholder", + "srcs": "spines/gameviews/freespins_character_placeholder.skel", + "data": { + "spineSkeletonScale": 0.3, + "spineAtlasAlias": "gameviews", + "spineAtlasFile": "spines/gameviews/gameview.atlas" + } + }, + { + "name": "main_game_front", + "srcs": "spines/gameviews/main_game_front.skel", + "data": { + "spineSkeletonScale": 0.305, + "spineAtlasAlias": "gameviews", + "spineAtlasFile": "spines/gameviews/gameview.atlas" + } + }, + { + "name": "respins_game_front", + "srcs": "spines/gameviews/respins_game_front.skel", + "data": { + "spineSkeletonScale": 0.3, + "spineAtlasAlias": "gameviews", + "spineAtlasFile": "spines/gameviews/gameview.atlas" + } + }, + { + "name": "bonus_indicator", + "srcs": "spines/gameviews/bonus_indicator.skel", + "data": { + "spineSkeletonScale": 0.3, + "spineAtlasAlias": "gameviews", + "spineAtlasFile": "spines/gameviews/gameview.atlas" + } + }, + { + "name": "freespins_game_front", + "srcs": "spines/gameviews/freespins_game_front.skel", + "data": { + "spineSkeletonScale": 0.3, + "spineAtlasAlias": "gameviews", + "spineAtlasFile": "spines/gameviews/gameview.atlas" + } + }, + { + "name": "win_line", + "srcs": "textures/win_line.png" + }, + { + "name": "basic_win", + "srcs": "spines/wins/basic_win.skel", + "data": { + "spineAtlasAlias": "wins", + "spineAtlasFile": "spines/wins/wins.atlas" + } + }, + { + "name": "anticipation_back", + "srcs": "spines/anticipation/anticipation_back.skel", + "data": { + "spineSkeletonScale": 0.305, + "spineAtlasAlias": "anticipation", + "spineAtlasFile": "spines/anticipation/anticipation.atlas" + } + }, + { + "name": "anticipation_front", + "srcs": "spines/anticipation/anticipation_front.skel", + "data": { + "spineSkeletonScale": 0.305, + "spineAtlasAlias": "anticipation", + "spineAtlasFile": "spines/anticipation/anticipation.atlas" + } + }, + { + "name": "mini_paytable", + "srcs": "spines/mini-paytable/mini-paytable.skel", + "data": { + "spineSkeletonScale": 0.3194 + } + } + ] + }, + { + "name": "win_popups", + "assets": [ + { + "name": "win_popups", + "srcs": "spines/wins/wins.skel", + "data": { + "spineSkeletonScale": 0.32 + } + }, + { + "name": "win_popups_value", + "srcs": "spines/wins/value.skel", + "data": { + "spineAtlasAlias": "wins", + "spineAtlasFile": "spines/wins/wins.atlas", + "spineSkeletonScale": 0.32 + } + }, + { + "name": "win_popups_xbet_value", + "srcs": "spines/wins/xbet_value.skel", + "data": { + "spineAtlasAlias": "wins", + "spineAtlasFile": "spines/wins/wins.atlas", + "spineSkeletonScale": 0.32 + } + }, + { + "name": "win_popups_tap_to_continue", + "srcs": "spines/wins/tap_to_continue.skel", + "data": { + "spineAtlasAlias": "wins", + "spineAtlasFile": "spines/wins/wins.atlas", + "spineSkeletonScale": 0.32 + } + }, + { + "name": "wins_back", + "srcs": "spines/wins/wins_back.skel", + "data": { + "spineSkeletonScale": 0.32 + } + } + ] + }, + { + "name": "symbols", + "assets": [ + { + "name": "symbols_atlas", + "srcs": "spines/symbols/symbols.atlas" + }, + { + "name": "wild", + "srcs": "spines/symbols/wild_symbols.skel", + "data": { + "spineSkeletonScale": 0.3, + "spineAtlasAlias": "symbols_atlas", + "spineAtlasFile": "spines/symbols/symbols.atlas" + } + }, + { + "name": "middle_symbols", + "srcs": "spines/symbols/mid_symbols.skel", + "data": { + "spineSkeletonScale": 0.3, + "spineAtlasAlias": "symbols_atlas", + "spineAtlasFile": "spines/symbols/symbols.atlas" + } + }, + { + "name": "low_symbols", + "srcs": "spines/symbols/low_symbols.skel", + "data": { + "spineSkeletonScale": 0.3, + "spineAtlasAlias": "symbols_atlas", + "spineAtlasFile": "spines/symbols/symbols.atlas" + } + }, + { + "name": "high_symbols", + "srcs": "spines/symbols/high_symbols.skel", + "data": { + "spineSkeletonScale": 0.3, + "spineAtlasAlias": "symbols_atlas", + "spineAtlasFile": "spines/symbols/symbols.atlas" + } + }, + { + "name": "scatter", + "srcs": "spines/symbols/scatter.skel", + "data": { + "spineSkeletonScale": 0.3, + "spineAtlasAlias": "symbols_atlas", + "spineAtlasFile": "spines/symbols/symbols.atlas" + } + }, + { + "name": "sticky_frame", + "srcs": "spines/symbols/sticky_frame.skel", + "data": { + "spineSkeletonScale": 0.3, + "spineAtlasAlias": "symbols_atlas", + "spineAtlasFile": "spines/symbols/symbols.atlas" + } + }, + { + "name": "expanding", + "srcs": "spines/symbols/expanding/expanding_symbols.skel", + "data": { + "spineSkeletonScale": 0.3, + "spineAtlasAlias": "symbols_atlas", + "spineAtlasFile": "spines/symbols/expanding/expanding_symbols.atlas" + } + } + ] + }, + { + "name": "symbols_bonus", + "assets": [ + { + "name": "symbols_bonus", + "srcs": "spines/symbols/symbols_bonus.skel", + "data": { + "spineSkeletonScale": 0.31 + } + } + ] + }, + { + "name": "bonus_popups", + "assets": [ + { + "name": "popups_atlas", + "srcs": "spines/bonusPopups/popups.atlas" + }, + { + "name": "fs_start", + "srcs": "spines/bonusPopups/fs_start.skel", + "data": { + "spineSkeletonScale": 0.32, + "spineAtlasAlias": "popups_atlas", + "spineAtlasFile": "spines/bonusPopups/popups.atlas" + } + }, + { + "name": "fs_restore", + "srcs": "spines/bonusPopups/popups.skel", + "data": { + "spineSkeletonScale": 0.32, + "spineAtlasAlias": "popups_atlas", + "spineAtlasFile": "spines/bonusPopups/popups.atlas" + } + }, + { + "name": "respin_start", + "srcs": "spines/bonusPopups/respin_start.skel", + "data": { + "spineSkeletonScale": 0.32, + "spineAtlasAlias": "popups_atlas", + "spineAtlasFile": "spines/bonusPopups/popups.atlas" + } + }, + { + "name": "buy_bonus", + "srcs": "textures/buy_bonus.png" + }, + { + "name": "buy_freespins", + "srcs": "textures/buy_freespins.png" + }, + { + "name": "bet_feature", + "srcs": "textures/bet_feature.png" + } + ] + }, + { + "name": "paytable", + "assets": [ + { + "name": "paytable_atlas", + "srcs": "spines/paytable/paytable.atlas" + }, + { + "name": "paytable_slider", + "srcs": "spines/paytable/paytable.skel", + "data": { + "spineSkeletonScale": 0.3, + "spineAtlasAlias": "paytable_atlas", + "spineAtlasFile": "spines/paytable/paytable.atlas" + } + }, + { + "name": "paytable_page_1", + "srcs": "spines/paytable/paytable_page_1.skel", + "data": { + "spineSkeletonScale": 0.3, + "spineAtlasAlias": "paytable_atlas", + "spineAtlasFile": "spines/paytable/paytable.atlas" + } + }, + { + "name": "paytable_page_2", + "srcs": "spines/paytable/paytable_page_2.skel", + "data": { + "spineSkeletonScale": 0.3, + "spineAtlasAlias": "paytable_atlas", + "spineAtlasFile": "spines/paytable/paytable.atlas" + } + }, + { + "name": "paytable_page_3", + "srcs": "spines/paytable/paytable_page_3.skel", + "data": { + "spineSkeletonScale": 0.3, + "spineAtlasAlias": "paytable_atlas", + "spineAtlasFile": "spines/paytable/paytable.atlas" + } + }, + { + "name": "paytable_page_4", + "srcs": "spines/paytable/paytable_page_4.skel", + "data": { + "spineSkeletonScale": 0.3, + "spineAtlasAlias": "paytable_atlas", + "spineAtlasFile": "spines/paytable/paytable.atlas" + } + }, + { + "name": "paytable_page_5", + "srcs": "spines/paytable/paytable_page_5.skel", + "data": { + "spineSkeletonScale": 0.3, + "spineAtlasAlias": "paytable_atlas", + "spineAtlasFile": "spines/paytable/paytable.atlas" + } + }, + { + "name": "paytable_page_6", + "srcs": "spines/paytable/paytable_page_6.skel", + "data": { + "spineSkeletonScale": 0.3, + "spineAtlasAlias": "paytable_atlas", + "spineAtlasFile": "spines/paytable/paytable.atlas" + } + } + ] + }, + { + "name": "rules", + "assets": [ + { + "name": "rules_slider", + "srcs": "spines/rules/rules.skel", + "data": { + "spineSkeletonScale": 0.32 + } + } + ] + }, + { + "name": "locales", + "assets": [ + { + "name": "locales_config", + "srcs": "configs/locales.json" + }, + { + "name": "translations_config", + "srcs": "configs/translations.json" + } + ] + }, + { + "name": "sounds", + "assets": [ + { + "name": "monoAudioSprite", + "srcs": "sounds/monoAudioSprite.json" + }, + { + "name": "stereoAudioSprite", + "srcs": "sounds/stereoAudioSprite.json" + } + ] + } + ] +} diff --git a/src/assets/manifest_mob.json b/src/assets/manifest_mob.json new file mode 100644 index 0000000..ccf7332 --- /dev/null +++ b/src/assets/manifest_mob.json @@ -0,0 +1,624 @@ +{ + "bundles": [ + { + "name": "preload", + "assets": [ + { + "name": "preloader", + "srcs": "mobile/spines/preloader/preloader.skel", + "data": { + "spineSkeletonScale": 0.425 + } + } + ] + }, + { + "name": "fonts", + "assets": [ + { + "name": "PromptBold", + "srcs": "fonts/PromptBold.ttf", + "data": { + "weights": ["bold"] + } + }, + { + "name": "Oxanium", + "srcs": "fonts/Oxanium.ttf", + "data": { + "weights": ["lighter", "normal", "bold"] + } + }, + { + "name": "Opensans", + "srcs": "fonts/Opensans.ttf", + "data": { + "weights": ["lighter", "normal", "bold"] + } + }, + { + "name": "FormaDJRBold", + "srcs": "fonts/FormaDJRBold.ttf", + "data": { + "weights": ["bold"] + } + }, + { + "name": "PromptLight", + "srcs": "fonts/PromptLight.ttf" + }, + { + "name": "PromptMedium", + "srcs": "fonts/PromptMedium.ttf" + }, + { + "name": "SouthbankLT", + "srcs": "fonts/SouthbankLT.woff" + }, + { + "name": "KreadonExtraBold", + "srcs": "fonts/KreadonExtraBold.ttf" + }, + { + "name": "UniSansHeavyCapsItalic", + "srcs": "fonts/UniSansHeavyCapsItalic.ttf" + }, + { + "name": "UniSansThin", + "srcs": "fonts/UniSansThin.otf" + } + ] + }, + { + "name": "ios_scroll", + "assets": [ + { + "name": "ios_scroll", + "srcs": "mobile/spines/ios/ios_scroll.skel", + "data": { + "spineSkeletonScale": 0.8 + } + } + ] + }, + { + "name": "atlases", + "assets": [ + { + "name": "ui", + "srcs": "mobile/spines/ui/ui.atlas" + } + ] + }, + { + "name": "intro", + "assets": [ + { + "name": "start_page_ui", + "srcs": "mobile/spines/ui/start_page_ui.skel", + "data": { + "spineAtlasAlias": "ui", + "spineAtlasFile": "mobile/spines/ui/ui.atlas", + "spineSkeletonScale": 0.4 + } + }, + { + "name": "start_page", + "srcs": "mobile/spines/startPage/startpage.skel", + "data": { + "spineSkeletonScale": 0.45 + } + } + ] + }, + { + "name": "ui", + "assets": [ + { + "name": "keyboard", + "srcs": "mobile/spines/ui/keyboard.skel", + "data": { + "spineAtlasAlias": "ui", + "spineAtlasFile": "mobile/spines/ui/ui.atlas", + "spineSkeletonScale": 0.4 + } + }, + { + "name": "autospins_settings", + "srcs": "mobile/spines/ui/autospin_settings.skel", + "data": { + "spineAtlasAlias": "ui", + "spineAtlasFile": "mobile/spines/ui/ui.atlas", + "spineSkeletonScale": 0.4 + } + }, + { + "name": "game_settings", + "srcs": "mobile/spines/ui/settings.skel", + "data": { + "spineAtlasAlias": "ui", + "spineAtlasFile": "mobile/spines/ui/ui.atlas", + "spineSkeletonScale": 0.26 + } + }, + { + "name": "buttons", + "srcs": "mobile/spines/ui/buttons.skel", + "data": { + "spineSkeletonScale": 0.5 + } + } + ] + }, + { + "name": "gameplay", + "assets": [ + { + "name": "slotMachine", + "srcs": "configs/slotMachine.json" + }, + { + "name": "main_game_background", + "srcs": "mobile/spines/gameviews/main_game_background.skel", + "data": { + "spineSkeletonScale": 0.305, + "spineAtlasAlias": "gameviews", + "spineAtlasFile": "mobile/spines/gameviews/gameview.atlas" + } + }, + { + "name": "respins_game_background", + "srcs": "mobile/spines/gameviews/respins_game_background.skel", + "data": { + "spineSkeletonScale": 0.3, + "spineAtlasAlias": "gameviews", + "spineAtlasFile": "mobile/spines/gameviews/gameview.atlas" + } + }, + { + "name": "freespins_game_background", + "srcs": "mobile/spines/gameviews/freespins_game_background.skel", + "data": { + "spineSkeletonScale": 0.3, + "spineAtlasAlias": "gameviews", + "spineAtlasFile": "mobile/spines/gameviews/gameview.atlas" + } + }, + { + "name": "reels", + "srcs": "mobile/spines/gameviews/reels.skel", + "data": { + "spineSkeletonScale": 0.305, + "spineAtlasAlias": "gameviews", + "spineAtlasFile": "mobile/spines/gameviews/gameview.atlas" + } + }, + { + "name": "transition", + "srcs": "mobile/spines/transition/transition.skel", + "data": { + "spineSkeletonScale": 0.32, + "spineAtlasAlias": "transition", + "spineAtlasFile": "mobile/spines/transition/transition.atlas" + } + }, + { + "name": "main_character_placeholder", + "srcs": "mobile/spines/gameviews/main_character_placeholder.skel", + "data": { + "spineSkeletonScale": 0.305, + "spineAtlasAlias": "gameviews", + "spineAtlasFile": "mobile/spines/gameviews/gameview.atlas" + } + }, + { + "name": "main_game_character", + "srcs": "mobile/spines/gameviews/main_game_character.skel", + "data": { + "spineSkeletonScale": 0.3 + } + }, + { + "name": "respins_character", + "srcs": "mobile/spines/gameviews/respins_character.skel", + "data": { + "spineSkeletonScale": 0.3 + } + }, + { + "name": "freespins_character_left", + "srcs": "mobile/spines/gameviews/freespins_character_left.skel", + "data": { + "spineSkeletonScale": 0.3 + } + }, + { + "name": "freespins_character_right", + "srcs": "mobile/spines/gameviews/freespins_character_right.skel", + "data": { + "spineSkeletonScale": 0.3 + } + }, + { + "name": "respins_character_placeholder", + "srcs": "mobile/spines/gameviews/respins_character_placeholder.skel", + "data": { + "spineSkeletonScale": 0.3, + "spineAtlasAlias": "gameviews", + "spineAtlasFile": "mobile/spines/gameviews/gameview.atlas" + } + }, + { + "name": "freespins_character_placeholder", + "srcs": "mobile/spines/gameviews/freespins_character_placeholder.skel", + "data": { + "spineSkeletonScale": 0.3, + "spineAtlasAlias": "gameviews", + "spineAtlasFile": "mobile/spines/gameviews/gameview.atlas" + } + }, + { + "name": "main_game_front", + "srcs": "mobile/spines/gameviews/main_game_front.skel", + "data": { + "spineSkeletonScale": 0.305, + "spineAtlasAlias": "gameviews", + "spineAtlasFile": "mobile/spines/gameviews/gameview.atlas" + } + }, + { + "name": "respins_game_front", + "srcs": "mobile/spines/gameviews/respins_game_front.skel", + "data": { + "spineSkeletonScale": 0.3, + "spineAtlasAlias": "gameviews", + "spineAtlasFile": "mobile/spines/gameviews/gameview.atlas" + } + }, + { + "name": "bonus_indicator", + "srcs": "mobile/spines/gameviews/bonus_indicator.skel", + "data": { + "spineSkeletonScale": 0.3, + "spineAtlasAlias": "gameviews", + "spineAtlasFile": "mobile/spines/gameviews/gameview.atlas" + } + }, + { + "name": "freespins_game_front", + "srcs": "mobile/spines/gameviews/freespins_game_front.skel", + "data": { + "spineSkeletonScale": 0.3, + "spineAtlasAlias": "gameviews", + "spineAtlasFile": "mobile/spines/gameviews/gameview.atlas" + } + }, + { + "name": "win_line", + "srcs": "textures/win_line.png" + }, + { + "name": "basic_win", + "srcs": "mobile/spines/wins/basic_win.skel", + "data": { + "spineAtlasAlias": "wins", + "spineAtlasFile": "mobile/spines/wins/wins.atlas" + } + }, + { + "name": "anticipation_back", + "srcs": "mobile/spines/anticipation/anticipation_back.skel", + "data": { + "spineSkeletonScale": 0.305, + "spineAtlasAlias": "anticipation", + "spineAtlasFile": "mobile/spines/anticipation/anticipation.atlas" + } + }, + { + "name": "anticipation_front", + "srcs": "mobile/spines/anticipation/anticipation_front.skel", + "data": { + "spineSkeletonScale": 0.305, + "spineAtlasAlias": "anticipation", + "spineAtlasFile": "mobile/spines/anticipation/anticipation.atlas" + } + }, + { + "name": "mini_paytable", + "srcs": "mobile/spines/mini-paytable/mini-paytable.skel", + "data": { + "spineSkeletonScale": 0.3194 + } + } + ] + }, + { + "name": "win_popups", + "assets": [ + { + "name": "win_popups", + "srcs": "mobile/spines/wins/wins.skel", + "data": { + "spineSkeletonScale": 0.32 + } + }, + { + "name": "win_popups_value", + "srcs": "mobile/spines/wins/value.skel", + "data": { + "spineAtlasAlias": "wins", + "spineAtlasFile": "mobile/spines/wins/wins.atlas", + "spineSkeletonScale": 0.32 + } + }, + { + "name": "win_popups_xbet_value", + "srcs": "mobile/spines/wins/xbet_value.skel", + "data": { + "spineAtlasAlias": "wins", + "spineAtlasFile": "mobile/spines/wins/wins.atlas", + "spineSkeletonScale": 0.32 + } + }, + { + "name": "win_popups_tap_to_continue", + "srcs": "mobile/spines/wins/tap_to_continue.skel", + "data": { + "spineAtlasAlias": "wins", + "spineAtlasFile": "mobile/spines/wins/wins.atlas", + "spineSkeletonScale": 0.32 + } + }, + { + "name": "wins_back", + "srcs": "mobile/spines/wins/wins_back.skel", + "data": { + "spineSkeletonScale": 0.32 + } + } + ] + }, + { + "name": "symbols", + "assets": [ + { + "name": "symbols_atlas", + "srcs": "mobile/spines/symbols/symbols.atlas" + }, + { + "name": "wild", + "srcs": "mobile/spines/symbols/wild_symbols.skel", + "data": { + "spineSkeletonScale": 0.3, + "spineAtlasAlias": "symbols_atlas", + "spineAtlasFile": "mobile/spines/symbols/symbols.atlas" + } + }, + { + "name": "middle_symbols", + "srcs": "mobile/spines/symbols/mid_symbols.skel", + "data": { + "spineSkeletonScale": 0.3, + "spineAtlasAlias": "symbols_atlas", + "spineAtlasFile": "mobile/spines/symbols/symbols.atlas" + } + }, + { + "name": "low_symbols", + "srcs": "mobile/spines/symbols/low_symbols.skel", + "data": { + "spineSkeletonScale": 0.3, + "spineAtlasAlias": "symbols_atlas", + "spineAtlasFile": "mobile/spines/symbols/symbols.atlas" + } + }, + { + "name": "high_symbols", + "srcs": "mobile/spines/symbols/high_symbols.skel", + "data": { + "spineSkeletonScale": 0.3, + "spineAtlasAlias": "symbols_atlas", + "spineAtlasFile": "mobile/spines/symbols/symbols.atlas" + } + }, + { + "name": "scatter", + "srcs": "mobile/spines/symbols/scatter.skel", + "data": { + "spineSkeletonScale": 0.3, + "spineAtlasAlias": "symbols_atlas", + "spineAtlasFile": "mobile/spines/symbols/symbols.atlas" + } + }, + { + "name": "sticky_frame", + "srcs": "mobile/spines/symbols/sticky_frame.skel", + "data": { + "spineSkeletonScale": 0.3, + "spineAtlasAlias": "symbols_atlas", + "spineAtlasFile": "mobile/spines/symbols/symbols.atlas" + } + }, + { + "name": "expanding", + "srcs": "mobile/spines/symbols/expanding/expanding_symbols.skel", + "data": { + "spineSkeletonScale": 0.3, + "spineAtlasAlias": "symbols_atlas", + "spineAtlasFile": "mobile/spines/symbols/expanding/expanding_symbols.atlas" + } + } + ] + }, + { + "name": "symbols_bonus", + "assets": [ + { + "name": "symbols_bonus", + "srcs": "mobile/spines/symbols/symbols_bonus.skel", + "data": { + "spineSkeletonScale": 0.31 + } + } + ] + }, + { + "name": "bonus_popups", + "assets": [ + { + "name": "popups_atlas", + "srcs": "mobile/spines/bonusPopups/popups.atlas" + }, + { + "name": "fs_start", + "srcs": "mobile/spines/bonusPopups/fs_start.skel", + "data": { + "spineSkeletonScale": 0.32, + "spineAtlasAlias": "popups_atlas", + "spineAtlasFile": "mobile/spines/bonusPopups/popups.atlas" + } + }, + { + "name": "fs_restore", + "srcs": "mobile/spines/bonusPopups/popups.skel", + "data": { + "spineSkeletonScale": 0.32, + "spineAtlasAlias": "popups_atlas", + "spineAtlasFile": "mobile/spines/bonusPopups/popups.atlas" + } + }, + { + "name": "respin_start", + "srcs": "mobile/spines/bonusPopups/respin_start.skel", + "data": { + "spineSkeletonScale": 0.32, + "spineAtlasAlias": "popups_atlas", + "spineAtlasFile": "mobile/spines/bonusPopups/popups.atlas" + } + }, + { + "name": "buy_bonus", + "srcs": "textures/buy_bonus.png" + }, + { + "name": "buy_freespins", + "srcs": "textures/buy_freespins.png" + }, + { + "name": "bet_feature", + "srcs": "textures/bet_feature.png" + } + ] + }, + { + "name": "paytable", + "assets": [ + { + "name": "paytable_atlas", + "srcs": "mobile/spines/paytable/paytable.atlas" + }, + { + "name": "paytable_slider", + "srcs": "mobile/spines/paytable/paytable.skel", + "data": { + "spineSkeletonScale": 0.3, + "spineAtlasAlias": "paytable_atlas", + "spineAtlasFile": "mobile/spines/paytable/paytable.atlas" + } + }, + { + "name": "paytable_page_1", + "srcs": "mobile/spines/paytable/paytable_page_1.skel", + "data": { + "spineSkeletonScale": 0.3, + "spineAtlasAlias": "paytable_atlas", + "spineAtlasFile": "mobile/spines/paytable/paytable.atlas" + } + }, + { + "name": "paytable_page_2", + "srcs": "mobile/spines/paytable/paytable_page_2.skel", + "data": { + "spineSkeletonScale": 0.3, + "spineAtlasAlias": "paytable_atlas", + "spineAtlasFile": "mobile/spines/paytable/paytable.atlas" + } + }, + { + "name": "paytable_page_3", + "srcs": "mobile/spines/paytable/paytable_page_3.skel", + "data": { + "spineSkeletonScale": 0.3, + "spineAtlasAlias": "paytable_atlas", + "spineAtlasFile": "mobile/spines/paytable/paytable.atlas" + } + }, + { + "name": "paytable_page_4", + "srcs": "mobile/spines/paytable/paytable_page_4.skel", + "data": { + "spineSkeletonScale": 0.3, + "spineAtlasAlias": "paytable_atlas", + "spineAtlasFile": "mobile/spines/paytable/paytable.atlas" + } + }, + { + "name": "paytable_page_5", + "srcs": "mobile/spines/paytable/paytable_page_5.skel", + "data": { + "spineSkeletonScale": 0.3, + "spineAtlasAlias": "paytable_atlas", + "spineAtlasFile": "mobile/spines/paytable/paytable.atlas" + } + }, + { + "name": "paytable_page_6", + "srcs": "mobile/spines/paytable/paytable_page_6.skel", + "data": { + "spineSkeletonScale": 0.3, + "spineAtlasAlias": "paytable_atlas", + "spineAtlasFile": "mobile/spines/paytable/paytable.atlas" + } + } + ] + }, + { + "name": "rules", + "assets": [ + { + "name": "rules_slider", + "srcs": "mobile/spines/rules/rules.skel", + "data": { + "spineSkeletonScale": 0.32 + } + } + ] + }, + { + "name": "locales", + "assets": [ + { + "name": "locales_config", + "srcs": "configs/locales.json" + }, + { + "name": "translations_config", + "srcs": "configs/translations.json" + } + ] + }, + { + "name": "sounds", + "assets": [ + { + "name": "monoAudioSprite", + "srcs": "sounds/monoAudioSprite.json" + }, + { + "name": "stereoAudioSprite", + "srcs": "sounds/stereoAudioSprite.json" + } + ] + } + ] +} diff --git a/src/assets/mobile/spines/anticipation/anticipation.atlas b/src/assets/mobile/spines/anticipation/anticipation.atlas new file mode 100644 index 0000000..eae3ebd --- /dev/null +++ b/src/assets/mobile/spines/anticipation/anticipation.atlas @@ -0,0 +1,28 @@ +anticipation.webp +size:852,272 +filter:Linear,Linear +scale:0.5 +anticip_bg_half +bounds:2,60,5,558 +offsets:0,0,5,559 +rotate:90 +anticip_circle_whole_source_1.4 +bounds:570,2,269,268 +offsets:286,297,572,586 +anticip_frame1_half +bounds:2,67,17,560 +rotate:90 +anticip_frame2_half +bounds:841,116,154,6 +rotate:90 +anticip_frame_glow1_half +bounds:2,86,36,566 +offsets:1,1,39,568 +rotate:90 +anticip_frame_glow2_half +bounds:2,35,179,23 +offsets:2,1,183,25 +anticip_glow +bounds:2,124,146,558 +offsets:213,18,572,586 +rotate:90 diff --git a/src/assets/mobile/spines/anticipation/anticipation.webp b/src/assets/mobile/spines/anticipation/anticipation.webp new file mode 100644 index 0000000..66d117f Binary files /dev/null and b/src/assets/mobile/spines/anticipation/anticipation.webp differ diff --git a/src/assets/mobile/spines/anticipation/anticipation_back.skel b/src/assets/mobile/spines/anticipation/anticipation_back.skel new file mode 100644 index 0000000..62e6205 Binary files /dev/null and b/src/assets/mobile/spines/anticipation/anticipation_back.skel differ diff --git a/src/assets/mobile/spines/anticipation/anticipation_front.skel b/src/assets/mobile/spines/anticipation/anticipation_front.skel new file mode 100644 index 0000000..7d99bdc Binary files /dev/null and b/src/assets/mobile/spines/anticipation/anticipation_front.skel differ diff --git a/src/assets/mobile/spines/bonusPopups/fs_start.skel b/src/assets/mobile/spines/bonusPopups/fs_start.skel new file mode 100644 index 0000000..caf62cc Binary files /dev/null and b/src/assets/mobile/spines/bonusPopups/fs_start.skel differ diff --git a/src/assets/mobile/spines/bonusPopups/popups.atlas b/src/assets/mobile/spines/bonusPopups/popups.atlas new file mode 100644 index 0000000..a3da1a4 --- /dev/null +++ b/src/assets/mobile/spines/bonusPopups/popups.atlas @@ -0,0 +1,122 @@ +popups.webp +size:1296,1040 +filter:Linear,Linear +scale:0.5 +YOU WON +bounds:828,11,152,47 +offsets:488,430,1126,541 +additional +bounds:1108,119,117,35 +offsets:504,151,1126,541 +free spins +bounds:640,35,186,46 +offsets:472,431,1126,541 +fs_abduction/fs_exw1_l +bounds:404,21,100,234 +offsets:392,144,1001,444 +rotate:90 +fs_abduction/fs_exw2_r +bounds:352,183,101,234 +offsets:509,143,1001,444 +rotate:90 +fs_abduction/fs_exw3_top +bounds:352,123,58,227 +offsets:473,158,1001,444 +rotate:90 +fs_abduction/fs_exw_shadow +bounds:640,83,189,121 +offsets:406,134,1001,444 +fs_abduction/fs_frame +bounds:894,274,275,110 +offsets:363,104,1001,444 +fs_abduction/fs_glow copy +bounds:734,603,292,193 +offsets:355,139,1001,444 +fs_abduction/fs_rays copy +bounds:2,333,390,271 +offsets:305,108,1001,444 +fs_abduction/fs_stone_l +bounds:894,386,116,251 +offsets:384,134,1001,444 +rotate:90 +fs_abduction/fs_stone_r +bounds:1028,660,116,251 +offsets:502,134,1001,444 +rotate:90 +fs_abduction/fs_stone_top +bounds:394,286,72,242 +offsets:466,150,1001,444 +rotate:90 +fs_abduction/fs_stone_top_s +bounds:640,206,82,252 +offsets:461,145,1001,444 +rotate:90 +fs_bg +bounds:2,606,730,432 +offsets:198,62,1126,541 +fs_column_left +bounds:894,206,66,200 +offsets:385,202,1126,541 +rotate:90 +fs_column_right +bounds:982,6,66,200 +offsets:674,202,1126,541 +rotate:90 +fs_glow1 +bounds:734,798,364,240 +offsets:381,194,1126,541 +fs_glow2 +bounds:644,504,490,97 +offsets:318,113,1126,541 +fs_light +bounds:644,290,248,212 +offsets:439,329,1126,541 +fs_stand +bounds:2,2,400,109 +offsets:363,133,1126,541 +fs_whell +bounds:394,360,248,244 +offsets:439,196,1126,541 +hg_glow +bounds:1100,778,260,155 +offsets:371,176,1001,444 +rotate:90 +hg_rays +bounds:2,113,348,218 +offsets:327,144,1001,444 +hg_stone_left +bounds:1136,510,148,144 +offsets:332,195,1001,444 +rotate:90 +hg_stone_right +bounds:831,60,148,144 +offsets:525,195,1001,444 +hg_stone_top +bounds:1147,386,122,116 +offsets:440,190,1001,444 +rotate:90 +hg_stone_top_s +bounds:981,74,130,125 +offsets:435,185,1001,444 +rotate:90 +hg_wild_1 +bounds:1171,269,115,102 +offsets:442,199,1001,444 +rotate:90 +hg_wild_2 +bounds:1108,156,113,111 +offsets:552,213,1001,444 +hg_wild_3 +bounds:1184,6,111,108 +offsets:341,215,1001,444 +rotate:90 +placeholder +bounds:588,234,50,50 +fs/placeholder +bounds:588,234,50,50 +placeholder2 +bounds:588,234,50,50 +tap to start +bounds:1257,888,150,27 +offsets:488,49,1126,541 +rotate:90 diff --git a/src/assets/mobile/spines/bonusPopups/popups.skel b/src/assets/mobile/spines/bonusPopups/popups.skel new file mode 100644 index 0000000..5f398ed Binary files /dev/null and b/src/assets/mobile/spines/bonusPopups/popups.skel differ diff --git a/src/assets/mobile/spines/bonusPopups/popups.webp b/src/assets/mobile/spines/bonusPopups/popups.webp new file mode 100644 index 0000000..a570854 Binary files /dev/null and b/src/assets/mobile/spines/bonusPopups/popups.webp differ diff --git a/src/assets/mobile/spines/bonusPopups/respin_start.skel b/src/assets/mobile/spines/bonusPopups/respin_start.skel new file mode 100644 index 0000000..5da9de3 Binary files /dev/null and b/src/assets/mobile/spines/bonusPopups/respin_start.skel differ diff --git a/src/assets/mobile/spines/gameviews/bonus_indicator.skel b/src/assets/mobile/spines/gameviews/bonus_indicator.skel new file mode 100644 index 0000000..706adf2 Binary files /dev/null and b/src/assets/mobile/spines/gameviews/bonus_indicator.skel differ diff --git a/src/assets/mobile/spines/gameviews/freespins_character_left.atlas b/src/assets/mobile/spines/gameviews/freespins_character_left.atlas new file mode 100644 index 0000000..3ae6ce4 --- /dev/null +++ b/src/assets/mobile/spines/gameviews/freespins_character_left.atlas @@ -0,0 +1,129 @@ +freespins_character_left.webp +size:1088,208 +filter:Linear,Linear +scale:0.5 +gameview_b2_char_m_belt +bounds:741,2,92,34 +rotate:90 +gameview_b2_char_m_eye_l +bounds:396,59,11,11 +gameview_b2_char_m_eye_r +bounds:409,59,10,11 +gameview_b2_char_m_eyebrow_l +bounds:588,84,19,9 +offsets:0,1,20,10 +gameview_b2_char_m_eyebrow_r +bounds:385,55,15,9 +offsets:0,1,15,10 +rotate:90 +gameview_b2_char_m_eyelid_l +bounds:777,3,11,6 +offsets:0,1,11,8 +gameview_b2_char_m_eyelid_r +bounds:790,3,10,6 +offsets:0,1,10,7 +gameview_b2_char_m_feather_big +bounds:928,109,19,55 +offsets:1,0,20,55 +rotate:90 +gameview_b2_char_m_feather_small +bounds:985,109,19,18 +offsets:0,1,19,19 +rotate:90 +gameview_b2_char_m_hair_l +bounds:932,7,26,49 +rotate:90 +gameview_b2_char_m_hair_top +bounds:329,2,51,33 +offsets:0,0,54,33 +rotate:90 +gameview_b2_char_m_hand1_r +bounds:869,106,100,57 +rotate:90 +gameview_b2_char_m_hand2_l +bounds:777,11,55,85 +gameview_b2_char_m_hand2_r +bounds:892,5,38,99 +offsets:3,0,42,101 +gameview_b2_char_m_hand_s_r +bounds:588,95,97,111 +offsets:0,10,97,121 +gameview_b2_char_m_head +bounds:555,3,55,74 +offsets:0,1,55,75 +gameview_b2_char_m_head_leaves +bounds:500,79,127,86 +rotate:90 +gameview_b2_char_m_headpiece_fthr1 +bounds:983,2,38,36 +rotate:90 +gameview_b2_char_m_headpiece_gld +bounds:221,4,52,45 +offsets:0,0,53,45 +gameview_b2_char_m_leaves1 +bounds:1042,123,18,24 +gameview_b2_char_m_leaves2 +bounds:1005,115,26,35 +offsets:16,0,42,35 +rotate:90 +gameview_b2_char_m_leg1_l +bounds:427,2,68,126 +rotate:90 +gameview_b2_char_m_leg1_r +bounds:687,96,76,110 +gameview_b2_char_m_leg2_l +bounds:275,4,45,52 +rotate:90 +gameview_b2_char_m_leg2_r +bounds:91,3,46,67 +rotate:90 +gameview_b2_char_m_leg3_l +bounds:1021,4,36,56 +offsets:0,1,37,57 +rotate:90 +gameview_b2_char_m_leg3_r +bounds:932,35,44,72 +gameview_b2_char_m_leg4_l +bounds:1032,149,57,53 +rotate:90 +gameview_b2_char_m_leg4_r +bounds:1035,61,52,45 +rotate:90 +gameview_b2_char_m_neck +bounds:300,55,83,151 +gameview_b2_char_m_necklaces +bounds:160,3,59,46 +gameview_b2_char_m_necklaces_s +bounds:364,4,61,49 +offsets:0,4,61,53 +gameview_b2_char_m_ribbons +bounds:2,47,70,159 +offsets:1,0,71,159 +gameview_b2_char_m_s +bounds:74,51,224,155 +offsets:3,29,234,217 +gameview_b2_char_m_shield +bounds:765,98,102,108 +gameview_b2_char_m_skirt1 +bounds:670,4,69,89 +gameview_b2_char_m_skirt2 +bounds:612,3,56,90 +offsets:0,0,58,90 +gameview_b2_char_m_skirt3 +bounds:928,130,59,76 +offsets:2,0,61,76 +gameview_b2_char_m_skirt_top +bounds:834,16,56,80 +offsets:0,0,57,80 +gameview_b2_char_m_stick +bounds:989,143,41,63 +gameview_b2_char_m_stick_s +bounds:978,42,55,65 +offsets:0,0,57,65 +gameview_b2_char_m_torso +bounds:385,72,113,134 +offsets:5,0,118,134 +gameview_b2_char_m_torso_shoulder +bounds:2,2,43,87 +offsets:0,0,44,87 +rotate:90 diff --git a/src/assets/mobile/spines/gameviews/freespins_character_left.skel b/src/assets/mobile/spines/gameviews/freespins_character_left.skel new file mode 100644 index 0000000..7f3852c Binary files /dev/null and b/src/assets/mobile/spines/gameviews/freespins_character_left.skel differ diff --git a/src/assets/mobile/spines/gameviews/freespins_character_left.webp b/src/assets/mobile/spines/gameviews/freespins_character_left.webp new file mode 100644 index 0000000..30a36e0 Binary files /dev/null and b/src/assets/mobile/spines/gameviews/freespins_character_left.webp differ diff --git a/src/assets/mobile/spines/gameviews/freespins_character_placeholder.skel b/src/assets/mobile/spines/gameviews/freespins_character_placeholder.skel new file mode 100644 index 0000000..72a53e4 Binary files /dev/null and b/src/assets/mobile/spines/gameviews/freespins_character_placeholder.skel differ diff --git a/src/assets/mobile/spines/gameviews/freespins_character_right.atlas b/src/assets/mobile/spines/gameviews/freespins_character_right.atlas new file mode 100644 index 0000000..1876203 --- /dev/null +++ b/src/assets/mobile/spines/gameviews/freespins_character_right.atlas @@ -0,0 +1,110 @@ +freespins_character_right.webp +size:300,524 +filter:Linear,Linear +scale:0.5 +gameview_b2_char_f_beads +bounds:167,6,42,23 +rotate:90 +gameview_b2_char_f_beads_s +bounds:192,33,44,26 +offsets:0,0,45,26 +gameview_b2_char_f_belt1 +bounds:255,448,74,43 +rotate:90 +gameview_b2_char_f_belt2 +bounds:126,162,61,72 +gameview_b2_char_f_belt2_s +bounds:235,237,63,72 +offsets:0,0,64,72 +gameview_b2_char_f_earring +bounds:145,40,8,16 +rotate:90 +gameview_b2_char_f_earring_l +bounds:70,15,6,14 +rotate:90 +gameview_b2_char_f_eye_l +bounds:217,237,8,9 +gameview_b2_char_f_eye_r +bounds:153,236,10,10 +gameview_b2_char_f_eyebrow_l +bounds:183,152,8,4 +offsets:0,1,8,5 +rotate:90 +gameview_b2_char_f_eyebrow_r +bounds:70,7,14,6 +gameview_b2_char_f_face +bounds:246,347,40,39 +rotate:90 +gameview_b2_char_f_feathers +bounds:283,207,28,15 +rotate:90 +gameview_b2_char_f_fell_l +bounds:192,4,37,27 +gameview_b2_char_f_fell_l_s +bounds:238,26,33,25 +offsets:1,0,34,25 +rotate:90 +gameview_b2_char_f_fell_r +bounds:126,3,39,35 +gameview_b2_char_f_fell_r_s +bounds:265,30,33,34 +gameview_b2_char_f_finger_l +bounds:283,186,15,19 +gameview_b2_char_f_finger_r +bounds:48,12,9,20 +rotate:90 +gameview_b2_char_f_fringe_l +bounds:126,119,41,55 +rotate:90 +gameview_b2_char_f_fringe_r +bounds:145,50,45,67 +gameview_b2_char_f_hair_back +bounds:189,123,49,61 +rotate:90 +gameview_b2_char_f_hand1_l +bounds:189,174,72,26 +rotate:90 +gameview_b2_char_f_hand1_r +bounds:252,121,51,28 +rotate:90 +gameview_b2_char_f_hand2_r +bounds:255,393,42,53 +gameview_b2_char_f_hand2_rl +bounds:250,66,28,53 +offsets:2,0,30,53 +gameview_b2_char_f_hide +bounds:2,236,149,151 +gameview_b2_char_f_hoop +bounds:231,3,35,21 +gameview_b2_char_f_leg1_l +bounds:86,40,57,77 +gameview_b2_char_f_leg1_r +bounds:2,9,44,98 +gameview_b2_char_f_leg2_l +bounds:79,119,45,115 +gameview_b2_char_f_leg2_r +bounds:2,109,75,125 +gameview_b2_char_f_neck +bounds:246,311,34,38 +offsets:0,1,34,39 +rotate:90 +gameview_b2_char_f_neckline +bounds:153,248,80,61 +gameview_b2_char_f_palm_l +bounds:282,135,16,37 +gameview_b2_char_f_palm_r +bounds:86,2,36,38 +offsets:0,0,36,39 +rotate:90 +gameview_b2_char_f_s +bounds:2,389,251,133 +offsets:4,4,262,143 +gameview_b2_char_f_skirt +bounds:153,311,91,76 +gameview_b2_char_f_skirt_s +bounds:48,23,84,36 +rotate:90 +gameview_b2_char_f_tassel +bounds:192,61,56,60 +gameview_b2_char_f_torso +bounds:217,174,64,61 diff --git a/src/assets/mobile/spines/gameviews/freespins_character_right.skel b/src/assets/mobile/spines/gameviews/freespins_character_right.skel new file mode 100644 index 0000000..647489f Binary files /dev/null and b/src/assets/mobile/spines/gameviews/freespins_character_right.skel differ diff --git a/src/assets/mobile/spines/gameviews/freespins_character_right.webp b/src/assets/mobile/spines/gameviews/freespins_character_right.webp new file mode 100644 index 0000000..951bf2a Binary files /dev/null and b/src/assets/mobile/spines/gameviews/freespins_character_right.webp differ diff --git a/src/assets/mobile/spines/gameviews/freespins_game_background.skel b/src/assets/mobile/spines/gameviews/freespins_game_background.skel new file mode 100644 index 0000000..adfdaa4 Binary files /dev/null and b/src/assets/mobile/spines/gameviews/freespins_game_background.skel differ diff --git a/src/assets/mobile/spines/gameviews/freespins_game_front.skel b/src/assets/mobile/spines/gameviews/freespins_game_front.skel new file mode 100644 index 0000000..25111f3 Binary files /dev/null and b/src/assets/mobile/spines/gameviews/freespins_game_front.skel differ diff --git a/src/assets/mobile/spines/gameviews/gameview.atlas b/src/assets/mobile/spines/gameviews/gameview.atlas new file mode 100644 index 0000000..83f4f8d --- /dev/null +++ b/src/assets/mobile/spines/gameviews/gameview.atlas @@ -0,0 +1,566 @@ +gameview.webp +size:2048,1996 +filter:Linear,Linear +scale:0.5 +gameview_b1_bushes_l1 +bounds:1557,817,192,144 +gameview_b1_bushes_l2 +bounds:573,1376,144,105 +gameview_b1_bushes_l3 +bounds:576,234,237,249 +rotate:90 +gameview_b1_bushes_l4 +bounds:845,373,221,188 +gameview_b1_bushes_l_s +bounds:2,386,249,177 +offsets:0,0,304,181 +gameview_b1_bushes_r1 +bounds:1731,1793,65,106 +offsets:7,0,72,109 +rotate:90 +gameview_b1_bushes_r2 +bounds:2,1509,78,109 +offsets:0,0,82,109 +rotate:90 +gameview_b1_bushes_r3 +bounds:978,1454,189,88 +offsets:3,1,192,92 +gameview_b1_bushes_r4 +bounds:1415,1449,199,89 +offsets:11,11,216,101 +gameview_b1_bushes_r5 +bounds:1407,1707,157,62 +offsets:3,1,160,64 +gameview_b1_bushes_r6 +bounds:1206,886,153,134 +offsets:4,0,157,138 +gameview_b1_bushes_r_s +bounds:667,473,176,207 +gameview_b1_indicator_bg +bounds:1458,1130,117,232 +rotate:90 +gameview_b1_indicator_bg_s +bounds:1751,789,147,261 +offsets:2,2,151,265 +rotate:90 +gameview_b1_indicator_stone1_bg +bounds:1118,1865,69,50 +gameview_b1_indicator_stone2_bg +bounds:1118,1865,69,50 +gameview_b1_indicator_stone3_bg +bounds:1118,1865,69,50 +gameview_b1_indicator_stone1_gem_off +bounds:183,1895,52,35 +gameview_b1_indicator_stone2_gem_off +bounds:183,1895,52,35 +gameview_b1_indicator_stone3_gem_off +bounds:183,1895,52,35 +gameview_b1_indicator_stone1_gem_on +bounds:237,1891,57,39 +gameview_b1_indicator_stone2_gem_on +bounds:237,1891,57,39 +gameview_b1_indicator_stone3_gem_on +bounds:237,1891,57,39 +gameview_b1_indicator_stone1_gem_on_eff +bounds:1877,1835,129,59 +offsets:0,1,130,61 +gameview_b1_indicator_stone2_gem_on_eff +bounds:1877,1835,129,59 +offsets:0,1,130,61 +gameview_b1_indicator_stone3_gem_on_eff +bounds:1877,1835,129,59 +offsets:0,1,130,61 +gameview_b1_reels_frame_angle1 +bounds:1896,1330,142,114 +gameview_b1_reels_frame_angle2 +bounds:1573,974,141,122 +offsets:0,0,142,122 +gameview_b1_reels_frame_angle2_back +bounds:1304,1471,109,89 +gameview_b1_reels_frame_angle_back +bounds:1669,1652,108,77 +gameview_b1_reels_frame_d +bounds:1277,1896,768,31 +offsets:5,3,778,37 +gameview_b1_reels_frame_d_back +bounds:644,1787,765,35 +offsets:8,3,778,38 +gameview_b1_reels_frame_gld_eff_angle1 +bounds:1781,1336,108,113 +offsets:1,1,133,115 +rotate:90 +gameview_b1_reels_frame_gld_eff_angle2 +bounds:320,1395,107,113 +offsets:1,1,109,115 +rotate:90 +gameview_b1_reels_frame_gld_eff_l +bounds:1521,1595,48,511 +offsets:1,1,50,513 +rotate:90 +gameview_b1_reels_frame_gld_eff_r +bounds:2,1589,48,511 +offsets:1,1,50,513 +rotate:90 +gameview_b1_reels_frame_gld_eff_u1 +bounds:690,1837,189,43 +offsets:1,1,191,45 +gameview_b1_reels_frame_gld_eff_u2 +bounds:881,1837,183,43 +offsets:1,1,185,45 +gameview_b1_reels_frame_l +bounds:515,1572,49,516 +offsets:5,8,64,525 +rotate:90 +gameview_b1_reels_frame_l_back +bounds:1302,1931,20,514 +offsets:0,8,20,522 +rotate:90 +gameview_b1_reels_frame_r +bounds:1480,1540,53,535 +offsets:9,0,62,536 +rotate:90 +gameview_b1_reels_frame_r_back +bounds:772,1946,19,528 +offsets:0,8,19,537 +rotate:90 +gameview_b1_reels_frame_u +bounds:2,1639,550,46 +gameview_b1_reels_frame_u_back +bounds:1460,1953,549,15 +offsets:0,0,550,15 +gameview_b1_reels_glow_l +bounds:2,184,197,553 +offsets:0,41,227,638 +rotate:90 +gameview_b1_reels_glow_r +bounds:1061,28,215,605 +offsets:16,25,231,662 +rotate:90 +gameview_b1_reels_s +bounds:2,847,934,88 +offsets:16,6,965,99 +gameview_b2_bushes_l31 +bounds:2,1854,46,106 +offsets:0,16,49,122 +rotate:90 +gameview_b2_bushes_l32 +bounds:152,1399,166,103 +offsets:0,3,166,106 +gameview_b2_bushes_l33 +bounds:380,1889,144,41 +offsets:0,5,144,48 +gameview_b2_bushes_l34 +bounds:435,1377,104,136 +rotate:90 +gameview_b2_bushes_l35 +bounds:2,1294,133,114 +gameview_b2_bushes_l36 +bounds:1566,1662,67,101 +offsets:0,1,67,102 +rotate:90 +gameview_b2_bushes_l37 +bounds:1535,1974,70,17 +gameview_b2_bushes_l_front +bounds:1303,258,353,194 +offsets:1,2,361,197 +gameview_b2_bushes_r21 +bounds:1033,1544,167,77 +gameview_b2_bushes_r22 +bounds:1411,1771,221,51 +gameview_b2_bushes_r23 +bounds:1413,1007,121,158 +rotate:90 +gameview_b2_bushes_r24 +bounds:1361,870,194,135 +gameview_b2_bushes_small_l12 +bounds:1570,1249,155,110 +offsets:1,1,157,112 +gameview_b2_bushes_small_l22 +bounds:1692,1098,181,118 +offsets:0,1,182,120 +gameview_b2_bushes_small_r1 +bounds:1727,1218,188,110 +offsets:1,1,189,111 +gameview_b2_palm1 +bounds:938,739,251,151 +offsets:0,2,251,155 +gameview_b2_palm2 +bounds:1875,1089,119,122 +offsets:6,15,126,138 +rotate:90 +gameview_b2_palm3 +bounds:671,682,190,163 +offsets:1,25,192,188 +gameview_b2_palm4 +bounds:1554,619,196,191 +offsets:0,0,201,193 +rotate:90 +gameview_b2_palm5 +bounds:1068,321,194,233 +offsets:0,0,199,254 +rotate:90 +gameview_b2_palm6 +bounds:453,1483,87,261 +offsets:1,0,88,261 +rotate:90 +gameview_b2_reel_glow_l +bounds:2,728,117,667 +offsets:0,29,138,713 +rotate:90 +gameview_b2_reel_glow_r +bounds:909,1255,104,659 +offsets:19,24,123,698 +rotate:90 +gameview_b2_reels_frame_d +bounds:1189,1860,686,34 +offsets:0,1,686,35 +gameview_b2_reels_frame_gld_l +bounds:803,1144,109,477 +offsets:0,0,109,496 +rotate:90 +gameview_b2_reels_frame_gld_r +bounds:2,1067,109,480 +offsets:0,0,109,495 +rotate:90 +gameview_b2_reels_frame_gld_u +bounds:2,1932,651,19 +offsets:2,0,655,19 +gameview_b2_reels_frame_l +bounds:2,565,161,663 +offsets:0,1,161,664 +rotate:90 +gameview_b2_reels_frame_l_back +bounds:163,1846,34,525 +rotate:90 +gameview_b2_reels_frame_mask_eff_l +bounds:627,1174,112,174 +offsets:1,1,114,176 +rotate:90 +gameview_b2_reels_frame_mask_eff_r +bounds:1282,1141,112,174 +offsets:1,1,114,176 +rotate:90 +gameview_b2_reels_frame_r +bounds:1367,454,161,663 +offsets:0,1,161,664 +rotate:90 +gameview_b2_reels_frame_r_back +bounds:589,1882,33,527 +rotate:90 +gameview_b2_reels_frame_u +bounds:1066,1824,663,34 +offsets:0,0,663,35 +gameview_b2_reels_frame_u_back +bounds:640,1967,663,12 +gameview_b2_reels_s +bounds:2,937,1031,83 +offsets:6,9,1052,96 +gameview_bonus2_mist_source +bounds:1668,2,241,245 +offsets:4,9,258,259 +rotate:90 +gameview_m_bushes_l1 +bounds:1374,680,178,188 +gameview_m_bushes_l2 +bounds:253,383,321,180 +offsets:13,7,334,187 +gameview_m_bushes_l3 +bounds:1191,710,181,158 +gameview_m_bushes_l4 +bounds:484,1055,131,121 +offsets:0,0,131,122 +gameview_m_bushes_l5 +bounds:1658,245,207,270 +rotate:90 +gameview_m_bushes_l6 +bounds:1167,517,198,191 +gameview_m_bushes_l_s +bounds:863,563,302,174 +offsets:0,0,302,175 +gameview_m_bushes_r1 +bounds:113,1508,79,109 +offsets:3,0,82,109 +rotate:90 +gameview_m_bushes_r10 +bounds:1169,1443,99,124 +offsets:0,0,99,125 +rotate:90 +gameview_m_bushes_r11 +bounds:719,1376,223,105 +offsets:1,12,236,117 +gameview_m_bushes_r12 +bounds:1716,963,188,124 +offsets:0,0,206,126 +gameview_m_bushes_r13 +bounds:1795,1714,215,60 +offsets:0,0,223,60 +gameview_m_bushes_r14 +bounds:1906,938,134,149 +offsets:0,7,148,162 +gameview_m_bushes_r15 +bounds:1035,892,128,169 +offsets:0,0,129,190 +rotate:90 +gameview_m_bushes_r16 +bounds:2,1410,148,96 +offsets:0,0,160,96 +gameview_m_bushes_r17 +bounds:716,1483,87,260 +offsets:0,7,88,272 +rotate:90 +gameview_m_bushes_r2 +bounds:1616,1449,189,89 +offsets:0,0,192,92 +gameview_m_bushes_r3 +bounds:1807,1446,203,92 +offsets:3,9,216,101 +gameview_m_bushes_r4 +bounds:1634,1731,159,60 +offsets:1,4,160,64 +gameview_m_bushes_r5 +bounds:1325,1562,72,153 +offsets:0,0,89,160 +rotate:90 +gameview_m_bushes_r6 +bounds:617,1054,179,118 +offsets:0,0,180,132 +gameview_m_bushes_r7 +bounds:1202,1544,77,100 +offsets:1,0,78,102 +rotate:90 +gameview_m_bushes_r8 +bounds:1917,1210,118,125 +offsets:0,8,119,133 +rotate:90 +gameview_m_bushes_r9 +bounds:1747,617,235,170 +offsets:19,0,256,185 +gameview_m_bushes_r_s +bounds:827,87,284,232 +offsets:0,0,301,235 +rotate:90 +gameview_m_reel_glow_l +bounds:798,1022,117,613 +offsets:0,28,139,653 +rotate:90 +gameview_m_reel_glow_r +bounds:2,1178,108,623 +offsets:24,5,132,646 +rotate:90 +gameview_m_reel_glow_u +bounds:137,1288,770,86 +offsets:76,5,878,100 +gameview_m_reel_s +bounds:944,1361,835,80 +offsets:9,3,853,87 +gameview_m_reels_frame_d +bounds:554,1623,769,45 +gameview_m_reels_frame_d_back +bounds:45,1981,768,10 +gameview_m_reels_frame_glow_d +bounds:636,1670,713,39 +offsets:1,1,715,42 +gameview_m_reels_frame_glow_l +bounds:2,1730,39,632 +offsets:4,1,44,634 +rotate:90 +gameview_m_reels_frame_glow_r +bounds:2,1687,41,632 +offsets:1,1,43,634 +rotate:90 +gameview_m_reels_frame_glow_u +bounds:642,1749,668,36 +offsets:1,1,670,37 +gameview_m_reels_frame_l +bounds:2,1809,35,640 +rotate:90 +gameview_m_reels_frame_l_back +bounds:815,1981,10,639 +rotate:90 +gameview_m_reels_frame_r +bounds:2,1771,36,638 +rotate:90 +gameview_m_reels_frame_r_back +bounds:2,1969,10,636 +offsets:0,1,10,638 +rotate:90 +gameview_m_reels_frame_u +bounds:636,1711,769,36 +offsets:0,0,769,42 +gameview_m_reels_frame_u_back +bounds:2,1953,768,12 +gameview_m_temple_fire1 +bounds:869,1917,27,303 +offsets:9,4,41,324 +rotate:90 +gameview_m_temple_fire4 +bounds:1351,1636,69,168 +offsets:3,9,87,183 +rotate:90 +gameview_m_temple_fire_particles1 +bounds:1865,1970,21,170 +offsets:1,1,23,172 +rotate:90 +indicator_effect/effect_00000 +bounds:1456,1981,12,10 +offsets:23,0,37,27 +indicator_effect/effect_00001 +bounds:1516,1977,17,14 +offsets:17,0,37,27 +indicator_effect/effect_00002 +bounds:1658,1973,20,18 +offsets:14,0,37,27 +indicator_effect/effect_00003 +bounds:1680,1973,20,18 +offsets:14,0,37,27 +indicator_effect/effect_00004 +bounds:1815,1972,23,19 +offsets:11,0,37,27 +indicator_effect/effect_00005 +bounds:1840,1971,23,20 +offsets:10,0,37,27 +indicator_effect/effect_00006 +bounds:1337,1957,27,22 +offsets:7,0,37,27 +indicator_effect/effect_00007 +bounds:1366,1954,31,25 +offsets:3,0,37,27 +indicator_effect/effect_00008 +bounds:1399,1954,31,25 +offsets:3,0,37,27 +indicator_effect/effect_00009 +bounds:2011,1942,33,26 +offsets:1,0,37,27 +indicator_effect/effect_00010 +bounds:1174,1917,33,27 +offsets:1,0,37,27 +indicator_effect/effect_00011 +bounds:722,1925,32,26 +offsets:1,1,37,27 +indicator_effect/effect_00012 +bounds:836,1918,31,26 +offsets:1,1,37,27 +indicator_effect/effect_00013 +bounds:836,1918,31,26 +offsets:1,1,37,27 +indicator_effect/effect_00014 +bounds:1305,1958,30,21 +offsets:1,6,37,27 +indicator_effect/effect_00015 +bounds:1432,1954,25,26 +offsets:2,1,37,27 +rotate:90 +indicator_effect/effect_00016 +bounds:1470,1981,16,10 +offsets:2,16,37,27 +indicator_effect/effect_00017 +bounds:1488,1981,14,10 +offsets:3,16,37,27 +indicator_effect/effect_00018 +bounds:1488,1981,14,10 +offsets:3,16,37,27 +indicator_effect/effect_00019 +bounds:1504,1981,10,10 +offsets:4,16,37,27 +logo_bg +bounds:1839,1776,190,57 +logo_frame +bounds:224,1504,227,83 +logo_jag +bounds:526,1889,61,41 +logo_jag_crwn +bounds:296,1890,82,40 +logo_jag_crwn_s +bounds:1209,1911,66,33 +offsets:0,1,66,35 +logo_jag_eyes +bounds:2,1983,41,8 +logo_jag_eyes_glow +bounds:1607,1974,49,17 +offsets:1,1,51,19 +logo_jag_s +bounds:1702,1973,81,18 +offsets:0,0,82,18 +logo_s +bounds:1779,1645,230,67 +offsets:0,1,230,70 +logo_txt_amazon +bounds:2,1902,179,28 +logo_txt_amazon_eff +bounds:1818,1929,175,22 +offsets:0,1,175,24 +logo_txt_city +bounds:655,1926,65,25 +offsets:0,0,66,25 +logo_txt_gold +bounds:756,1919,78,25 +logo_txt_of +bounds:1785,1973,28,18 +placeholder +bounds:110,1849,51,51 + +gameview_2.webp +size:2032,1772 +filter:Linear,Linear +scale:0.5 +gameview_b1_base1 +bounds:673,1004,829,467 +gameview_b1_base2 +bounds:1560,940,829,467 +rotate:90 +gameview_b1_base3 +bounds:2,535,829,467 +gameview_b1_base4 +bounds:833,471,829,467 +gameview_b2_base1 +bounds:2,66,829,467 +gameview_b2_base2 +bounds:833,2,829,467 +gameview_b2_gld_eff_l +bounds:2,1174,669,311 +offsets:0,0,698,323 +gameview_b2_gld_eff_r +bounds:2,1487,688,282 +offsets:10,0,698,295 +gameview_m_temple +bounds:1083,1473,475,296 +offsets:16,2,492,299 +gameview_m_temple_glow +bounds:692,1481,389,288 +offsets:36,31,571,353 + +gameview_3.webp +size:1664,1996 +filter:Linear,Linear +scale:0.5 +gameview_b1_temple_front_vines +bounds:2,75,510,843 +offsets:0,56,510,899 +rotate:90 +gameview_b2_base3 +bounds:2,1525,829,467 +gameview_b2_base4 +bounds:833,1525,829,467 +gameview_b2_reels_bg +bounds:847,2,726,583 +offsets:0,23,727,606 +gameview_m_base1 +bounds:2,1056,829,467 +gameview_m_base2 +bounds:833,1056,829,467 +gameview_m_base3 +bounds:2,587,829,467 +gameview_m_base4 +bounds:833,587,829,467 + +gameview_4.webp +size:1312,748 +filter:Linear,Linear +scale:0.5 +gameview_b1_reels_bg +bounds:715,2,743,595 +rotate:90 +gameview_m_reels_frame_base +bounds:2,5,740,711 +offsets:53,9,839,721 +rotate:90 diff --git a/src/assets/mobile/spines/gameviews/gameview.webp b/src/assets/mobile/spines/gameviews/gameview.webp new file mode 100644 index 0000000..322a30f Binary files /dev/null and b/src/assets/mobile/spines/gameviews/gameview.webp differ diff --git a/src/assets/mobile/spines/gameviews/gameview_2.webp b/src/assets/mobile/spines/gameviews/gameview_2.webp new file mode 100644 index 0000000..0e0d21a Binary files /dev/null and b/src/assets/mobile/spines/gameviews/gameview_2.webp differ diff --git a/src/assets/mobile/spines/gameviews/gameview_3.webp b/src/assets/mobile/spines/gameviews/gameview_3.webp new file mode 100644 index 0000000..ff655b9 Binary files /dev/null and b/src/assets/mobile/spines/gameviews/gameview_3.webp differ diff --git a/src/assets/mobile/spines/gameviews/gameview_4.webp b/src/assets/mobile/spines/gameviews/gameview_4.webp new file mode 100644 index 0000000..f3aa61b Binary files /dev/null and b/src/assets/mobile/spines/gameviews/gameview_4.webp differ diff --git a/src/assets/mobile/spines/gameviews/main_character_placeholder.skel b/src/assets/mobile/spines/gameviews/main_character_placeholder.skel new file mode 100644 index 0000000..8054835 Binary files /dev/null and b/src/assets/mobile/spines/gameviews/main_character_placeholder.skel differ diff --git a/src/assets/mobile/spines/gameviews/main_game_background.skel b/src/assets/mobile/spines/gameviews/main_game_background.skel new file mode 100644 index 0000000..3511988 Binary files /dev/null and b/src/assets/mobile/spines/gameviews/main_game_background.skel differ diff --git a/src/assets/mobile/spines/gameviews/main_game_character.atlas b/src/assets/mobile/spines/gameviews/main_game_character.atlas new file mode 100644 index 0000000..1cd14f8 --- /dev/null +++ b/src/assets/mobile/spines/gameviews/main_game_character.atlas @@ -0,0 +1,115 @@ +main_game_character.webp +size:524,524 +filter:Linear,Linear +scale:0.5 +gameview_m_char_belt_back +bounds:146,41,94,56 +rotate:90 +gameview_m_char_belt_decor1 +bounds:204,12,65,64 +gameview_m_char_belt_decor1_s +bounds:430,178,68,67 +offsets:0,1,69,68 +rotate:90 +gameview_m_char_belt_decor3 +bounds:430,70,41,45 +gameview_m_char_belt_feathers1_l +bounds:489,317,33,36 +gameview_m_char_belt_feathers1_r +bounds:2,2,29,33 +gameview_m_char_belt_feathers2_l +bounds:430,32,36,40 +rotate:90 +gameview_m_char_belt_feathers2_r +bounds:146,2,28,37 +gameview_m_char_cane +bounds:2,37,32,485 +gameview_m_char_hair_l +bounds:408,117,28,57 +gameview_m_char_hair_r +bounds:489,258,29,57 +gameview_m_char_hand_l1 +bounds:451,407,66,115 +gameview_m_char_hand_l2 +bounds:473,74,31,45 +gameview_m_char_hand_r1 +bounds:449,355,50,73 +rotate:90 +gameview_m_char_hand_r2 +bounds:204,78,40,84 +gameview_m_char_hand_r3 +bounds:378,25,31,48 +rotate:90 +gameview_m_char_hand_rs +bounds:271,13,11,48 +rotate:90 +gameview_m_char_head +bounds:271,26,52,62 +gameview_m_char_head_brows +bounds:172,315,30,4 +gameview_m_char_head_earring_l +bounds:493,151,25,29 +rotate:90 +gameview_m_char_head_earring_r +bounds:449,327,24,26 +gameview_m_char_head_eye_l +bounds:246,78,11,10 +gameview_m_char_head_eye_r +bounds:328,314,11,11 +gameview_m_char_head_eyelid_l +bounds:489,248,12,8 +offsets:0,0,13,8 +gameview_m_char_head_eyelid_r +bounds:194,149,13,8 +rotate:90 +gameview_m_char_head_fthr_; +bounds:352,243,70,82 +gameview_m_char_head_fthr_r +bounds:352,176,65,76 +rotate:90 +gameview_m_char_head_fthr_top_l +bounds:353,115,53,59 +gameview_m_char_head_fthr_top_r +bounds:378,58,50,55 +gameview_m_char_head_helmet +bounds:424,248,77,63 +rotate:90 +gameview_m_char_head_helmet_s +bounds:325,12,49,34 +offsets:0,0,50,34 +gameview_m_char_head_l_s +bounds:297,106,54,60 +gameview_m_char_head_r_s +bounds:325,48,51,56 +gameview_m_char_leg_l1 +bounds:256,168,52,140 +gameview_m_char_leg_l2 +bounds:143,137,49,159 +gameview_m_char_leg_r1 +bounds:310,183,40,125 +gameview_m_char_leg_r2 +bounds:194,164,60,144 +gameview_m_char_s +bounds:36,112,184,105 +offsets:3,7,198,114 +rotate:90 +gameview_m_char_shoulder_l +bounds:246,90,72,49 +rotate:90 +gameview_m_char_shoulder_r +bounds:438,121,53,55 +gameview_m_char_skirt1 +bounds:328,327,119,91 +gameview_m_char_skirt1_s +bounds:328,420,121,102 +offsets:7,1,128,103 +gameview_m_char_skirt2 +bounds:36,2,108,108 +gameview_m_char_skirt3 +bounds:172,321,61,201 +gameview_m_char_skirt_back +bounds:36,298,134,224 +gameview_m_char_torso +bounds:235,374,91,148 +gameview_m_char_torso_s +bounds:235,310,91,62 diff --git a/src/assets/mobile/spines/gameviews/main_game_character.skel b/src/assets/mobile/spines/gameviews/main_game_character.skel new file mode 100644 index 0000000..4b9d7f2 Binary files /dev/null and b/src/assets/mobile/spines/gameviews/main_game_character.skel differ diff --git a/src/assets/mobile/spines/gameviews/main_game_character.webp b/src/assets/mobile/spines/gameviews/main_game_character.webp new file mode 100644 index 0000000..20ec0a3 Binary files /dev/null and b/src/assets/mobile/spines/gameviews/main_game_character.webp differ diff --git a/src/assets/mobile/spines/gameviews/main_game_front.skel b/src/assets/mobile/spines/gameviews/main_game_front.skel new file mode 100644 index 0000000..4178967 Binary files /dev/null and b/src/assets/mobile/spines/gameviews/main_game_front.skel differ diff --git a/src/assets/mobile/spines/gameviews/reels.skel b/src/assets/mobile/spines/gameviews/reels.skel new file mode 100644 index 0000000..d818945 Binary files /dev/null and b/src/assets/mobile/spines/gameviews/reels.skel differ diff --git a/src/assets/mobile/spines/gameviews/respins_character.atlas b/src/assets/mobile/spines/gameviews/respins_character.atlas new file mode 100644 index 0000000..e325639 --- /dev/null +++ b/src/assets/mobile/spines/gameviews/respins_character.atlas @@ -0,0 +1,140 @@ +respins_character.webp +size:1428,272 +filter:Linear,Linear +scale:0.5 +gameview_b1_char_belt +bounds:1189,8,40,131 +rotate:90 +gameview_b1_char_belt_s +bounds:1034,37,45,79 +offsets:0,0,46,79 +gameview_b1_char_chestpiece +bounds:1081,50,123,66 +offsets:0,0,123,71 +gameview_b1_char_chestpiece_decor +bounds:1371,40,38,38 +gameview_b1_char_chestpiece_decor_s +bounds:1147,7,40,41 +offsets:1,1,42,43 +gameview_b1_char_chestpiece_s +bounds:1311,208,115,62 +gameview_b1_char_cloak_back +bounds:1175,146,52,124 +gameview_b1_char_eye_l +bounds:191,62,14,14 +gameview_b1_char_eye_r +bounds:585,102,10,10 +gameview_b1_char_eyelid_l +bounds:248,78,12,7 +rotate:90 +gameview_b1_char_eyelid_r +bounds:812,11,9,6 +rotate:90 +gameview_b1_char_hair_back +bounds:812,22,47,90 +gameview_b1_char_hair_decor +bounds:903,118,152,134 +rotate:90 +gameview_b1_char_hair_decor_eff +bounds:1039,118,152,134 +rotate:90 +gameview_b1_char_hand1_l +bounds:1271,147,37,123 +offsets:0,0,37,124 +gameview_b1_char_hand1_r +bounds:94,60,95,210 +gameview_b1_char_hand2_l +bounds:749,8,61,104 +offsets:0,0,62,104 +gameview_b1_char_hand2_l_glow +bounds:1350,171,35,63 +offsets:1,0,39,64 +rotate:90 +gameview_b1_char_hand2_r +bounds:201,2,53,58 +offsets:0,0,53,59 +gameview_b1_char_hand2_r_glow +bounds:42,4,17,55 +offsets:1,1,18,56 +rotate:90 +gameview_b1_char_hand3_r +bounds:996,5,36,111 +gameview_b1_char_head +bounds:99,2,56,76 +offsets:0,1,56,77 +rotate:90 +gameview_b1_char_head_bandage +bounds:2,2,38,19 +gameview_b1_char_head_bandage_s +bounds:207,64,41,12 +offsets:1,1,43,13 +gameview_b1_char_head_feathers1 +bounds:248,92,178,111 +rotate:90 +gameview_b1_char_head_feathers1_eff +bounds:361,93,177,104 +rotate:90 +gameview_b1_char_head_feathers2_back +bounds:1310,148,38,58 +gameview_b1_char_head_leopard +bounds:1206,50,66,62 +rotate:90 +gameview_b1_char_head_leopard_s +bounds:1322,30,48,47 +offsets:1,1,50,48 +rotate:90 +gameview_b1_char_head_s +bounds:1175,118,35,26 +offsets:0,5,37,31 +gameview_b1_char_legs1_l +bounds:926,3,68,113 +gameview_b1_char_legs1_l_glow +bounds:1349,80,50,57 +offsets:0,10,50,67 +rotate:90 +gameview_b1_char_legs2_l +bounds:191,78,55,192 +gameview_b1_char_legs_r +bounds:2,23,90,247 +offsets:17,0,107,273 +gameview_b1_char_legs_r_glow +bounds:1034,9,26,46 +rotate:90 +gameview_b1_char_necklace +bounds:1311,86,60,36 +rotate:90 +gameview_b1_char_necklace_s +bounds:1270,81,64,39 +rotate:90 +gameview_b1_char_s +bounds:585,114,316,156 +offsets:10,12,335,177 +gameview_b1_char_shield +bounds:604,7,105,143 +rotate:90 +gameview_b1_char_shield_leaves1 +bounds:861,4,26,63 +rotate:90 +gameview_b1_char_shield_leaves2 +bounds:1082,7,41,63 +rotate:90 +gameview_b1_char_shield_leaves3 +bounds:861,32,45,80 +gameview_b1_char_shield_leaves4 +bounds:177,2,22,56 +offsets:0,0,22,66 +gameview_b1_char_shield_leaves5 +bounds:1350,132,37,61 +rotate:90 +gameview_b1_char_shield_leaves6 +bounds:413,9,63,82 +gameview_b1_char_skirt +bounds:478,4,124,90 +gameview_b1_char_skirt_back +bounds:1229,147,123,40 +rotate:90 +gameview_b1_char_torso +bounds:467,96,116,174 +gameview_b1_char_torso_glow +bounds:257,3,87,154 +rotate:90 diff --git a/src/assets/mobile/spines/gameviews/respins_character.skel b/src/assets/mobile/spines/gameviews/respins_character.skel new file mode 100644 index 0000000..2b65cc4 Binary files /dev/null and b/src/assets/mobile/spines/gameviews/respins_character.skel differ diff --git a/src/assets/mobile/spines/gameviews/respins_character.webp b/src/assets/mobile/spines/gameviews/respins_character.webp new file mode 100644 index 0000000..ce13e2b Binary files /dev/null and b/src/assets/mobile/spines/gameviews/respins_character.webp differ diff --git a/src/assets/mobile/spines/gameviews/respins_character_placeholder.skel b/src/assets/mobile/spines/gameviews/respins_character_placeholder.skel new file mode 100644 index 0000000..698faf0 Binary files /dev/null and b/src/assets/mobile/spines/gameviews/respins_character_placeholder.skel differ diff --git a/src/assets/mobile/spines/gameviews/respins_game_background.skel b/src/assets/mobile/spines/gameviews/respins_game_background.skel new file mode 100644 index 0000000..bce2043 Binary files /dev/null and b/src/assets/mobile/spines/gameviews/respins_game_background.skel differ diff --git a/src/assets/mobile/spines/gameviews/respins_game_front.skel b/src/assets/mobile/spines/gameviews/respins_game_front.skel new file mode 100644 index 0000000..91d457f Binary files /dev/null and b/src/assets/mobile/spines/gameviews/respins_game_front.skel differ diff --git a/src/assets/mobile/spines/ios/ios_scroll.atlas b/src/assets/mobile/spines/ios/ios_scroll.atlas new file mode 100644 index 0000000..4045bda --- /dev/null +++ b/src/assets/mobile/spines/ios/ios_scroll.atlas @@ -0,0 +1,13 @@ +ios_scroll.webp +size:576,184 +filter:Linear,Linear +images/arrow-up +bounds:2,2,178,452 +offsets:19,17,216,490 +rotate:90 +images/hand +bounds:456,59,121,117 +offsets:0,1,122,118 +rotate:90 +images/whiteTexture +bounds:456,47,10,10 diff --git a/src/assets/mobile/spines/ios/ios_scroll.skel b/src/assets/mobile/spines/ios/ios_scroll.skel new file mode 100644 index 0000000..8fbbc7e Binary files /dev/null and b/src/assets/mobile/spines/ios/ios_scroll.skel differ diff --git a/src/assets/mobile/spines/ios/ios_scroll.webp b/src/assets/mobile/spines/ios/ios_scroll.webp new file mode 100644 index 0000000..f2d688b Binary files /dev/null and b/src/assets/mobile/spines/ios/ios_scroll.webp differ diff --git a/src/assets/mobile/spines/mini-paytable/mini-paytable.atlas b/src/assets/mobile/spines/mini-paytable/mini-paytable.atlas new file mode 100644 index 0000000..47844d9 --- /dev/null +++ b/src/assets/mobile/spines/mini-paytable/mini-paytable.atlas @@ -0,0 +1,18 @@ +mini-paytable.webp +size:1688,728 +filter:Linear,Linear +glow1 +bounds:466,16,448,708 +offsets:1,1,450,710 +glow2 +bounds:2,2,462,722 +offsets:2,2,466,726 +placeholder +bounds:1324,30,100,100 +offsets:1,1,102,102 +stone +bounds:1324,132,360,592 +offsets:1,1,362,594 +stone_shadow +bounds:916,86,406,638 +offsets:1,1,408,640 diff --git a/src/assets/mobile/spines/mini-paytable/mini-paytable.skel b/src/assets/mobile/spines/mini-paytable/mini-paytable.skel new file mode 100644 index 0000000..9ce113d Binary files /dev/null and b/src/assets/mobile/spines/mini-paytable/mini-paytable.skel differ diff --git a/src/assets/mobile/spines/mini-paytable/mini-paytable.webp b/src/assets/mobile/spines/mini-paytable/mini-paytable.webp new file mode 100644 index 0000000..9ee1c7f Binary files /dev/null and b/src/assets/mobile/spines/mini-paytable/mini-paytable.webp differ diff --git a/src/assets/mobile/spines/paytable/paytable.atlas b/src/assets/mobile/spines/paytable/paytable.atlas new file mode 100644 index 0000000..59de270 --- /dev/null +++ b/src/assets/mobile/spines/paytable/paytable.atlas @@ -0,0 +1,115 @@ +paytable.webp +size:2048,512 +filter:Linear,Linear +scale:0.5 +Xbutton_all +bounds:1977,412,25,25 +arrow_l_button +bounds:1653,70,41,71 +arrow_l_button_h +bounds:233,2,41,71 +rotate:90 +arrow_r_button +bounds:306,2,41,71 +rotate:90 +arrow_r_button_h +bounds:379,2,41,71 +rotate:90 +iconScatter_symbols1 +bounds:1275,361,146,149 +offsets:2,1,150,150 +iconWild_symbols1 +bounds:2,48,240,139 +offsets:0,1,240,140 +icon_h1 +bounds:1275,216,142,143 +offsets:4,3,150,150 +icon_h2 +bounds:1423,369,141,141 +offsets:5,5,150,150 +icon_l1 +bounds:1360,32,48,72 +offsets:40,28,128,128 +icon_l2 +bounds:1977,439,66,71 +offsets:31,28,128,128 +icon_l3 +bounds:1697,284,78,77 +offsets:25,25,128,128 +icon_l4 +bounds:1276,23,81,82 +offsets:24,23,128,128 +rotate:90 +icon_l5 +bounds:381,80,107,88 +offsets:11,20,128,128 +rotate:90 +icon_m1 +bounds:1156,45,118,118 +offsets:16,16,150,150 +icon_m2 +bounds:1413,29,118,118 +offsets:16,16,150,150 +icon_m3 +bounds:1533,23,118,118 +offsets:16,16,150,150 +pagebuttons_features1 +bounds:2,35,229,11 +pagebuttons_features2 +bounds:1566,389,229,11 +pagebuttons_features3 +bounds:2,22,229,11 +pagebuttons_paylines +bounds:1566,376,229,11 +pagebuttons_symbols1 +bounds:2,9,229,11 +pagebuttons_symbols2 +bounds:1566,363,229,11 +paylines_1 +bounds:244,79,135,108 +paylines_10 +bounds:1566,402,135,108 +paylines_11 +bounds:1703,402,135,108 +paylines_12 +bounds:1840,402,135,108 +paylines_13 +bounds:471,74,135,108 +paylines_14 +bounds:608,74,135,108 +paylines_15 +bounds:745,74,135,108 +paylines_16 +bounds:882,55,135,108 +paylines_2 +bounds:1019,55,135,108 +paylines_3 +bounds:1276,106,135,108 +paylines_4 +bounds:1797,292,135,108 +paylines_5 +bounds:1934,265,135,108 +rotate:90 +paylines_6 +bounds:1423,259,135,108 +paylines_7 +bounds:1560,253,135,108 +paylines_8 +bounds:1419,149,135,108 +paylines_9 +bounds:1556,143,135,108 +picAlienAbduction_features3 +bounds:2,189,476,315 +offsets:3,1,484,316 +picWarriors_features2 +bounds:480,184,405,320 +offsets:2,1,411,321 +picWildSpin_features1 +bounds:887,165,386,339 +offsets:5,15,395,354 +placeholder +bounds:1653,18,50,50 +offsets:2,2,54,54 +underline_all +bounds:2,506,961,4 +offsets:8,0,975,4 diff --git a/src/assets/mobile/spines/paytable/paytable.skel b/src/assets/mobile/spines/paytable/paytable.skel new file mode 100644 index 0000000..ddd3f72 Binary files /dev/null and b/src/assets/mobile/spines/paytable/paytable.skel differ diff --git a/src/assets/mobile/spines/paytable/paytable.webp b/src/assets/mobile/spines/paytable/paytable.webp new file mode 100644 index 0000000..82eddf4 Binary files /dev/null and b/src/assets/mobile/spines/paytable/paytable.webp differ diff --git a/src/assets/mobile/spines/paytable/paytable_page_1.skel b/src/assets/mobile/spines/paytable/paytable_page_1.skel new file mode 100644 index 0000000..f27078f Binary files /dev/null and b/src/assets/mobile/spines/paytable/paytable_page_1.skel differ diff --git a/src/assets/mobile/spines/paytable/paytable_page_2.skel b/src/assets/mobile/spines/paytable/paytable_page_2.skel new file mode 100644 index 0000000..1cc9dcd Binary files /dev/null and b/src/assets/mobile/spines/paytable/paytable_page_2.skel differ diff --git a/src/assets/mobile/spines/paytable/paytable_page_3.skel b/src/assets/mobile/spines/paytable/paytable_page_3.skel new file mode 100644 index 0000000..9d3dfd8 Binary files /dev/null and b/src/assets/mobile/spines/paytable/paytable_page_3.skel differ diff --git a/src/assets/mobile/spines/paytable/paytable_page_4.skel b/src/assets/mobile/spines/paytable/paytable_page_4.skel new file mode 100644 index 0000000..c174736 Binary files /dev/null and b/src/assets/mobile/spines/paytable/paytable_page_4.skel differ diff --git a/src/assets/mobile/spines/paytable/paytable_page_5.skel b/src/assets/mobile/spines/paytable/paytable_page_5.skel new file mode 100644 index 0000000..ca26d2e Binary files /dev/null and b/src/assets/mobile/spines/paytable/paytable_page_5.skel differ diff --git a/src/assets/mobile/spines/paytable/paytable_page_6.skel b/src/assets/mobile/spines/paytable/paytable_page_6.skel new file mode 100644 index 0000000..3942877 Binary files /dev/null and b/src/assets/mobile/spines/paytable/paytable_page_6.skel differ diff --git a/src/assets/mobile/spines/preloader/preloader.atlas b/src/assets/mobile/spines/preloader/preloader.atlas new file mode 100644 index 0000000..0b61917 --- /dev/null +++ b/src/assets/mobile/spines/preloader/preloader.atlas @@ -0,0 +1,629 @@ + +preloader.webp +size: 1924, 524 +format: RGBA8888 +filter: Linear, Linear +repeat: none +Popiplay_logo/Popiplay_logo00000 + rotate: false + xy: 1829, 2 + size: 33, 33 + orig: 260, 118 + offset: 65, 37 + index: -1 +Popiplay_logo/Popiplay_logo00001 + rotate: false + xy: 1829, 2 + size: 33, 33 + orig: 260, 118 + offset: 65, 37 + index: -1 +Popiplay_logo/Popiplay_logo00002 + rotate: false + xy: 1829, 2 + size: 33, 33 + orig: 260, 118 + offset: 65, 37 + index: -1 +Popiplay_logo/Popiplay_logo00003 + rotate: true + xy: 565, 6 + size: 35, 33 + orig: 260, 118 + offset: 63, 37 + index: -1 +Popiplay_logo/Popiplay_logo00004 + rotate: false + xy: 403, 2 + size: 40, 39 + orig: 260, 118 + offset: 59, 34 + index: -1 +Popiplay_logo/Popiplay_logo00005 + rotate: false + xy: 1867, 286 + size: 46, 44 + orig: 260, 118 + offset: 56, 33 + index: -1 +Popiplay_logo/Popiplay_logo00006 + rotate: false + xy: 1869, 431 + size: 53, 48 + orig: 260, 118 + offset: 54, 30 + index: -1 +Popiplay_logo/Popiplay_logo00007 + rotate: false + xy: 684, 11 + size: 96, 96 + orig: 260, 118 + offset: 31, 10 + index: -1 +Popiplay_logo/Popiplay_logo00008 + rotate: false + xy: 1622, 34 + size: 102, 101 + orig: 260, 118 + offset: 28, 8 + index: -1 +Popiplay_logo/Popiplay_logo00009 + rotate: false + xy: 1726, 76 + size: 104, 102 + orig: 260, 118 + offset: 28, 7 + index: -1 +Popiplay_logo/Popiplay_logo00010 + rotate: false + xy: 1040, 7 + size: 103, 104 + orig: 260, 118 + offset: 28, 6 + index: -1 +Popiplay_logo/Popiplay_logo00011 + rotate: false + xy: 1145, 7 + size: 103, 104 + orig: 260, 118 + offset: 28, 6 + index: -1 +Popiplay_logo/Popiplay_logo00012 + rotate: false + xy: 1832, 79 + size: 77, 88 + orig: 260, 118 + offset: 41, 11 + index: -1 +Popiplay_logo/Popiplay_logo00013 + rotate: false + xy: 600, 9 + size: 81, 78 + orig: 260, 118 + offset: 37, 21 + index: -1 +Popiplay_logo/Popiplay_logo00014 + rotate: true + xy: 1851, 169 + size: 95, 71 + orig: 260, 118 + offset: 30, 20 + index: -1 +Popiplay_logo/Popiplay_logo00015 + rotate: false + xy: 1726, 2 + size: 101, 72 + orig: 260, 118 + offset: 32, 19 + index: -1 +Popiplay_logo/Popiplay_logo00016 + rotate: false + xy: 1510, 63 + size: 110, 72 + orig: 260, 118 + offset: 33, 19 + index: -1 +Popiplay_logo/Popiplay_logo00017 + rotate: false + xy: 1389, 63 + size: 119, 72 + orig: 260, 118 + offset: 35, 19 + index: -1 +Popiplay_logo/Popiplay_logo00018 + rotate: false + xy: 1255, 63 + size: 132, 72 + orig: 260, 118 + offset: 36, 19 + index: -1 +Popiplay_logo/Popiplay_logo00019 + rotate: true + xy: 965, 3 + size: 135, 73 + orig: 260, 118 + offset: 36, 19 + index: -1 +Popiplay_logo/Popiplay_logo00020 + rotate: true + xy: 890, 2 + size: 136, 73 + orig: 260, 118 + offset: 36, 19 + index: -1 +Popiplay_logo/Popiplay_logo00021 + rotate: false + xy: 893, 140 + size: 163, 73 + orig: 260, 118 + offset: 36, 19 + index: -1 +Popiplay_logo/Popiplay_logo00022 + rotate: false + xy: 895, 258 + size: 165, 73 + orig: 260, 118 + offset: 36, 19 + index: -1 +Popiplay_logo/Popiplay_logo00023 + rotate: false + xy: 693, 195 + size: 189, 71 + orig: 260, 118 + offset: 36, 19 + index: -1 +Popiplay_logo/Popiplay_logo00024 + rotate: false + xy: 200, 62 + size: 192, 68 + orig: 260, 118 + offset: 36, 20 + index: -1 +Popiplay_logo/Popiplay_logo00025 + rotate: false + xy: 2, 62 + size: 196, 68 + orig: 260, 118 + offset: 36, 20 + index: -1 +Popiplay_logo/Popiplay_logo00026 + rotate: false + xy: 1075, 459 + size: 199, 63 + orig: 260, 118 + offset: 36, 20 + index: -1 +Popiplay_logo/Popiplay_logo00027 + rotate: false + xy: 693, 268 + size: 200, 63 + orig: 260, 118 + offset: 36, 20 + index: -1 +Popiplay_logo/Popiplay_logo00028 + rotate: false + xy: 2, 6 + size: 200, 54 + orig: 260, 118 + offset: 36, 20 + index: -1 +Popiplay_logo/Popiplay_logo00029 + rotate: false + xy: 394, 86 + size: 200, 44 + orig: 260, 118 + offset: 36, 30 + index: -1 +Popiplay_logo/Popiplay_logo00030 + rotate: false + xy: 1075, 414 + size: 200, 43 + orig: 260, 118 + offset: 36, 31 + index: -1 +Popiplay_logo/Popiplay_logo00031 + rotate: false + xy: 1075, 328 + size: 199, 41 + orig: 260, 118 + offset: 36, 33 + index: -1 +Popiplay_logo/Popiplay_logo00032 + rotate: false + xy: 693, 152 + size: 198, 41 + orig: 260, 118 + offset: 36, 33 + index: -1 +Popiplay_logo/Popiplay_logo00033 + rotate: false + xy: 204, 19 + size: 197, 41 + orig: 260, 118 + offset: 36, 33 + index: -1 +Popiplay_logo/Popiplay_logo00034 + rotate: false + xy: 1062, 242 + size: 196, 41 + orig: 260, 118 + offset: 36, 33 + index: -1 +Popiplay_logo/Popiplay_logo00035 + rotate: false + xy: 1277, 438 + size: 196, 41 + orig: 260, 118 + offset: 36, 33 + index: -1 +Popiplay_logo/Popiplay_logo00036 + rotate: false + xy: 1277, 395 + size: 195, 41 + orig: 260, 118 + offset: 36, 33 + index: -1 +Popiplay_logo/Popiplay_logo00037 + rotate: false + xy: 1475, 438 + size: 195, 41 + orig: 260, 118 + offset: 36, 33 + index: -1 +Popiplay_logo/Popiplay_logo00038 + rotate: false + xy: 1474, 395 + size: 195, 41 + orig: 260, 118 + offset: 36, 33 + index: -1 +Popiplay_logo/Popiplay_logo00039 + rotate: false + xy: 1672, 438 + size: 195, 41 + orig: 260, 118 + offset: 36, 33 + index: -1 +Popiplay_logo/Popiplay_logo00040 + rotate: false + xy: 1671, 395 + size: 195, 41 + orig: 260, 118 + offset: 36, 33 + index: -1 +Popiplay_logo/Popiplay_logo00041 + rotate: false + xy: 1277, 352 + size: 195, 41 + orig: 260, 118 + offset: 36, 33 + index: -1 +Popiplay_logo/Popiplay_logo00042 + rotate: false + xy: 1474, 352 + size: 195, 41 + orig: 260, 118 + offset: 36, 33 + index: -1 +Popiplay_logo/Popiplay_logo00043 + rotate: false + xy: 1671, 352 + size: 195, 41 + orig: 260, 118 + offset: 36, 33 + index: -1 +Popiplay_logo/Popiplay_logo00044 + rotate: false + xy: 1276, 309 + size: 195, 41 + orig: 260, 118 + offset: 36, 33 + index: -1 +Popiplay_logo/Popiplay_logo00045 + rotate: false + xy: 1473, 309 + size: 195, 41 + orig: 260, 118 + offset: 36, 33 + index: -1 +Popiplay_logo/Popiplay_logo00046 + rotate: false + xy: 1670, 309 + size: 195, 41 + orig: 260, 118 + offset: 36, 33 + index: -1 +Popiplay_logo/Popiplay_logo00047 + rotate: false + xy: 693, 109 + size: 195, 41 + orig: 260, 118 + offset: 36, 33 + index: -1 +Popiplay_logo/Popiplay_logo00048 + rotate: false + xy: 403, 43 + size: 195, 41 + orig: 260, 118 + offset: 36, 33 + index: -1 +Popiplay_logo/Popiplay_logo00049 + rotate: false + xy: 1061, 199 + size: 195, 41 + orig: 260, 118 + offset: 36, 33 + index: -1 +Popiplay_logo/Popiplay_logo00050 + rotate: false + xy: 1058, 156 + size: 195, 41 + orig: 260, 118 + offset: 36, 33 + index: -1 +Popiplay_logo/Popiplay_logo00051 + rotate: false + xy: 1058, 113 + size: 195, 41 + orig: 260, 118 + offset: 36, 33 + index: -1 +Popiplay_logo/Popiplay_logo00052 + rotate: false + xy: 1261, 266 + size: 195, 41 + orig: 260, 118 + offset: 36, 33 + index: -1 +Popiplay_logo/Popiplay_logo00053 + rotate: false + xy: 1458, 266 + size: 195, 41 + orig: 260, 118 + offset: 36, 33 + index: -1 +Popiplay_logo/Popiplay_logo00054 + rotate: false + xy: 1655, 266 + size: 195, 41 + orig: 260, 118 + offset: 36, 33 + index: -1 +Popiplay_logo/Popiplay_logo00055 + rotate: false + xy: 1260, 223 + size: 195, 41 + orig: 260, 118 + offset: 36, 33 + index: -1 +Popiplay_logo/Popiplay_logo00056 + rotate: false + xy: 1457, 223 + size: 195, 41 + orig: 260, 118 + offset: 36, 33 + index: -1 +Popiplay_logo/Popiplay_logo00057 + rotate: false + xy: 1654, 223 + size: 195, 41 + orig: 260, 118 + offset: 36, 33 + index: -1 +Popiplay_logo/Popiplay_logo00058 + rotate: false + xy: 1258, 180 + size: 195, 41 + orig: 260, 118 + offset: 36, 33 + index: -1 +Popiplay_logo/Popiplay_logo00059 + rotate: false + xy: 1075, 371 + size: 200, 41 + orig: 260, 118 + offset: 31, 33 + index: -1 +Popiplay_logo/Popiplay_logo00060 + rotate: false + xy: 1276, 481 + size: 204, 41 + orig: 260, 118 + offset: 27, 33 + index: -1 +Popiplay_logo/Popiplay_logo00061 + rotate: false + xy: 1482, 481 + size: 203, 41 + orig: 260, 118 + offset: 28, 33 + index: -1 +Popiplay_logo/Popiplay_logo00062 + rotate: false + xy: 1687, 481 + size: 201, 41 + orig: 260, 118 + offset: 30, 33 + index: -1 +Popiplay_logo/Popiplay_logo00063 + rotate: false + xy: 1062, 285 + size: 197, 41 + orig: 260, 118 + offset: 34, 33 + index: -1 +Popiplay_logo/Popiplay_logo00064 + rotate: false + xy: 1455, 180 + size: 191, 41 + orig: 260, 118 + offset: 40, 33 + index: -1 +Popiplay_logo/Popiplay_logo00065 + rotate: false + xy: 1648, 180 + size: 183, 41 + orig: 260, 118 + offset: 48, 33 + index: -1 +Popiplay_logo/Popiplay_logo00066 + rotate: false + xy: 884, 215 + size: 175, 41 + orig: 260, 118 + offset: 56, 33 + index: -1 +Popiplay_logo/Popiplay_logo00067 + rotate: false + xy: 1255, 137 + size: 165, 41 + orig: 260, 118 + offset: 66, 33 + index: -1 +Popiplay_logo/Popiplay_logo00068 + rotate: false + xy: 1422, 137 + size: 155, 41 + orig: 260, 118 + offset: 76, 33 + index: -1 +Popiplay_logo/Popiplay_logo00069 + rotate: false + xy: 1579, 137 + size: 144, 41 + orig: 260, 118 + offset: 87, 33 + index: -1 +Popiplay_logo/Popiplay_logo00070 + rotate: false + xy: 1250, 20 + size: 132, 41 + orig: 260, 118 + offset: 99, 33 + index: -1 +Popiplay_logo/Popiplay_logo00071 + rotate: false + xy: 1384, 20 + size: 120, 41 + orig: 260, 118 + offset: 111, 33 + index: -1 +Popiplay_logo/Popiplay_logo00072 + rotate: false + xy: 1506, 20 + size: 109, 41 + orig: 260, 118 + offset: 122, 33 + index: -1 +Popiplay_logo/Popiplay_logo00073 + rotate: true + xy: 1868, 332 + size: 97, 41 + orig: 260, 118 + offset: 134, 33 + index: -1 +Popiplay_logo/Popiplay_logo00074 + rotate: false + xy: 596, 89 + size: 86, 41 + orig: 260, 118 + offset: 145, 33 + index: -1 +Popiplay_logo/Popiplay_logo00075 + rotate: false + xy: 782, 66 + size: 75, 41 + orig: 260, 118 + offset: 156, 33 + index: -1 +Popiplay_logo/Popiplay_logo00076 + rotate: false + xy: 782, 27 + size: 65, 37 + orig: 260, 118 + offset: 166, 33 + index: -1 +Popiplay_logo/Popiplay_logo00077 + rotate: false + xy: 506, 4 + size: 57, 37 + orig: 260, 118 + offset: 174, 33 + index: -1 +Popiplay_logo/Popiplay_logo00078 + rotate: false + xy: 445, 4 + size: 59, 37 + orig: 260, 118 + offset: 172, 33 + index: -1 +Popiplay_logo/Popiplay_logo00079 + rotate: true + xy: 849, 24 + size: 40, 37 + orig: 260, 118 + offset: 190, 33 + index: -1 +Popiplay_logo/Popiplay_logo00080 + rotate: false + xy: 1829, 37 + size: 35, 37 + orig: 260, 118 + offset: 195, 33 + index: -1 +Popiplay_logo/Popiplay_logo00081 + rotate: false + xy: 1866, 40 + size: 36, 37 + orig: 260, 118 + offset: 196, 33 + index: -1 +Popiplay_logo/Popiplay_logo00082 + rotate: false + xy: 1864, 2 + size: 33, 33 + orig: 260, 118 + offset: 200, 37 + index: -1 +Popiplay_logo/Popiplay_logo00083 + rotate: false + xy: 859, 78 + size: 29, 29 + orig: 260, 118 + offset: 202, 39 + index: -1 +Popiplay_logo/Popiplay_logo00084 + rotate: false + xy: 1890, 503 + size: 19, 19 + orig: 260, 118 + offset: 207, 44 + index: -1 +Popiplay_logo/Popiplay_logo00085 + rotate: false + xy: 859, 66 + size: 10, 10 + orig: 260, 118 + offset: 211, 49 + index: -1 +Popiplay_logo/Popiplay_logo00086 + rotate: false + xy: 2, 2 + size: 2, 2 + orig: 260, 118 + offset: 215, 53 + index: -1 +glow + rotate: false + xy: 2, 132 + size: 689, 390 + orig: 690, 390 + offset: 0, 0 + index: -1 +logo + rotate: false + xy: 693, 333 + size: 380, 189 + orig: 380, 190 + offset: 0, 0 + index: -1 diff --git a/src/assets/mobile/spines/preloader/preloader.skel b/src/assets/mobile/spines/preloader/preloader.skel new file mode 100644 index 0000000..783571b Binary files /dev/null and b/src/assets/mobile/spines/preloader/preloader.skel differ diff --git a/src/assets/mobile/spines/preloader/preloader.webp b/src/assets/mobile/spines/preloader/preloader.webp new file mode 100644 index 0000000..acaa55d Binary files /dev/null and b/src/assets/mobile/spines/preloader/preloader.webp differ diff --git a/src/assets/mobile/spines/rules/rules.atlas b/src/assets/mobile/spines/rules/rules.atlas new file mode 100644 index 0000000..80ce467 --- /dev/null +++ b/src/assets/mobile/spines/rules/rules.atlas @@ -0,0 +1,15 @@ +rules.webp +size:968,108 +filter:Linear,Linear +scale:0.5 +Xbutton_all +bounds:486,72,25,25 +game_logo +bounds:284,2,200,95 +popiplay_logo +bounds:2,39,161,33 +title +bounds:2,74,280,23 +underline_all +bounds:2,99,961,4 +offsets:8,0,975,4 diff --git a/src/assets/mobile/spines/rules/rules.skel b/src/assets/mobile/spines/rules/rules.skel new file mode 100644 index 0000000..57434d4 Binary files /dev/null and b/src/assets/mobile/spines/rules/rules.skel differ diff --git a/src/assets/mobile/spines/rules/rules.webp b/src/assets/mobile/spines/rules/rules.webp new file mode 100644 index 0000000..2ff9c77 Binary files /dev/null and b/src/assets/mobile/spines/rules/rules.webp differ diff --git a/src/assets/mobile/spines/startPage/startpage.atlas b/src/assets/mobile/spines/startPage/startpage.atlas new file mode 100644 index 0000000..7c1abdd --- /dev/null +++ b/src/assets/mobile/spines/startPage/startpage.atlas @@ -0,0 +1,185 @@ +startpage.webp +size:1620,656 +filter:Linear,Linear +scale:0.5 +200x +bounds:880,260,79,28 +offsets:1,1,81,30 +20x +bounds:546,11,63,39 +offsets:1,1,65,41 +2x +bounds:989,2,45,36 +offsets:1,1,47,38 +ex_wild1 +bounds:985,260,68,226 +rotate:90 +ex_wild1_glow +bounds:985,330,70,227 +offsets:0,0,70,228 +rotate:90 +ex_wild2 +bounds:1346,262,70,227 +rotate:90 +ex_wild2_glow +bounds:616,153,72,228 +offsets:0,1,72,230 +rotate:90 +ex_wild_glow_l_01 +bounds:282,11,67,262 +rotate:90 +ex_wild_glow_l_02 +bounds:282,11,67,262 +rotate:90 +ex_wild_glow_l_03 +bounds:282,11,67,262 +rotate:90 +ex_wilds_frame +bounds:1016,402,331,252 +offsets:1,1,333,254 +ex_wilds_glow +bounds:2,45,214,278 +offsets:1,1,216,280 +rotate:90 +ex_wilds_light_01 +bounds:880,215,223,43 +offsets:1,1,225,45 +ex_wilds_light_02 +bounds:166,9,34,104 +offsets:1,1,36,106 +rotate:90 +ex_wilds_light_03 +bounds:1562,104,34,104 +offsets:1,1,36,106 +ex_wilds_rays +bounds:271,360,354,294 +offsets:6,6,368,306 +expnd_w1_bg +bounds:282,220,68,262 +rotate:90 +expnd_w1_bg_add +bounds:282,150,68,262 +rotate:90 +expnd_w2_bg +bounds:282,80,68,262 +rotate:90 +expnd_w2_bg_add +bounds:546,96,68,262 +expnd_w3_bg +bounds:616,227,67,262 +offsets:3,0,75,264 +rotate:90 +expnd_w3_bg_add +bounds:627,365,70,263 +offsets:2,0,75,264 +rotate:90 +expnd_w3_pttrn +bounds:1342,174,86,214 +offsets:2,0,91,214 +rotate:90 +expnd_w3_pttrn_glow +bounds:1342,104,68,218 +rotate:90 +logo +bounds:989,40,173,85 +offsets:0,1,173,86 +rotate:90 +placeholder +bounds:1558,210,50,50 +offsets:2,2,54,54 +source_bg_startpage +bounds:2,261,267,393 +offsets:0,3,270,401 +source_bg_startpage _x2 +bounds:627,437,387,217 +offsets:6,3,395,223 +tap to start +bounds:2,17,162,26 +offsets:1,1,164,28 +w1_X2 +bounds:961,260,28,20 +rotate:90 +w1_expnd_frame +bounds:271,290,68,265 +offsets:0,0,69,266 +rotate:90 +w1_expnd_multipl_bg +bounds:546,52,68,42 +offsets:0,0,69,42 +w2_X5 +bounds:985,415,28,20 +w2_expnd_frame +bounds:627,296,67,265 +offsets:1,0,69,266 +rotate:90 +w3_expnd_frame +bounds:627,296,67,265 +offsets:1,0,69,266 +rotate:90 +w2_expnd_multipl_bg +bounds:1575,265,67,42 +offsets:1,0,69,42 +rotate:90 +w3_expnd_multipl_bg +bounds:1575,265,67,42 +offsets:1,0,69,42 +rotate:90 +w3_X10 +bounds:1574,61,41,20 +rotate:90 +wild1_frame +bounds:1419,26,88,76 +offsets:2,1,91,78 +wild2_frame +bounds:894,290,89,74 +offsets:2,2,92,77 +wild3_frame +bounds:892,366,91,69 +offsets:1,1,93,71 +wild_1_win +bounds:1076,2,94,74 +offsets:1,1,96,76 +wild_2_win +bounds:1323,29,94,73 +offsets:1,1,96,75 +wild_3_win +bounds:1509,7,95,63 +offsets:1,1,97,65 +rotate:90 +wilds_light_01 +bounds:846,182,29,43 +offsets:1,1,31,45 +wilds_light_02 +bounds:1172,33,29,43 +offsets:1,1,31,45 +wilds_light_03 +bounds:1105,220,111,38 +offsets:1,1,113,40 +wilds_light_04 +bounds:910,5,208,77 +offsets:1,4,210,82 +rotate:90 +wilds_rays +bounds:1349,334,320,266 +offsets:24,20,368,306 +rotate:90 +wilds_stone_glow_1_l +bounds:616,2,149,145 +offsets:1,1,151,147 +rotate:90 +wilds_stone_glow_1_r +bounds:763,2,149,145 +offsets:1,1,151,147 +rotate:90 +wilds_stone_glow_1_top +bounds:1218,135,128,122 +offsets:1,1,131,124 +rotate:90 +wilds_stone_l +bounds:1214,265,135,130 +rotate:90 +wilds_stone_r +bounds:1076,78,135,130 +rotate:90 +wilds_stone_top +bounds:1208,27,113,106 diff --git a/src/assets/mobile/spines/startPage/startpage.skel b/src/assets/mobile/spines/startPage/startpage.skel new file mode 100644 index 0000000..ee3f140 Binary files /dev/null and b/src/assets/mobile/spines/startPage/startpage.skel differ diff --git a/src/assets/mobile/spines/startPage/startpage.webp b/src/assets/mobile/spines/startPage/startpage.webp new file mode 100644 index 0000000..9dc7a76 Binary files /dev/null and b/src/assets/mobile/spines/startPage/startpage.webp differ diff --git a/src/assets/mobile/spines/symbols/expanding/expanding_symbols.atlas b/src/assets/mobile/spines/symbols/expanding/expanding_symbols.atlas new file mode 100644 index 0000000..4e7da36 --- /dev/null +++ b/src/assets/mobile/spines/symbols/expanding/expanding_symbols.atlas @@ -0,0 +1,1163 @@ +expanding_symbols.webp +size:2036,1256 +filter:Linear,Linear +scale:0.5 +Layer 45ex_wild1_necklace2 +bounds:1477,218,75,65 +offsets:106,392,251,651 +rotate:90 +ex_wild1_belt +bounds:1518,484,106,42 +offsets:81,316,251,651 +ex_wild1_belt_glow +bounds:822,70,111,46 +offsets:78,313,251,651 +rotate:90 +ex_wild1_body_glow +bounds:1406,756,116,153 +offsets:82,326,251,651 +ex_wild1_cloth_back2 +bounds:1646,224,29,56 +offsets:61,409,251,651 +rotate:90 +ex_wild1_cloth_top1 +bounds:1054,146,45,111 +offsets:66,364,251,651 +ex_wild1_cloth_top1_glow +bounds:1477,295,50,115 +offsets:63,362,251,651 +ex_wild1_eye_left +bounds:991,747,11,11 +offsets:122,481,251,651 +ex_wild1_eye_right +bounds:1863,129,11,12 +offsets:140,476,251,651 +ex_wild1_eyebrow_left +bounds:1805,981,17,12 +offsets:120,483,251,651 +rotate:90 +ex_wild1_eyebrow_right +bounds:1638,757,21,11 +offsets:135,479,251,651 +ex_wild1_face +bounds:1975,493,56,59 +offsets:117,447,251,651 +rotate:90 +ex_wild1_feather_right +bounds:1628,2,20,23 +offsets:160,440,251,651 +rotate:90 +ex_wild1_hair_back1 +bounds:1775,588,79,61 +offsets:111,444,251,651 +rotate:90 +ex_wild1_hair_back2 +bounds:1643,358,62,51 +offsets:114,460,251,651 +rotate:90 +ex_wild1_hair_left +bounds:1922,144,23,29 +offsets:109,473,251,651 +rotate:90 +ex_wild1_hand0_left +bounds:1689,82,44,44 +offsets:89,376,251,651 +ex_wild1_hand1_left +bounds:724,669,56,107 +offsets:153,344,251,651 +rotate:90 +ex_wild1_hand1_left_glow +bounds:541,2,60,111 +offsets:150,342,251,651 +rotate:90 +ex_wild1_hand2_left +bounds:1986,551,58,48 +offsets:115,348,251,651 +rotate:90 +ex_wild1_hand_left0 +bounds:1643,315,41,54 +offsets:84,527,251,651 +rotate:90 +ex_wild1_hand_left0_glow +bounds:654,2,45,60 +offsets:81,524,251,651 +ex_wild1_hand_left1 +bounds:1986,611,48,66 +offsets:54,477,251,651 +ex_wild1_hand_left1_glow +bounds:1750,531,55,71 +offsets:50,474,251,651 +rotate:90 +ex_wild1_hand_left_shadow +bounds:1355,133,107,83 +offsets:88,340,251,651 +ex_wild1_head_glow +bounds:1161,542,81,89 +offsets:108,442,251,651 +rotate:90 +ex_wild1_head_top +bounds:1865,266,54,39 +offsets:122,488,251,651 +ex_wild1_headpiece_fthr1 +bounds:503,10,36,46 +offsets:88,479,251,651 +ex_wild1_headpiece_fthr10 +bounds:1357,2,69,26 +offsets:152,501,251,651 +ex_wild1_headpiece_fthr10_glow +bounds:1550,88,74,29 +offsets:149,500,251,651 +ex_wild1_headpiece_fthr11 +bounds:1675,506,78,21 +offsets:147,493,251,651 +ex_wild1_headpiece_fthr11_glow +bounds:1890,512,83,27 +offsets:144,490,251,651 +ex_wild1_headpiece_fthr12 +bounds:1464,90,84,20 +offsets:144,484,251,651 +ex_wild1_headpiece_fthr12_glow +bounds:1189,4,86,24 +offsets:143,482,251,651 +rotate:90 +ex_wild1_headpiece_fthr13 +bounds:1503,2,86,27 +offsets:140,465,251,651 +rotate:90 +ex_wild1_headpiece_fthr13_glow +bounds:900,727,89,31 +offsets:137,464,251,651 +ex_wild1_headpiece_fthr14 +bounds:1876,121,24,41 +offsets:165,462,251,651 +rotate:90 +ex_wild1_headpiece_fthr14_glow +bounds:1828,1062,27,46 +offsets:163,458,251,651 +ex_wild1_headpiece_fthr1_glow +bounds:1991,443,39,48 +offsets:87,476,251,651 +ex_wild1_headpiece_fthr2 +bounds:1921,385,40,55 +offsets:99,483,251,651 +ex_wild1_headpiece_fthr2_glow +bounds:1307,89,46,61 +offsets:96,480,251,651 +ex_wild1_headpiece_fthr3 +bounds:1595,9,31,77 +offsets:117,484,251,651 +ex_wild1_headpiece_fthr3_glow +bounds:1890,541,35,83 +offsets:115,480,251,651 +rotate:90 +ex_wild1_headpiece_fthr4 +bounds:1755,494,35,72 +offsets:108,483,251,651 +rotate:90 +ex_wild1_headpiece_fthr4_glow +bounds:1746,452,40,72 +offsets:106,481,251,651 +rotate:90 +ex_wild1_headpiece_fthr5 +bounds:1428,2,20,71 +offsets:132,495,251,651 +rotate:90 +ex_wild1_headpiece_fthr5_glow +bounds:514,289,25,74 +offsets:130,493,251,651 +ex_wild1_headpiece_fthr6 +bounds:1624,222,20,89 +offsets:141,480,251,651 +ex_wild1_headpiece_fthr6_glow +bounds:1892,578,24,92 +offsets:138,478,251,651 +rotate:90 +ex_wild1_headpiece_fthr7 +bounds:1838,586,52,88 +offsets:135,479,251,651 +ex_wild1_headpiece_fthr7_glow +bounds:962,74,56,90 +offsets:134,478,251,651 +rotate:90 +ex_wild1_headpiece_fthr8 +bounds:1756,314,51,45 +offsets:154,505,251,651 +ex_wild1_headpiece_fthr8_glow +bounds:1809,314,54,46 +offsets:152,504,251,651 +ex_wild1_headpiece_fthr9 +bounds:701,2,60,45 +offsets:146,493,251,651 +rotate:90 +ex_wild1_headpiece_fthr9_glow +bounds:1823,532,65,52 +offsets:143,489,251,651 +ex_wild1_headpiece_gld +bounds:1865,385,54,55 +offsets:129,484,251,651 +ex_wild1_leg_left1 +bounds:1530,528,63,103 +offsets:65,201,251,651 +rotate:90 +ex_wild1_leg_left1_glow +bounds:78,8,67,106 +offsets:62,199,251,651 +ex_wild1_leg_left2 +bounds:1985,679,49,76 +offsets:59,158,251,651 +ex_wild1_leg_left2_glow +bounds:1303,8,52,79 +offsets:57,156,251,651 +ex_wild1_leg_left3 +bounds:1464,112,79,104 +offsets:24,82,251,651 +ex_wild1_leg_left3_glow +bounds:737,66,83,107 +offsets:21,80,251,651 +ex_wild1_leg_right1 +bounds:1784,263,49,52 +offsets:129,208,251,651 +rotate:90 +ex_wild1_leg_right1_glow +bounds:1686,24,54,56 +offsets:126,205,251,651 +ex_wild1_leg_right2 +bounds:1751,393,53,57 +offsets:126,166,251,651 +ex_wild1_leg_right2_glow +bounds:1613,593,58,61 +offsets:124,164,251,651 +rotate:90 +ex_wild1_leg_right3 +bounds:1676,592,75,97 +offsets:133,94,251,651 +rotate:90 +ex_wild1_leg_right3_glow +bounds:1512,653,77,101 +offsets:131,92,251,651 +ex_wild1_neck +bounds:1627,453,46,62 +offsets:120,414,251,651 +ex_wild1_necklace1 +bounds:915,2,66,57 +offsets:108,408,251,651 +rotate:90 +ex_wild1_necklace_shadow +bounds:1675,529,73,61 +offsets:107,404,251,651 +ex_wild1_pigtail +bounds:1829,501,29,59 +offsets:99,424,251,651 +rotate:90 +ex_wild1_shirt +bounds:1135,625,115,139 +offsets:82,328,251,651 +ex_wild1_skirt1 +bounds:1940,883,49,96 +offsets:111,241,251,651 +ex_wild1_skirt1_glow +bounds:1008,404,53,99 +offsets:109,240,251,651 +rotate:90 +ex_wild1_skirt2 +bounds:1591,653,72,102 +offsets:60,246,251,651 +ex_wild1_skirt2_glow +bounds:1529,311,76,106 +offsets:57,244,251,651 +ex_wild1_skirt3 +bounds:1210,98,52,95 +offsets:146,246,251,651 +rotate:90 +ex_wild1_skirt3_glow +bounds:833,669,56,96 +offsets:142,244,251,651 +rotate:90 +ex_wild1_skirt_det +bounds:1890,488,22,77 +offsets:169,254,251,651 +rotate:90 +ex_wild1_sleeve_back_left1 +bounds:1991,757,38,27 +offsets:53,471,251,651 +ex_wild1_sleeve_left_glow +bounds:974,9,63,94 +offsets:49,406,251,651 +rotate:90 +ex_wild1_sleeve_top_left1 +bounds:1127,92,62,81 +offsets:50,416,251,651 +rotate:90 +ex_wild1_strand +bounds:1209,188,28,51 +offsets:147,445,251,651 +ex_wild1_strand shield +bounds:1665,669,76,99 +offsets:55,252,251,651 +ex_wild1_strand shield_glow +bounds:1545,119,79,101 +offsets:53,251,251,651 +ex_wild1_strand shield_shadow +bounds:1523,419,63,102 +offsets:70,249,251,651 +rotate:90 +ex_wild2__fell_right_s +bounds:1433,24,64,68 +offsets:140,410,251,651 +rotate:90 +ex_wild2_beads +bounds:1751,361,53,30 +offsets:105,452,251,651 +ex_wild2_beads_s +bounds:1963,374,52,30 +offsets:105,451,251,651 +rotate:90 +ex_wild2_belt1_top +bounds:748,2,94,62 +offsets:81,326,251,651 +ex_wild2_belt2 +bounds:1884,679,76,99 +offsets:79,253,251,651 +rotate:90 +ex_wild2_belt2_glow +bounds:1101,156,83,106 +offsets:75,251,251,651 +rotate:90 +ex_wild2_belt2_s +bounds:1544,222,78,87 +offsets:80,268,251,651 +ex_wild2_bowl +bounds:1890,442,71,44 +offsets:91,324,251,651 +ex_wild2_earring_l +bounds:924,393,9,20 +offsets:149,481,251,651 +rotate:90 +ex_wild2_earring_r +bounds:1076,606,8,19 +offsets:105,483,251,651 +rotate:90 +ex_wild2_eyebrow_left +bounds:1614,757,22,11 +offsets:110,510,251,651 +ex_wild2_eyebrow_right +bounds:514,277,20,10 +offsets:131,510,251,651 +ex_wild2_eyelid_l +bounds:1041,242,15,11 +offsets:134,505,251,651 +rotate:90 +ex_wild2_eyelid_r +bounds:2019,1150,15,12 +offsets:114,505,251,651 +ex_wild2_eyes +bounds:1524,756,34,7 +offsets:115,505,251,651 +ex_wild2_fell +bounds:534,374,187,199 +offsets:39,277,251,651 +ex_wild2_fell_glow +bounds:338,365,194,208 +offsets:37,273,251,651 +ex_wild2_fell_left +bounds:1646,255,56,58 +offsets:64,424,251,651 +ex_wild2_fell_left_glow +bounds:1532,22,61,64 +offsets:60,421,251,651 +ex_wild2_fell_left_s +bounds:1806,390,53,57 +offsets:66,419,251,651 +rotate:90 +ex_wild2_fell_right +bounds:844,2,66,69 +offsets:142,415,251,651 +rotate:90 +ex_wild2_fell_right_glow +bounds:1054,75,69,71 +offsets:140,415,251,651 +rotate:90 +ex_wild2_finger_l +bounds:1844,33,27,19 +offsets:90,341,251,651 +rotate:90 +ex_wild2_finger_r +bounds:2019,1187,23,15 +offsets:132,341,251,651 +rotate:90 +ex_wild2_fringe_l +bounds:1675,451,53,69 +offsets:82,163,251,651 +rotate:90 +ex_wild2_fringe_l_glow +bounds:1070,2,57,71 +offsets:79,162,251,651 +ex_wild2_fringe_r +bounds:1829,676,53,87 +offsets:154,152,251,651 +ex_wild2_fringe_r_glow +bounds:1523,593,58,88 +offsets:151,152,251,651 +rotate:90 +ex_wild2_hair_back +bounds:1161,460,80,89 +offsets:92,464,251,651 +rotate:90 +ex_wild2_hair_back_glow +bounds:1743,669,84,94 +offsets:88,460,251,651 +ex_wild2_hand1_l +bounds:1626,90,35,61 +offsets:62,350,251,651 +rotate:90 +ex_wild2_hand1_r +bounds:438,2,54,63 +offsets:150,339,251,651 +rotate:90 +ex_wild2_hand2_l +bounds:1635,517,38,74 +offsets:63,391,251,651 +ex_wild2_hand2_r +bounds:1215,2,34,86 +offsets:168,381,251,651 +rotate:90 +ex_wild2_hand3_l +bounds:1865,307,48,54 +offsets:75,320,251,651 +rotate:90 +ex_wild2_hand3_r +bounds:1995,393,48,39 +offsets:122,320,251,651 +rotate:90 +ex_wild2_hand3_s_l +bounds:1007,606,67,152 +offsets:59,316,251,651 +ex_wild2_hand3_s_r +bounds:1180,773,82,151 +offsets:122,317,251,651 +ex_wild2_head +bounds:1628,24,56,64 +offsets:103,475,251,651 +ex_wild2_headpiece +bounds:1981,287,52,26 +offsets:105,515,251,651 +ex_wild2_headpiece_fthr1 +bounds:2019,1164,15,21 +offsets:99,528,251,651 +ex_wild2_headpiece_fthr1_glow +bounds:1795,3,22,28 +offsets:97,523,251,651 +ex_wild2_headpiece_fthr2 +bounds:1914,97,21,36 +offsets:106,532,251,651 +rotate:90 +ex_wild2_headpiece_fthr2_glow +bounds:1769,2,24,41 +offsets:104,528,251,651 +ex_wild2_headpiece_fthr3 +bounds:1703,4,18,41 +offsets:120,534,251,651 +rotate:90 +ex_wild2_headpiece_fthr3_glow +bounds:1980,132,24,45 +offsets:117,532,251,651 +ex_wild2_headpiece_fthr4 +bounds:1995,372,19,39 +offsets:134,531,251,651 +rotate:90 +ex_wild2_headpiece_fthr4_glow +bounds:1876,147,22,44 +offsets:132,528,251,651 +rotate:90 +ex_wild2_headpiece_fthr5 +bounds:1795,64,16,27 +offsets:145,529,251,651 +ex_wild2_headpiece_fthr5_glow +bounds:1919,120,22,32 +offsets:141,526,251,651 +rotate:90 +ex_wild2_headpiece_fthr6 +bounds:1384,756,13,18 +offsets:151,525,251,651 +rotate:90 +ex_wild2_headpiece_fthr6_glow +bounds:1355,412,18,23 +offsets:148,522,251,651 +rotate:90 +ex_wild2_leg1_l +bounds:147,5,51,144 +offsets:77,196,251,651 +rotate:90 +ex_wild2_leg1_l_glow +bounds:1076,616,57,147 +offsets:75,195,251,651 +ex_wild2_leg1_r +bounds:826,727,72,154 +offsets:127,193,251,651 +ex_wild2_leg1_r_glow +bounds:962,241,77,161 +offsets:127,190,251,651 +ex_wild2_leg2_l +bounds:2,2,74,112 +offsets:54,103,251,651 +ex_wild2_leg2_l_glow +bounds:1237,355,75,116 +offsets:53,101,251,651 +rotate:90 +ex_wild2_leg2_r +bounds:1389,412,51,132 +offsets:159,83,251,651 +rotate:90 +ex_wild2_leg2_r_glow +bounds:1384,593,58,137 +offsets:155,80,251,651 +rotate:90 +ex_wild2_neck +bounds:1981,241,41,44 +offsets:112,459,251,651 +ex_wild2_neckline +bounds:1892,604,92,73 +offsets:84,405,251,651 +ex_wild2_skirt +bounds:1239,251,114,102 +offsets:71,273,251,651 +ex_wild2_skirt_glow +bounds:1113,348,122,110 +offsets:67,270,251,651 +ex_wild2_tassel +bounds:1607,313,34,104 +offsets:63,233,251,651 +ex_wild2_tassel_glow +bounds:1355,93,38,107 +offsets:59,231,251,651 +rotate:90 +ex_wild2_torso +bounds:1357,30,74,61 +offsets:88,363,251,651 +expnd_frame +bounds:159,1109,145,570 +offsets:58,49,251,651 +rotate:90 +expnd_frame_add +bounds:2,116,146,570 +offsets:57,49,251,651 +expnd_multipl_bg +bounds:1008,459,145,87 +offsets:58,52,251,651 +rotate:90 +expnd_multipl_bg_add +bounds:1524,765,146,88 +offsets:57,52,251,651 +rotate:90 +expnd_w1_bg +bounds:731,1110,144,563 +offsets:59,52,251,651 +rotate:90 +expnd_w1_bg_add +bounds:159,814,144,563 +offsets:59,52,251,651 +rotate:90 +expnd_w2_bg +bounds:159,669,143,563 +offsets:59,52,251,651 +rotate:90 +expnd_w2_bg_add +bounds:1296,1110,144,563 +offsets:58,52,251,651 +rotate:90 +expnd_w3_bg +bounds:159,960,147,563 +offsets:57,52,251,651 +rotate:90 +expnd_w3_bg_add +bounds:2,688,155,566 +offsets:53,52,251,651 +expnd_w3_eff_rays +bounds:150,276,186,297 +offsets:38,254,251,651 +expnd_w3_pttrn_1 +bounds:1884,757,124,105 +offsets:68,494,251,651 +rotate:90 +expnd_w3_pttrn_1_add +bounds:1113,241,124,105 +offsets:68,494,251,651 +expnd_w3_pttrn_1_glow +bounds:1252,658,130,111 +offsets:65,491,251,651 +expnd_w3_pttrn_2 +bounds:1097,477,137,62 +offsets:62,455,251,651 +rotate:90 +expnd_w3_pttrn_2_add +bounds:1252,529,137,62 +offsets:62,455,251,651 +expnd_w3_pttrn_2_glow +bounds:1041,259,143,70 +offsets:58,451,251,651 +rotate:90 +expnd_w3_pttrn_3 +bounds:1991,924,136,43 +offsets:63,303,251,651 +rotate:90 +expnd_w3_pttrn_3_add +bounds:1991,786,136,43 +offsets:63,303,251,651 +rotate:90 +expnd_w3_pttrn_3_glow +bounds:293,7,143,49 +offsets:59,300,251,651 +expnd_w3_pttrn_4 +bounds:1355,315,120,95 +offsets:71,218,251,651 +expnd_w3_pttrn_4_add +bounds:1355,218,120,95 +offsets:71,218,251,651 +expnd_w3_pttrn_4_glow +bounds:1384,653,126,101 +offsets:67,215,251,651 +expnd_w3_pttrn_5 +bounds:870,102,107,90 +offsets:77,139,251,651 +rotate:90 +expnd_w3_pttrn_5_add +bounds:962,132,107,90 +offsets:77,139,251,651 +rotate:90 +expnd_w3_pttrn_5_glow +bounds:1239,152,114,97 +offsets:73,135,251,651 +expnd_w3_pttrn_face +bounds:1129,4,86,58 +offsets:86,371,251,651 +rotate:90 +expnd_w3_pttrn_face_add +bounds:1215,38,86,58 +offsets:86,371,251,651 +expnd_w3_pttrn_face_crown1 +bounds:827,883,36,33 +offsets:113,420,251,651 +expnd_w3_pttrn_face_crown1_add +bounds:1884,171,36,33 +offsets:113,420,251,651 +expnd_w3_pttrn_face_crown2 +bounds:2003,105,24,31 +offsets:98,419,251,651 +rotate:90 +expnd_w3_pttrn_face_crown2_add +bounds:2001,79,24,31 +offsets:98,419,251,651 +rotate:90 +expnd_w3_pttrn_face_crown3 +bounds:928,70,26,30 +offsets:140,418,251,651 +expnd_w3_pttrn_face_crown3_add +bounds:1921,268,26,30 +offsets:140,418,251,651 +rotate:90 +expnd_w3_pttrn_face_crown4 +bounds:1742,71,21,24 +offsets:90,414,251,651 +expnd_w3_pttrn_face_crown4_add +bounds:1865,18,21,24 +offsets:90,414,251,651 +rotate:90 +expnd_w3_pttrn_face_crown5 +bounds:1653,2,20,23 +offsets:151,414,251,651 +rotate:90 +expnd_w3_pttrn_face_crown5_add +bounds:1678,2,20,23 +offsets:151,414,251,651 +rotate:90 +expnd_w3_pttrn_face_crown6 +bounds:1813,66,23,29 +offsets:83,395,251,651 +rotate:90 +expnd_w3_pttrn_face_crown6_add +bounds:1795,33,23,29 +offsets:83,395,251,651 +expnd_w3_pttrn_face_crown7 +bounds:1820,36,22,28 +offsets:155,396,251,651 +expnd_w3_pttrn_face_crown7_add +bounds:1865,41,22,28 +offsets:155,396,251,651 +expnd_w3_pttrn_face_earring_l +bounds:1714,422,27,25 +offsets:152,370,251,651 +rotate:90 +expnd_w3_pttrn_face_earring_l_add +bounds:1704,224,27,25 +offsets:152,370,251,651 +rotate:90 +expnd_w3_pttrn_face_earring_r +bounds:2006,158,28,25 +offsets:82,368,251,651 +expnd_w3_pttrn_face_earring_r_add +bounds:2006,131,28,25 +offsets:82,368,251,651 +expnd_w3_pttrn_face_necklace +bounds:1670,164,58,34 +offsets:103,353,251,651 +rotate:90 +expnd_w3_pttrn_face_necklace_add +bounds:1670,128,58,34 +offsets:103,353,251,651 +expnd_w3_pttrn_rays +bounds:1614,770,133,131 +offsets:64,337,251,651 +expnd_w3_pttrn_rays_add +bounds:1749,765,133,131 +offsets:64,337,251,651 +expnd_w3_pttrn_rays_glow +bounds:1264,771,140,138 +offsets:60,333,251,651 +expnd_win_anim_down +bounds:1252,466,135,61 +offsets:63,56,251,651 +expnd_win_anim_down_glow +bounds:1391,528,137,63 +offsets:62,55,251,651 +expnd_win_anim_up +bounds:1389,465,127,61 +offsets:67,556,251,651 +expnd_win_anim_up_glow +bounds:1252,593,130,63 +offsets:65,555,251,651 +expnd_win_anim_vert +bounds:150,575,43,593 +offsets:37,41,251,651 +rotate:90 +expnd_win_anim_vert_glow +bounds:150,620,47,597 +offsets:35,39,251,651 +rotate:90 +h1_eyelid_l +bounds:503,2,13,6 +offsets:140,479,251,651 +h1_eyelid_r +bounds:1237,450,11,8 +offsets:122,482,251,651 +lightning/lightning_00000 +bounds:1626,127,42,93 +offsets:46,102,150,247 +lightning/lightning_00001 +bounds:1626,127,42,93 +offsets:46,102,150,247 +lightning/lightning_00002 +bounds:1861,1062,57,158 +offsets:44,36,150,247 +rotate:90 +lightning/lightning_00003 +bounds:1780,898,81,158 +offsets:35,33,150,247 +rotate:90 +lightning/lightning_00004 +bounds:1457,913,94,160 +offsets:33,34,150,247 +rotate:90 +lightning/lightning_00005 +bounds:900,760,124,156 +offsets:15,34,150,247 +lightning/lightning_00006 +bounds:1861,1121,133,156 +offsets:14,34,150,247 +rotate:90 +lightning/lightning_00007 +bounds:1252,432,135,32 +offsets:15,31,150,247 +lightning/lightning_00008 +bounds:1619,903,95,159 +offsets:27,34,150,247 +rotate:90 +lightning_smoke/light_smoke_00003 +bounds:1919,144,1,1 +lightning_smoke/light_smoke_00004 +bounds:932,576,73,149 +offsets:37,42,150,247 +lightning_smoke/light_smoke_00005 +bounds:1026,765,75,156 +offsets:36,41,150,247 +lightning_smoke/light_smoke_00006 +bounds:1103,766,75,156 +offsets:36,41,150,247 +lightning_smoke/light_smoke_00007 +bounds:1828,981,79,161 +offsets:35,41,150,247 +rotate:90 +lightning_smoke/light_smoke_00008 +bounds:924,404,82,169 +offsets:35,40,150,247 +lightning_smoke/light_smoke_00009 +bounds:338,277,86,174 +offsets:33,39,150,247 +rotate:90 +lightning_smoke/light_smoke_00010 +bounds:831,393,91,180 +offsets:30,39,150,247 +lightning_smoke/light_smoke_00011 +bounds:869,211,91,180 +offsets:30,39,150,247 +lightning_smoke/light_smoke_00012 +bounds:749,575,92,181 +offsets:30,39,150,247 +rotate:90 +lightning_smoke/light_smoke_00013 +bounds:1267,911,95,183 +offsets:29,38,150,247 +rotate:90 +lightning_smoke/light_smoke_00014 +bounds:1457,1009,99,187 +offsets:28,38,150,247 +rotate:90 +lightning_smoke/light_smoke_00015 +bounds:724,727,100,188 +offsets:28,38,150,247 +lightning_smoke/light_smoke_00016 +bounds:1267,1008,100,188 +offsets:28,38,150,247 +rotate:90 +lightning_smoke/light_smoke_00017 +bounds:724,917,101,190 +offsets:28,37,150,247 +lightning_smoke/light_smoke_00018 +bounds:150,58,104,193 +offsets:27,36,150,247 +rotate:90 +lightning_smoke/light_smoke_00019 +bounds:345,58,106,194 +offsets:26,36,150,247 +rotate:90 +lightning_smoke/light_smoke_00020 +bounds:723,376,106,197 +offsets:26,35,150,247 +lightning_smoke/light_smoke_00021 +bounds:650,175,106,197 +offsets:26,35,150,247 +lightning_smoke/light_smoke_00022 +bounds:541,175,107,197 +offsets:26,35,150,247 +lightning_smoke/light_smoke_00023 +bounds:345,166,109,194 +offsets:25,38,150,247 +rotate:90 +lightning_smoke/light_smoke_00024 +bounds:541,64,109,194 +offsets:25,39,150,247 +rotate:90 +lightning_smoke/light_smoke_00025 +bounds:150,164,110,193 +offsets:24,40,150,247 +rotate:90 +lightning_smoke/light_smoke_00026 +bounds:758,183,109,191 +offsets:25,42,150,247 +lightning_smoke/light_smoke_00027 +bounds:827,918,108,190 +offsets:26,43,150,247 +lightning_smoke/light_smoke_00028 +bounds:937,923,107,185 +offsets:26,48,150,247 +lightning_smoke/light_smoke_00029 +bounds:1046,924,108,184 +offsets:26,50,150,247 +lightning_smoke/light_smoke_00030 +bounds:1156,926,109,182 +offsets:26,52,150,247 +lightning_smoke/light_smoke_00031 +bounds:1646,1000,108,180 +offsets:26,54,150,247 +rotate:90 +placeholder +bounds:1731,261,51,51 +smoke_01/smoke01_00000 +bounds:1180,766,5,15 +offsets:14,2,38,75 +rotate:90 +smoke_01/smoke01_00001 +bounds:1180,766,5,15 +offsets:14,2,38,75 +rotate:90 +smoke_01/smoke01_00002 +bounds:1884,883,13,32 +offsets:9,3,38,75 +rotate:90 +smoke_01/smoke01_00003 +bounds:2019,1212,15,42 +offsets:9,3,38,75 +smoke_01/smoke01_00004 +bounds:1532,2,18,45 +offsets:8,3,38,75 +rotate:90 +smoke_01/smoke01_00005 +bounds:1766,93,21,47 +offsets:8,3,38,75 +rotate:90 +smoke_01/smoke01_00006 +bounds:1766,93,21,47 +offsets:8,3,38,75 +rotate:90 +smoke_01/smoke01_00007 +bounds:1785,206,24,50 +offsets:8,3,38,75 +rotate:90 +smoke_01/smoke01_00008 +bounds:1981,315,24,53 +offsets:8,3,38,75 +rotate:90 +smoke_01/smoke01_00009 +bounds:1838,258,25,54 +offsets:8,3,38,75 +smoke_01/smoke01_00010 +bounds:1953,295,26,56 +offsets:8,3,38,75 +smoke_01/smoke01_00011 +bounds:1865,238,26,56 +offsets:8,3,38,75 +rotate:90 +smoke_01/smoke01_00012 +bounds:1806,362,26,57 +offsets:8,3,38,75 +rotate:90 +smoke_01/smoke01_00013 +bounds:1953,236,26,57 +offsets:9,3,38,75 +smoke_01/smoke01_00014 +bounds:1963,428,26,58 +offsets:9,3,38,75 +smoke_01/smoke01_00015 +bounds:1829,473,26,59 +offsets:10,3,38,75 +rotate:90 +smoke_01/smoke01_00016 +bounds:1829,473,26,59 +offsets:10,3,38,75 +rotate:90 +smoke_01/smoke01_00017 +bounds:1696,360,26,60 +offsets:10,3,38,75 +smoke_01/smoke01_00018 +bounds:1820,445,26,60 +offsets:10,3,38,75 +rotate:90 +smoke_01/smoke01_00019 +bounds:1704,253,25,60 +offsets:11,3,38,75 +smoke_01/smoke01_00020 +bounds:1724,360,25,60 +offsets:11,3,38,75 +smoke_01/smoke01_00021 +bounds:1724,360,25,60 +offsets:11,3,38,75 +smoke_01/smoke01_00022 +bounds:1865,357,26,60 +offsets:11,3,38,75 +rotate:90 +smoke_01/smoke01_00023 +bounds:1699,315,25,43 +offsets:11,3,38,75 +smoke_01/smoke01_00024 +bounds:1837,212,26,44 +offsets:11,3,38,75 +smoke_01/smoke01_00025 +bounds:1953,132,25,45 +offsets:11,3,38,75 +smoke_01/smoke01_00026 +bounds:1953,132,25,45 +offsets:11,3,38,75 +smoke_01/smoke01_00027 +bounds:1742,24,25,45 +offsets:12,3,38,75 +smoke_01/smoke01_00028 +bounds:1766,116,25,46 +offsets:12,3,38,75 +rotate:90 +smoke_01/smoke01_00029 +bounds:1814,117,24,47 +offsets:12,3,38,75 +rotate:90 +smoke_01/smoke01_00030 +bounds:1815,91,24,47 +offsets:12,3,38,75 +rotate:90 +smoke_01/smoke01_00031 +bounds:1815,91,24,47 +offsets:12,3,38,75 +rotate:90 +smoke_01/smoke01_00032 +bounds:1953,107,23,48 +offsets:13,3,38,75 +rotate:90 +smoke_01/smoke01_00033 +bounds:1864,96,23,48 +offsets:13,3,38,75 +rotate:90 +smoke_01/smoke01_00034 +bounds:1952,82,23,47 +offsets:13,5,38,75 +rotate:90 +smoke_01/smoke01_00035 +bounds:1864,71,23,46 +offsets:13,6,38,75 +rotate:90 +smoke_01/smoke01_00036 +bounds:1864,71,23,46 +offsets:13,6,38,75 +rotate:90 +smoke_01/smoke01_00037 +bounds:1769,45,24,46 +offsets:12,7,38,75 +smoke_01/smoke01_00038 +bounds:1891,14,23,26 +offsets:13,27,38,75 +smoke_01/smoke01_00039 +bounds:1101,146,22,8 +offsets:13,45,38,75 +smoke_01/smoke01_00040 +bounds:1741,428,21,8 +offsets:14,45,38,75 +rotate:90 +smoke_01/smoke01_00041 +bounds:1741,428,21,8 +offsets:14,45,38,75 +rotate:90 +smoke_01/smoke01_00042 +bounds:745,609,9,2 +offsets:14,51,38,75 +rotate:90 +smoke_02/smoke02_00000 +bounds:534,365,5,7 +offsets:16,2,38,75 +smoke_02/smoke02_00001 +bounds:534,365,5,7 +offsets:16,2,38,75 +smoke_02/smoke02_00002 +bounds:1097,459,8,16 +offsets:13,2,38,75 +smoke_02/smoke02_00003 +bounds:2024,265,10,20 +offsets:11,3,38,75 +smoke_02/smoke02_00004 +bounds:1780,981,17,23 +offsets:8,3,38,75 +rotate:90 +smoke_02/smoke02_00005 +bounds:1889,42,21,27 +offsets:6,3,38,75 +smoke_02/smoke02_00006 +bounds:1889,42,21,27 +offsets:6,3,38,75 +smoke_02/smoke02_00007 +bounds:1738,146,25,30 +offsets:5,3,38,75 +rotate:90 +smoke_02/smoke02_00008 +bounds:865,883,27,33 +offsets:4,3,38,75 +smoke_02/smoke02_00009 +bounds:1674,422,27,38 +offsets:4,3,38,75 +rotate:90 +smoke_02/smoke02_00010 +bounds:1923,225,28,41 +offsets:4,3,38,75 +smoke_02/smoke02_00011 +bounds:1923,225,28,41 +offsets:4,3,38,75 +smoke_02/smoke02_00012 +bounds:1726,315,28,43 +offsets:4,3,38,75 +smoke_02/smoke02_00013 +bounds:1627,422,29,45 +offsets:4,3,38,75 +rotate:90 +smoke_02/smoke02_00014 +bounds:1735,97,29,47 +offsets:4,3,38,75 +smoke_02/smoke02_00015 +bounds:1826,143,29,48 +offsets:4,3,38,75 +rotate:90 +smoke_02/smoke02_00016 +bounds:1826,143,29,48 +offsets:4,3,38,75 +rotate:90 +smoke_02/smoke02_00017 +bounds:1785,232,29,50 +offsets:4,3,38,75 +rotate:90 +smoke_02/smoke02_00018 +bounds:1731,230,29,52 +offsets:4,3,38,75 +rotate:90 +smoke_02/smoke02_00019 +bounds:1981,341,29,53 +offsets:4,3,38,75 +rotate:90 +smoke_02/smoke02_00020 +bounds:1922,169,29,54 +offsets:4,3,38,75 +smoke_02/smoke02_00021 +bounds:1922,169,29,54 +offsets:4,3,38,75 +smoke_02/smoke02_00022 +bounds:1770,143,29,54 +offsets:4,4,38,75 +rotate:90 +smoke_02/smoke02_00023 +bounds:1921,296,30,55 +offsets:3,4,38,75 +smoke_02/smoke02_00024 +bounds:1706,167,30,55 +offsets:3,4,38,75 +smoke_02/smoke02_00025 +bounds:870,70,30,56 +offsets:3,4,38,75 +rotate:90 +smoke_02/smoke02_00026 +bounds:870,70,30,56 +offsets:3,4,38,75 +rotate:90 +smoke_02/smoke02_00027 +bounds:1738,173,30,55 +offsets:3,5,38,75 +smoke_02/smoke02_00028 +bounds:1865,206,30,55 +offsets:3,5,38,75 +rotate:90 +smoke_02/smoke02_00029 +bounds:1770,174,30,55 +offsets:3,6,38,75 +rotate:90 +smoke_02/smoke02_00030 +bounds:1827,174,30,55 +offsets:3,6,38,75 +rotate:90 +smoke_02/smoke02_00031 +bounds:1827,174,30,55 +offsets:3,6,38,75 +rotate:90 +smoke_02/smoke02_00032 +bounds:1953,179,30,55 +offsets:3,6,38,75 +smoke_02/smoke02_00033 +bounds:1985,185,30,54 +offsets:3,7,38,75 +smoke_02/smoke02_00034 +bounds:1927,353,30,34 +offsets:3,28,38,75 +rotate:90 +smoke_02/smoke02_00035 +bounds:1209,159,28,27 +offsets:4,35,38,75 +smoke_02/smoke02_00036 +bounds:1209,159,28,27 +offsets:4,35,38,75 +smoke_02/smoke02_00037 +bounds:831,376,28,15 +offsets:4,47,38,75 +smoke_02/smoke02_00038 +bounds:1844,62,27,16 +offsets:4,47,38,75 +rotate:90 diff --git a/src/assets/mobile/spines/symbols/expanding/expanding_symbols.skel b/src/assets/mobile/spines/symbols/expanding/expanding_symbols.skel new file mode 100644 index 0000000..85e24a2 Binary files /dev/null and b/src/assets/mobile/spines/symbols/expanding/expanding_symbols.skel differ diff --git a/src/assets/mobile/spines/symbols/expanding/expanding_symbols.webp b/src/assets/mobile/spines/symbols/expanding/expanding_symbols.webp new file mode 100644 index 0000000..7fbabab Binary files /dev/null and b/src/assets/mobile/spines/symbols/expanding/expanding_symbols.webp differ diff --git a/src/assets/mobile/spines/symbols/high_symbols-h1-bounce.mov b/src/assets/mobile/spines/symbols/high_symbols-h1-bounce.mov new file mode 100644 index 0000000..65eccd1 Binary files /dev/null and b/src/assets/mobile/spines/symbols/high_symbols-h1-bounce.mov differ diff --git a/src/assets/mobile/spines/symbols/high_symbols-h1-idle.mov b/src/assets/mobile/spines/symbols/high_symbols-h1-idle.mov new file mode 100644 index 0000000..db6eab1 Binary files /dev/null and b/src/assets/mobile/spines/symbols/high_symbols-h1-idle.mov differ diff --git a/src/assets/mobile/spines/symbols/high_symbols-h1-win.mov b/src/assets/mobile/spines/symbols/high_symbols-h1-win.mov new file mode 100644 index 0000000..316fdac Binary files /dev/null and b/src/assets/mobile/spines/symbols/high_symbols-h1-win.mov differ diff --git a/src/assets/mobile/spines/symbols/high_symbols.skel b/src/assets/mobile/spines/symbols/high_symbols.skel new file mode 100644 index 0000000..12b0e4d Binary files /dev/null and b/src/assets/mobile/spines/symbols/high_symbols.skel differ diff --git a/src/assets/mobile/spines/symbols/low_symbols.skel b/src/assets/mobile/spines/symbols/low_symbols.skel new file mode 100644 index 0000000..2d7ea13 Binary files /dev/null and b/src/assets/mobile/spines/symbols/low_symbols.skel differ diff --git a/src/assets/mobile/spines/symbols/mid_symbols.skel b/src/assets/mobile/spines/symbols/mid_symbols.skel new file mode 100644 index 0000000..bf75658 Binary files /dev/null and b/src/assets/mobile/spines/symbols/mid_symbols.skel differ diff --git a/src/assets/mobile/spines/symbols/scatter.skel b/src/assets/mobile/spines/symbols/scatter.skel new file mode 100644 index 0000000..7894ce7 Binary files /dev/null and b/src/assets/mobile/spines/symbols/scatter.skel differ diff --git a/src/assets/mobile/spines/symbols/sticky_frame.skel b/src/assets/mobile/spines/symbols/sticky_frame.skel new file mode 100644 index 0000000..0a89078 Binary files /dev/null and b/src/assets/mobile/spines/symbols/sticky_frame.skel differ diff --git a/src/assets/mobile/spines/symbols/symbols.atlas b/src/assets/mobile/spines/symbols/symbols.atlas new file mode 100644 index 0000000..6a8f7da --- /dev/null +++ b/src/assets/mobile/spines/symbols/symbols.atlas @@ -0,0 +1,764 @@ +symbols.webp +size:2004,572 +filter:Linear,Linear +scale:0.5 +02/02_00000 +bounds:478,361,65,75 +offsets:6,8,88,88 +rotate:90 +02/02_00001 +bounds:1381,294,65,75 +offsets:6,8,88,88 +rotate:90 +02/02_00022 +bounds:1381,294,65,75 +offsets:6,8,88,88 +rotate:90 +02/02_00003 +bounds:75,20,69,72 +offsets:1,8,88,88 +rotate:90 +02/02_00025 +bounds:75,20,69,72 +offsets:1,8,88,88 +rotate:90 +02/02_00005 +bounds:1079,181,83,68 +offsets:0,11,88,88 +rotate:90 +02/02_00006 +bounds:1145,269,83,68 +offsets:0,11,88,88 +rotate:90 +02/02_00027 +bounds:1145,269,83,68 +offsets:0,11,88,88 +rotate:90 +02/02_00008 +bounds:1149,184,83,64 +offsets:0,12,88,88 +rotate:90 +02/02_00030 +bounds:1149,184,83,64 +offsets:0,12,88,88 +rotate:90 +02/02_00010 +bounds:1458,299,79,60 +offsets:4,13,88,88 +02/02_00011 +bounds:1694,257,79,60 +offsets:4,13,88,88 +02/02_00032 +bounds:1694,257,79,60 +offsets:4,13,88,88 +02/02_00013 +bounds:475,294,81,65 +offsets:4,15,88,88 +02/02_00035 +bounds:475,294,81,65 +offsets:4,15,88,88 +02/02_00017 +bounds:1215,292,81,67 +offsets:1,12,88,88 +02/02_00038 +bounds:1215,292,81,67 +offsets:1,12,88,88 +02/02_00019 +bounds:1539,292,72,67 +offsets:4,12,88,88 +02/02_00024 +bounds:1775,248,69,72 +offsets:1,8,88,88 +rotate:90 +02/02_00029 +bounds:1215,207,83,64 +offsets:0,12,88,88 +rotate:90 +02/02_00034 +bounds:1298,294,81,65 +offsets:4,15,88,88 +h1_bg +bounds:1753,319,131,131 +offsets:10,10,151,151 +h1_bg_glow2 +bounds:342,294,131,130 +offsets:10,11,151,151 +h1_body +bounds:282,156,129,64 +offsets:8,9,151,151 +rotate:90 +h1_effect/h1_effect_00007 +bounds:1992,252,10,10 +offsets:8,30,88,88 +h1_effect/h1_effect_00008 +bounds:99,2,16,14 +offsets:7,29,88,88 +rotate:90 +h1_effect/h1_effect_00009 +bounds:75,2,22,16 +offsets:7,30,88,88 +h1_effect/h1_effect_00010 +bounds:1597,2,29,19 +offsets:7,30,88,88 +rotate:90 +h1_effect/h1_effect_00011 +bounds:1405,2,31,27 +offsets:7,30,88,88 +h1_effect/h1_effect_00012 +bounds:1655,34,34,37 +offsets:8,32,88,88 +h1_effect/h1_effect_00013 +bounds:432,2,40,46 +offsets:7,30,88,88 +rotate:90 +h1_effect/h1_effect_00014 +bounds:282,102,50,52 +offsets:7,30,88,88 +h1_effect/h1_effect_00015 +bounds:1260,8,57,53 +offsets:8,31,88,88 +rotate:90 +h1_effect/h1_effect_00016 +bounds:1284,149,63,48 +offsets:11,36,88,88 +rotate:90 +h1_effect/h1_effect_00017 +bounds:1533,73,62,47 +offsets:13,37,88,88 +h1_effect/h1_effect_00018 +bounds:1405,31,55,50 +offsets:20,35,88,88 +rotate:90 +h1_effect/h1_effect_00019 +bounds:1669,164,51,59 +offsets:24,26,88,88 +rotate:90 +h1_effect/h1_effect_00020 +bounds:1215,154,51,67 +offsets:28,17,88,88 +rotate:90 +h1_effect/h1_effect_00021 +bounds:1281,214,49,76 +offsets:32,8,88,88 +h1_effect/h1_effect_00022 +bounds:622,46,44,79 +offsets:38,5,88,88 +rotate:90 +h1_effect/h1_effect_00023 +bounds:1613,283,34,79 +offsets:48,4,88,88 +rotate:90 +h1_effect/h1_effect_00024 +bounds:1460,79,27,71 +offsets:54,4,88,88 +rotate:90 +h1_effect/h1_effect_00025 +bounds:1315,13,29,61 +offsets:52,4,88,88 +h1_effect/h1_effect_00026 +bounds:1130,354,27,52 +offsets:54,4,88,88 +rotate:90 +h1_effect/h1_effect_00027 +bounds:1464,3,26,43 +offsets:55,4,88,88 +rotate:90 +h1_effect/h1_effect_00028 +bounds:1761,36,26,34 +offsets:55,4,88,88 +h1_effect/h1_effect_00029 +bounds:1814,44,26,25 +offsets:54,4,88,88 +h1_eye_l +bounds:558,294,12,12 +offsets:73,66,151,151 +h1_eye_r +bounds:334,102,14,13 +offsets:51,70,151,151 +h1_eyebrow_l +bounds:348,156,24,11 +offsets:68,69,151,151 +h1_eyebrow_r +bounds:1050,335,18,13 +offsets:50,73,151,151 +h1_eyelid_l +bounds:1124,2,16,7 +offsets:72,68,151,151 +h1_eyelid_r +bounds:1598,160,11,8 +offsets:53,73,151,151 +h1_feather_big +bounds:1215,120,32,66 +offsets:17,8,151,151 +rotate:90 +h1_feather_small +bounds:598,170,22,28 +offsets:104,16,151,151 +h1_frame +bounds:478,428,141,142 +offsets:5,5,151,151 +h1_frame_glow +bounds:333,426,143,144 +offsets:4,4,151,151 +h1_head +bounds:703,23,72,97 +offsets:42,29,151,151 +rotate:90 +h1_head_gld +bounds:972,2,20,21 +offsets:60,85,151,151 +h1_headpiece_fthr1 +bounds:502,2,45,55 +offsets:12,62,151,151 +rotate:90 +h1_headpiece_fthr2 +bounds:377,2,40,53 +offsets:21,88,151,151 +rotate:90 +h1_headpiece_fthr3 +bounds:1730,162,43,42 +offsets:35,100,151,151 +h1_headpiece_fthr4 +bounds:1066,67,33,39 +offsets:60,104,151,151 +rotate:90 +h1_headpiece_fthr5 +bounds:1688,80,36,40 +offsets:82,102,151,151 +rotate:90 +h1_headpiece_fthr6 +bounds:1130,383,52,47 +offsets:90,96,151,151 +h1_headpiece_fthr7 +bounds:1457,31,46,56 +offsets:97,73,151,151 +rotate:90 +h1_headpiece_fthr8 +bounds:1688,118,40,44 +offsets:102,41,151,151 +h1_headpiece_gld +bounds:1124,11,62,65 +offsets:57,74,151,151 +h1_necklace +bounds:1460,108,65,53 +offsets:44,8,151,151 +h1_s +bounds:906,431,138,139 +offsets:6,6,151,151 +h2_bg +bounds:149,102,131,132 +offsets:10,10,151,151 +h2_bg_glow +bounds:1619,319,131,132 +offsets:10,10,151,151 +rotate:90 +h2_body +bounds:271,287,135,69 +offsets:9,8,151,151 +rotate:90 +h2_earring_l +bounds:1766,6,14,28 +offsets:92,39,151,151 +h2_earring_r +bounds:1992,290,10,24 +offsets:40,41,151,151 +h2_effect/h2_effect_00007 +bounds:480,2,12,11 +offsets:11,17,88,88 +rotate:90 +h2_effect/h2_effect_00008 +bounds:898,302,18,14 +offsets:10,16,88,88 +h2_effect/h2_effect_00009 +bounds:251,399,23,18 +offsets:9,14,88,88 +rotate:90 +h2_effect/h2_effect_00010 +bounds:1438,2,27,24 +offsets:9,14,88,88 +rotate:90 +h2_effect/h2_effect_00011 +bounds:1729,36,30,34 +offsets:8,15,88,88 +h2_effect/h2_effect_00012 +bounds:1663,2,36,30 +offsets:7,14,88,88 +h2_effect/h2_effect_00013 +bounds:1871,113,36,43 +offsets:6,15,88,88 +rotate:90 +h2_effect/h2_effect_00014 +bounds:1837,208,36,56 +offsets:6,15,88,88 +rotate:90 +h2_effect/h2_effect_00015 +bounds:1146,78,44,66 +offsets:6,16,88,88 +rotate:90 +h2_effect/h2_effect_00016 +bounds:1214,67,51,71 +offsets:9,16,88,88 +rotate:90 +h2_effect/h2_effect_00017 +bounds:1399,221,57,71 +offsets:13,17,88,88 +h2_effect/h2_effect_00018 +bounds:1399,151,59,68 +offsets:15,19,88,88 +h2_effect/h2_effect_00019 +bounds:1338,84,59,65 +offsets:16,22,88,88 +h2_effect/h2_effect_00020 +bounds:1063,2,59,63 +offsets:17,24,88,88 +h2_effect/h2_effect_00021 +bounds:1599,172,56,68 +offsets:20,18,88,88 +rotate:90 +h2_effect/h2_effect_00022 +bounds:1527,231,59,70 +offsets:21,16,88,88 +rotate:90 +h2_effect/h2_effect_00023 +bounds:1527,170,59,70 +offsets:25,15,88,88 +rotate:90 +h2_effect/h2_effect_00024 +bounds:1188,11,54,70 +offsets:33,15,88,88 +rotate:90 +h2_effect/h2_effect_00025 +bounds:614,2,42,70 +offsets:45,14,88,88 +rotate:90 +h2_effect/h2_effect_00026 +bounds:185,389,33,64 +offsets:54,15,88,88 +rotate:90 +h2_effect/h2_effect_00027 +bounds:1515,2,29,55 +offsets:59,9,88,88 +rotate:90 +h2_effect/h2_effect_00028 +bounds:1618,3,28,43 +offsets:60,10,88,88 +rotate:90 +h2_effect/h2_effect_00029 +bounds:1869,43,26,33 +offsets:62,10,88,88 +rotate:90 +h2_effect/h2_effect_00030 +bounds:1924,93,24,26 +offsets:62,15,88,88 +h2_effect/h2_effect_00031 +bounds:994,2,20,21 +offsets:63,17,88,88 +h2_effect/h2_effect_00032 +bounds:115,2,16,14 +offsets:66,18,88,88 +rotate:90 +h2_effect/h2_effect_00033 +bounds:1188,67,10,9 +offsets:72,20,88,88 +h2_eye_l +bounds:686,30,14,15 +offsets:48,92,151,151 +rotate:90 +h2_eye_r +bounds:1673,264,17,17 +offsets:69,93,151,151 +h2_eyebrows_l +bounds:1992,264,24,10 +offsets:68,103,151,151 +rotate:90 +h2_eyebrows_r +bounds:251,389,13,8 +offsets:51,105,151,151 +h2_eyelid_l +bounds:1599,283,12,7 +offsets:49,98,151,151 +h2_eyelid_r +bounds:1904,70,18,11 +offsets:72,97,151,151 +h2_frame +bounds:621,428,141,142 +offsets:5,5,151,151 +h2_frame_glow +bounds:185,424,146,146 +offsets:3,3,151,151 +h2_hair +bounds:622,92,79,106 +offsets:48,18,151,151 +h2_head +bounds:1849,246,70,68 +offsets:41,54,151,151 +h2_headpiece +bounds:1775,211,60,35 +offsets:51,92,151,151 +h2_headpiece_fthr +bounds:1748,206,49,25 +offsets:63,115,151,151 +rotate:90 +h2_necklace +bounds:1673,217,73,38 +offsets:35,8,151,151 +h2_s +bounds:1046,432,136,138 +offsets:8,7,151,151 +light_01 +bounds:1023,335,25,94 +offsets:5,10,35,113 +low1_decor +bounds:1515,33,38,60 +offsets:56,46,151,151 +rotate:90 +low1_shadow +bounds:1287,76,49,71 +offsets:51,40,151,151 +low1_stone +bounds:1527,122,46,69 +offsets:52,41,151,151 +rotate:90 +low2_decor +bounds:1775,160,49,54 +offsets:51,49,151,151 +rotate:90 +low2_shadow +bounds:1332,221,65,71 +offsets:43,40,151,151 +low2_stone +bounds:1334,151,63,68 +offsets:44,42,151,151 +low3_decor +bounds:1460,163,65,65 +offsets:43,43,151,151 +low3_shadow +bounds:1066,102,78,77 +offsets:37,37,151,151 +low3_stone +bounds:802,26,75,75 +offsets:38,38,151,151 +low4_decor +bounds:1021,269,64,65 +offsets:43,43,151,151 +rotate:90 +low4_shadow +bounds:996,184,81,83 +offsets:35,34,151,151 +low4_stone +bounds:1050,350,78,80 +offsets:36,35,151,151 +low5_decor +bounds:972,25,89,70 +offsets:31,41,151,151 +low5_shadow +bounds:806,207,107,88 +offsets:22,32,151,151 +rotate:90 +low5_stone +bounds:918,345,103,84 +offsets:24,34,151,151 +m1_bg +bounds:502,49,118,118 +offsets:17,16,151,151 +m1_crown1 +bounds:1701,2,33,32 +offsets:60,94,151,151 +m1_crown2 +bounds:1572,2,23,29 +offsets:45,93,151,151 +m1_crown3 +bounds:1898,83,24,28 +offsets:85,92,151,151 +m1_crown4 +bounds:1038,3,20,23 +offsets:38,88,151,151 +rotate:90 +m1_crown5 +bounds:1016,2,20,21 +offsets:95,88,151,151 +m1_crown6 +bounds:1107,78,22,28 +offsets:30,70,151,151 +rotate:90 +m1_crown7 +bounds:480,16,20,26 +offsets:100,71,151,151 +m1_earring_l +bounds:1789,44,26,23 +offsets:96,47,151,151 +rotate:90 +m1_earring_r +bounds:1950,81,26,23 +offsets:30,45,151,151 +m1_face +bounds:1088,266,82,55 +offsets:34,48,151,151 +rotate:90 +m1_frame_glow +bounds:348,169,123,123 +offsets:14,14,151,151 +m1_necklace +bounds:1883,151,55,31 +offsets:50,31,151,151 +rotate:90 +m1_s +bounds:598,200,102,106 +offsets:25,25,151,151 +m2_bg +bounds:558,308,118,118 +offsets:17,16,151,151 +m2_earring1 +bounds:1736,4,30,28 +offsets:41,51,151,151 +rotate:90 +m2_earring2 +bounds:1842,44,25,25 +offsets:54,63,151,151 +m2_face +bounds:1895,211,32,56 +offsets:78,47,151,151 +rotate:90 +m2_frame_glow +bounds:377,44,123,123 +offsets:14,14,151,151 +m2_jaguar +bounds:2,2,71,87 +offsets:42,41,151,151 +m2_neck +bounds:1149,124,58,64 +offsets:30,31,151,151 +rotate:90 +m2_s +bounds:703,97,89,104 +offsets:26,25,151,151 +m3_bg +bounds:678,308,118,118 +offsets:17,16,151,151 +m3_eagle +bounds:918,269,74,101 +offsets:36,25,151,151 +rotate:90 +m3_face +bounds:559,2,45,53 +offsets:39,49,151,151 +rotate:90 +m3_frame_glow +bounds:473,169,123,123 +offsets:14,14,151,151 +m3_s +bounds:702,203,102,103 +offsets:34,24,151,151 +m3_wing +bounds:1599,230,51,72 +offsets:80,32,151,151 +rotate:90 +placeholder +bounds:1831,156,50,50 +reels_slot +bounds:764,430,140,140 +scttr_eff_glow_anticip1 +bounds:1865,2,39,36 +offsets:91,110,181,181 +rotate:90 +scttr_eff_glow_anticip2 +bounds:334,117,37,41 +offsets:109,91,181,181 +rotate:90 +scttr_eff_glow_anticip3 +bounds:1916,166,35,43 +offsets:111,49,181,181 +scttr_eff_glow_anticip4 +bounds:1775,72,39,37 +offsets:91,35,181,181 +rotate:90 +scttr_eff_glow_anticip5 +bounds:1789,2,40,36 +offsets:51,35,181,181 +rotate:90 +scttr_eff_glow_anticip6 +bounds:1598,121,37,42 +offsets:35,50,181,181 +rotate:90 +scttr_eff_glow_anticip7 +bounds:1691,36,36,42 +offsets:35,91,181,181 +scttr_eff_glow_anticip8 +bounds:1577,33,38,37 +offsets:53,109,181,181 +rotate:90 +scttr_eff_glow_win1 +bounds:1597,73,46,43 +offsets:87,107,181,181 +rotate:90 +scttr_eff_glow_win2 +bounds:1953,152,44,48 +offsets:106,87,181,181 +rotate:90 +scttr_eff_glow_win3 +bounds:1730,110,43,50 +offsets:107,46,181,181 +scttr_eff_glow_win4 +bounds:1823,110,46,44 +offsets:87,31,181,181 +scttr_eff_glow_win5 +bounds:1953,106,48,44 +offsets:47,31,181,181 +scttr_eff_glow_win6 +bounds:1642,112,44,50 +offsets:31,46,181,181 +scttr_eff_glow_win7 +bounds:1953,198,45,49 +offsets:31,87,181,181 +rotate:90 +scttr_eff_glow_win8 +bounds:1775,113,46,45 +offsets:49,105,181,181 +scttr_gem +bounds:1346,25,57,57 +offsets:62,62,181,181 +scttr_gem_eff_glow_win +bounds:1399,88,61,59 +offsets:59,61,181,181 +rotate:90 +scttr_gem_frame_gld +bounds:979,97,85,85 +offsets:48,48,181,181 +scttr_gem_frame_gld_s +bounds:879,6,91,91 +offsets:45,44,181,181 +scttr_gem_frame_pnk +bounds:1458,230,67,67 +offsets:57,57,181,181 +scttr_gem_frame_pnk_s +bounds:1921,245,69,69 +offsets:56,55,181,181 +scttr_mid_gems_dark_m +bounds:879,191,14,15 +offsets:46,55,181,181 +rotate:90 +scttr_mid_gems_dark_s +bounds:1619,452,12,9 +offsets:40,71,181,181 +scttr_mid_gems_light_m +bounds:131,4,14,14 +offsets:59,123,181,181 +scttr_mid_gems_light_s +bounds:271,273,9,12 +offsets:73,130,181,181 +scttr_mid_gld1 +bounds:1903,2,39,36 +offsets:91,110,181,181 +rotate:90 +scttr_mid_gld2 +bounds:1814,71,37,41 +offsets:109,91,181,181 +rotate:90 +scttr_mid_gld3 +bounds:1916,121,35,43 +offsets:111,49,181,181 +scttr_mid_gld4 +bounds:1857,71,39,37 +offsets:91,35,181,181 +scttr_mid_gld5 +bounds:1827,2,40,36 +offsets:51,35,181,181 +rotate:90 +scttr_mid_gld6 +bounds:1642,73,37,42 +offsets:35,50,181,181 +rotate:90 +scttr_mid_gld7 +bounds:1730,72,36,42 +offsets:35,91,181,181 +rotate:90 +scttr_mid_gld8 +bounds:1616,33,38,37 +offsets:53,109,181,181 +rotate:90 +scttr_mid_gld_s +bounds:1886,335,113,115 +offsets:34,32,181,181 +scttr_s +bounds:2,238,147,149 +offsets:18,21,181,181 +scttr_stone +bounds:2,91,145,145 +offsets:18,24,181,181 +sticky_frame_line1 +bounds:686,4,109,17 +offsets:35,152,181,181 +sticky_frame_line2 +bounds:1985,459,17,111 +offsets:149,39,181,181 +sticky_frame_line3 +bounds:898,318,110,18 +offsets:37,18,181,181 +rotate:90 +sticky_frame_line4 +bounds:1886,316,17,111 +offsets:15,36,181,181 +rotate:90 +sticky_frame_s +bounds:2,389,181,181 +sticky_frame_sqr1 +bounds:1978,80,24,24 +offsets:13,146,181,181 +sticky_frame_sqr2 +bounds:1924,67,24,24 +offsets:144,146,181,181 +sticky_frame_sqr3 +bounds:1950,56,23,24 +offsets:144,16,181,181 +rotate:90 +sticky_frame_sqr4 +bounds:1976,55,23,23 +offsets:14,17,181,181 +wild1 +bounds:149,2,112,98 +offsets:20,36,151,151 +wild1_frame +bounds:1184,361,143,100 +offsets:4,35,151,151 +wild1_glow +bounds:1679,452,151,118 +offsets:0,28,151,151 +wild1_in +bounds:896,184,98,83 +offsets:41,58,181,181 +wild2 +bounds:263,2,112,98 +offsets:20,36,151,151 +wild2_frame +bounds:1329,361,143,100 +offsets:4,35,151,151 +wild2_glow +bounds:1832,452,151,118 +offsets:0,28,151,151 +wild2_in +bounds:794,103,98,83 +offsets:41,58,181,181 +rotate:90 +wild3 +bounds:798,316,112,98 +offsets:20,36,151,151 +rotate:90 +wild3_frame +bounds:1474,361,143,100 +offsets:4,35,151,151 +wild3_glow +bounds:151,236,151,118 +offsets:0,28,151,151 +rotate:90 +wild3_in +bounds:879,99,98,83 +offsets:41,58,181,181 +wild_1_win +bounds:1184,463,163,107 +offsets:9,58,181,181 +wild_2_win +bounds:1349,463,163,107 +offsets:9,58,181,181 +wild_3_win +bounds:1514,463,163,107 +offsets:9,58,181,181 diff --git a/src/assets/mobile/spines/symbols/symbols.webp b/src/assets/mobile/spines/symbols/symbols.webp new file mode 100644 index 0000000..db69222 Binary files /dev/null and b/src/assets/mobile/spines/symbols/symbols.webp differ diff --git a/src/assets/mobile/spines/symbols/wild_symbols.skel b/src/assets/mobile/spines/symbols/wild_symbols.skel new file mode 100644 index 0000000..85897fb Binary files /dev/null and b/src/assets/mobile/spines/symbols/wild_symbols.skel differ diff --git a/src/assets/mobile/spines/transition/transition.atlas b/src/assets/mobile/spines/transition/transition.atlas new file mode 100644 index 0000000..92ced32 --- /dev/null +++ b/src/assets/mobile/spines/transition/transition.atlas @@ -0,0 +1,35 @@ +transition.webp +size:2048,2048 +filter:Linear,Linear +scale:0.75 +trans_bg_down1 +bounds:2,771,1237,1038 +offsets:1,0,2439,1082 +trans_bg_up1 +bounds:1241,571,1238,743 +offsets:0,339,2439,1082 +rotate:90 +trans_bg_up2 +bounds:2,2,1235,767 +offsets:1204,315,2439,1082 +trans_snake_down1 +bounds:1239,72,806,497 +offsets:432,251,2439,1082 + +transition_2.webp +size:2048,2048 +filter:Linear,Linear +scale:0.75 +trans_bg_down2 +bounds:2,1076,1236,738 +offsets:1203,0,2439,1082 +trans_snake_down2 +bounds:2,2,1181,520 +offsets:1204,238,2439,1082 +trans_snake_up1 +bounds:2,524,1181,550 +offsets:57,338,2439,1082 +trans_snake_up2 +bounds:1240,946,868,490 +offsets:1204,331,2439,1082 +rotate:90 diff --git a/src/assets/mobile/spines/transition/transition.skel b/src/assets/mobile/spines/transition/transition.skel new file mode 100644 index 0000000..eff37af Binary files /dev/null and b/src/assets/mobile/spines/transition/transition.skel differ diff --git a/src/assets/mobile/spines/transition/transition.webp b/src/assets/mobile/spines/transition/transition.webp new file mode 100644 index 0000000..bf31b42 Binary files /dev/null and b/src/assets/mobile/spines/transition/transition.webp differ diff --git a/src/assets/mobile/spines/transition/transition_2.webp b/src/assets/mobile/spines/transition/transition_2.webp new file mode 100644 index 0000000..53b7a37 Binary files /dev/null and b/src/assets/mobile/spines/transition/transition_2.webp differ diff --git a/src/assets/mobile/spines/ui/autospin_settings.skel b/src/assets/mobile/spines/ui/autospin_settings.skel new file mode 100644 index 0000000..38fc468 Binary files /dev/null and b/src/assets/mobile/spines/ui/autospin_settings.skel differ diff --git a/src/assets/mobile/spines/ui/buttons.atlas b/src/assets/mobile/spines/ui/buttons.atlas new file mode 100644 index 0000000..64607ac --- /dev/null +++ b/src/assets/mobile/spines/ui/buttons.atlas @@ -0,0 +1,20 @@ +buttons.webp +size:2048,128 +filter:Linear,Linear +bet-select-btn +bounds:758,2,250,110 +bet-select-btn-disabled +bounds:2,2,250,110 +bet-select-btn-hover +bounds:254,2,250,110 +bet-select-btn-press +bounds:506,2,250,110 +check-box +bounds:1174,52,60,60 +check-box-hover +bounds:1112,52,60,60 +close-btn +bounds:1236,72,38,40 +placeholder +bounds:1010,14,100,98 +offsets:1,1,102,100 diff --git a/src/assets/mobile/spines/ui/buttons.skel b/src/assets/mobile/spines/ui/buttons.skel new file mode 100644 index 0000000..c7d2d1e Binary files /dev/null and b/src/assets/mobile/spines/ui/buttons.skel differ diff --git a/src/assets/mobile/spines/ui/buttons.webp b/src/assets/mobile/spines/ui/buttons.webp new file mode 100644 index 0000000..d6b013b Binary files /dev/null and b/src/assets/mobile/spines/ui/buttons.webp differ diff --git a/src/assets/mobile/spines/ui/keyboard.skel b/src/assets/mobile/spines/ui/keyboard.skel new file mode 100644 index 0000000..b64a709 Binary files /dev/null and b/src/assets/mobile/spines/ui/keyboard.skel differ diff --git a/src/assets/mobile/spines/ui/settings.skel b/src/assets/mobile/spines/ui/settings.skel new file mode 100644 index 0000000..427518a Binary files /dev/null and b/src/assets/mobile/spines/ui/settings.skel differ diff --git a/src/assets/mobile/spines/ui/start_page_ui.skel b/src/assets/mobile/spines/ui/start_page_ui.skel new file mode 100644 index 0000000..5b50c4d Binary files /dev/null and b/src/assets/mobile/spines/ui/start_page_ui.skel differ diff --git a/src/assets/mobile/spines/ui/ui.atlas b/src/assets/mobile/spines/ui/ui.atlas new file mode 100644 index 0000000..8963d68 --- /dev/null +++ b/src/assets/mobile/spines/ui/ui.atlas @@ -0,0 +1,255 @@ +ui.webp +size:1388,2056 +filter:Linear,Linear +AS_bg_advanced_expanded +bounds:131,132,889,1122 +rotate:90 +as_top_bgTriangle +bounds:1369,1157,21,12 +offsets:1,1,23,14 +rotate:90 +autospin_btn +bounds:1093,1039,97,97 +autospin_infinity +bounds:338,9,45,20 +autospin_stop_btn +bounds:1277,1566,97,96 +offsets:0,1,97,97 +rotate:90 +autospins_back +bounds:1277,1665,182,96 +rotate:90 +bet_btn +bounds:1093,1638,97,97 +btn_AS_bg +bounds:131,63,163,67 +offsets:1,1,165,69 +btn_AudioToggle +bounds:1329,100,53,53 +offsets:1,1,55,55 +btn_bar_AudioToggle +bounds:1242,1261,586,33 +offsets:1,1,588,35 +rotate:90 +btn_bar_AudioToggle 2 +bounds:1205,1259,588,35 +rotate:90 +btn_bg_basic +bounds:1093,1180,290,77 +offsets:1,1,292,79 +btn_checkboxOff_bg +bounds:1324,214,57,57 +offsets:1,1,59,59 +btn_checkboxOn +bounds:1326,546,43,30 +offsets:1,1,45,32 +btn_checkboxOn_bg +bounds:1329,155,57,57 +offsets:1,1,59,59 +btn_circle_orange +bounds:1255,928,96,96 +btn_circle_yellow +bounds:1255,830,96,96 +btn_i10 +bounds:1324,400,144,62 +offsets:1,1,146,64 +rotate:90 +btn_i100 +bounds:1324,400,144,62 +offsets:1,1,146,64 +rotate:90 +btn_i25 +bounds:1324,400,144,62 +offsets:1,1,146,64 +rotate:90 +btn_i250 +bounds:1324,400,144,62 +offsets:1,1,146,64 +rotate:90 +btn_i50 +bounds:1324,400,144,62 +offsets:1,1,146,64 +rotate:90 +btn_i500 +bounds:1324,400,144,62 +offsets:1,1,146,64 +rotate:90 +btn_i750 +bounds:1324,400,144,62 +offsets:1,1,146,64 +rotate:90 +btn_i_1000 +bounds:1324,400,144,62 +offsets:1,1,146,64 +rotate:90 +btn_infinity +bounds:1324,400,144,62 +offsets:1,1,146,64 +rotate:90 +btn_x +bounds:1156,1324,41,42 +offsets:1,1,43,44 +btn_x_bg +bounds:1324,335,63,62 +offsets:1,1,65,64 +rotate:90 +checkboxOff_1 +bounds:296,66,64,64 +offsets:1,1,66,66 +checkboxOn_1 +bounds:362,66,64,64 +offsets:1,1,66,66 +checkboxOn_V_1 +bounds:338,31,47,33 +offsets:1,1,49,35 +close-btn +bounds:296,26,38,40 +rotate:90 +close_btn_ +bounds:1298,1850,60,60 +close_btn_hover +bounds:1324,273,60,60 +desktop_bg +bounds:2,5,2048,127 +rotate:90 +fr_back +bounds:1255,160,384,67 +offsets:1,0,385,67 +rotate:90 +home_btn +bounds:1093,1737,110,110 +info_btn +bounds:1298,1912,69,69 +max_btn +bounds:1192,1026,100,70 +max_btn_mob +bounds:1093,1539,97,97 +menu_btn +bounds:1294,1027,69,69 +minus_btn +bounds:1125,1368,69,70 +paytable_btn +bounds:1255,759,69,69 +placeholder +bounds:1360,1885,25,25 +plus_btn +bounds:1298,1983,69,70 +popiplay +bounds:1354,1272,122,32 +offsets:0,1,123,33 +rotate:90 +quick_btn +bounds:1093,1440,97,97 +quick_icon +bounds:1156,1262,37,60 +settings_bg +bounds:131,1023,960,1030 +offsets:1,1,962,1032 +settings_btn +bounds:1255,688,69,69 +sound_off_btn +bounds:1255,617,69,69 +sound_on_btn +bounds:1255,546,69,69 +spin_btn +bounds:1093,1849,204,203 +rotate:90 +tx_tNumbers of rounds +bounds:843,98,383,32 +offsets:1,1,385,34 +txt_Audio +bounds:1283,4,154,44 +offsets:1,1,156,46 +rotate:90 +txt_Autospin settings +bounds:428,83,413,47 +offsets:1,1,415,49 +txt_I +bounds:1093,1034,3,24 +offsets:1,1,5,26 +rotate:90 +txt_If bonus game is won +bounds:412,15,329,32 +offsets:1,1,331,34 +txt_If cash balance decreases by +bounds:1353,578,447,32 +offsets:1,1,449,34 +rotate:90 +txt_If cash balance increases by +bounds:428,49,436,32 +offsets:1,1,438,34 +txt_If single win exceeds +bounds:866,64,321,32 +offsets:1,1,323,34 +txt_Music +bounds:1125,1260,106,29 +offsets:1,1,108,31 +rotate:90 +txt_On any win +bounds:1354,1396,168,31 +offsets:1,1,170,33 +rotate:90 +txt_Settings +bounds:1277,1266,298,75 +offsets:1,1,300,77 +rotate:90 +txt_Sound FX +bounds:1093,1262,176,30 +offsets:1,1,178,32 +rotate:90 +txt_Spacebar to spin +bounds:866,24,311,38 +offsets:1,1,313,40 +txt_Stop_autospin +bounds:1093,1138,274,40 +offsets:1,1,276,42 +txt_Turbospin +bounds:1192,1098,185,38 +offsets:1,1,187,40 +txt_Volume +bounds:131,26,159,35 +offsets:1,1,161,37 +txt_btn_10 +bounds:387,31,33,23 +offsets:1,1,35,25 +rotate:90 +txt_btn_100 +bounds:1326,606,53,23 +offsets:1,1,55,25 +rotate:90 +txt_btn_1000 +bounds:1356,26,72,23 +offsets:1,1,74,25 +rotate:90 +txt_btn_25 +bounds:1360,1849,34,23 +offsets:1,1,36,25 +rotate:90 +txt_btn_250 +bounds:1326,717,54,23 +offsets:1,1,56,25 +rotate:90 +txt_btn_50 +bounds:1228,95,35,23 +offsets:1,1,37,25 +rotate:90 +txt_btn_500 +bounds:1326,773,55,23 +offsets:1,1,57,25 +rotate:90 +txt_btn_750 +bounds:1326,661,54,23 +offsets:1,1,56,25 +rotate:90 +txt_btn_Advanced +bounds:1255,2,156,26 +offsets:1,1,158,28 +rotate:90 +txt_btn_Basic +bounds:1329,17,81,25 +offsets:1,1,83,27 +rotate:90 +txt_btn_infinity +bounds:1365,1051,45,20 +offsets:1,1,47,22 +rotate:90 diff --git a/src/assets/mobile/spines/ui/ui.webp b/src/assets/mobile/spines/ui/ui.webp new file mode 100644 index 0000000..df6a7e2 Binary files /dev/null and b/src/assets/mobile/spines/ui/ui.webp differ diff --git a/src/assets/mobile/spines/wins/basic_win.skel b/src/assets/mobile/spines/wins/basic_win.skel new file mode 100644 index 0000000..d58348c Binary files /dev/null and b/src/assets/mobile/spines/wins/basic_win.skel differ diff --git a/src/assets/mobile/spines/wins/tap_to_continue.skel b/src/assets/mobile/spines/wins/tap_to_continue.skel new file mode 100644 index 0000000..b843531 Binary files /dev/null and b/src/assets/mobile/spines/wins/tap_to_continue.skel differ diff --git a/src/assets/mobile/spines/wins/value.skel b/src/assets/mobile/spines/wins/value.skel new file mode 100644 index 0000000..ffecdb2 Binary files /dev/null and b/src/assets/mobile/spines/wins/value.skel differ diff --git a/src/assets/mobile/spines/wins/wins.atlas b/src/assets/mobile/spines/wins/wins.atlas new file mode 100644 index 0000000..60000c7 --- /dev/null +++ b/src/assets/mobile/spines/wins/wins.atlas @@ -0,0 +1,909 @@ +wins.webp +size:2048,2000 +filter:Linear,Linear +scale:0.5 +basic_win_light_1 +bounds:1463,1944,149,31 +offsets:6,2,167,36 +basic_win_light_2 +bounds:975,1594,199,77 +offsets:5,4,209,84 +big_big_shadow +bounds:536,1424,157,93 +offsets:1,1,158,95 +big_big_text_top +bounds:1070,1740,128,63 +big_big_text_un +bounds:407,1609,139,74 +big_decor_1 +bounds:317,1820,55,52 +offsets:1,0,56,52 +big_decor_1_s +bounds:1939,1897,62,41 +offsets:1,1,64,42 +big_decor_2 +bounds:1200,1802,55,56 +offsets:1,0,57,56 +rotate:90 +big_decor_2_s_l +bounds:1240,1907,39,62 +offsets:1,1,40,64 +rotate:90 +big_decor_3 +bounds:1258,1799,56,56 +offsets:0,0,57,56 +big_decor_3_s_r +bounds:1619,1902,40,61 +offsets:0,1,40,63 +rotate:90 +big_decor_4 +bounds:54,1829,55,51 +offsets:1,0,57,52 +big_decor_4_s_un +bounds:607,1915,61,37 +offsets:1,0,63,38 +big_glow_0 +bounds:866,1981,17,17 +offsets:1,1,19,19 +big_glow_1 +bounds:278,942,207,209 +offsets:1,1,209,211 +rotate:90 +big_glow_2 +bounds:2008,1974,25,24 +offsets:1,1,27,26 +big_glow_3 +bounds:111,1828,51,88 +offsets:1,1,53,90 +rotate:90 +big_glow_top_0 +bounds:9,1993,6,5 +offsets:1,1,7,7 +big_glow_top_1 +bounds:1270,1079,196,198 +rotate:90 +big_glow_top_2 +bounds:336,1985,14,13 +big_glow_top_3 +bounds:1682,1900,40,76 +offsets:0,1,40,78 +rotate:90 +big_leaf_1 +bounds:1835,1975,23,37 +offsets:0,0,23,38 +rotate:90 +big_leaf_2 +bounds:455,1983,41,15 +offsets:1,0,42,15 +big_leaf_3 +bounds:240,1987,43,11 +big_leaf_4 +bounds:352,1984,14,37 +offsets:0,0,14,38 +rotate:90 +big_leaf_5 +bounds:94,1988,28,10 +big_leaf_6 +bounds:124,1988,37,10 +offsets:1,1,38,11 +big_leaf_7 +bounds:299,1959,28,25 +big_leaf_8 +bounds:163,1988,10,39 +rotate:90 +big_leaf_9 +bounds:1948,1712,67,82 +rotate:90 +big_leaf_palm_01 +bounds:1158,1948,43,30 +offsets:1,0,44,30 +big_leaf_palm_02 +bounds:981,1980,18,39 +offsets:0,1,18,40 +rotate:90 +big_leaf_palm_03 +bounds:156,1925,64,35 +offsets:0,0,64,36 +big_leaf_palm_04 +bounds:628,1982,54,16 +offsets:0,1,55,19 +big_leaf_palm_05 +bounds:430,1918,93,36 +offsets:0,0,93,37 +big_wheel_1 +bounds:550,399,291,292 +rotate:90 +big_wheel_2 +bounds:765,899,216,216 +big_wheel_3 +bounds:550,1129,179,180 +offsets:1,0,182,181 +rotate:90 +big_win_shadow +bounds:695,1419,170,93 +offsets:0,1,171,95 +big_win_text_top +bounds:1714,1726,143,63 +big_win_text_un +bounds:548,1604,154,74 +max_blood_1 +bounds:446,1817,189,50 +offsets:8,3,205,60 +max_blood_2 +bounds:126,1447,109,91 +offsets:38,0,171,93 +max_coins_left +bounds:1362,1660,178,67 +offsets:0,0,179,67 +max_coins_right +bounds:1542,1657,180,67 +max_earrings_left +bounds:637,1812,52,118 +rotate:90 +max_earrings_right +bounds:757,1811,52,118 +rotate:90 +max_earrings_shadow_l +bounds:169,1762,60,127 +rotate:90 +max_earrings_shadow_r +bounds:298,1757,60,127 +offsets:1,0,61,127 +rotate:90 +max_eye_l +bounds:1381,1946,39,31 +max_eyes_r +bounds:1422,1946,39,31 +max_glow_left +bounds:286,713,205,284 +offsets:2,2,209,288 +rotate:90 +max_glow_left_top +bounds:994,1085,195,274 +offsets:0,0,196,274 +rotate:90 +max_glow_right +bounds:572,692,205,284 +offsets:2,2,209,288 +rotate:90 +max_glow_right_top +bounds:1470,1032,195,274 +offsets:1,0,196,274 +rotate:90 +max_glow_top_02 +bounds:369,1957,25,31 +offsets:1,1,27,33 +rotate:90 +max_glow_top_03 +bounds:321,1874,65,44 +offsets:1,1,67,46 +max_glow_top_1 +bounds:815,1865,87,46 +offsets:1,1,89,48 +max_glow_top_1- +bounds:1468,1977,21,33 +offsets:1,1,23,35 +rotate:90 +max_glow_top_10 +bounds:670,1914,37,72 +offsets:1,1,39,74 +rotate:90 +max_glow_top_11 +bounds:1850,1646,74,71 +offsets:1,1,76,73 +max_glow_top_12 +bounds:528,1955,37,26 +offsets:1,1,39,28 +max_glow_top_2 +bounds:1760,1900,44,40 +offsets:1,1,46,42 +max_glow_top_2- +bounds:1874,1975,23,25 +offsets:1,1,25,27 +rotate:90 +max_glow_top_3 +bounds:92,1882,43,47 +offsets:1,1,45,49 +rotate:90 +max_glow_top_3- +bounds:201,1825,51,52 +offsets:1,1,53,54 +rotate:90 +max_glow_top_4 +bounds:1979,1843,49,67 +offsets:1,1,51,69 +rotate:90 +max_glow_top_4- +bounds:2,1547,144,79 +offsets:1,1,146,81 +max_glow_top_5 +bounds:1304,1906,66,39 +offsets:1,1,68,41 +max_glow_top_5- +bounds:1083,1805,115,54 +offsets:1,1,117,56 +max_glow_top_6 +bounds:904,1864,52,47 +offsets:1,1,54,49 +max_glow_top_6- +bounds:1022,1980,121,18 +offsets:1,1,123,20 +max_glow_top_7 +bounds:958,1861,81,46 +offsets:1,1,83,48 +max_glow_top_7- +bounds:671,1866,142,45 +offsets:1,1,144,47 +max_glow_top_8 +bounds:957,1807,124,52 +offsets:1,1,126,54 +max_glow_top_8- +bounds:1691,1942,73,32 +offsets:1,1,75,34 +max_glow_top_9 +bounds:459,1870,46,50 +offsets:1,1,48,52 +rotate:90 +max_head +bounds:858,668,318,218 +offsets:0,3,318,221 +max_head_back +bounds:1140,1500,116,84 +max_head_decor +bounds:1145,253,536,268 +max_hrad_crown +bounds:2,1191,318,134 +max_leaf_1 +bounds:684,1982,16,86 +rotate:90 +max_leaf_2 +bounds:861,1951,28,80 +rotate:90 +max_leaf_3 +bounds:959,1910,38,66 +rotate:90 +max_leaf_4 +bounds:374,1819,51,70 +rotate:90 +max_leaf_5 +bounds:600,1748,65,62 +max_leaf_6 +bounds:525,1917,36,41 +rotate:90 +max_leaf_7 +bounds:1877,1786,60,74 +rotate:90 +max_leaf_8 +bounds:270,1922,34,82 +rotate:90 +max_max +bounds:1333,1581,185,77 +offsets:1,0,186,77 +max_max_shadow +bounds:867,1419,199,93 +offsets:1,0,200,94 +max_max_top +bounds:667,1747,172,62 +max_mouth_top +bounds:1724,1654,124,70 +max_mouth_un +bounds:600,1680,125,65 +max_steps +bounds:2,481,546,230 +max_win +bounds:1176,1586,155,77 +offsets:1,0,157,78 +max_win_shadow +bounds:1068,1405,170,93 +offsets:0,0,171,94 +max_win_top +bounds:2,1700,143,63 +mega_circle_left_1 +bounds:567,1955,26,26 +mega_circle_left_2 +bounds:46,1884,44,44 +mega_circle_left_3 +bounds:1110,1908,39,39 +offsets:0,1,39,40 +mega_circle_right_1 +bounds:595,1955,26,26 +mega_circle_right_2 +bounds:222,1878,44,44 +mega_circle_right_3 +bounds:1372,1905,39,39 +offsets:0,1,39,40 +mega_circle_s +bounds:874,1306,181,111 +offsets:0,1,181,112 +mega_circle_top +bounds:1806,1899,40,40 +mega_eye_glow_l +bounds:1281,1857,48,47 +offsets:8,9,65,65 +mega_eye_glow_r +bounds:1281,1857,48,47 +offsets:8,9,65,65 +mega_eyes_left +bounds:1503,1977,30,21 +mega_eyes_right +bounds:1901,1975,30,23 +mega_eyes_top_l +bounds:1766,1942,39,32 +offsets:0,0,40,33 +mega_eyes_top_r +bounds:1807,1941,40,32 +offsets:0,0,40,33 +mega_face +bounds:1057,1290,117,113 +mega_face s +bounds:1176,1282,119,115 +mega_glow_1 +bounds:2,1931,34,45 +offsets:1,1,36,47 +rotate:90 +mega_glow_10 +bounds:2,1967,25,24 +offsets:1,1,27,26 +mega_glow_2 +bounds:1331,1856,73,47 +offsets:1,1,75,49 +mega_glow_3 +bounds:885,1981,17,17 +offsets:1,1,19,19 +mega_glow_4 +bounds:402,1957,29,25 +offsets:1,1,31,27 +mega_glow_5 +bounds:1929,1940,34,33 +offsets:1,1,36,35 +mega_glow_6 +bounds:222,1924,46,35 +offsets:1,1,48,37 +mega_glow_7 +bounds:1535,1977,44,21 +offsets:1,1,46,23 +mega_glow_8 +bounds:1849,1941,32,34 +offsets:1,1,34,36 +rotate:90 +mega_glow_9 +bounds:49,1930,34,41 +offsets:1,1,36,43 +rotate:90 +mega_glow_left +bounds:1259,827,203,282 +offsets:3,3,209,288 +rotate:90 +mega_glow_left_top +bounds:1746,1002,195,274 +offsets:0,0,196,274 +rotate:90 +mega_glow_right +bounds:1543,797,203,282 +offsets:3,3,209,288 +rotate:90 +mega_glow_right_top +bounds:2,994,195,274 +offsets:1,0,196,274 +rotate:90 +mega_glow_top_1 +bounds:29,1967,24,34 +offsets:0,1,24,35 +rotate:90 +mega_glow_top_10 +bounds:391,1984,15,14 +mega_glow_top_2 +bounds:744,1913,61,37 +offsets:1,0,63,37 +mega_glow_top_3 +bounds:77,1992,6,6 +offsets:1,1,7,7 +mega_glow_top_4 +bounds:408,1984,19,14 +offsets:0,0,19,15 +mega_glow_top_5 +bounds:1719,1976,24,22 +offsets:0,0,24,23 +mega_glow_top_6 +bounds:433,1956,36,25 +mega_glow_top_7 +bounds:204,1988,34,10 +offsets:0,1,34,11 +mega_glow_top_8 +bounds:1745,1976,22,24 +rotate:90 +mega_glow_top_9 +bounds:94,1962,24,31 +rotate:90 +mega_leaf_1 +bounds:1027,1909,81,38 +offsets:1,0,82,38 +mega_leaf_2 +bounds:1507,1795,70,59 +offsets:1,1,71,60 +mega_leaf_3 +bounds:388,1872,44,69 +offsets:0,0,44,70 +rotate:90 +mega_leaf_4 +bounds:1614,1944,31,75 +offsets:1,3,32,80 +rotate:90 +mega_leaf_5 +bounds:1151,1908,38,87 +offsets:0,1,38,88 +rotate:90 +mega_leaf_6 +bounds:255,1824,51,60 +offsets:0,2,51,62 +rotate:90 +mega_leaf_7 +bounds:1456,1903,39,81 +offsets:0,0,39,82 +rotate:90 +mega_leana_01 +bounds:237,1444,125,94 +mega_leana_02 +bounds:1670,1852,214,45 +mega_leana_03 +bounds:1258,1494,174,85 +mega_mega +bounds:148,1540,240,75 +mega_mega_shadow +bounds:1411,1394,256,93 +offsets:1,1,257,95 +mega_mega_top +bounds:841,1743,227,62 +mega_mouth_back_1 +bounds:92,1927,62,33 +mega_mouth_back_2 +bounds:1595,1853,73,47 +mega_mouth_top +bounds:1933,1975,73,23 +mega_mouth_un +bounds:786,1952,73,28 +mega_tongue +bounds:1885,1941,32,42 +offsets:2,2,36,44 +rotate:90 +mega_wheel1_shadow_x2 +bounds:1635,1229,143,147 +offsets:0,1,143,149 +rotate:90 +mega_wheel_1 +bounds:1755,438,278,287 +rotate:90 +mega_wheel_2 +bounds:844,368,299,298 +offsets:0,0,299,299 +mega_win +bounds:704,1603,154,74 +mega_win_shadow +bounds:1240,1399,169,93 +offsets:0,1,170,95 +mega_win_top +bounds:147,1697,143,63 +placeholder +bounds:2,1832,50,50 +source_win_bg_x4 +bounds:322,1151,226,174 +offsets:6,5,238,183 +super_eyes_left +bounds:1340,1979,68,19 +offsets:0,0,69,19 +super_eyes_right +bounds:1410,1979,19,19 +super_fangs_left +bounds:1145,1980,18,39 +offsets:1,1,20,40 +rotate:90 +super_fangs_right +bounds:1186,1980,18,39 +offsets:1,1,19,40 +rotate:90 +super_glow_1 +bounds:2007,1938,34,37 +offsets:1,1,36,39 +rotate:90 +super_glow_10 +bounds:1477,1273,119,156 +offsets:1,1,121,158 +rotate:90 +super_glow_11 +bounds:1480,1729,87,64 +offsets:1,1,89,66 +super_glow_2 +bounds:127,1962,34,24 +offsets:1,1,36,26 +super_glow_3 +bounds:498,1983,15,41 +offsets:1,1,17,43 +rotate:90 +super_glow_4 +bounds:1848,1899,41,40 +offsets:1,1,43,42 +super_glow_5 +bounds:1227,1980,18,18 +offsets:1,1,20,20 +super_glow_6 +bounds:183,1620,75,97 +offsets:1,1,77,99 +rotate:90 +super_glow_7 +bounds:354,1920,35,74 +offsets:1,1,37,76 +rotate:90 +super_glow_8 +bounds:1581,1977,22,21 +offsets:1,1,24,23 +super_glow_9 +bounds:1405,1797,100,57 +offsets:1,1,102,59 +super_glow_left +bounds:2,737,203,282 +offsets:3,3,209,288 +rotate:90 +super_glow_left_top +bounds:489,920,195,274 +offsets:0,0,196,274 +rotate:90 +super_glow_right +bounds:1827,718,203,282 +offsets:3,3,209,288 +super_glow_right_ear_l +bounds:541,1983,15,22 +offsets:1,1,17,24 +rotate:90 +super_glow_right_ear_l2 +bounds:541,1983,15,22 +offsets:1,1,17,24 +rotate:90 +super_glow_right_ear_r +bounds:565,1983,15,22 +offsets:1,1,17,24 +rotate:90 +super_glow_right_ear_r2 +bounds:565,1983,15,22 +offsets:1,1,17,24 +rotate:90 +super_glow_right_top +bounds:983,888,195,274 +offsets:1,0,196,274 +rotate:90 +super_glow_top_1 +bounds:65,1966,24,27 +rotate:90 +super_glow_top_10 +bounds:1843,1357,110,146 +offsets:0,0,110,147 +rotate:90 +super_glow_top_11 +bounds:877,1808,78,54 +offsets:0,1,78,55 +super_glow_top_2 +bounds:429,1984,24,14 +super_glow_top_3 +bounds:17,1993,5,30 +offsets:0,0,5,31 +rotate:90 +super_glow_top_4 +bounds:1203,1948,30,30 +offsets:0,0,31,30 +super_glow_top_5 +bounds:85,1992,6,7 +offsets:1,0,8,8 +rotate:90 +super_glow_top_6 +bounds:1859,1719,65,87 +rotate:90 +super_glow_top_7 +bounds:163,1962,24,64 +offsets:0,0,25,64 +rotate:90 +super_glow_top_8 +bounds:285,1987,12,11 +super_glow_top_9 +bounds:1886,1848,91,47 +offsets:0,1,91,48 +super_head +bounds:1784,1199,196,156 +super_head_decor +bounds:1579,1793,146,57 +super_head_decor_shadow +bounds:1727,1791,148,59 +super_leaf_1 +bounds:1247,1980,36,18 +super_leaf_2 +bounds:1431,1979,35,19 +offsets:1,0,36,20 +super_leaf_3 +bounds:943,1951,28,28 +super_leaf_4 +bounds:1605,1977,31,21 +super_leaf_5 +bounds:1285,1980,22,18 +super_leaf_6 +bounds:471,1956,27,25 +super_leaf_7 +bounds:229,1961,24,29 +rotate:90 +super_leaf_8 +bounds:299,1986,12,35 +rotate:90 +super_leaf_9 +bounds:521,1685,68,77 +rotate:90 +super_mega +bounds:390,1525,242,77 +offsets:0,0,242,78 +super_mega_shadow +bounds:2,1348,257,94 +offsets:1,1,258,96 +super_mega_top +bounds:292,1691,227,62 +super_mouth +bounds:141,1881,79,42 +super_mouth_bg +bounds:1235,1948,66,30 +super_mouth_top +bounds:1638,1977,79,21 +super_super +bounds:511,1869,158,43 +super_super_shadow +bounds:1041,1861,160,45 +offsets:0,0,160,46 +super_super_top +bounds:807,1913,150,36 +super_wheel1 +bounds:1683,75,363,361 +offsets:2,2,367,365 +super_wheel2 +bounds:1478,523,275,272 +super_win +bounds:1520,1578,156,77 +super_win_shadow +bounds:364,1431,170,92 +offsets:0,1,171,94 +super_win_top +bounds:1200,1734,143,62 +total_blood_1 +bounds:994,1673,184,65 +offsets:2,5,187,77 +total_blood_2 +bounds:860,1598,113,79 +offsets:1,20,116,100 +total_blood_3 +bounds:1345,1733,133,62 +offsets:2,4,137,68 +total_blood_5 +bounds:427,1755,171,60 +offsets:1,1,173,62 +total_coins_left +bounds:2,1628,179,67 +offsets:0,0,180,67 +total_coins_right +bounds:1180,1665,180,66 +total_column_left +bounds:1726,1469,88,128 +rotate:90 +total_column_right +bounds:1856,1469,88,128 +rotate:90 +total_decor_left +bounds:2003,1894,42,42 +total_decor_right +bounds:2,1887,42,42 +total_eye_l +bounds:1771,1976,30,22 +total_eye_r +bounds:1803,1976,30,22 +total_fire_left +bounds:260,1961,24,37 +offsets:2,2,28,41 +rotate:90 +total_fire_right +bounds:329,1958,24,38 +offsets:2,2,28,41 +rotate:90 +total_glow_00 +bounds:2,1456,122,89 +offsets:2,2,126,93 +total_glow_1 +bounds:1413,1905,39,41 +offsets:1,1,41,43 +rotate:90 +total_glow_14 +bounds:568,1916,37,37 +offsets:1,1,39,39 +total_glow_15 +bounds:671,1953,42,27 +offsets:1,1,44,29 +total_glow_16 +bounds:1316,1798,56,87 +offsets:1,1,58,89 +rotate:90 +total_glow_17 +bounds:589,1983,15,20 +offsets:1,1,17,22 +rotate:90 +total_glow_18 +bounds:715,1953,27,38 +offsets:1,1,29,40 +rotate:90 +total_glow_2 +bounds:611,1983,15,15 +offsets:1,1,17,17 +total_glow_3 +bounds:973,1950,31,28 +offsets:1,1,33,30 +total_glow_4 +bounds:623,1954,46,26 +offsets:1,1,48,28 +total_glow_5 +bounds:1891,1898,40,46 +offsets:1,1,42,48 +rotate:90 +total_glow_6 +bounds:772,1982,26,16 +offsets:1,1,28,18 +total_glow_7 +bounds:1340,1947,39,30 +offsets:1,1,41,32 +total_glow_8 +bounds:268,1877,43,51 +offsets:1,1,45,53 +rotate:90 +total_glow_9 +bounds:755,1953,29,27 +offsets:1,1,31,29 +total_glow_left +bounds:106,1765,61,61 +offsets:6,5,72,72 +total_glow_right +bounds:1953,1781,61,60 +offsets:5,6,72,73 +total_glow_top_0 +bounds:634,1519,115,82 +total_glow_top_1 +bounds:1006,1950,28,31 +offsets:0,0,29,31 +rotate:90 +total_glow_top_14 +bounds:500,1956,26,25 +offsets:0,1,26,27 +total_glow_top_15 +bounds:904,1981,32,17 +total_glow_top_16 +bounds:1203,1859,46,76 +rotate:90 +total_glow_top_17 +bounds:49,1993,5,9 +offsets:0,1,5,10 +rotate:90 +total_glow_top_18 +bounds:800,1982,16,26 +offsets:0,1,17,28 +rotate:90 +total_glow_top_1_ +bounds:2,1767,102,60 +offsets:1,1,104,62 +total_glow_top_2 +bounds:2,1994,4,5 +offsets:0,0,5,5 +rotate:90 +total_glow_top_2_ +bounds:1926,1639,77,71 +offsets:1,1,79,73 +total_glow_top_3 +bounds:938,1981,20,17 +offsets:1,1,21,18 +total_glow_top_3_ +bounds:1539,1903,78,39 +offsets:1,1,80,41 +total_glow_top_4 +bounds:828,1982,36,16 +total_glow_top_4_ +bounds:1406,1856,187,45 +offsets:1,1,189,47 +total_glow_top_5 +bounds:1303,1948,30,35 +offsets:0,0,30,36 +rotate:90 +total_glow_top_6 +bounds:60,1993,15,5 +offsets:0,0,16,6 +total_glow_top_7 +bounds:1309,1980,29,18 +offsets:0,1,29,20 +total_glow_top_8 +bounds:1965,1940,33,40 +offsets:0,0,33,41 +rotate:90 +total_glow_top_9 +bounds:960,1981,19,17 +total_head_bottom +bounds:1836,1559,172,78 +total_head_decor +bounds:751,1519,82,104 +rotate:90 +total_head_top +bounds:1297,1277,178,115 +total_light_red_x2 +bounds:732,1117,260,187 +offsets:14,4,284,196 +total_mouth_back +bounds:282,1617,123,72 +total_mouth_blood_4 +bounds:1039,1949,117,29 +offsets:1,0,120,32 +total_rays_02 +bounds:2,159,686,238 +offsets:19,21,724,260 +total_steps +bounds:560,1310,312,107 +total_total +bounds:857,1514,281,78 +total_total_shadow +bounds:1669,1374,172,93 +offsets:1,1,174,95 +total_total_top +bounds:727,1679,265,62 +total_whell1 +bounds:690,2,364,364 +offsets:2,2,368,368 +total_whell1_shadow +bounds:1434,1489,290,84 +offsets:2,0,294,87 +total_whell2 +bounds:1178,588,298,237 +offsets:1,1,301,239 +total_win +bounds:1678,1575,156,77 +total_win_shadow +bounds:261,1327,297,95 +offsets:1,0,299,96 +total_win_top +bounds:1569,1729,143,62 + +wins_2.webp +size:1916,1436 +filter:Linear,Linear +scale:0.5 +big_bg +bounds:1298,1071,613,362 +offsets:14,14,641,391 +max_bg +bounds:1409,50,655,387 +offsets:15,15,686,418 +rotate:90 +max_rays_01 +bounds:454,629,804,409 +offsets:47,20,889,430 +rotate:90 +max_rays_02 +bounds:2,565,868,450 +offsets:2,19,902,469 +rotate:90 +mega_bg +bounds:768,13,614,362 +offsets:13,14,641,391 +rotate:90 +mega_smoke +bounds:392,27,536,374 +offsets:3,91,563,484 +rotate:90 +super_bg +bounds:1298,707,613,362 +offsets:14,14,641,391 +super_smoke +bounds:2,2,561,388 +offsets:3,96,589,506 +rotate:90 +total_bg +bounds:865,703,730,431 +offsets:17,17,764,465 +rotate:90 +total_rays_01 +bounds:1132,44,657,275 +offsets:28,31,710,306 +rotate:90 diff --git a/src/assets/mobile/spines/wins/wins.skel b/src/assets/mobile/spines/wins/wins.skel new file mode 100644 index 0000000..f34f089 Binary files /dev/null and b/src/assets/mobile/spines/wins/wins.skel differ diff --git a/src/assets/mobile/spines/wins/wins.webp b/src/assets/mobile/spines/wins/wins.webp new file mode 100644 index 0000000..750cbc7 Binary files /dev/null and b/src/assets/mobile/spines/wins/wins.webp differ diff --git a/src/assets/mobile/spines/wins/wins_2.webp b/src/assets/mobile/spines/wins/wins_2.webp new file mode 100644 index 0000000..12f6553 Binary files /dev/null and b/src/assets/mobile/spines/wins/wins_2.webp differ diff --git a/src/assets/mobile/spines/wins/wins_back.atlas b/src/assets/mobile/spines/wins/wins_back.atlas new file mode 100644 index 0000000..80fdd9d --- /dev/null +++ b/src/assets/mobile/spines/wins/wins_back.atlas @@ -0,0 +1,13 @@ + +wins_back.webp +size: 312, 152 +format: RGBA8888 +filter: Linear, Linear +repeat: none +BG + rotate: false + xy: 2, 2 + size: 308, 148 + orig: 308, 148 + offset: 0, 0 + index: -1 diff --git a/src/assets/mobile/spines/wins/wins_back.skel b/src/assets/mobile/spines/wins/wins_back.skel new file mode 100644 index 0000000..31a4adc Binary files /dev/null and b/src/assets/mobile/spines/wins/wins_back.skel differ diff --git a/src/assets/mobile/spines/wins/wins_back.webp b/src/assets/mobile/spines/wins/wins_back.webp new file mode 100644 index 0000000..891be3b Binary files /dev/null and b/src/assets/mobile/spines/wins/wins_back.webp differ diff --git a/src/assets/mobile/spines/wins/xbet_value.skel b/src/assets/mobile/spines/wins/xbet_value.skel new file mode 100644 index 0000000..6178d64 Binary files /dev/null and b/src/assets/mobile/spines/wins/xbet_value.skel differ diff --git a/src/assets/rules/locales/de.html b/src/assets/rules/locales/de.html new file mode 100644 index 0000000..bda61c0 --- /dev/null +++ b/src/assets/rules/locales/de.html @@ -0,0 +1,88 @@ +
+
+

Über das Spiel

+

Tritt ein in im Slot Amazonas City of Gold, wo in den schattigen Tiefen eine dunkle Cyberpunk-Zivilisation verborgen im Dschungel lebt. Drehe die Walzen, um uralte Artefakte zu entdecken, und begegne rätselhaften Figuren wie dem Priester, dem Schamanen, dem Krieger und der Königin. Entfessle die Macht der gestapelten Wilds mit bis zu 200x Multiplikatoren, löse Freispiele aus und aktiviere die Respin-Funktion für große Gewinne. Mit einer hohen Volatilität und der Möglichkeit, bis zu {MAX_MULTIPLIER}x deines Einsatzes zu gewinnen, verspricht jede Drehung epische Gewinne. Tauche ein in das Sammeln von Schätzen und ergründe die Geheimnisse dieser erstaunlichen Welt!

+
+
+

Spielweise

+

Das Spiel umfasst Gewinnlinien. Wähle die Einsatzhöhe mithilfe der Schaltflächen im Feld „Gesamteinsatz“. Höhere Einsätze erhöhen den Gesamtgewinn. Um den maximalen Einsatz zu tätigen, klicke auf die Schaltfläche „MAX“. Der gewählte Einsatzwert wird im entsprechenden Feld angezeigt. Um die Walzen zu drehen, klicke auf die Schaltfläche „Drehen“ oder drücke die Leertaste.

+
+
+

Autospiel

+

Klicke auf die Schaltfläche Auto-Drehungen (A), um die Basiseinstellungen oder die erweiterten Einstellungen zu wählen.

+

Basiseinstellungen für Auto-Drehungen. Verwende die Basiseinstellung nur, um die Anzahl der automatisch zu spielenden Runden auszuwählen. +

+

+ Erweiterte Autodreh-Einstellungen: Du kannst auch zusätzliche Bedingungen wählen, um das automatische Drehen und stoppen der Walzen zu beenden: +

    +
  • bei Gewinn – Autodreh wird nach einem Gewinn deaktiviert;
  • +
  • wenn Bonusspiel gewonnen wird – Autodreh stoppt nach gewonnenem Bonusspiel;
  • +
  • wenn Einzelgewinn höher ist als – Autodreh stoppt, wenn ein Einzelgewinn über der in diesem Feld eingetragenen Summe liegt;
  • +
  • wenn Barguthaben höher ist als – Autodreh stoppt, wenn das aktuelle Guthaben über der in diesem Feld eingetragenen Summe liegt;
  • +
  • wenn Kontostand um X sinkt – Auto-Drehungen werden gestoppt, wenn der aktuelle Kontostand unter die in diesem Feld angegebene Summe fällt;
    Um die Drehungen zu stoppen, klicke auf die Schaltfläche Auto-Drehungen stoppen.
  • +
+

+

Autospiel startet, wenn du auf die Anzahl der Runden klickst und die Schaltfläche „Autospiel“ die Anzahl der verbleibenden Drehungen anzeigt.

+
+
+

Max. Einsatz

+

Drücke die Schaltfläche „MAX“, um den Höchstbetrag pro Dreh zu setzen. Der Höchsteinsatz hängt in diesem Fall vom Spielerguthaben und den Operator-Einstellungen ab.

+
+
+

Zusatzfunktionen

+

+ Wild-Multiplikator. Wild-Multiplikatoren können auf jeder Walze des Basisspiels in 3 Varianten landen: Grüne Wilds haben Werte von x1, x2, x3 oder x4, lila Wilds haben Werte von x5, x10, x15 oder x20 und rote Wilds haben x25, x50, x75, x100, x150 oder x200. Wilds ersetzen jedes Auszahlungssymbol und erhöhen, wenn sie Teil einer Gewinnkombination sind, den Gewinnbetrag durch ihren Multiplikator. Wenn mehr als ein Wild Teil eines Gewinns ist, werden die Werte addiert, bevor sie zum Gewinnbetrag hinzugerechnet werden. Volle Gewinnlinien mit Wilds sind das 100x des Einsatzes wert. +

+

+ Pfad des Kriegers. Wenn du 3 Wilds in derselben Runde erhältst, wird die Funktion „Pfad des Kriegers“ ausgelöst. Die Wilds, die die Funktion ausgelöst haben, werden klebrig und es werden 3 Drehungen vergeben. Neue Wilds, die auf den Walzen landen, setzen die Drehungen auf 3 zurück und werden außerdem klebrig. Wenn ein neues Wild auf eine Zelle fällt, die bereits das Schlangensymbol enthält, addieren sich ihre Werte. Gewinne werden bei jeder Drehung ausgezahlt, und die Funktion endet, wenn alle Drehungen aufgebraucht sind. +

+

+ Die Ritual-Freispiele. Eine goldene Sonnenscheibe ist ein Scatter-Symbol. Wenn du 3 davon findest, erhältst du 10 Freispiele. Wenn in der Bonusrunde ein Scatter-Symbol auf einer der Walzen 1 bis 5 erscheint, verwandelt es sich für diese Runde in eine Wild-Ritualwalze. Die Ritualwalzen sind gestapelte Wilds mit Multiplikatoren. Der Wert des Multiplikators hängt von der Art des gestapelten Wilds ab: Priester – 2x, 3x, oder 4x, Schamane – 5x, 10x, 15x, oder 20x, Goldenes Idol – 25x, 50x, 75x, 100x, 150x, oder 200x. Die Multiplikatoren werden vor Anwendung addiert, wenn mehr als eine Ritualwalze aktiv ist. +

+

+ Bonuskauf. Diese Funktion ermöglicht die Aktivierung der Bonusfunktion oder des Spiels zu einem bestimmten Preis. Zu kaufen für Spieler: Wild-Drehfunktion mit 1 garantierten Wilds pro Drehung, Funktion „Pfad des Kriegers“ und Freispiele „Das Ritual“. +

+
+
+

Drehergebnisse

+
    +
  • Gewinne werden erzielt, wenn identische Symbole auf einer aktiven Gewinnlinie landen, die den vorgegebenen Gewinnlinienmustern folgt.
  • +
  • Auf derselben Linie wird nur der höchste Gewinn ausgezahlt.
  • +
  • Gewinne über verschiedene Einsätze/Linien hinweg werden addiert.
  • +
  • Die Auszahlungen basieren auf der Anzahl der Symbole und deren Position.
  • +
  • Bei kaskadierenden Slots werden alle Gewinne zusammengezählt.
  • +
  • Bei Gewinnen werden die übereinstimmenden Symbole animiert und der Gesamtgewinn wird angezeigt.
  • +
  • Die Auszahlungen folgen der einzigartigen Gewinntabelle.
  • +
  • Die Funktionen der Symbole können zusätzliche Symbole oder Gewinne auslösen.
  • +
  • Drehungen können Boni wie Freispiele auslösen.
  • +
  • Bei Freispielen werden derselbe Einsatz und dieselben Linien verwendet wie bei dem Dreh, der sie ausgelöst hat.
  • +
  • Wähle „Gewinntabellen-Info“, um alle Auszahlungen und Regeln zu sehen.
  • +
+
+
+

Einstellungen

+

Die Menü-Schaltfläche öffnet die Spielregeln, die Auszahlungstabelle und die Lautstärkeeinstellungen.

+
    +
  • Der Turbo-Drehmodus aktiviert schnelle Drehungen (mit Häkchen)
  • +
  • Leertaste zum Drehen (kann anstelle des Klickens auf die Schaltfläche „Drehen“ verwendet werden)
  • +
  • Lautstärkeeinstellung, einschließlich ihres vollständigen Abstellens
  • +
  • Einschalten der Musik (mit Häkchen)
  • +
  • Einschalten der Soundeffekte (mit Häkchen)
  • +
+
+
+

Spielerrendite

+

Die gesamte theoretische Auszahlungsquote (RTP – Return to Player) beträgt {RTP_PLACEHOLDER}%.

+
+
+

RNG

+

Das Spiel basiert auf einem zertifizierten Zufallszahlengenerator.

+
+
+

Zusätzliche Informationen

+

Bei einer Fehlfunktion sind alle Spiele und Zahlungen ungültig! Alle nicht beendeten Runden werden alle vier Stunden abgebrochen. Wenn das Spiel zum „Kassieren“ auffordert, wird der Gewinn aus der Runde dem Guthaben des Spielers hinzugefügt. Erfordert das Spiel eine Aktion des Spielers, dann wird das Ergebnis unter der Annahme berechnet, dass der Spieler die Aktion ohne Risiko und ohne Erhöhung des ursprünglichen Einsatzes gewählt hat. Dies ist die Spielregelversion 1.0, datiert auf den 26. November 2024.

+
+
+

Die Spielregeln, wie sie auf dieser Website veröffentlicht sind, sind auf Deutsch. Übersetzungen in andere Sprachen werden als Serviceleistung nach bestem Wissen und Gewissen angeboten. Bei Unklarheiten zwischen einer englischen Version und der Übersetzung hat die englische Version immer Vorrang.

+
+
diff --git a/src/assets/rules/locales/en-SOCIAL.html b/src/assets/rules/locales/en-SOCIAL.html new file mode 100644 index 0000000..8793c13 --- /dev/null +++ b/src/assets/rules/locales/en-SOCIAL.html @@ -0,0 +1,88 @@ +
+
+

About the game

+

Step into the shadowy depths of a dark cyberpunk civilization hidden within the jungle in the Amazon City of Gold game. Spin the reels to uncover ancient artifacts and encounter enigmatic characters like the Priest, Shaman, Warrior, and Queen. Unleash the power of Stacked Wilds with Multipliers of up to 200x, activate Free Spins or a Respin feature for extra gameplay thrills. With high volatility and the potential to win up to {MAX_MULTIPLIER}x your play amount, every spin offers the chance for exciting outcomes. Immerse yourself in collecting treasures and unraveling the secrets of this amazing world!

+
+
+

How to play

+

The game features reward lines. Choose the play amount using the buttons in the Total play field. Higher play amount will increase a total reward. To play maximum click the MAX button. The play amount value chosen is displayed in the corresponding field. To start the reels spinning, click the Spin or press space button.

+
+
+

Autoplay

+

Click the Auto spins (A) button to choose Basic or Advanced settings.

+

Basic auto spins settings. Use Basic only to choose the number of rounds to auto play. +

+

+ Advanced autospins settings: You can also choose additional conditions to stop the autospins: +

    +
  • on any reward - auto spin will stop after you are rewarded;
  • +
  • if the bonus game is rewarded - auto spin will stop when the bonus game is obtained;
  • +
  • if single reward exceeds - autospin will stop when a single reward is above the written sum in the field;
  • +
  • if coins balance increases by - autospin will stop when the current balance is above the sum written in this field;
  • +
  • if coin balance decreases by - autospin will stop when the current balance is below the sum written in this field; To stop the spins click the Stop Autospins button.
  • +
+

+

Autoplay starts when you click the number of rounds and the Autoplay button shows the amount of remaining spins.

+
+
+

Max Play Value

+

Press the MAX button to play the maximum amount available per spin. Max play in that case depends on the player’s balance and operators settings.

+
+
+

Features

+

+ Wild Multiplier. Wild Multiplier can land on any reel in the base game in 3 forms: Green Wild has values of x1, x2, x3, or x4; Purple Wild has values of x5, x10, x15, or x20; and Red Wild carries values of x25, x50, x75, x100, x150, or x200. Wilds substitute for any rewarding symbol and, when part of a reward pattern, increase the reward amount by their multiplier. If more than one Wild is part of a reward pattern, their values are added together before being applied to the total reward. Full lines of Wilds can award 100x the play amount. +

+

+ Warrior's Path. Landing 3 Wilds on the same spin triggers the Warrior's path feature. The Wilds that triggered the feature turn sticky and 3 spins are awarded. New Wilds landing on the reels reset the spins back to 3 and also turn sticky. If a new Wild drops down on a cell that already has the Wild, their values ​​are summarized. Wins are awarded on each spin and the feature ends when all of the spins have been used. +

+

+ The Ritual Free Spins. A Golden Sun Disc is a Scatter symbol and landing 3 of them awards 10 Free Spins. In the bonus round, if a Scatter appears on any reel from 1 to 5, it turns it into a Wild Ritual Reel for that spin. The Ritual Reels are Stacked Wilds carrying multipliers. The value of the multiplier depends on the type of the Stacked Wild: Priest - 2x, 3x, or 4x, Shaman - 5x, 10x , 15x, or 20x, Golden Idol - 25x, 50x, 75x, 100x, 150x, or 200x. Multipliers are added together before being applied when there is more than one active Ritual Reel. +

+

+ Featured Spins. This feature allows activating the bonus feature or game for a certain coin amount. A player can activate: Wild Spin feature with 1 Wild guaranteed on each spin, Warrior’s Path feature and The Ritual Free Spins. +

+
+
+

Spin Results

+
    +
  • Rewards are formed when identical symbols, or ones including Wild, land on an active award line, following the preset reward line patterns.
  • +
  • Only the highest win on the same line is received.
  • +
  • Wins across different spins/lines are summed up.
  • +
  • Awards are based on the number of symbols and their position.
  • +
  • In cascading games, all rewards are summed and awarded out together.
  • +
  • If wins occur, the matching symbols will animate and the total reward is displayed.
  • +
  • Awards follow the unique win table.
  • +
  • Symbols' features may trigger extra symbols or rewards.
  • +
  • Spins can trigger bonuses such as Free Spins.
  • +
  • Free spins use the same spin and lines as the spin that triggered them.
  • +
  • Select the “Wintable” button to view a complete list of awards and rules.
  • +
+
+
+

Settings

+

The Menu button opens Game rules, the Win table and Settings.

+
    +
  • Turbo spin mode activate fast spins (using checkmark)
  • +
  • Spacebar to spin (can be used instead of clicking the Spin button)
  • +
  • Volume adjustment, including its complete turn-off
  • +
  • Turning the music (using checkmark)
  • +
  • Turning the sound effects (using checkmark)
  • +
+
+
+

Return to Player

+

The overall theoretical Return to Player (RTP) is {RTP_PLACEHOLDER}%.

+
+
+

RNG

+

The game is based on a certified random number generator.

+
+
+

Additional information

+

Malfunction voids all plays and awards! All unfinished rounds will be terminated every four hours. If the game requires “Collect” - “Collect” will take place and the win from the round will be added to the player balance. If the game requires player input, the result is determined as if the player selected the default option without increasing the initial play amount. This is the game rule version 1.0, dated November, 26, 2024.

+
+
+

The Game Rules as published on this website are in English. Translations into other languages are provided as a service in good faith. In the event of ambiguity between an English version and a translation, the English version always retains priority.

+
+
diff --git a/src/assets/rules/locales/en.html b/src/assets/rules/locales/en.html new file mode 100644 index 0000000..0987c36 --- /dev/null +++ b/src/assets/rules/locales/en.html @@ -0,0 +1,88 @@ +
+
+

About the game

+

Step into the shadowy depths of a dark cyberpunk civilization hidden within the jungle in the Amazon City of Gold slot. Spin the reels to uncover ancient artifacts and encounter enigmatic characters like the Priest, Shaman, Warrior, and Queen. Unleash the power of Stacked Wilds with multipliers of up to 200x, trigger free spins, and activate the respin feature for big wins. With high volatility and the potential to win up to {MAX_MULTIPLIER}x your bet, every spin holds the promise of epic rewards. Immerse yourself in collecting treasures and unraveling the secrets of this amazing world!

+
+
+

How to play

+

The game features win lines. Choose the bet size using the buttons in the Total bet field. Higher bets will increase a total win. To bet maximum click the MAX button. The bet value chosen is displayed in the corresponding field. To start the reels spinning, click the Spin or press space button.

+
+
+

Autoplay

+

Click the Autospins (A) button to choose Basic or Advanced settings.

+

Basic autospins settings: Use Basic only to choose the number of rounds to auto play. +

+

+ Advanced autospins settings: Here you can choose additional settings for the Stop of autospins: +

    +
  • on any win - autospin will stop after you win;
  • +
  • if bonus game is won - autospin will stop when the bonus game is won;
  • +
  • if single win exceeds - autospin will stop when a single win is above the written sum in the field;
  • +
  • if cash balance increases by - autospin will stop when the current balance is above the sum written in this field;
  • +
  • if cash balance decreases by - autospin will stop when the current balance is below the sum written in this field;
    To stop the spins click the Stop Autospins button.
  • +
+

+

Autoplay starts when you click the number of rounds, and the Autoplay button shows the amount of remaining spins.

+
+
+

Max Bet

+

Press the MAX button to bet the maximum amount available per spin. Max bet in that case depends on the players balance and operators settings.

+
+
+

Features

+

+ Wild Multiplier. Wild Multiplier can land on any reel in the base game in 3 forms: Green Wild has values of x1, x2, x3, or x4; Purple Wild has values of x5, x10, x15, or x20; and Red Wild carries values of x25, x50, x75, x100, x150, or x200. Wilds substitute for any pay symbol and, when part of the winning combination, increase the win amount by their multiplier. If more than one Wild is part of a win, then the values are added together before being applied to the winning amount. Full paylines of Wilds are worth 100x the bet. +

+

+ Warrior's Path. Landing 3 Wilds on the same spin triggers the Warrior's path feature. The Wilds that triggered the feature turn sticky and 3 spins are awarded. New Wilds landing on the reels reset the spins back to 3 and also turn sticky. If a new Wild drops down on a cell that already has the Snake symbol, their values are summarized. Wins are paid out on each spin and the feature ends when all of the spins have been used. +

+

+ The Ritual Free Spins. A Golden Sun Disc is a Scatter symbol and landing 3 of them awards 10 free spins. In the bonus round, if a Scatter appears on any reel from 1 to 5, it turns it into a Wild Ritual Reel for that spin. The Ritual Reels are Stacked Wilds carrying multipliers. The value of the multiplier depends on the type of the Stacked Wild: Priest - 2x, 3x, or 4x, Shaman - 5x, 10x , 15x, or 20x, Golden Idol - 25x, 50x, 75x, 100x, 150x, or 200x. Multipliers are added together before being applied when there is more than one active Ritual Reel. +

+

+ Bonus Buy. This feature allows activating the bonus feature or game for a certain price. A player can buy: Wild Spin feature with 1 Wild guaranteed on each spin, Warrior's Path feature and The Ritual Free Spins. +

+
+
+

Spin Results

+
    +
  • Winnings are formed when identical symbols land on an active payline, following preset win line patterns.
  • +
  • On the same line, only the highest win is paid out.
  • +
  • Wins across different bets/lines are summed up.
  • +
  • Payouts are based on the number of symbols and their position.
  • +
  • In cascading slots, all wins are summed up together.
  • +
  • If wins occur, the matching symbols will animate and the total win is displayed.
  • +
  • Payouts follow the unique paytable.
  • +
  • Symbols' features may trigger extra symbols or wins.
  • +
  • Spins can trigger bonuses such as Free Spins.
  • +
  • Free spins use the same bet and lines as the spin that triggered them.
  • +
  • Select "Paytable Info" to view full payouts and rules.
  • +
+
+
+

Settings

+

The Menu button opens Game rules, the Paytable and volume settings.

+
    +
  • Turbo Spin mode activates fast spins (using checkmark)
  • +
  • Spacebar to spin (can be used instead of clicking the Spin button)
  • +
  • Volume adjustment, including its complete turn-off
  • +
  • Turning the music on (using checkmark)
  • +
  • Turning the sound effects on (using checkmark)
  • +
+
+
+

Return to Player

+

The overall theoretical Return to Player (RTP) is {RTP_PLACEHOLDER}%.

+
+
+

RNG

+

The game is based on a certified random number generator.

+
+
+

Additional information

+

Malfunction voids all plays and pays! All unfinished rounds will be terminated every four hours. If the game requires “Collect” - “Collect” will take place and the win from the round will be added to the player balance. If the game requires action from a player, the result is counted assuming that the player has chosen the action with no risk without raising the initial bet. This is the game rule version 1.0, dated November, 26, 2024.

+
+
+

The Game Rules as published on this website are in English. Translations into other languages are provided as a service in good faith. In the event of ambiguity between an English version and a translation, the English version always retains priority.

+
+
diff --git a/src/assets/rules/locales/es.html b/src/assets/rules/locales/es.html new file mode 100644 index 0000000..42893f6 --- /dev/null +++ b/src/assets/rules/locales/es.html @@ -0,0 +1,88 @@ +
+
+

Acerca del juego

+

Entra en las sombrías profundidades de una oscura civilización ciberpunk, oculta en la jungla de la tragaperras Amazon City of Gold. Gira los rodillos para descubrir los artefactos antiguos y encontrar personajes enigmáticos como el Sacerdote, el Chamán, el Guerrero y la Reina. Consigue el poder de los Wilds Apilados con multiplicadores de hasta 200x, activa giros gratis y activa la función respin para conseguir grandes premios. Con una gran volatilidad y la posibilidad de ganar hasta {MAX_MULTIPLIER} veces tu apuesta, cada giro promete premios épicos. ¡Sumérgete en la recolección de tesoros y revela todos los secretos de este asombroso mundo!

+
+
+

Cómo jugar

+

El juego cuenta con líneas de ganancia. Elija el tamaño de la apuesta usando los botones del campo Apuesta total. Cuanto mayor sea la apuesta, mayores serán las ganancias totales. Para realizar la apuesta máxima, haga clic en el botón MAX. El valor de apuesta seleccionado se muestra en el campo correspondiente. Para hacer que los rodillos empiecen a girar, haga clic en el botón Girar o pulse la barra espaciadora.

+
+
+

Juego automático

+

Haz clic en el botón Giros automáticos (A) para elegir la configuración Básica o Avanzada.

+

Configuración básica de los giros automáticos. Usa la configuración Básica sólo para elegir el número de rondas que quieres jugar automáticamente. +

+

+ Configuraciones avanzadas de giros automáticos:También puedes elegir condiciones adicionales para detener los giros automáticos: +

    +
  • en cualquier victoria, la jugada automática se detendrá después de ganar;
  • +
  • si se gana el juego de bonificación, la tirada automática se detendrá cuando se gane el juego de bonificación;
  • +
  • si se supera una ganancia única, la jugada automática se detendrá cuando una ganancia única supere la suma escrita en el campo;
  • +
  • si el saldo de caja aumenta, la jugada automática se detendrá cuando el saldo actual sea superior a la suma escrita en este campo;
  • +
  • si el saldo en efectivo disminuye - el giro automático se detendrá cuando el saldo actual sea inferior a la suma escrita en ese campo;
    Para detener los giros, haz clic en el botón Detener Giros Automáticos.
  • +
+

+

El Juego automático se inicia cuando se pulsa el número de rondas y el botón de Juego automático muestra la cantidad de jugadas restantes.

+
+
+

Apuesta máxima

+

Pulse el botón MAX para apostar la cantidad máxima disponible por giro. La apuesta máxima en ese caso depende del saldo de los jugadores y de la configuración de los operadores.

+
+
+

Características

+

+ Multiplicador Wild. Multiplicador Wild puede aparecer en cualquier rodillo del juego base en 3 formas: Wild verde tiene valores de x1, x2, x3 o x4; Wild púrpura tiene valores de x5, x10, x15 o x20; y Wild rojo tiene valores de x25, x50, x75, x100, x150 o x200. Wilds sustituyen a cualquier símbolo de pago y, cuando forman parte de la combinación ganadora, aumentan la cantidad ganada por su multiplicador. Si más de un Wild es parte de una ganancia, entonces los valores se suman antes de aplicarse a la cantidad ganada. Las líneas de pago completas de Wilds valen 100 veces la apuesta. +

+

+ Senda del Guerrero. Si se consiguen 3 Wilds en el mismo giro, se activa la función Senda del Guerrero. Los Wilds que activaron la función se vuelven pegajosos y se obtienen 3 giros. Los nuevos Wilds que caen en los rodillos reinician los giros a 3 y también se vuelven pegajosos. Si un nuevo Wild cae sobre una celda que ya tiene el símbolo de Serpiente, sus valores se combinan. Los premios se pagan en cada giro y la función finaliza cuando se han utilizado todos los giros. +

+

+ Los Giros Gratis Rituales. Un Disco de Sol Dorado es un símbolo Scatter y al conseguir 3 de ellos se obtienen 10 giros gratis. En la ronda de bonificación, si aparece un Scatter en cualquier rodillo de 1 a 5, lo convierte en un Rodillo Ritual Wild para ese giro. Los Rodillos Rituales son Wilds Apilados con multiplicadores. El valor del multiplicador depende del tipo de Wild Apilado: Sacerdote – 2x, 3x o 4x, Chamán – 5x, 10x, 15x o 20x, Ídolo dorado – 25x, 50x, 75x, 100x, 150x o 200x. Los multiplicadores se suman antes de aplicarse cuando hay más de un Rodillo Ritual activo. +

+

+ Compra de Bonificación. Esta función permite activar la función o el juego de bonificación por un precio determinado. El jugador puede comprar: La función Giros Wild con 1 Wilds garantizados en cada giro, la función Senda de Guerrero y Los Giros Gratis Rituales. +

+
+
+

Resultados de la jugada

+
    +
  • Las ganancias se obtienen cuando los símbolos idénticos caen en una línea de pago activa, siguiendo patrones de línea de ganancias preestablecidos.
  • +
  • En la misma línea, sólo se paga la ganancia más alta.
  • +
  • Se suman las ganancias de las diferentes apuestas/líneas.
  • +
  • Los pagos se basan en el número de símbolos y su posición.
  • +
  • En las tragaperras en cascada, todas las ganancias se suman.
  • +
  • Si se producen ganancias, los símbolos coincidentes se iluminarán y se mostrará la ganancia total.
  • +
  • Los pagos siguen la tabla de pagos único.
  • +
  • Las funciones de los símbolos pueden activar símbolos adicionales o ganancias.
  • +
  • Los giros pueden activar bonificaciones como Giros Gratis.
  • +
  • Los Giros Gratis utilizan la misma apuesta y líneas que el giro que los activó.
  • +
  • Selecciona "Información de la Tabla de Pagos" para ver los pagos completados y las reglas.
  • +
+
+
+

Ajustes

+

El botón Menú abre las reglas del juego, los ajustes de volumen y tabla de pagos.

+
    +
  • El modo Giro Turbo activa los giros rápidos (con una marca de verificación)
  • +
  • Barra espaciadora para girar (puede utilizarse en lugar de pulsar el botón Girar)
  • +
  • Ajuste de volumen, incluido su apagado completo
  • +
  • Activación de la música (con una marca de verificación)
  • +
  • Activación de los efectos de sonido (con una marca de verificación)
  • +
+
+
+

Retorno al jugador

+

El retorno al jugador (RTP) teórico general es {RTP_PLACEHOLDER}%.

+
+
+

RNG

+

El juego se basa en un generador de números aleatorios certificado.

+
+
+

Información adicional

+

¡Un mal funcionamiento anula todas las jugadas y los pagos! Todas las rondas sin terminar se darán por terminadas cada cuatro horas. Si el juego requiere «Recoger», se producirá la acción de «Recoger» y las ganancias de la ronda se añadirán al saldo del jugador. Si el juego requiere la acción de un jugador, el resultado se cuenta asumiendo que el jugador ha elegido la acción sin riesgo sin subir la apuesta inicial. Esta es la versión 1.0 de las reglas del juego, a fecha de 26 de noviembre de 2024.

+
+
+

Las Reglas de Juego publicadas en este sitio web están en español. Las traducciones a otras lenguas se ofrecen como un servicio de buena fe. En caso de ambigüedad entre la versión inglesa y una traducción, la versión inglesa siempre tiene prioridad.

+
+
diff --git a/src/assets/rules/locales/fi.html b/src/assets/rules/locales/fi.html new file mode 100644 index 0000000..7b07f2f --- /dev/null +++ b/src/assets/rules/locales/fi.html @@ -0,0 +1,88 @@ +
+
+

Tietoja pelistä

+

Astu viidakon kätköissä piilevän synkän cyberpunk-sivilisaation varjoisiin uumeniin Amazon City of Gold -kolikkopelissä. Pyöräytä rullia paljastaaksesi muinaisaarteita sekä papin, shamaanin, soturin ja kuningattaren kaltaisia salaperäisiä hahmoja. Kahmi valtavia voittoja päästämällä jopa 200-kertaisilla kertoimilla varustetut kasaantuvat Wildit valloilleen, käynnistämällä ilmaispyöräytyksiä sekä aktivoimalla uudelleenpyöräytysominaisuuden. Korkean volatiliteetin sekä jopa {MAX_MULTIPLIER} -kertaisten panoskertoimien ansiosta jokainen pyöräytys tarjoaa mahdollisuuden tarunhohtoisiin palkintoihin. Uppoudu aarteenetsintään ja paljasta tämän uskomattoman maailman kätketyt salaisuudet!

+
+
+

Kuinka pelata

+

Peli sisältää voittolinjoja. Valitse panoskoko käyttämällä nappeja Kokonaispanos-kohdassa. Korkeammat panokset korottavat kokonaisvoittoja. Voit panostaa maksimimäärän napsauttamalla painiketta MAX. Valittu panos näkyy vastaavassa kentässä. Laitat kelat pyörimään napsauttamalla Pyöräytä-nappia tai painamalla välilyöntiä.

+
+
+

Automaattipeli

+

Napsauta Automaattipyöräytykset (A) -painiketta valitaksesi perus- tai lisäasetukset.

+

Automaattipyöräytyksen perusasetukset. Käytä perusasetusta vain automaattisen pelikierrosten määrän valitsemiseen. +

+

+ Edistyneet automaattipyöräytysten asetukset: Voit myös valita lisäehdot, joiden perusteella automaattipeli pysäytetään: +

    +
  • mikä tahansa voitto - automaattipyöräytykset loppuvat voittosi jälkeen;
  • +
  • jos bonuspeli voitetaan - automaattipeli loppuu kun bonuspeli voitetaan;
  • +
  • jos voitto ylittää määrätyn arvon - automaattipeli loppuu kun yksi voitto ylittää kentän arvon;
  • +
  • jos rahamäärä kasvaa - automaattipeli loppuu kun nykyinen summa ylittää kentän arvon;
  • +
  • jos rahasaldo pienenee - Automaattipyöräytys pysähtyy, kun nykyinen saldo on alle tähän kenttään merkityn summan;
    Pyöräytysten pysäyttämiseksi napsauta Pysäytä Automaattipyöräytykset -painiketta.
  • +
+

+

Automaattipeli alkaa kun napsautat kierrosten määrää Automaattipeli näppäimessä se näyttää loput pyöräytykset.

+
+
+

Maksimipanos

+

Paina MAX-painiketta panostaaksesi enimmäismäärän, joka on käytettävissä pyöräytystä kohti. Maksimipanos riippuu tässä tapauksessa pelaajan saldosta ja operaattorin asetuksista.

+
+
+

Ominaisuudet

+

+ Wild-kerroin. Wild-kerroin voivat ilmaantua peruspelissä mille tahansa rullalle kolmessa eri muodossa: Vihreä Wild arvot ovat x1, x2, x3 tai x4, Violetti Wild x5, x10, x15 tai x20, kun taas Punainen Wild ovat arvoltaan x25, x50, x75, x100, x150 tai x200. Wild voivat toimia minä tahansa palkintosymbolina, ja ollessaan osana voittoyhdistelmää ne kasvattavat palkintosummaa kertoimensa mukaisesti. Jos voitossa on mukana useampi kuin yksi Wild, arvot lasketaan yhteen ennen kuin ne lisätään voittosummaan. Pelkästään Wild koostuvat voittolinjat antavat panoksen takaisin 100-kertaisena. +

+

+ Soturin polku. Kolmen Wild nappaaminen samalla pyöräytyksellä käynnistää Soturin polku -ominaisuuden. Ominaisuuden käynnistäneet Wild muuttuvat tarrautuviksi ja pelaajalle myönnetään 3 pyöräytystä. Rullille ilmaantuvat uudet Wild palauttavat pyöräytysten määrän kolmeen sekä muuttuvat tarrautuviksi. Jos uusi Wild asettuu jo Käärmesymbolin omaavalle paikalle, niin niiden arvot lasketaan yhteen. Jokaisen pyöräytyksen voitot maksetaan pelaajalle ja ominaisuus päättyy kaikkien pyöräytysten käyttämisen jälkeen. +

+

+ Rituaali-ilmaispyöräytykset. Kultainen aurinkokiekko toimii Scatter-symbolina, ja 3 sellaista keräämällä saat 10 ilmaispyöräytystä. Jos Scatter-symboli asettuu bonuskierroksella mille tahansa rullalle välillä 1- 5, niin kyseinen rulla muuttuu rituaali-Wildrullaksi tämän pyöräytyksen ajaksi. Rituaalirullat sisältävät kertoimilla varustettuja kasaantuvia Wildeja. Kertoimen arvo riippuu kyseessä olevan kasaantuvan Wildin tyypistä: Pappi - 2x, 3x tai 4x, Shamaani - 5x, 10x, 15x tai 20x, Kultainen patsas - 25x, 50x, 75x, 100x, 150x tai 200x. Kertoimet lasketaan yhteen ennen voittojen maksamista, jos pelissä on useampi kuin yksi aktiivinen Rituaalirulla. +

+

+ Osta bonus. Tämä ominaisuus mahdollistaa bonusominaisuuden tai -pelin aktivoinnin tietyllä hinnalla. Pelaaja voi ostaa: Wild-pyöräytysominaisuuden, joka antaa 1 Wildia jokaiselle pyöräytykselle, Soturin polku -ominaisuuden tai Rituaali-ilmaispyöräytyksiä. +

+
+
+

Pyöräytysten tulokset

+
    +
  • Pelaaja saa voittoja hankkimalla samoja symboleja käytössä olevalle voittolinjalle etukäteen määritettyjen voittoasetusten mukaisesti.
  • +
  • Samalla linjalla maksetaan vain suurin voitto.
  • +
  • Eri panosten/linjojen voitot lasketaan yhteen.
  • +
  • Voitot perustuvat symbolien määrään ja niiden sijaintiin.
  • +
  • Kaskadikolikkopeleissä kaikki voitot lasketaan yhteen.
  • +
  • Jos voittoja tulee, vastaavat symbolit animoituvat ja kokonaisvoitto näytetään.
  • +
  • Voitot noudattavat uniikkia voittotaulukkoa.
  • +
  • Symbolien ominaisuudet voivat käynnistää lisäsymboleita tai voittoja.
  • +
  • Pyöräytykset voivat käynnistää bonuksia, kuten Ilmaispyöräytyksiä.
  • +
  • Ilmaispyöräytykset käyttävät samoja panoksia ja linjoja kuin pyöräytys, joka käynnistää ne.
  • +
  • Valitse "Voittotaulukon Info" nähdäksesi kaikki voitot ja säännöt.
  • +
+
+
+

Asetukset

+

Menu näppäin avaa Pelisäännöt, Voittoruudukon ja ääniasetukset.

+
    +
  • Turbopyöräytys-tila aktivoi nopeat pyöräytykset (käyttämällä valintamerkkiä)
  • +
  • Välilyönnin käyttö pyöräytykseen (voidaan käyttää Pyöräytys-näppäimen sijaan)
  • +
  • Äänen säätö, mukaanlukien äänen kokonaan hiljentäminen
  • +
  • Musiikin päälle kytkeminen (käyttämällä valintamerkkiä)
  • +
  • Äänitehosteiden kytkeminen päälle (käyttämällä valintamerkkiä)
  • +
+
+
+

Palautusprosentti

+

Pelin teoreettinen palautusprosentti (RTP) on {RTP_PLACEHOLDER} %.

+
+
+

RNG

+

Peli perustuu sertifioituun satunnaislukugeneraattoriin.

+
+
+

Lisätietoja

+

Toimintahäiriö mitätöi kaikki pelit ja maksut! Kaikki keskeneräiset kierrokset lopetetaan neljän tunnin välein. Jos peli vaatii "Keräyksen" - "Keräys" tapahtuu ja kierroksen voitto lisätään pelaajan saldoon. Jos peli vaatii pelaajalta toiminpiteitä, oletetaan, että pelaaja on valinnut toimenpiteen riskittä, nostamatta alkupanosta. Tämä on pelin sääntöjen versio 1.0, päivätty 26. marraskuuta 2024.

+
+
+

Tällä sivustolla julkaistut pelisäännöt ovat suomeksi. Käännökset muille kielille tarjotaan palveluna hyvässä hengessä. Jos englanninkielisen version ja käännöksen välillä on epäselvyyttä, englanninkielinen versio on aina etusijalla.

+
+
diff --git a/src/assets/rules/locales/fr-CA.html b/src/assets/rules/locales/fr-CA.html new file mode 100644 index 0000000..b5ef34b --- /dev/null +++ b/src/assets/rules/locales/fr-CA.html @@ -0,0 +1,88 @@ +
+
+

À propos du jeu

+

Plongez dans les profondeurs obscures d'une sombre civilisation cyberpunk cachée au cœur de la jungle avec la machine à sous Amazon, Ville d'Or. Faites tourner les rouleaux pour découvrir des artefacts anciens et rencontrer des personnages énigmatiques comme le prêtre, le chaman, le guerrier et la reine. Libérez la puissance des symboles Wilds empilés avec des multiplicateurs allant jusqu'à x 200, déclenchez des tours gratuits et activez la fonction Respin pour de gros gains. Avec une volatilité élevée et le potentiel de vous permettre de gagner jusqu'à x {MAX_MULTIPLIER} votre mise, chaque tour amène avec lui la promesse de récompenses épiques. Plongez dans la collecte de trésors et découvrez les secrets de ce monde incroyable !

+
+
+

Comment jouer

+

Le jeu comporte des lignes de paiement. Choisissez le montant de la mise en utilisant les boutons du champ Mise totale. Plus les mises sont élevées, plus le gain total sera élevé. Pour parier le maximum, cliquez sur le bouton MAX. Le montant de la mise choisie est affiché dans le champ correspondant. Pour commencer à faire tourner les rouleaux, cliquez sur le bouton Spin ou appuyez sur la touche espace.

+
+
+

Jeu automatique

+

Cliquez sur le bouton Tours automatiques (A) pour choisir les paramètres de base ou avancés.

+

Paramètres de base des tours automatiques. Utilisez le mode de base uniquement pour choisir le nombre de tours à jouer automatiquement. +

+

+ Paramètres avancés de l'autospins: Vous pouvez également choisir des conditions supplémentaires pour arrêter l'autospins : +

    +
  • après tout gain - les tours automatiques s'arrêteront après que vous ayez obtenu un gain
  • +
  • si la partie bonus est gagnée - la rotation automatique s'arrêtera lorsque la partie bonus sera gagnée
  • +
  • si un seul gain dépasse la limite - les tours automatiques s'arrêteront lorsqu'un seul gain dépassera la somme écrite dans le champ
  • +
  • si le solde augmente de - les tours automatiques s'arrêteront lorsque le solde actuel sera supérieur à la somme écrite dans ce champ
  • +
  • Si le solde en espèces diminue de – les tours automatiques s’arrêteront lorsque le solde actuel sera inférieur à la somme inscrite dans ce champ;
    Pour arrêter les tours, cliquez sur le bouton Arrêter les tours automatiques.
  • +
+

+

La fonctionnalité de tour automatique commence lorsque vous cliquez sur le nombre de tours et le bouton « Autoplay » indique le nombre de tours restants.

+
+
+

Mise max

+

Appuyez sur le bouton MAX pour miser le montant maximum disponible par tour. Le pari maximum dans ce cas dépend du solde des joueurs et des paramètres de l'opérateur.

+
+
+

Fonctionnalités

+

+ Multiplicateurs Wild. Multiplicateur Wild peuvent apparaître sur n'importe quel rouleau du jeu de base sous 3 formes différentes : Wild vert a des valeurs de x 1, x 2, x 3 ou x 4 ; Wild violet a des valeurs de x 5, x 10, x 15 ou x 20 et Wild rouge porte une valeur de x 25, x 50, x 75, x 100, x 150 ou x 200. Wilds remplacent n'importe quel symbole de paiement et, lorsqu'ils font partie de la combinaison gagnante, augmentent le montant du gain de la valeur de leur multiplicateur. Si plus d’un Wild fait partie d’un gain, alors les valeurs sont additionnées avant d’être appliquées au montant du gain. Les lignes de paiement complètes de Wilds valent x 100 la mise. +

+

+ Chemin du guerrier. Faire atterrir 3 Wilds sur le même tour déclenche la fonction Chemin du guerrier. Les Wilds qui ont déclenché la fonctionnalité deviennent collants et 3 tours sont attribués. Les nouveaux Wilds atterrissant sur les rouleaux réinitialisent le nombre de tours à 3 et deviennent également collants. Si un nouveau Wild tombe sur une cellule qui contient déjà le symbole du serpent, leurs valeurs sont résumées. Les gains sont payés à chaque tour et la fonctionnalité se termine lorsque tous les tours ont été utilisés. +

+

+ Les Tours gratuits rituels. Un disque solaire doré est un symbole Scatter et obtenir 3 d'entre eux attribuent 10 tours gratuits. Durant le tour bonus, si un Scatter apparaît sur n'importe quelle bobine de 1 à 5, il la transforme en un rouleau Wild Ritual pour ce tour. Les rouleaux rituels sont des symboles Wilds empilés porteurs de multiplicateurs. La valeur du multiplicateur dépend du type de symbole Wild empilé : Prêtre  — x 2, x 3 ou x 4, Chaman — x 5, x 10, x 15  ou x 20,  Idole dorée — x 25, x 50, x 75, x 100, x 150 ou x 200. Lorsqu'il y a plus d'un rouleau ritual actif, les multiplicateurs sont additionnés avant d'être appliqués. +

+

+ Achat de bonus. Cette fonctionnalité permet d'activer la fonction bonus ou le jeu pour un certain prix. Le joueur peut acheter : la fonction tour Wild avec 1 symboles Wilds garantis à chaque tour, la fonction Chemin du guerrier et les tours gratuits Le rituel. +

+
+
+

Résultats du tour

+
    +
  • Les gains sont formés lorsque des symboles identiques atterrissent sur une ligne de paiement active, suivant des modèles de lignes gagnantes prédéfinis.
  • +
  • Sur la même ligne, seul le gain le plus élevé est payé.
  • +
  • Les gains des différentes mises ou lignes sont additionnés.
  • +
  • Les paiements sont basés sur le nombre de symboles et leur position.
  • +
  • Dans les machines à sous en cascade, tous les gains sont additionnés.
  • +
  • En cas de gain, les symboles correspondants s'animent et le gain total s'affiche.
  • +
  • Les paiements suivent le tableau des paiements unique.
  • +
  • Les fonctionnalités des symboles peuvent déclencher des symboles supplémentaires ou des gains.
  • +
  • Les tours peuvent déclencher des bonus tels que des tours gratuits.
  • +
  • Les tours gratuits utilisent la même mise et les mêmes lignes que le tour qui les a déclenchés.
  • +
  • Sélectionnez « Renseignements sur le tableau des paiements » pour afficher les paiements et les règles.
  • +
+
+
+

Réglages

+

Le bouton Menu permet d'accéder aux règles de jeu, à la table de paiements et aux réglages du volume.

+
    +
  • Le mode de tour turbo active des tours rapides (en cochant la case).
  • +
  • Appuyez sur espace pour lancer les tours (peut être utilisé au lieu de cliquer sur le bouton Spin)
  • +
  • Réglage du volume, y compris sa désactivation complète
  • +
  • Activer la musique (en cochant la case).
  • +
  • Activer les effets sonores (en cochant la case).
  • +
+
+
+

Retour au joueur

+

Le retour théorique au joueur (RTJ) est de {RTP_PLACEHOLDER}%.

+
+
+

RNG

+

Le jeu est basé sur un générateur de nombres aléatoires certifié.

+
+
+

Informations additionnelles

+

Un dysfonctionnement annule tous les jeux et gains ! Tous les tours inachevés seront terminés toutes les quatre heures. Si le jeu nécessite une « Collecte » - La « Collecte » aura lieu et le gain du tour sera ajouté à la balance du joueur. Si le jeu nécessite une action d'un joueur, le résultat est compté en supposant que le joueur a choisi l'action sans risque sans augmenter le pari initial. Il s'agit de la version 1.0 des règles du jeu, datée du 26 novembre 2024.

+
+
+

Les Règles du Jeu telles que publiées sur ce site Web sont en français. Les traductions en d'autres langues sont fournies en tant que service de bonne foi. En cas d'ambiguïté entre une version anglaise et une traduction, la version anglaise a toujours la priorité.

+
+
diff --git a/src/assets/rules/locales/nl.html b/src/assets/rules/locales/nl.html new file mode 100644 index 0000000..5405025 --- /dev/null +++ b/src/assets/rules/locales/nl.html @@ -0,0 +1,88 @@ +
+
+

Over het spel

+

Betreed de schaduwachtige diepten van een duistere cyberpunk beschaving verborgen in de jungle, met de gokkast Amazon City of Gold. Spin de rollen om oude artefacten te ontdekken en ontmoet mysterieuze personages zoals de Priester, Sjamaan, Krijger en Koningin. Ontketen de kracht van Gestapelde Wilds met vermenigvuldigers tot 200x, activeer gratis spins en de respin-functie voor grote winsten. Met hoge volatiliteit en de mogelijkheid om tot {MAX_MULTIPLIER}x je inzet te winnen, biedt elke spin een kans op epische beloningen. Dompel jezelf onder in het verzamelen van schatten en ontrafel de geheimen van deze geweldige wereld!

+
+
+

Hoe te spelen

+

Het spel beschikt over winlijnen. Kies de inzetgrootte met behulp van de knoppen in het veld Totale inzet. Hogere inzetten verhogen de totale winst. Klik op de knop MAX om het maximum in te zetten. De gekozen inzetwaarde wordt in het overeenkomstige veld weergegeven. Klik op de knop Spin of druk op spatie om de rollen te doen draaien.

+
+
+

Autoplay

+

Klik op de Autospins-knop (A) om Basis- of Geavanceerde instellingen te kiezen.

+

Basis autospins instellingen. Gebruik alleen Basis instellingen om het aantal rondes voor autospins te kiezen. +

+

+ Geavanceerde instellingen voor autospins: Je kunt ook extra voorwaarden kiezen om de autospins te stoppen: +

    +
  • bij elke winst - autospin stopt nadat je hebt gewonnen;
  • +
  • als bonusspel is gewonnen - autospin zal stoppen wanneer het bonusspel is gewonnen;
  • +
  • als een enkele winst hoger is dan - autospin zal stoppen wanneer een enkele winst hoger is dan de waarde in het veld;
  • +
  • als het geldsaldo stijgt met - autospin zal stoppen wanneer het huidige saldo hoger is dan de waarde in dit veld;
  • +
  • als het geldsaldo afneemt met - zal de autospin stoppen als het huidige saldo lager is dan het bedrag dat in dit veld staat;
    Om de spins te stoppen klik je op de knop Stop Autospins.
  • +
+

+

Autoplay start wanneer je op het aantal rondes klikt en de Autoplay-knop toont het aantal resterende spins.

+
+
+

Maximale inzet

+

Druk op de MAX-knop om het maximaal beschikbare bedrag per spin in te zetten. De maximale inzet hangt in dat geval af van het tegoed van de speler en de instellingen van de operator.

+
+
+

Functies

+

+ Wild-vermenigvuldigers. Wild Vermenigvuldiger. Wild Vermenigvuldigers kunnen op elke rol in het basisspel in 3 vormen landen: Groen Wild heeft waarden van x1, x2, x3 of x4, Paars Wild heeft waarden van x5, x10, x15 of x20 en het Rood Wild heeft waarden van x25, x50, x75, x100, x150 of x200. Wilds vervangen elk betaalsymbool en verhogen, wanneer ze deel uitmaken van de winnende combinatie, het winstbedrag met hun vermenigvuldiger. Als meer dan één Wild onderdeel is van een winst, dan worden de waarden opgeteld voordat ze worden toegepast op het winnende bedrag. Volledige winlijnen van Wilds zijn 100x de inzet waard. +

+

+ Pad van de Krijger Het landen van 3 Wilds op dezelfde spin activeert de Pad van de Krijger-functie. De Wilds die de functie hebben geactiveerd worden plakkerig en er worden 3 spins toegekend. Nieuwe Wilds die op de rollen landen, resetten de spins terug naar 3 en worden ook plakkerig. Als een nieuw Wild op een cel valt die al het Slang-symbool bevat, worden hun waarden samengevoegd. Winsten worden uitbetaald bij elke spin en de functie eindigt wanneer alle spins zijn gebruikt. +

+

+ De Rituele Gratis spins. Een Gouden Zonneschijf is een Scatter-symbool en het landen van 3 daarvan geeft 10 gratis spins. Als een Scatter op een van de rollen van 1 tot 5 verschijnt in de bonusronde, verandert deze in een Wild Rituele Rol voor die spin. De Rituele Rollen zijn Gestapelde Wilds met vermenigvuldigers. De waarde van de vermenigvuldiger hangt af van het type Gestapelde Wild: Priester – 2x, 3x of 4x, Sjamaan – 5x, 10x, 15x of 20x, Gouden Idool – 25x, 50x, 75x, 100x, 150x of 200x. Vermenigvuldigers worden bij elkaar opgeteld voordat ze worden toegepast wanneer er meer dan één actieve Rituele Rol is. +

+

+ Koop Bonus. Deze functie maakt het mogelijk de bonusfunctie of het spel voor een bepaalde prijs te activeren. Een speler kan kopen: Wild Spin functie met 1 Wilds gegarandeerd bij elke spin, Pad van de Krijger-functie en de Rituele Gratis spins. +

+
+
+

Spin-resultaten

+
    +
  • Winsten worden gevormd wanneer identieke symbolen op een actieve winlijn landen, volgens vooraf ingestelde winlijnpatronen.
  • +
  • Op dezelfde lijn wordt alleen de hoogste winst uitbetaald.
  • +
  • Winsten over verschillende inzetten/lijnen worden bij elkaar opgeteld.
  • +
  • Uitbetalingen zijn gebaseerd op het aantal symbolen en hun positie.
  • +
  • Bij de cascaderende slots worden alle winsten bij elkaar opgeteld.
  • +
  • Als er winst is, worden de overeenkomende symbolen geanimeerd en wordt de totale winst weergegeven.
  • +
  • Uitbetalingen volgen de unieke uitbetalingstabel.
  • +
  • Symboolfuncties kunnen extra symbolen of winsten opleveren.
  • +
  • Spins kunnen bonussen activeren, zoals Gratis spins.
  • +
  • Gratis spins gebruiken dezelfde inzet en lijnen als de spin die ze activeerde.
  • +
  • Kies 'Info Uitbetalingstabel' om de volledige uitbetalingen en regels te bekijken.
  • +
+
+
+

Instellingen

+

De knop Menu opent de spelregels, de uitbetalingstabel en de volume-instellingen.

+
    +
  • De Turbo Spin-modus activeert snelle spins (met vinkje)
  • +
  • Spatiebalk om te draaien (kan worden gebruikt in plaats van op de knop Spin te drukken)
  • +
  • Volume aanpassen, inclusief volledig uitschakelen
  • +
  • De muziek inschakelen (met vinkje)
  • +
  • De geluidseffecten inschakelen (met vinkje)
  • +
+
+
+

Opbrengst voor de speler

+

Het totale theoretische uitbetalingspercentage (RTP) is {RTP_PLACEHOLDER}%.

+
+
+

RNG

+

Het spel is gebaseerd op een gecertificeerde willekeurige nummergenerator.

+
+
+

Aanvullende informatie

+

Bij storingen zijn alle betalingen en spelen ongeldig! Alle onafgemaakte rondes zullen om de vier uur beëindigd worden. Als het spel "Verzamel" vereist, vindt "Verzamel" plaats en wordt de winst van de ronde toegevoegd aan het spelerssaldo. Als het spel actie van een speler vereist, wordt het resultaat geteld, ervan uitgaande dat de speler de actie zonder risico heeft gekozen zonder de initiële inzet te verhogen. Dit is spelregelversie 1.0, gedateerd van 26 november 2024.

+
+
+

De spelregels zoals gepubliceerd op deze website zijn in het Nederlands. Vertalingen in andere talen worden te goeder trouw als dienst aangeboden. Bij onduidelijkheid tussen een Engelse versie en een vertaling behoudt de Engelse versie altijd voorrang.

+
+
diff --git a/src/assets/rules/locales/no.html b/src/assets/rules/locales/no.html new file mode 100644 index 0000000..f179568 --- /dev/null +++ b/src/assets/rules/locales/no.html @@ -0,0 +1,88 @@ +
+
+

Om spillet

+

Reis inn i mørket i en cyberpunk-sivilisasjon, skjult dypt inne i regnskogen – med spilleautomaten Amazon City of Gold. Spinn hjulene og avdekk eldgamle artefakter! Møt mystiske skikkelser som presten, sjamanen, krigeren og dronningen. Slipp løs kraften til stablede wild-symboler med multiplikatorer opptil 200x! Utløs gratisspinn og respinn for enorme gevinster. Med høy volatilitet og muligheten til å vinne opptil {MAX_MULTIPLIER}x innsatsen, byr hvert spinn på sjansen til episke gevinster. Fordyp deg i jakten på skatter og avdekk hemmelighetene i denne fantastiske verdenen!

+
+
+

Slik spiller du

+

Spillet har gevinstlinjer. Velg innsatsstørrelse ved hjelp av knappene i feltet «Total innsats». Høyere innsatser øker en total gevinst. Klikk på «MAX»-knappen for å satse maksimalt. Den valgte innsatsverdien vises i det tilsvarende feltet. Klikk på «Spinn» eller trykk på mellomromsknappen for å starte hjulene.

+
+
+

Autospill

+

Klikk på Autospinn-knappen (A) for å velge grunnleggende eller avanserte innstillinger.

+

Grunnleggende autospinn-innstillinger. Bruk kun grunnleggende for å velge antallet runder som skal spilles automatisk. +

+

+ Avanserte innstillinger for autospinn: Du kan også velge tilleggsvilkår for å stoppe autospinnene: +

    +
  • for enhver gevinst – autospinn vil stoppe etter at du har vunnet
  • +
  • hvis bonusspillet er vunnet – autospinn vil stoppe når bonusspillet er vunnet;
  • +
  • hvis en enkelt gevinst overstiger – vil autospinn stoppe når en enkelt gevinst er over den skrevne summen i feltet
  • +
  • hvis kontantbalansen øker med – autospinn stopper når nåværende saldo er over det som er skrevet i dette feltet
  • +
  • Hvis kontantsaldoen reduseres med – vil autospinn stoppe når den nåværende saldoen er under summen skrevet i dette feltet;
    For å stoppe spinnene klikker du på Stopp autospinn-knappen.
  • +
+

+

Bruk av autospill starter når du klikker antall runder og autospill-knappen viser antall gjenværende spinn.

+
+
+

Maks innsats

+

Trykk på MAX-knappen for å satse det maksimale beløpet som er tilgjengelig per spinn. Maksinnsatsen avhenger i så fall av spillerens saldo og operatørinnstillinger.

+
+
+

Funksjoner

+

+ Wild multiplikator. Wild-multiplikator kan lande på hvilket som helst hjul i grunnspillet i 3 former: Grønn Wild har verdier på x1, x2, x3 eller x4; lilla Wild har verdier på x5, x10, x15 eller x20; og rød Wild har verdier på x25, x50, x75, x100, x150 eller x200. Wilds erstatter alle gevinstsymboler, og når de er en del av en vinnerkombinasjon, øker de gevinstbeløpet med sin multiplikator. Hvis mer enn ett Wild er en del av en gevinst, legges verdiene sammen før de brukes på gevinstbeløpet. Hele gevinstlinjer med Wilds er verdt 100x innsats. +

+

+ Krigerens sti. Hvis du lander 3 Wilds på samme spinn, utløses funksjonen «Krigerens sti». Wilds som utløste funksjonen blir klebrige og 3 spinn tildeles. Nye Wilds som lander på hjulene, tilbakestiller spinn til 3 og blir også klebrige. Hvis et nytt Wilds faller ned på en celle som allerede har slangesymbol, blir deres verdier lagt sammen. Gevinster er utbetalt på hvert spinn og funksjonen ender når alle spinn har blitt brukt opp. +

+

+ Rituelle Gratisspinn. Den gylne solskiven er et scatter-symbol, og hvis du får 3 av dem vinner du 10 gratisspinn. I bonusrunden, hvis et scatter-symbol lander på et hjul fra 1 til 5, forvandles det til et wild-ritualhjul for det spinnet. Rituelle hjul are stablede wild-symboler som har multiplikatorer. Verdien på multiplikatoren avhenger av typen stablet wild-symbol: Prest - 2x, 3x eller 4x, Sjaman - 5x, 10x, 15x eller 20x, Gyllent Idol - 25x, 50x, 75x, 100x, 150x eller 200x. Multiplikatorer legges sammen før de brukes når det er mer enn ett aktivt rituelt hjul. +

+

+ Kjøp Bonus. Denne funksjonen tillater aktivering av bonusfunksjonen eller spillet til en viss pris. Spilleren kan kjøpe: wild spin-funksjonen med 1 wild-symboler garantert på hvert spinn, krigerens sti-funksjonen og rituelle gratisspinn. +

+
+
+

Spinnresultater

+
    +
  • Gevinster dannes når identiske symboler lander på en aktiv gevinstlinje, i henhold til forhåndsbestemte mønstre.
  • +
  • På den samme linjen utbetales bare den høyeste gevinsten.
  • +
  • Gevinster på tvers av forskjellige innsatser/linjer summeres.
  • +
  • Utbetalingene er basert på antallet symboler og posisjonene deres.
  • +
  • I kaskadeautomater summeres alle gevinster sammen.
  • +
  • Hvis det oppstår gevinster, animeres de samsvarende symbolene og den totale gevinsten vises.
  • +
  • Utbetalingene følger den unike utbetalingstabellen.
  • +
  • Symbolenes funksjoner kan utløse ekstra symboler eller gevinster.
  • +
  • Spinn kan utløse bonuser som gratisspinn.
  • +
  • Gratisspinn bruker samme innsats og linjer som spinnet som utløste dem.
  • +
  • Velg «Info om utbetalingstabell» for å se detaljer om utbetalinger og regler.
  • +
+
+
+

Innstillinger

+

Menyknappen åpner spilleregler, gevinsttabell og lyinnstillinger.

+
    +
  • Turbospinn-modusen aktiverer raske spinn (med hake)
  • +
  • Mellomromstasten for å spinne (kan brukes i stedet for å klikke på spinn-knappen)
  • +
  • Volumjustering, inkludert fullstendig avstenging
  • +
  • Slår på musikken (med hake)
  • +
  • Slå på lydeffektene (med hake)
  • +
+
+
+

Retur til spiller

+

Spillerens generelle teoretiske Return to Player (RTP), tilbakebetalingsraten, er {RTP_PLACEHOLDER}%.

+
+
+

RNG

+

Spillet er basert på en sertifisert tilfeldig tallgenerator.

+
+
+

Ytterligere informasjon

+

Funksjonsfeil gjør alle spill og betalinger ugyldige! Alle uferdige runder avsluttes hver fjerde time. Hvis spillet krever "Collect" - "Collect" vil finne sted og gevinsten fra runden vil bli lagt til spillersaldoen. Hvis spillet krever handling fra en spiller, regnes resultatet ut fra at spilleren har valgt handlingen uten risiko uten å øke den opprinnelige innsatsen. Dette er spillreglenes versjon 1.0, datert 26. november 2024.

+
+
+

Spillereglene som er publisert på dette nettstedet, er på norsk. Oversettelser til andre språk tilbys som en service i god tro. I tilfelle uklarhet mellom en engelsk versjon og en oversettelse, har den engelske versjonen alltid prioritet.

+
+
diff --git a/src/assets/rules/locales/pt-BR.html b/src/assets/rules/locales/pt-BR.html new file mode 100644 index 0000000..07b04d4 --- /dev/null +++ b/src/assets/rules/locales/pt-BR.html @@ -0,0 +1,88 @@ +
+
+

Sobre o jogo

+

Entre nas profundezas sombrias de uma obscura civilização cyberpunk escondida na selva no jogo caça-níqueis Amazon Cidade de Ouro. Gire os cilindros para descobrir artefatos antigos e encontrar personagens enigmáticos como o Padre, o Xamã, o Guerreiro e a Rainha. Libere o poder de Wilds Acumulados com multiplicadores de até 200x, acione giros grátis e ative o recurso de novo giro para obter grandes ganhos. Com alta volatilidade e o potencial de ganhar até {MAX_MULTIPLIER}x sua aposta, cada giro contém a promessa de recompensas épicas. Imerja-se na coleta de tesouros e descoberta dos segredos deste mundo espetacular!

+
+
+

Como jogar

+

O jogo possui linhas de pagamento. Escolha o tamanho da aposta usando os botões no campo Aposta Total. Apostas mais altas aumentarão o ganho total. Para apostar o máximo possível, clique no botão MÁX. O valor da aposta escolhido é exibido no campo correspondente. Para começar a girar os cilindros, clique no botão Girar ou aperte "espaço".

+
+
+

Giro Automático

+

Clique no botão de Giros Automáticos (A) para escolher configurações básicas ou avançadas.

+

Configurações básicas de giros automáticos. Use as configurações básicas apenas para escolher o número de rodadas de jogada automática. +

+

+ Configurações avançadas de rodadas automáticas: Você também pode escolher condições adicionais para parar as jogadas automáticas: +

    +
  • em qualquer vitória - o giro automático para quando você ganhar;
  • +
  • se ganhar o jogo bônus - o giro automático parará quando você ganha o jogo bônus;
  • +
  • se uma única vitória superar - o giro automático para quando uma única vitória superar o valor indicado neste campo;
  • +
  • se o saldo em dinheiro aumentar em - o giro automático para quando o seu saldo em dinheiro superar o valor indicado neste campo;
  • +
  • se o saldo de caixa diminuir em - giros automáticos vão parar quando o saldo atual estiver abaixo do valor escrito nesse campo;
    Para parar os giros, clique no botão Parar Giro Automático.
  • +
+

+

O Giro Automático começa quando você clica no número de rodadas e o botão de Giro Automático indica o número de giros que ainda restam.

+
+
+

Aposta Máx

+

Aperte o botão MÁX para apostar o valor máximo disponível por giro. A aposta máxima depende do saldo do jogador e das configurações dos operadores.

+
+
+

Recursos

+

+ Multiplicador Wild. Multiplicador Wild pode cair em qualquer cilindro no jogo base em 3 formas: o Wild verde tem valores de x1, x2, x3 ou x4; o Wild roxo tem valores de x5, x10, x15 ou x20; e o Wild vermelho tem valores de x25, x50, x75, x100, x150 ou x200. Wilds substituem qualquer símbolo pagante e, quando for parte de uma combinação ganhadora, aumentam a quantia de ganho pelo seu multiplicador. Se mais de um Wild fizer parte de uma combinação vencedora, os valores são somados antes de serem aplicados ao montante ganho. Linhas de pagamento cheias de Wilds valem 100x a aposta. +

+

+ Caminho do Guerreiro. Obter 3 Wilds no mesmo gira aciona o recurso «Caminho do guerreiro». Os Wilds que acionaram o recurso tornam-se pegajosos e 3 giros são dados. Novos Wilds que caírem nos cilindros retornam o número de giros a 3 e também se tornam pegajosos. Se um novo Wild cair em uma célula que já tem o símbolo de cobra, seus valores são somados. Ganhos são pagos a cada giro e o recurso acabar quando todos os giros forem usados. +

+

+ Os Giros Grátis de Ritual. Um Disco de Sol Dourado é um símbolo Scatter e obter 3 deles oferece 10 giros grátis. Na rodada de bônus, se um Scatter aparecer em qualquer cilindro de 1 a 5, ele se transforma em um Cilindro Wild de Ritual durante aquele giro. Os Cilindros de Ritual são Wilds acumulados que carregam multiplicadores. O valor do multiplicador depende do tipo de Wild Acumulado: Padre — 2x, 3x ou 4x; Xamã — 5x, 10x, 15x ou 20x; Ídolo Dourado — 25x, 50x, 75x, 100x, 150x ou 200x. Multiplicadores são somados antes de serem aplicados quando há mais de um Cilindro de Ritual ativo. +

+

+ Comprar Bônus. Este recurso permite ativar o recurso ou jogo de bônus por um preço específico. O jogador pode comprar: o recurso de Giro Wild com 1 Wilds garantidos em cada giro, o recurso «Caminho do Guerreiro» e os Giros Grátis de Ritual. +

+
+
+

Resultados dos Giros

+
    +
  • Ganhos são formados quando símbolos idênticos caem em uma linha de pagamento ativa, seguindo padrões de linha ganhadora predefinidos.
  • +
  • Na mesma linha, você ganha apenas o prêmio mais alto.
  • +
  • Os ganhos em diferentes apostas/linhas são somados.
  • +
  • Os pagamentos são baseados no número de símbolos e sua posição.
  • +
  • Nos caça-níqueis em cascata, todas as vitórias são somadas juntas.
  • +
  • Em caso de vitória, os símbolos correspondentes vão ganhar uma animação e o ganho total será exibido.
  • +
  • Os pagamentos seguem a tabela de pagamento exclusiva.
  • +
  • Os recursos dos símbolos podem acionar símbolos extras ou vitórias.
  • +
  • Os giros podem acionar bônus, como as Rodadas Grátis.
  • +
  • As rodadas grátis usam a mesma aposta e linhas do giro que as acionou.
  • +
  • Selecione "Tabela de Pagamento" para ver todos os ganhos e regras.
  • +
+
+
+

Configurações

+

O botão do Menu abre as regras do jogo, a tabela de pagamentos e as configurações de volume.

+
    +
  • O modo Giro Turbo ativa giros rápidos (use o sinal de visto)
  • +
  • Barra de espaço para girar (pode ser usada em vez de clicar no botão Girar)
  • +
  • Ajuste de volume, inclusive a opção de desativá-lo completamente
  • +
  • Ligar a música (use o sinal de visto)
  • +
  • Ligar os efeitos sonoros (use o sinal de visto)
  • +
+
+
+

Retorno ao jogador

+

O retorno teórico geral ao jogador (RTP - Return to Player) é de {RTP_PLACEHOLDER}%.

+
+
+

RNG

+

Esse jogo é baseado num RNG (gerador de números aleatórios) certificado.

+
+
+

Informações adicionais

+

A ocorrência de erros anula qualquer jogada e pagamento! Todas as jogadas inacabadas serão terminadas a cada quatro horas. Se o jogo exigir uma ação de “Coleta”, a “Coleta” será realizada e os rendimentos da rodada serão somados ao saldo do jogador. Se o jogo exigir alguma escolha por parte do jogador, o resultado irá considerar que o jogador tenha feito a escolha sem nenhum risco e sem aumentar a aposta inicial. Está é a versão das regras do jogo 1.0, de 26 de novembro de 2024.

+
+
+

As regras do jogo publicadas neste site estão em português. As traduções para outras línguas são fornecidas como um serviço de boa-fé. Em caso de haver ambiguidade entre a versão em inglês e a tradução, a versão em inglês sempre mantém a prioridade.

+
+
diff --git a/src/assets/rules/locales/ru.html b/src/assets/rules/locales/ru.html new file mode 100644 index 0000000..5909380 --- /dev/null +++ b/src/assets/rules/locales/ru.html @@ -0,0 +1,88 @@ +
+
+

Об игре

+

Погрузитесь в мрачные глубины тёмной киберпанк-цивилизации, скрытой в джунглях, в игре Amazon City of Gold. Запускайте барабаны и вы найдете древние артефакты и встретите загадочных персонажей, таких как Жрец, Шаман, Воин и Королева. Раскройте мощь стопок Вайлдов с множителями до 200x, запускайте Фриспины и активируйте функцию респинов, чтобы получить крупные выигрыши. Благодаря высокой волатильности и возможности выиграть до x{MAX_MULTIPLIER} от ставки каждое вращение может принести впечатляющие выплаты. Собирайте сокровища и раскрывайте тайны этого удивительного мира!

+
+
+

Как играть

+

В игре присутствуют выигрышные линии. Выберите размер ставки, используя кнопки в поле «Общая ставка». Чем выше ставка, тем больше потенциальный выигрыш. Чтобы сделать максимальную ставку, нажмите кнопку MAX. Выбранный размер ставки отобразится в соответствующем поле. Чтобы начать игру, нажмите кнопку «Пуск» или клавишу «Пробел» на клавиатуре.

+
+
+

Автоигра

+

Нажмите на кнопку "Настройки автоматических вращений" для выбора базовых или расширенных настроек.

+

Базовые настройки автовращений. Базовые настройки используются только для выбора числа раундов с автовращениями. +

+

+ Расширенные настройки автоспинов: вы также можете задать дополнительные условия для автоматической остановки автоспинов: +

    +
  • остановка автовращений при любом первом выигрыше;
  • +
  • остановка автовращений при выигрыше в бонусной игре;
  • +
  • остановка автовращений, если единичный выигрыш превышает указанное игроком число;
  • +
  • остановка автовращений, если значение баланса увеличивается на указанное игроком число;
  • +
  • если баланс денежных средств уменьшится на - автовращения прекратятся, когда текущий баланс станет ниже суммы, указанной в этом поле;
    Чтобы остановить вращения, нажмите кнопку «Остановить автовращения».
  • +
+

+

Автоигра начинается после того, как вы нажимаете на кнопку, выбирая количество вращений, и кнопка Автоигры начинает показывать количество оставшихся вращений.

+
+
+

Максимальная ставка

+

Чтобы сделать максимально возможную для вращения ставку, нажмите на кнопку MAX. Максимальная ставка в этом случае зависит от баланса игрока и настроек оператора.

+
+
+

Игровые функции

+

+ Вайлды с множителями. Вайлды с множителями могут выпадать на любом барабане в основной игре и бывают трех видов: зеленый Вайлд имеет значения x1, x2, x3 или x4, фиолетовый — x5, x10, x15 или x20, а красный — x25, x50, x75, x100, x150 или x200. Вайлды заменяют любые оплачиваемые символы и, если входят в выигрышную комбинацию, увеличивают сумму выигрыша на свой множитель. Если в выигрышной комбинации участвует несколько Вайлдов, их значения складываются и применяются к выигрышу. Линия, полностью состоящая из Вайлдов, приносит выигрыш в x100 от ставки. +

+

+ Путь воина. Выпадение 3 Вайлдов за одно вращение активирует функцию «Путь воина». Вайлды, запустившие функцию, фиксируются на барабанах, а игрок получает 3 спина. При выпадении нового Вайлда количество вращений восстанавливается обратно до 3, а Вайлд фиксируется на барабанах. Если новый Вайлд попадает на ячейку с таким же символом, их значения складываются. Выигрыши выплачиваются после каждого вращения, а функция заканчивается, когда использованы все спины. +

+

+ Фриспины: Ритуал. Золотой солнечный диск — это скаттер, и выпадение 3 таких символов приносит 10 фриспинов. Если Скаттер выпадает на любом из барабанов от 1 до 5 в бонусном раунде, он превращает его в Вайлд Ритуальный барабан на этот спин. Ритуальные барабаны — это стопки Вайлдов с множителями. Значение множителя зависит от типа стопки Вайлдов: Жрец - 2x, 3x или 4x, Шаман - 5x, 10x, 15x или 20x, Золотой идол - 25x, 50x, 75x, 100x, 150x или 200x. Множители складываются перед применением, если активен не один Ритуальный барабан. +

+

+ Купить бонус. Эта функция позволяет активировать бонусную игру или функцию за определённую цену. Игрок может приобрести следующие функции и игры: Вайлд спин с гарантированными 1 Вайлдами в каждом вращении, функцию «Путь Воина» и Фриспины «Ритуал». +

+
+
+

Результаты вращения

+
    +
  • Выигрыши формируются, когда идентичные символы выпадают на активной линии выплат в соответствии с заданными выигрышными линиями.
  • +
  • На одной линии выплачивается только самый крупный выигрыш.
  • +
  • Выигрыши по разным ставкам/линиям суммируются.
  • +
  • Выплаты зависят от количества символов и их позиции.
  • +
  • В слотах с каскадными барабанами все выигрыши суммируются.
  • +
  • В случае выигрыша соответствующие символы анимируются, и отображается общий выигрыш.
  • +
  • Выплаты производятся в соответствии с уникальной таблицей выплат.
  • +
  • Символы и комбинации символов могут активировать дополнительные функции или выигрыши.
  • +
  • Вращения могут активировать бонусы, такие как фриспины.
  • +
  • Во фриспинах используются те же ставки и линии, что и в запустившем их вращении.
  • +
  • Выберите раздел «Информация о выплатах», чтобы узнать о выплатах и правилах в игре.
  • +
+
+
+

Настройки

+

Кнопка «Меню» открывает правила игры, таблицу выплат и настройки громкости.

+
    +
  • Турборежим запускает быстрые вращения (активируется, используя галочку)
  • +
  • Пробел может использоваться для вращения барабанов (вместо нажатия кнопки "Пуск")
  • +
  • Настройка громкости звука, в том числе его полное отключение
  • +
  • Включение музыки (используя галочку)
  • +
  • Включение звуковых эффектов (используя галочку)
  • +
+
+
+

Выплата игроку

+

Теоретическая выплата игроку (RTP) составляет {RTP_PLACEHOLDER}%.

+
+
+

Генератор случайных чисел

+

Игра построена на генераторе случайных чисел.

+
+
+

Дополнительная информация

+

В случае сбоев в игре все сыгранные раунды и выигрыши в них аннулируются! Каждые 4 часа все незаконченные раунды автоматически завершаются. Если в игре доступен "Коллект" - игра сделает "Коллект" и выигрыш будет зачислен на баланс игрока. Если игра ожидает действия игрока, то результат рассчитывается таким образом, как если бы игрок выбрал действие без риска и повышения первоначальной ставки. Версия правил игры 1.0 от 26 ноября 2024 года.

+
+
+

Правила игры составлены на русском языке. Переводы на другие языки являются достоверными. В случае расхождений между английской версией и переводом преимущественную силу имеет английская версия.

+
+
diff --git a/src/assets/rules/locales/sv.html b/src/assets/rules/locales/sv.html new file mode 100644 index 0000000..03aa063 --- /dev/null +++ b/src/assets/rules/locales/sv.html @@ -0,0 +1,88 @@ +
+
+

Om spelet

+

Dyk in i det den mörka cyberpunk-civilisationens skuggiga djup, långt in i djungeln i spelautomaten Amazon City of Gold. Snurra på hjulen för att upptäcka uråldriga artefakter och möta gåtfulla karaktärer som prästen, shamanen, krigaren och drottningen. Släpp lös kraften i staplade Wilds med multiplikatorer på upp till 200x, utlös gratissnurr och aktivera respin-funktionen för stora vinster. Varje snurr lovar episka belöningar, med hög volatilitet och potential att vinna upp till {MAX_MULTIPLIER} gånger din insats. Sätt igång att samla skatter och avslöja hemligheterna i denna fantastiska värld!

+
+
+

Så här spelar du

+

Spelet innehåller vinstlinjer. Välj storleken på insatsen med knapparna i fältet total insats. Högre insatser ökar den totala vinsten. För att satsa maximalt klicka på MAX-knappen. Det valda insatsvärdet visas i motsvarande fält. Klicka på Snurra eller tryck på mellanslagsknappen för att börja snurra hjulen.

+
+
+

Autospel

+

Klicka på knappen Autosnurr (A) för att välja grundläggande eller avancerade inställningar.

+

Grundläggande inställningar för autosnurr. Använd endast de grundläggande inställningarna för att välja antalet omgångar som ska spelas automatiskt. +

+

+ Avancerade inställningar för autosnurr: Du kan också välja ytterligare villkor för att stoppa autosnurren: +

    +
  • vid varje vinst - autosnurr slutar efter att du vinner;
  • +
  • om du vinner bonusspel - autosnurr avslutas när bonusspelet har vunnits;
  • +
  • om en individuell vinst överskrider - autosnurr slutar när en enskild vinst är högre än den angivna summan i fältet;
  • +
  • om kontantsaldot ökar med - autosnurr stoppas när aktuellt saldo är högre än det belopp som anges i detta fält;
  • +
  • om kassasaldot minskar med - kommer autosnurren att stanna när det aktuella saldot är under den summa som angetts i detta fält;
    Klicka på knappen Stoppa autosnurr för att stoppa snurrandet.
  • +
+

+

Autospel inleds när du klickar på antal rundor och autospel-knappen visar hur många snurr som återstår.

+
+
+

Maxinsats

+

Tryck på MAX-knappen för att satsa det maximala tillgängliga beloppet per snurr. Maxinsatsen i det fallet beror på ditt saldo och dina användarinställningar.

+
+
+

Funktioner

+

+ Wild-multiplikator. Wild-multiplikatorer kan landa på valfritt hjul i basspelet i 3 former: Wild Grön har värden på x1, x2, x3 eller x4; Wild Lila har värden på x5, x10, x15 eller x20; och Wild Röd har värden på x25, x50, x75, x100, x150 eller x200. Wilds ersätter alla betalsymboler och när den utgör en del av den vinnande kombinationen ökar den vinstbeloppet med dess multiplikator. Om mer än ett Wild är en del av en vinst läggs värdena ihop innan de tillämpas på vinstbeloppet. Fulla vinstlinjer med Wilds är värda 100x insatsen. +

+

+ Krigarens väg. När 3 Wilds landar på samma snurr utlöses Krigarens väg-funktionen. De Wilds som utlöste funktionen blir klibbiga och 3 snurr tilldelas. Nya Wilds som landar på hjulen återställer snurren till 3 och blir också klibbiga. Om ett nytt Wilds faller ner på en cell som redan har ormsymbolen, slås deras värden ihop. Vinster betalas ut vid varje snurr och funktionen avslutas när alla snurr har använts. +

+

+ Ritual-gratissnurren. En gyllene solskiva är en Scatter-symbol och 3 av dem ger 10 gratissnurr. Om en Scatter dyker upp på ett hjul från 1 till 5 i bonusomgången, förvandlas det till ett Wild Ritual-hjul för det snurret. Ritual-hjulen är staplade Wilds som bär multiplikatorer. Värdet på multiplikatorn beror på typen av staplad Wild: Präst – 2x, 3x eller 4x, shaman – 5x, 10x, 15x eller 20x, Gyllene gudabild – 25x, 50x, 75x, 100x, 150x eller 200x. Multiplikatorerna läggs ihop innan de appliceras när det finns mer än ett aktivt ritual-hjul. +

+

+ Köp bonus. Denna funktion gör det möjligt att aktivera bonusfunktionen eller spelet till ett visst pris. Du kan köpa: Wild-snurr-funktion med 1 Wilds garanterade på varje snurr, Krigarens väg-funktionen och Ritual-gratissnurren. +

+
+
+

Snurr-resultat

+
    +
  • Vinster bildas när identiska symboler landar på en aktiv vinstlinje, efter förinställda vinstlinjemönster.
  • +
  • På samma linje betalas endast den högsta vinsten ut.
  • +
  • Vinster över olika insättningar/linjer summeras.
  • +
  • Utbetalningar baseras på antalet symboler och deras position.
  • +
  • Alla vinster räknas ihop vid spel med fallande symboler.
  • +
  • Om en vinst inträffar kommer de matchande symbolerna att animeras och den totala vinsten att visas.
  • +
  • Utbetalningar följer den unika vinsttabellen.
  • +
  • Symbolernas funktioner kan utlösa extra symboler eller vinster.
  • +
  • Snurrar kan utlösa bonusar som gratissnurr.
  • +
  • Gratissnurr använder samma insats och linjer som snurret som utlöste dem.
  • +
  • Välj "Info om Vinsttabell" för att se fullständiga utbetalningar och regler.
  • +
+
+
+

Inställningar

+

Menyknappen öppnar Spelregler, vinsttabellen och volyminställningarna.

+
    +
  • Turbo Spin-läget aktiverar snabba snurr (med avbockning)
  • +
  • Mellanslag för att spela (kan användas istället för att klicka på spelknappen)
  • +
  • Volymjustering, inklusive dess fullständiga avstängning
  • +
  • Slå på musiken (med avbockningen)
  • +
  • Slå på ljudeffekterna (med avbockningen)
  • +
+
+
+

Återbetalningsprocent

+

Den totala teoretiska Return to Player (RTP) är {RTP_PLACEHOLDER}%.

+
+
+

RNG

+

Spelet är baserat på en certifierad slumptalsgenerator.

+
+
+

Ytterligare information

+

Systemfel gör alla betalningar och spel ogiltiga! Alla oavslutade omgångar kommer att avslutas var fjärde timme. Om spelet kräver "Samla in" - "Samla in"-funktionen kommer aktiveras och vinsten från omgången läggs till spelarens saldo. Om spelet kräver åtgärd från en spelare, räknas resultatet förutsatt att spelaren har valt åtgärden utan risk utan att höja den initiala insatsen. Detta är spelregelversion 1.0, daterad 26 november 2024.

+
+
+

Spelreglerna som publiceras på denna webbplats är på svenska. Översättningar till andra språk tillhandahålls som en tjänst i god tro. I händelse av oklarheter mellan en engelsk version och en översättning behåller den engelska versionen alltid prioritet.

+
+
diff --git a/src/assets/rules/locales/tr.html b/src/assets/rules/locales/tr.html new file mode 100644 index 0000000..56104a5 --- /dev/null +++ b/src/assets/rules/locales/tr.html @@ -0,0 +1,88 @@ +
+
+

Oyun hakkında

+

Amazon Altın Şehri slot oyununda orman içerisinde gizlenmiş karanlık bir siberpunk medeniyetin gölgeli derinliklerine adım at. Antik eserleri ortaya çıkarmak ve Rahip, Şaman, Savaşçı, Kraliçe gibi esrarengiz karakterlerle karşılaşmak üzere makaraları çevir. 200 kata varan çarpanlarla Stacked Wild'ların gücünü açığa çıkar, ücretsiz spinleri tetikle ve büyük kazançlar için yeniden spin özelliğini etkinleştir. Yüksek değişkenlik ve bahsinin x {MAX_MULTIPLIER} katına kadar kazanma potansiyeli ile her spin efsanevi ödüller vaat ediyor. Kendini bu muhteşem dünyanın hazinelerini toplamaya ve sırlarını çözmeye kaptır!

+
+
+

Nasıl oynanır

+

Oyunda kazanma hatları bulunur. Toplam bahis alanındaki butonları kullanarak bahis tutarını belirleyebilirsiniz. Bahis miktarı yükseldikçe kazanacağınız toplam miktar artar. Maksimum oyun miktarını seçmek için MAX butonuna tıklayın. Seçilen oyun değeri, ilgili alanda gösterilir. Makaraları döndürmek için Spin butonuna tıklayabilir veya boşluk tuşuna basabilirsiniz.

+
+
+

Otomatik oyun

+

Temel veya Gelişmiş ayarları seçmek için Otospin (A) butonuna tıklayın.

+

Temel otospin ayarları. Yalnızca otomatik oynanacak tur sayısını seçecekseniz Temel ayarları kullanın. +

+

+ Gelişmiş otospin ayarları: Otomatik spinleri durdurmak için ek şartlar da belirleyebilirsiniz: +

    +
  • her kazanmada - otomatik spin, siz kazandıktan sonra duracaktır;
  • +
  • bonus oyunun kazanılması durumunda - bonus oyunu kazanıldığında otomatik spin duracaktır;
  • +
  • tek kazanç şunu aşarsa - tek kazanç, alanda belirtilen toplamı geçerse otomatik spin duracaktır;
  • +
  • para bakiyesi artarsa - mevcut bakiye, bu alanda belirtilen toplamı geçerse otomatik spin duracaktır;
  • +
  • Nakit bakiyesi azalırsa Otomatik spin, mevcut bakiye bu alanda yazılı toplamın altına düştüğünde duracaktır;
    Spinleri durdurmak için Otomatik Spini Durdur butonuna basın.
  • +
+

+

Tur sayısına tıkladıktan sonra otomatik oyun başlar ve kalan spin sayısı Otomatik oyun butonunda gösterilir.

+
+
+

Maksimum bahis

+

Spin başına maksimum miktarda bahis oynamak için MAX butonuna basın. Bu durumda maksimum bahis miktarı, oyuncunun bakiyesine ve operatör ayarlarına bağlıdır.

+
+
+

Özellikler

+

+ Wild Çarpan. Wild Çarpan temel oyunda herhangi bir makaraya 3 farklı şekilde gelebilir: Wild Yeşil x1, x2, x3 veya x4 değerlerine sahiptir; Wild Mor x5, x10, x15 veya x20 değerlerine sahiptir; ve Wild Kırmızı x25, x50, x75, x100, x150 veya x200 değerlerine sahiptir. Wild tüm ödeme sembollerinin yerine geçer ve kazanan kombinasyonun bir parçası olması halinde kazanç miktarını çarpanları kadar artırır. Kazanca birden fazla Wild dahil olursa kazanan tutara uygulanmadan önce değerler toplanır. Wild oluşturduğu eksiksiz ödeme hatları bahsin 100 katı değerindedir. +

+

+ Savaşçının Yolu. Aynı spinde 3 Wild gelirse Savaşçının yolu özelliği tetiklenir. Özelliği tetikleyen Wild yapışkan hale gelir ve 3 spin kazandırır. Makaralara gelen yeni Wild spin sayısını 3'e geri getirir ve ayrıca yapışkan hale gelir. Halihazırda Yılan sembolü olan bir hücreye yeni bir Wild gelirse bunların değerleri toplanır. Kazançlar her spinde ödenir ve tüm spinler kullanıldığında özellik sona erer. +

+

+ Ritüel Ücretsiz Spin. Altın Güneş Diski, bir Scatter sembolüdür ve bunlardan 3 tane gelirse 10 ücretsiz spin kazanırsınız. Bonus turunda 1'den 5'e kadar herhangi bir makarada bir Scatter sembol belirirse o makarayı Wild Ritüel Makarasına çevirir. Ritüel Makaraları, çarpan taşıyan Stacked Wild'lardır. Çarpanın değeri Stacked Wild türüne bağlıdır: Rahip – x2, x3 veya x4, Şaman – x5, x10, x15 veya x20, Altın İdol – x25, x50, x75, x100, x150 veya x200. Birden fazla etkin Ritüel Makarası olduğunda çarpanlar uygulanmadan önce toplanır. +

+

+ Bonus Satın Al. Bu özellik, belirli bir ücret karşılığında bonus özelliği veya bonus oyunu etkinleştirmeyi sağlar. Oyuncu şunları satın alabilir: Her spin için 1 Wild garantili Wild Spin özelliği, Savaşçının Yolu özelliği ve Ritüel Ücretsiz Spin. +

+
+
+

Spin Sonuçları

+
    +
  • Aynı semboller aktif bir ödeme hattı üzerinde önceden belirlenmiş kazanç hattı düzenlerini takip ederek sıralandığında kazançlar oluşur.
  • +
  • Aynı hatta yalnızca en yüksek kazanç ödenir.
  • +
  • Farklı bahislerde/hatlarda kazanılan kazançlar toplanır.
  • +
  • Ödemeler sembollerin sayısına ve konumlarına bağlıdır.
  • +
  • Aşamalı slotlarda tüm kazançlar birlikte toplanır.
  • +
  • Kazanç meydana gelirse, eşleşen semboller canlandırılır ve toplam kazanç görüntülenir.
  • +
  • Ödemeler benzersiz ödeme tablosunu takip eder.
  • +
  • Sembollerin özellikleri ekstra sembolleri veya kazançları tetikleyebilir.
  • +
  • Spinler, Ücretsiz Spin gibi bonusları tetikleyebilir.
  • +
  • Ücretsiz spinler, onları tetikleyen spin ile aynı bahis ve hatları kullanır.
  • +
  • Ödemelerin ve kuralların tamamını görüntülemek için "Ödeme Tablosu Bilgisi"ni seçin.
  • +
+
+
+

Ayarlar

+

Menü butonu Oyun kuralları, Ödeme tablosu ve ses seviyesi ayarlarını açar.

+
    +
  • Turbo Spin modu hızlı spinleri etkinleştirir (onay işareti yoluyla)
  • +
  • Spin için boşluk tuşu (Spin butonuna tıklamak yerine kullanılabilir)
  • +
  • Ses ayarı, tamamen kapatma dahil
  • +
  • Müziği açma (onay işareti yoluyla)
  • +
  • Ses efektlerini açma (onay işareti yoluyla)
  • +
+
+
+

Oyuncuya Dönüş

+

Genel kuramsal Oyuncuya Dönüş Oranı (RTP), %{RTP_PLACEHOLDER} olarak hesaplanmıştır.

+
+
+

RNG

+

Oyunda sertifikalı bir rastgele sayı üreteci kullanılmaktadır.

+
+
+

Ek bilgiler

+

Arıza gerçekleşmesi durumunda tüm oyunlar geçersiz ve kazanılmış sayılır! Tamamlanmamış tüm turlar dört saatte bir sonlandırılır. Oyunda "Alma" işlemi zorunluysa "Alma" işlemi gerçekleştirilir ve turdaki kazanç, oyuncu bakiyesine eklenir. Oyuncu katılımının gerektiği durumlarda oyuncunun ilk bahsi artırmadan risksiz bir seçim yaptığı varsayılır ve sonucun geçerliliği kabul edilir. Bu, oyun kurallarının 26 Kasım 2024 tarihli ve 1.0 numaralı sürümüdür.

+
+
+

Bu web sitesinde yayınlanan oyun kuralları Türkçedir. Diğer dillere gerçekleştirilen çeviriler, iyi niyetli bir hizmet olarak sunulmaktadır. İngilizce versiyon ile çeviri versiyonu arasında bir belirsizlik olması durumunda öncelikle her zaman İngilizce versiyon geçerlidir.

+
+
diff --git a/src/assets/rules/rules.html b/src/assets/rules/rules.html new file mode 100644 index 0000000..0987c36 --- /dev/null +++ b/src/assets/rules/rules.html @@ -0,0 +1,88 @@ +
+
+

About the game

+

Step into the shadowy depths of a dark cyberpunk civilization hidden within the jungle in the Amazon City of Gold slot. Spin the reels to uncover ancient artifacts and encounter enigmatic characters like the Priest, Shaman, Warrior, and Queen. Unleash the power of Stacked Wilds with multipliers of up to 200x, trigger free spins, and activate the respin feature for big wins. With high volatility and the potential to win up to {MAX_MULTIPLIER}x your bet, every spin holds the promise of epic rewards. Immerse yourself in collecting treasures and unraveling the secrets of this amazing world!

+
+
+

How to play

+

The game features win lines. Choose the bet size using the buttons in the Total bet field. Higher bets will increase a total win. To bet maximum click the MAX button. The bet value chosen is displayed in the corresponding field. To start the reels spinning, click the Spin or press space button.

+
+
+

Autoplay

+

Click the Autospins (A) button to choose Basic or Advanced settings.

+

Basic autospins settings: Use Basic only to choose the number of rounds to auto play. +

+

+ Advanced autospins settings: Here you can choose additional settings for the Stop of autospins: +

    +
  • on any win - autospin will stop after you win;
  • +
  • if bonus game is won - autospin will stop when the bonus game is won;
  • +
  • if single win exceeds - autospin will stop when a single win is above the written sum in the field;
  • +
  • if cash balance increases by - autospin will stop when the current balance is above the sum written in this field;
  • +
  • if cash balance decreases by - autospin will stop when the current balance is below the sum written in this field;
    To stop the spins click the Stop Autospins button.
  • +
+

+

Autoplay starts when you click the number of rounds, and the Autoplay button shows the amount of remaining spins.

+
+
+

Max Bet

+

Press the MAX button to bet the maximum amount available per spin. Max bet in that case depends on the players balance and operators settings.

+
+
+

Features

+

+ Wild Multiplier. Wild Multiplier can land on any reel in the base game in 3 forms: Green Wild has values of x1, x2, x3, or x4; Purple Wild has values of x5, x10, x15, or x20; and Red Wild carries values of x25, x50, x75, x100, x150, or x200. Wilds substitute for any pay symbol and, when part of the winning combination, increase the win amount by their multiplier. If more than one Wild is part of a win, then the values are added together before being applied to the winning amount. Full paylines of Wilds are worth 100x the bet. +

+

+ Warrior's Path. Landing 3 Wilds on the same spin triggers the Warrior's path feature. The Wilds that triggered the feature turn sticky and 3 spins are awarded. New Wilds landing on the reels reset the spins back to 3 and also turn sticky. If a new Wild drops down on a cell that already has the Snake symbol, their values are summarized. Wins are paid out on each spin and the feature ends when all of the spins have been used. +

+

+ The Ritual Free Spins. A Golden Sun Disc is a Scatter symbol and landing 3 of them awards 10 free spins. In the bonus round, if a Scatter appears on any reel from 1 to 5, it turns it into a Wild Ritual Reel for that spin. The Ritual Reels are Stacked Wilds carrying multipliers. The value of the multiplier depends on the type of the Stacked Wild: Priest - 2x, 3x, or 4x, Shaman - 5x, 10x , 15x, or 20x, Golden Idol - 25x, 50x, 75x, 100x, 150x, or 200x. Multipliers are added together before being applied when there is more than one active Ritual Reel. +

+

+ Bonus Buy. This feature allows activating the bonus feature or game for a certain price. A player can buy: Wild Spin feature with 1 Wild guaranteed on each spin, Warrior's Path feature and The Ritual Free Spins. +

+
+
+

Spin Results

+
    +
  • Winnings are formed when identical symbols land on an active payline, following preset win line patterns.
  • +
  • On the same line, only the highest win is paid out.
  • +
  • Wins across different bets/lines are summed up.
  • +
  • Payouts are based on the number of symbols and their position.
  • +
  • In cascading slots, all wins are summed up together.
  • +
  • If wins occur, the matching symbols will animate and the total win is displayed.
  • +
  • Payouts follow the unique paytable.
  • +
  • Symbols' features may trigger extra symbols or wins.
  • +
  • Spins can trigger bonuses such as Free Spins.
  • +
  • Free spins use the same bet and lines as the spin that triggered them.
  • +
  • Select "Paytable Info" to view full payouts and rules.
  • +
+
+
+

Settings

+

The Menu button opens Game rules, the Paytable and volume settings.

+
    +
  • Turbo Spin mode activates fast spins (using checkmark)
  • +
  • Spacebar to spin (can be used instead of clicking the Spin button)
  • +
  • Volume adjustment, including its complete turn-off
  • +
  • Turning the music on (using checkmark)
  • +
  • Turning the sound effects on (using checkmark)
  • +
+
+
+

Return to Player

+

The overall theoretical Return to Player (RTP) is {RTP_PLACEHOLDER}%.

+
+
+

RNG

+

The game is based on a certified random number generator.

+
+
+

Additional information

+

Malfunction voids all plays and pays! All unfinished rounds will be terminated every four hours. If the game requires “Collect” - “Collect” will take place and the win from the round will be added to the player balance. If the game requires action from a player, the result is counted assuming that the player has chosen the action with no risk without raising the initial bet. This is the game rule version 1.0, dated November, 26, 2024.

+
+
+

The Game Rules as published on this website are in English. Translations into other languages are provided as a service in good faith. In the event of ambiguity between an English version and a translation, the English version always retains priority.

+
+
diff --git a/src/assets/sounds/monoAudioSprite.json b/src/assets/sounds/monoAudioSprite.json new file mode 100644 index 0000000..419cb63 --- /dev/null +++ b/src/assets/sounds/monoAudioSprite.json @@ -0,0 +1,93 @@ +{ + "resources": [ + "./src/assets/sounds/monoAudioSprite.ogg", + "./src/assets/sounds/monoAudioSprite.mp3" + ], + "spritemap": { + "calculation": { + "start": 0, + "end": 0.5363492063492064, + "loop": false + }, + "click": { + "start": 0.6363492063492063, + "end": 0.7563492063492063, + "loop": false + }, + "over": { + "start": 0.8563492063492063, + "end": 0.874625850340136, + "loop": false + }, + "quick_stop": { + "start": 0.9746258503401359, + "end": 1.048548752834467, + "loop": false + }, + "reel_anticipation1": { + "start": 1.1485487528344671, + "end": 5.398548752834467, + "loop": false + }, + "reel_anticipation2": { + "start": 5.498548752834466, + "end": 9.748548752834466, + "loop": false + }, + "reel_anticipation3": { + "start": 9.848548752834466, + "end": 14.098548752834466, + "loop": false + }, + "reel_rotation": { + "start": 14.198548752834466, + "end": 16.448548752834466, + "loop": false + }, + "respin_progress": { + "start": 16.548548752834467, + "end": 18.036167800453516, + "loop": false + }, + "scatter_1": { + "start": 18.136167800453517, + "end": 20.886167800453517, + "loop": false + }, + "scatter_2": { + "start": 20.98616780045352, + "end": 24.23616780045352, + "loop": false + }, + "scatter_3": { + "start": 24.33616780045352, + "end": 27.58616780045352, + "loop": false + }, + "spin": { + "start": 27.68616780045352, + "end": 27.792585034013612, + "loop": false + }, + "stop": { + "start": 27.892585034013614, + "end": 28.09530612244899, + "loop": false + }, + "wild_1_in": { + "start": 28.19530612244899, + "end": 29.50011337868482, + "loop": false + }, + "wild_2_in": { + "start": 29.60011337868482, + "end": 31.281927437641738, + "loop": false + }, + "wild_3_in": { + "start": 31.38192743764174, + "end": 33.71489795918369, + "loop": false + } + } +} \ No newline at end of file diff --git a/src/assets/sounds/monoAudioSprite.mp3 b/src/assets/sounds/monoAudioSprite.mp3 new file mode 100644 index 0000000..8f8c136 Binary files /dev/null and b/src/assets/sounds/monoAudioSprite.mp3 differ diff --git a/src/assets/sounds/monoAudioSprite.ogg b/src/assets/sounds/monoAudioSprite.ogg new file mode 100644 index 0000000..5c5cfa3 Binary files /dev/null and b/src/assets/sounds/monoAudioSprite.ogg differ diff --git a/src/assets/sounds/stereoAudioSprite.json b/src/assets/sounds/stereoAudioSprite.json new file mode 100644 index 0000000..7feb170 --- /dev/null +++ b/src/assets/sounds/stereoAudioSprite.json @@ -0,0 +1,173 @@ +{ + "resources": [ + "./src/assets/sounds/stereoAudioSprite.ogg", + "./src/assets/sounds/stereoAudioSprite.mp3" + ], + "spritemap": { + "3_wilds_land": { + "start": 0, + "end": 3.5, + "loop": false + }, + "add_spin_popup": { + "start": 3.6, + "end": 7.787505668934241, + "loop": false + }, + "ambient_sfx": { + "start": 7.88750566893424, + "end": 127.08750566893424, + "loop": false + }, + "bigwin_end": { + "start": 127.18750566893424, + "end": 133.62501133786847, + "loop": false + }, + "bigwin_intro": { + "start": 133.72501133786847, + "end": 142.97501133786847, + "loop": false + }, + "bigwin_loop": { + "start": 143.07501133786846, + "end": 151.07501133786846, + "loop": false + }, + "bonus_buy_popup": { + "start": 151.17501133786845, + "end": 154.78197278911563, + "loop": false + }, + "bonus_intro_popup": { + "start": 154.88197278911562, + "end": 158.88197278911562, + "loop": false + }, + "freespins_bgr": { + "start": 158.98197278911562, + "end": 222.98197278911562, + "loop": false + }, + "intro 1": { + "start": 223.0819727891156, + "end": 235.07884353741494, + "loop": false + }, + "intro 2": { + "start": 235.17884353741493, + "end": 248.17571428571426, + "loop": false + }, + "intro 3": { + "start": 248.27571428571426, + "end": 260.27258503401356, + "loop": false + }, + "main_bgr": { + "start": 260.3725850340136, + "end": 452.3724716553288, + "loop": false + }, + "maxwin_end": { + "start": 452.47247165532883, + "end": 460.6599773242631, + "loop": false + }, + "maxwin_intro": { + "start": 460.7599773242631, + "end": 468.2599773242631, + "loop": false + }, + "maxwin_loop": { + "start": 468.3599773242631, + "end": 476.3599773242631, + "loop": false + }, + "megawin_end": { + "start": 476.45997732426315, + "end": 482.8974829931974, + "loop": false + }, + "megawin_shot": { + "start": 482.9974829931974, + "end": 487.2474829931974, + "loop": false + }, + "respin_bgr": { + "start": 487.34748299319745, + "end": 551.3474829931974, + "loop": false + }, + "scatter_win": { + "start": 551.4474829931975, + "end": 555.4474829931975, + "loop": false + }, + "sum": { + "start": 555.5474829931975, + "end": 559.7173015873018, + "loop": false + }, + "supermegawin_end": { + "start": 559.8173015873018, + "end": 566.2548072562361, + "loop": false + }, + "supermegawin_shot": { + "start": 566.3548072562361, + "end": 570.5423129251703, + "loop": false + }, + "total_win_end": { + "start": 570.6423129251704, + "end": 575.8298185941046, + "loop": false + }, + "total_win_intro": { + "start": 575.9298185941046, + "end": 583.9298185941046, + "loop": false + }, + "total_win_loop": { + "start": 584.0298185941047, + "end": 592.0298185941047, + "loop": false + }, + "transition": { + "start": 592.1298185941047, + "end": 593.5168707482997, + "loop": false + }, + "wild_1_win": { + "start": 593.6168707482997, + "end": 596.5168707482997, + "loop": false + }, + "wild_2_win": { + "start": 596.6168707482997, + "end": 599.4544444444448, + "loop": false + }, + "wild_3_win": { + "start": 599.5544444444448, + "end": 603.2787528344675, + "loop": false + }, + "wild_in": { + "start": 603.3787528344675, + "end": 605.3787528344675, + "loop": false + }, + "wild_open": { + "start": 605.4787528344675, + "end": 607.6223129251705, + "loop": false + }, + "win_line_new": { + "start": 607.7223129251705, + "end": 610.2223129251705, + "loop": false + } + } +} \ No newline at end of file diff --git a/src/assets/sounds/stereoAudioSprite.mp3 b/src/assets/sounds/stereoAudioSprite.mp3 new file mode 100644 index 0000000..7675e74 Binary files /dev/null and b/src/assets/sounds/stereoAudioSprite.mp3 differ diff --git a/src/assets/sounds/stereoAudioSprite.ogg b/src/assets/sounds/stereoAudioSprite.ogg new file mode 100644 index 0000000..f7084bb Binary files /dev/null and b/src/assets/sounds/stereoAudioSprite.ogg differ diff --git a/src/assets/spines/anticipation/anticipation.atlas b/src/assets/spines/anticipation/anticipation.atlas new file mode 100644 index 0000000..f809156 --- /dev/null +++ b/src/assets/spines/anticipation/anticipation.atlas @@ -0,0 +1,19 @@ +anticipation.webp +size:2048,1024 +filter:Linear,Linear +scale:0.75 +anticip_bg +bounds:777,30,220,836 +offsets:319,27,858,879 +anticip_circle_whole_source_1.4 +bounds:999,463,404,403 +offsets:429,445,858,879 +anticip_frame +bounds:291,27,262,839 +offsets:297,20,858,879 +anticip_frame_glow +bounds:2,2,287,864 +offsets:285,7,858,879 +anticip_glow +bounds:555,29,220,837 +offsets:319,27,858,879 diff --git a/src/assets/spines/anticipation/anticipation.webp b/src/assets/spines/anticipation/anticipation.webp new file mode 100644 index 0000000..f4bfa85 Binary files /dev/null and b/src/assets/spines/anticipation/anticipation.webp differ diff --git a/src/assets/spines/anticipation/anticipation_back.skel b/src/assets/spines/anticipation/anticipation_back.skel new file mode 100644 index 0000000..168ca47 Binary files /dev/null and b/src/assets/spines/anticipation/anticipation_back.skel differ diff --git a/src/assets/spines/anticipation/anticipation_front.skel b/src/assets/spines/anticipation/anticipation_front.skel new file mode 100644 index 0000000..8464c33 Binary files /dev/null and b/src/assets/spines/anticipation/anticipation_front.skel differ diff --git a/src/assets/spines/bonusPopups/fs_start.skel b/src/assets/spines/bonusPopups/fs_start.skel new file mode 100755 index 0000000..caf62cc Binary files /dev/null and b/src/assets/spines/bonusPopups/fs_start.skel differ diff --git a/src/assets/spines/bonusPopups/popups.atlas b/src/assets/spines/bonusPopups/popups.atlas new file mode 100755 index 0000000..94a74a7 --- /dev/null +++ b/src/assets/spines/bonusPopups/popups.atlas @@ -0,0 +1,122 @@ +popups.webp +size:2048,2048 +filter:Linear,Linear +YOU WON +bounds:1925,555,305,93 +offsets:975,861,2252,1082 +rotate:90 +additional +bounds:1464,1246,233,69 +offsets:1008,303,2252,1082 +free spins +bounds:1946,1673,372,92 +offsets:945,862,2252,1082 +rotate:90 +fs_abduction/fs_exw3_top +bounds:1925,862,115,453 +offsets:947,316,2002,888 +fs_abduction/fs_rays copy +bounds:2,638,780,542 +offsets:610,216,2002,888 +fs_abduction/fs_stone_l +bounds:984,4,231,500 +offsets:768,269,2002,888 +rotate:90 +fs_abduction/fs_stone_r +bounds:1748,14,231,500 +offsets:1004,269,2002,888 +fs_abduction/fs_stone_top +bounds:784,549,143,483 +offsets:933,301,2002,888 +rotate:90 +fs_abduction/fs_stone_top_s +bounds:1219,253,163,503 +offsets:923,291,2002,888 +rotate:90 +fs_bg +bounds:2,1182,1460,863 +offsets:396,125,2252,1082 +fs_column_left +bounds:1269,551,131,399 +offsets:771,404,2252,1082 +rotate:90 +fs_column_right +bounds:1269,418,131,399 +offsets:1349,405,2252,1082 +rotate:90 +fs_glow1 +bounds:1464,1317,728,480 +offsets:762,388,2252,1082 +rotate:90 +fs_glow2 +bounds:2,4,980,193 +offsets:636,227,2252,1082 +fs_light +bounds:1282,684,496,422 +offsets:878,659,2252,1082 +rotate:90 +fs_stand +bounds:1706,516,799,217 +offsets:726,267,2252,1082 +rotate:90 +fs_whell +bounds:784,694,496,486 +offsets:878,393,2252,1082 +hg_glow +bounds:698,237,519,310 +offsets:742,352,2002,888 +hg_rays +bounds:2,199,694,437 +offsets:655,287,2002,888 +hg_stone_top_s +bounds:1486,2,260,249 +offsets:870,371,2002,888 +tap to start +bounds:1946,1373,298,53 +offsets:977,99,2252,1082 +rotate:90 + +popups_2.webp +size:2048,1024 +filter:Linear,Linear +fs_abduction/fs_exw1_l +bounds:2,210,199,466 +offsets:784,289,2002,888 +rotate:90 +fs_abduction/fs_exw2_r +bounds:587,816,200,467 +offsets:1019,286,2002,888 +rotate:90 +fs_abduction/fs_exw_shadow +bounds:1056,775,377,241 +offsets:813,269,2002,888 +fs_abduction/fs_frame +bounds:2,411,550,218 +offsets:727,209,2002,888 +fs_abduction/fs_glow copy +bounds:2,631,583,385 +offsets:711,279,2002,888 +hg_stone_left +bounds:1435,730,295,286 +offsets:664,391,2002,888 +hg_stone_right +bounds:1732,730,295,286 +offsets:1051,391,2002,888 +hg_stone_top +bounds:587,582,243,232 +offsets:880,380,2002,888 +hg_wild_1 +bounds:2,2,229,206 +offsets:884,397,2002,888 +hg_wild_2 +bounds:1056,552,225,221 +offsets:1104,426,2002,888 +hg_wild_3 +bounds:832,599,222,215 +offsets:681,430,2002,888 +placeholder +bounds:233,108,100,100 +fs/placeholder +bounds:233,108,100,100 +placeholder2 +bounds:233,108,100,100 diff --git a/src/assets/spines/bonusPopups/popups.skel b/src/assets/spines/bonusPopups/popups.skel new file mode 100755 index 0000000..5f398ed Binary files /dev/null and b/src/assets/spines/bonusPopups/popups.skel differ diff --git a/src/assets/spines/bonusPopups/popups.webp b/src/assets/spines/bonusPopups/popups.webp new file mode 100755 index 0000000..75fac5d Binary files /dev/null and b/src/assets/spines/bonusPopups/popups.webp differ diff --git a/src/assets/spines/bonusPopups/popups_2.webp b/src/assets/spines/bonusPopups/popups_2.webp new file mode 100755 index 0000000..9af8507 Binary files /dev/null and b/src/assets/spines/bonusPopups/popups_2.webp differ diff --git a/src/assets/spines/bonusPopups/respin_start.skel b/src/assets/spines/bonusPopups/respin_start.skel new file mode 100755 index 0000000..5da9de3 Binary files /dev/null and b/src/assets/spines/bonusPopups/respin_start.skel differ diff --git a/src/assets/spines/gameviews/bonus_indicator.skel b/src/assets/spines/gameviews/bonus_indicator.skel new file mode 100644 index 0000000..706adf2 Binary files /dev/null and b/src/assets/spines/gameviews/bonus_indicator.skel differ diff --git a/src/assets/spines/gameviews/freespins_character_left.atlas b/src/assets/spines/gameviews/freespins_character_left.atlas new file mode 100644 index 0000000..8384781 --- /dev/null +++ b/src/assets/spines/gameviews/freespins_character_left.atlas @@ -0,0 +1,138 @@ +freespins_character_left.webp +size:1864,272 +filter:Linear,Linear +scale:0.75 +gameview_b2_char_m_belt +bounds:1543,133,137,51 +rotate:90 +gameview_b2_char_m_eye_l +bounds:182,19,16,15 +offsets:0,1,16,16 +rotate:90 +gameview_b2_char_m_eye_r +bounds:184,2,15,15 +offsets:0,1,15,16 +gameview_b2_char_m_eyebrow_l +bounds:117,8,27,12 +offsets:0,2,29,14 +rotate:90 +gameview_b2_char_m_eyebrow_r +bounds:168,13,22,12 +offsets:0,2,23,14 +rotate:90 +gameview_b2_char_m_eyelid_l +bounds:199,19,16,8 +offsets:0,2,17,11 +rotate:90 +gameview_b2_char_m_eyelid_r +bounds:168,2,14,9 +offsets:0,1,14,10 +gameview_b2_char_m_feather_big +bounds:32,3,27,83 +offsets:2,0,29,83 +rotate:90 +gameview_b2_char_m_feather_small +bounds:2,2,28,28 +offsets:0,1,28,29 +gameview_b2_char_m_hair_l +bounds:447,4,38,73 +offsets:0,0,39,73 +rotate:90 +gameview_b2_char_m_hair_top +bounds:816,3,75,49 +offsets:0,0,80,49 +rotate:90 +gameview_b2_char_m_hand1_r +bounds:1396,120,150,85 +rotate:90 +gameview_b2_char_m_hand2_l +bounds:1543,5,82,126 +offsets:0,1,82,127 +gameview_b2_char_m_hand2_r +bounds:1483,122,58,148 +offsets:4,0,62,151 +gameview_b2_char_m_hand_s_r +bounds:978,104,145,166 +offsets:0,15,145,181 +gameview_b2_char_m_head +bounds:1682,158,83,112 +offsets:0,1,83,113 +gameview_b2_char_m_head_leaves +bounds:744,80,190,128 +rotate:90 +gameview_b2_char_m_headpiece_fthr1 +bounds:1783,8,56,54 +offsets:0,0,57,54 +rotate:90 +gameview_b2_char_m_headpiece_gld +bounds:1783,66,77,67 +offsets:0,0,79,67 +gameview_b2_char_m_leaves1 +bounds:131,9,26,35 +rotate:90 +gameview_b2_char_m_leaves2 +bounds:522,4,38,51 +offsets:24,1,62,52 +rotate:90 +gameview_b2_char_m_leg1_l +bounds:874,82,102,188 +gameview_b2_char_m_leg1_r +bounds:1125,107,114,163 +offsets:0,1,114,164 +gameview_b2_char_m_leg2_l +bounds:961,2,67,78 +gameview_b2_char_m_leg2_r +bounds:1030,3,69,99 +offsets:0,1,69,100 +gameview_b2_char_m_leg3_l +bounds:1767,135,54,85 +offsets:0,1,56,86 +rotate:90 +gameview_b2_char_m_leg3_r +bounds:575,3,65,107 +rotate:90 +gameview_b2_char_m_leg4_l +bounds:1767,191,86,79 +gameview_b2_char_m_leg4_r +bounds:1713,56,77,68 +rotate:90 +gameview_b2_char_m_neck +bounds:447,44,124,226 +gameview_b2_char_m_necklaces +bounds:1383,18,89,68 +rotate:90 +gameview_b2_char_m_necklaces_s +bounds:867,4,92,74 +offsets:0,6,92,80 +gameview_b2_char_m_ribbons +bounds:2,32,106,238 +offsets:1,0,107,238 +gameview_b2_char_m_s +bounds:110,37,335,233 +offsets:5,44,351,326 +gameview_b2_char_m_shield +bounds:1241,109,153,161 +gameview_b2_char_m_skirt1 +bounds:1185,2,103,133 +rotate:90 +gameview_b2_char_m_skirt2 +bounds:1596,135,84,135 +offsets:0,0,87,135 +gameview_b2_char_m_skirt3 +bounds:1453,4,88,114 +offsets:3,0,91,114 +gameview_b2_char_m_skirt_top +bounds:1627,14,84,119 +offsets:0,1,85,120 +gameview_b2_char_m_stick +bounds:1320,13,61,94 +gameview_b2_char_m_stick_s +bounds:1101,4,82,98 +offsets:0,0,85,98 +gameview_b2_char_m_torso +bounds:573,70,169,200 +offsets:8,0,177,200 +gameview_b2_char_m_torso_shoulder +bounds:684,4,64,130 +offsets:0,0,65,130 +rotate:90 diff --git a/src/assets/spines/gameviews/freespins_character_left.skel b/src/assets/spines/gameviews/freespins_character_left.skel new file mode 100644 index 0000000..7f3852c Binary files /dev/null and b/src/assets/spines/gameviews/freespins_character_left.skel differ diff --git a/src/assets/spines/gameviews/freespins_character_left.webp b/src/assets/spines/gameviews/freespins_character_left.webp new file mode 100644 index 0000000..b0ec389 Binary files /dev/null and b/src/assets/spines/gameviews/freespins_character_left.webp differ diff --git a/src/assets/spines/gameviews/freespins_character_placeholder.skel b/src/assets/spines/gameviews/freespins_character_placeholder.skel new file mode 100644 index 0000000..fac88b1 Binary files /dev/null and b/src/assets/spines/gameviews/freespins_character_placeholder.skel differ diff --git a/src/assets/spines/gameviews/freespins_character_right.atlas b/src/assets/spines/gameviews/freespins_character_right.atlas new file mode 100644 index 0000000..76567f2 --- /dev/null +++ b/src/assets/spines/gameviews/freespins_character_right.atlas @@ -0,0 +1,111 @@ +freespins_character_right.webp +size:1272,272 +filter:Linear,Linear +scale:0.75 +gameview_b2_char_f_beads +bounds:609,27,62,34 +gameview_b2_char_f_beads_s +bounds:60,6,66,39 +offsets:0,0,67,39 +gameview_b2_char_f_belt1 +bounds:707,2,111,65 +gameview_b2_char_f_belt2 +bounds:1005,94,92,107 +gameview_b2_char_f_belt2_s +bounds:1113,162,95,108 +offsets:0,0,96,108 +gameview_b2_char_f_earring +bounds:1099,162,11,23 +gameview_b2_char_f_earring_l +bounds:1251,201,8,21 +gameview_b2_char_f_eye_l +bounds:1099,187,12,14 +gameview_b2_char_f_eye_r +bounds:1251,224,14,14 +gameview_b2_char_f_eyebrow_l +bounds:1251,170,11,7 +offsets:0,1,11,8 +gameview_b2_char_f_eyebrow_r +bounds:1251,179,20,8 +offsets:0,1,20,9 +rotate:90 +gameview_b2_char_f_face +bounds:820,4,60,59 +gameview_b2_char_f_feathers +bounds:179,23,42,22 +gameview_b2_char_f_fell_l +bounds:2,4,56,41 +gameview_b2_char_f_fell_l_s +bounds:128,8,49,37 +offsets:1,0,50,37 +gameview_b2_char_f_fell_r +bounds:882,4,59,53 +rotate:90 +gameview_b2_char_f_fell_r_s +bounds:557,18,50,51 +gameview_b2_char_f_finger_l +bounds:911,70,23,28 +gameview_b2_char_f_finger_r +bounds:1251,240,14,30 +gameview_b2_char_f_fringe_l +bounds:332,7,62,83 +rotate:90 +gameview_b2_char_f_fringe_r +bounds:230,2,67,100 +rotate:90 +gameview_b2_char_f_hair_back +bounds:1005,19,73,92 +rotate:90 +gameview_b2_char_f_hand1_l +bounds:1210,163,107,39 +rotate:90 +gameview_b2_char_f_hand1_r +bounds:1227,85,76,41 +rotate:90 +gameview_b2_char_f_hand2_r +bounds:417,7,62,79 +rotate:90 +gameview_b2_char_f_hand2_rl +bounds:1221,4,40,79 +offsets:4,0,44,79 +gameview_b2_char_f_hide +bounds:2,47,223,226 +rotate:90 +gameview_b2_char_f_hoop +bounds:673,8,53,31 +rotate:90 +gameview_b2_char_f_leg1_l +bounds:707,69,86,116 +rotate:90 +gameview_b2_char_f_leg1_r +bounds:938,55,65,146 +gameview_b2_char_f_leg2_l +bounds:938,203,67,173 +rotate:90 +gameview_b2_char_f_leg2_r +bounds:609,157,113,188 +rotate:90 +gameview_b2_char_f_neck +bounds:937,2,51,57 +offsets:0,1,51,58 +rotate:90 +gameview_b2_char_f_neckline +bounds:1099,15,120,91 +gameview_b2_char_f_palm_l +bounds:911,100,24,55 +gameview_b2_char_f_palm_r +bounds:498,16,53,57 +offsets:0,0,53,58 +rotate:90 +gameview_b2_char_f_s +bounds:230,71,377,199 +offsets:5,6,393,214 +gameview_b2_char_f_skirt +bounds:799,157,137,113 +gameview_b2_char_f_skirt_s +bounds:1099,108,126,52 +offsets:0,1,126,53 +gameview_b2_char_f_tassel +bounds:825,65,84,90 +gameview_b2_char_f_torso +bounds:609,63,96,92 diff --git a/src/assets/spines/gameviews/freespins_character_right.skel b/src/assets/spines/gameviews/freespins_character_right.skel new file mode 100644 index 0000000..647489f Binary files /dev/null and b/src/assets/spines/gameviews/freespins_character_right.skel differ diff --git a/src/assets/spines/gameviews/freespins_character_right.webp b/src/assets/spines/gameviews/freespins_character_right.webp new file mode 100644 index 0000000..09db37d Binary files /dev/null and b/src/assets/spines/gameviews/freespins_character_right.webp differ diff --git a/src/assets/spines/gameviews/freespins_game_background.skel b/src/assets/spines/gameviews/freespins_game_background.skel new file mode 100644 index 0000000..adfdaa4 Binary files /dev/null and b/src/assets/spines/gameviews/freespins_game_background.skel differ diff --git a/src/assets/spines/gameviews/freespins_game_front.skel b/src/assets/spines/gameviews/freespins_game_front.skel new file mode 100644 index 0000000..25111f3 Binary files /dev/null and b/src/assets/spines/gameviews/freespins_game_front.skel differ diff --git a/src/assets/spines/gameviews/gameview.atlas b/src/assets/spines/gameviews/gameview.atlas new file mode 100644 index 0000000..5476f4e --- /dev/null +++ b/src/assets/spines/gameviews/gameview.atlas @@ -0,0 +1,618 @@ +gameview.webp +size:2044,2028 +filter:Linear,Linear +scale:0.75 +gameview_b1_bushes_l2 +bounds:1365,551,215,157 +gameview_b1_bushes_r1 +bounds:1593,1119,97,158 +offsets:11,0,108,164 +rotate:90 +gameview_b1_bushes_r2 +bounds:1250,1018,117,164 +offsets:0,0,122,164 +rotate:90 +gameview_b1_bushes_r3 +bounds:2,903,283,131 +offsets:4,2,287,138 +gameview_b1_bushes_r4 +bounds:1520,851,298,135 +offsets:16,16,323,152 +gameview_b1_bushes_r5 +bounds:1396,1514,234,93 +offsets:5,1,239,95 +gameview_b1_indicator_bg +bounds:1451,7,176,347 +rotate:90 +gameview_b1_indicator_stone1_bg +bounds:1815,1800,103,74 +offsets:1,1,104,75 +gameview_b1_indicator_stone2_bg +bounds:1815,1800,103,74 +offsets:1,1,104,75 +gameview_b1_indicator_stone3_bg +bounds:1815,1800,103,74 +offsets:1,1,104,75 +gameview_b1_indicator_stone1_gem_off +bounds:827,1884,78,53 +gameview_b1_indicator_stone2_gem_off +bounds:827,1884,78,53 +gameview_b1_indicator_stone3_gem_off +bounds:827,1884,78,53 +gameview_b1_indicator_stone1_gem_on +bounds:1886,1876,85,59 +gameview_b1_indicator_stone2_gem_on +bounds:1886,1876,85,59 +gameview_b1_indicator_stone3_gem_on +bounds:1886,1876,85,59 +gameview_b1_indicator_stone1_gem_on_eff +bounds:1490,1609,193,87 +offsets:1,2,195,91 +gameview_b1_indicator_stone2_gem_on_eff +bounds:1490,1609,193,87 +offsets:1,2,195,91 +gameview_b1_indicator_stone3_gem_on_eff +bounds:1490,1609,193,87 +offsets:1,2,195,91 +gameview_b1_reels_frame_angle1 +bounds:1467,187,213,170 +gameview_b1_reels_frame_angle2_back +bounds:287,898,162,133 +offsets:0,0,163,133 +gameview_b1_reels_frame_angle_back +bounds:835,1020,161,115 +offsets:0,0,161,116 +gameview_b1_reels_frame_d +bounds:2,1650,1152,46 +offsets:7,4,1166,55 +gameview_b1_reels_frame_d_back +bounds:2,1596,1152,52 +offsets:7,4,1166,56 +gameview_b1_reels_frame_gld_eff_angle1 +bounds:1582,539,162,169 +offsets:2,2,200,173 +gameview_b1_reels_frame_gld_eff_angle2 +bounds:1746,524,161,169 +offsets:1,2,164,173 +rotate:90 +gameview_b1_reels_frame_gld_eff_l +bounds:2,1724,73,766 +offsets:1,2,75,770 +rotate:90 +gameview_b1_reels_frame_gld_eff_r +bounds:2,1223,73,766 +offsets:1,2,75,770 +rotate:90 +gameview_b1_reels_frame_gld_eff_u1 +bounds:1198,1815,283,65 +offsets:1,1,286,68 +gameview_b1_reels_frame_gld_eff_u2 +bounds:1722,1733,276,65 +offsets:1,1,278,68 +gameview_b1_reels_frame_l +bounds:806,1137,79,785 +offsets:1,1,96,787 +rotate:90 +gameview_b1_reels_frame_l_back +bounds:907,1882,29,782 +offsets:0,1,29,783 +rotate:90 +gameview_b1_reels_frame_r +bounds:2,1138,78,802 +offsets:14,0,92,803 +rotate:90 +gameview_b1_reels_frame_r_back +bounds:2,1885,28,803 +offsets:0,1,28,805 +rotate:90 +gameview_b1_reels_frame_u +bounds:2,1298,824,69 +gameview_b1_reels_frame_u_back +bounds:2,1915,823,22 +offsets:0,0,824,22 +gameview_b2_bushes_l31 +bounds:1483,1812,68,158 +offsets:0,24,74,182 +rotate:90 +gameview_b2_bushes_l32 +bounds:1750,687,249,153 +offsets:0,5,249,158 +gameview_b2_bushes_l33 +bounds:981,1820,215,60 +offsets:0,8,215,71 +gameview_b2_bushes_l34 +bounds:1159,576,156,204 +rotate:90 +gameview_b2_bushes_l35 +bounds:1682,185,200,170 +gameview_b2_bushes_l36 +bounds:1753,1115,101,152 +offsets:0,1,101,153 +rotate:90 +gameview_b2_bushes_l37 +bounds:1407,2000,105,26 +gameview_b2_bushes_r21 +bounds:998,1020,250,115 +gameview_b2_bushes_r22 +bounds:1156,1619,332,77 +gameview_b2_bushes_r23 +bounds:1800,2,181,237 +rotate:90 +gameview_b2_bushes_small_l12 +bounds:1328,384,232,165 +offsets:1,2,235,168 +gameview_b2_bushes_small_l22 +bounds:1178,34,271,178 +offsets:0,1,272,180 +gameview_b2_bushes_small_r1 +bounds:1746,357,282,165 +offsets:1,1,283,166 +gameview_b2_palm2 +bounds:1562,359,178,182 +offsets:9,23,188,206 +rotate:90 +gameview_b2_palm6 +bounds:1127,885,131,391 +offsets:1,0,132,392 +rotate:90 +gameview_b2_reel_glow_r +bounds:2,475,156,989 +offsets:28,36,184,1047 +rotate:90 +gameview_b2_reels_frame_d +bounds:2,1542,1029,52 +offsets:0,1,1029,53 +gameview_b2_reels_frame_gld_l +bounds:2,148,162,714 +offsets:0,0,163,743 +rotate:90 +gameview_b2_reels_frame_gld_u +bounds:2,1851,977,29 +offsets:3,0,982,29 +gameview_b2_reels_frame_l_back +bounds:2,1799,50,787 +rotate:90 +gameview_b2_reels_frame_mask_eff_l +bounds:939,247,168,262 +offsets:1,1,170,264 +rotate:90 +gameview_b2_reels_frame_mask_eff_r +bounds:1203,214,168,262 +offsets:1,1,170,264 +rotate:90 +gameview_b2_reels_frame_r_back +bounds:791,1760,50,791 +rotate:90 +gameview_b2_reels_frame_u +bounds:2,1488,994,52 +offsets:0,0,994,53 +gameview_b2_reels_frame_u_back +bounds:2,1959,994,17 +gameview_m_bushes_r1 +bounds:1416,1018,117,164 +offsets:5,0,122,164 +rotate:90 +gameview_m_bushes_r10 +bounds:1256,734,149,186 +offsets:0,0,149,188 +rotate:90 +gameview_m_bushes_r11 +bounds:993,417,333,157 +offsets:2,19,354,176 +gameview_m_bushes_r13 +bounds:1685,1555,322,89 +offsets:0,0,335,89 +gameview_m_bushes_r16 +bounds:1820,842,222,144 +offsets:0,0,240,144 +gameview_m_bushes_r17 +bounds:736,889,129,389 +offsets:0,11,131,408 +rotate:90 +gameview_m_bushes_r2 +bounds:451,891,283,134 +offsets:0,0,287,138 +gameview_m_bushes_r3 +bounds:1444,710,304,139 +offsets:4,13,323,152 +gameview_m_bushes_r4 +bounds:1156,1528,238,89 +offsets:1,6,239,95 +gameview_m_bushes_r5 +bounds:604,1027,108,229 +offsets:0,0,133,240 +rotate:90 +gameview_m_bushes_r6 +bounds:907,68,269,177 +offsets:0,0,270,198 +gameview_m_bushes_r7 +bounds:1925,1137,114,149 +offsets:2,0,116,153 +gameview_m_bushes_r8 +bounds:718,132,178,187 +offsets:0,12,179,199 +rotate:90 +gameview_m_reel_glow_r +bounds:2,312,161,935 +offsets:36,7,197,969 +rotate:90 +gameview_m_reel_glow_u +bounds:2,633,1155,129 +offsets:114,8,1317,150 +gameview_m_reel_s +bounds:2,764,1252,119 +offsets:14,5,1280,130 +gameview_m_reels_frame_d +bounds:770,1218,1153,68 +gameview_m_reels_frame_d_back +bounds:65,2012,1152,14 +gameview_m_reels_frame_glow_d +bounds:953,1344,1070,57 +offsets:1,2,1073,62 +gameview_m_reels_frame_glow_l +bounds:770,1698,60,949 +offsets:5,1,66,951 +rotate:90 +gameview_m_reels_frame_glow_r +bounds:2,1369,62,949 +offsets:2,1,65,951 +rotate:90 +gameview_m_reels_frame_glow_u +bounds:960,1403,1003,55 +offsets:1,1,1005,56 +gameview_m_reels_frame_l +bounds:998,1460,52,960 +rotate:90 +gameview_m_reels_frame_l_back +bounds:2,1995,15,957 +offsets:0,1,15,958 +rotate:90 +gameview_m_reels_frame_r +bounds:2,1433,53,956 +rotate:90 +gameview_m_reels_frame_r_back +bounds:2,1978,15,954 +offsets:0,1,15,956 +rotate:90 +gameview_m_reels_frame_u +bounds:828,1288,1153,54 +offsets:0,0,1153,63 +gameview_m_reels_frame_u_back +bounds:2,1939,1152,18 +gameview_m_temple_fire1 +bounds:1426,1913,40,458 +offsets:13,5,61,485 +rotate:90 +gameview_m_temple_fire4 +bounds:349,1033,103,253 +offsets:4,13,130,275 +rotate:90 +gameview_m_temple_fire_particles1 +bounds:961,1978,32,255 +offsets:1,1,34,257 +rotate:90 +indicator_effect/effect_00000 +bounds:1219,2011,17,15 +offsets:34,0,55,40 +indicator_effect/effect_00001 +bounds:1304,2005,26,21 +offsets:25,0,55,40 +indicator_effect/effect_00002 +bounds:1514,1999,31,27 +offsets:20,0,55,40 +indicator_effect/effect_00003 +bounds:1547,1999,31,27 +offsets:20,0,55,40 +indicator_effect/effect_00004 +bounds:1747,1998,34,28 +offsets:16,0,55,40 +indicator_effect/effect_00005 +bounds:1783,1996,34,30 +offsets:16,0,55,40 +indicator_effect/effect_00006 +bounds:1865,1994,40,32 +offsets:10,0,55,40 +indicator_effect/effect_00007 +bounds:1907,1989,45,37 +offsets:5,0,55,40 +indicator_effect/effect_00008 +bounds:1954,1989,45,37 +offsets:5,0,55,40 +indicator_effect/effect_00009 +bounds:1266,1964,48,39 +offsets:2,0,55,40 +indicator_effect/effect_00010 +bounds:1728,1956,49,40 +offsets:1,0,55,40 +indicator_effect/effect_00011 +bounds:1678,1958,48,39 +offsets:1,1,55,40 +indicator_effect/effect_00012 +bounds:1218,1971,46,38 +offsets:2,2,55,40 +indicator_effect/effect_00013 +bounds:1218,1971,46,38 +offsets:2,2,55,40 +indicator_effect/effect_00014 +bounds:1819,1995,44,31 +offsets:2,9,55,40 +indicator_effect/effect_00015 +bounds:2001,1989,37,38 +offsets:3,2,55,40 +rotate:90 +indicator_effect/effect_00016 +bounds:1279,2010,23,16 +offsets:3,23,55,40 +indicator_effect/effect_00017 +bounds:1238,2011,22,15 +offsets:4,24,55,40 +indicator_effect/effect_00018 +bounds:1238,2011,22,15 +offsets:4,24,55,40 +indicator_effect/effect_00019 +bounds:1262,2011,15,15 +offsets:6,24,55,40 +logo_bg +bounds:1721,1646,285,85 +logo_frame +bounds:1582,988,340,125 +logo_jag +bounds:1973,1843,92,62 +rotate:90 +logo_jag_crwn +bounds:1691,1852,122,59 +logo_jag_crwn_s +bounds:1898,1937,98,50 +offsets:0,1,99,53 +logo_jag_eyes +bounds:2,2014,61,12 +logo_jag_eyes_glow +bounds:1332,2001,73,25 +offsets:2,1,77,28 +logo_jag_s +bounds:1580,1999,122,27 +offsets:0,0,123,27 +logo_s +bounds:2,1036,345,100 +offsets:0,1,345,104 +logo_txt_amazon +bounds:1156,1921,268,41 +logo_txt_amazon_eff +bounds:1316,1964,261,33 +offsets:0,2,262,36 +logo_txt_city +bounds:1579,1960,97,37 +offsets:0,1,98,38 +logo_txt_gold +bounds:1779,1955,117,37 +offsets:0,1,117,38 +logo_txt_of +bounds:1704,1999,41,27 +placeholder +bounds:1643,1773,77,77 + +gameview_2.webp +size:1984,1900 +filter:Linear,Linear +scale:0.75 +gameview_b1_bushes_l1 +bounds:1181,1349,288,215 +rotate:90 +gameview_b1_bushes_l4 +bounds:2,440,331,282 +gameview_b1_bushes_l_s +bounds:1125,834,373,266 +offsets:0,0,455,271 +gameview_b1_bushes_r6 +bounds:949,1436,230,201 +offsets:6,0,236,207 +gameview_b1_bushes_r_s +bounds:813,884,264,310 +rotate:90 +gameview_b1_indicator_bg_s +bounds:1169,1102,221,392 +offsets:3,3,227,398 +rotate:90 +gameview_b1_reels_frame_angle2 +bounds:1749,1715,212,183 +offsets:0,0,213,183 +gameview_b1_reels_s +bounds:2,1639,1403,132 +offsets:24,9,1447,148 +gameview_b2_bushes_l_front +bounds:2,127,529,291 +offsets:2,3,542,296 +gameview_b2_bushes_r24 +bounds:1398,1325,290,203 +gameview_b2_palm1 +bounds:1563,1054,377,227 +offsets:0,3,377,233 +gameview_b2_palm3 +bounds:924,1150,284,243 +offsets:1,38,287,282 +rotate:90 +gameview_b2_palm4 +bounds:484,709,294,286 +offsets:0,0,301,289 +gameview_b2_palm5 +bounds:1630,315,291,350 +offsets:0,0,298,380 +rotate:90 +gameview_b2_reel_glow_l +bounds:780,608,176,1001 +offsets:0,44,206,1070 +rotate:90 +gameview_b2_reels_frame_gld_r +bounds:2,1475,162,721 +offsets:1,0,163,743 +rotate:90 +gameview_b2_reels_frame_l +bounds:634,365,241,994 +offsets:1,1,242,995 +rotate:90 +gameview_b2_reels_frame_r +bounds:533,122,241,994 +offsets:0,1,242,995 +rotate:90 +gameview_b2_reels_s +bounds:2,1773,1547,125 +offsets:9,14,1578,144 +gameview_m_bushes_l1 +bounds:1500,786,266,281 +rotate:90 +gameview_m_bushes_l2 +bounds:2,724,480,271 +offsets:20,10,500,281 +gameview_m_bushes_l3 +bounds:1690,1283,272,237 +gameview_m_bushes_l4 +bounds:1551,1717,196,181 +offsets:0,0,196,182 +gameview_m_bushes_l5 +bounds:1529,2,311,405 +rotate:90 +gameview_m_bushes_l6 +bounds:335,420,297,287 +gameview_m_bushes_l_s +bounds:358,997,453,261 +offsets:0,0,453,262 +gameview_m_bushes_r12 +bounds:1407,1530,282,185 +offsets:0,0,308,189 +gameview_m_bushes_r14 +bounds:725,1438,199,222 +offsets:1,11,222,242 +rotate:90 +gameview_m_bushes_r15 +bounds:1691,1522,191,253 +offsets:0,0,193,285 +rotate:90 +gameview_m_bushes_r9 +bounds:2,1004,354,254 +offsets:27,0,383,277 +gameview_m_reel_glow_l +bounds:2,1260,176,920 +offsets:0,41,208,979 +rotate:90 + +gameview_3.webp +size:1920,2016 +filter:Linear,Linear +scale:0.75 +gameview_b1_bushes_l3 +bounds:2,1011,355,373 +offsets:0,0,355,374 +rotate:90 +gameview_b1_reels_glow_l +bounds:2,1715,296,830 +offsets:0,62,341,957 +rotate:90 +gameview_b1_reels_glow_r +bounds:834,1688,323,907 +offsets:24,37,347,992 +rotate:90 +gameview_b2_char_f +bounds:746,952,381,585 +offsets:1,6,393,591 +rotate:90 +gameview_b2_char_m +bounds:1201,1335,351,700 +offsets:0,43,361,743 +rotate:90 +gameview_b2_gld_eff_l +bounds:2,2,1004,467 +offsets:0,0,1047,485 +gameview_b2_gld_eff_r +bounds:717,471,1032,427 +offsets:14,0,1046,442 +gameview_bonus2_mist_source +bounds:377,1006,360,367 +offsets:7,14,387,389 +rotate:90 +gameview_m_bushes_r_s +bounds:773,1339,426,347 +offsets:0,0,452,353 +gameview_m_char +bounds:2,1368,345,769 +offsets:5,10,350,779 +rotate:90 +gameview_m_temple +bounds:2,560,713,444 +offsets:24,3,738,448 +gameview_m_temple_glow +bounds:1333,900,585,433 +offsets:53,46,856,530 + +gameview_4.webp +size:2008,1584 +filter:Linear,Linear +scale:0.75 +gameview_b1_base1 +bounds:2,2,1244,701 +gameview_b1_char +bounds:2,1031,549,909 +offsets:15,18,564,927 +rotate:90 +gameview_b2_reels_bg +bounds:913,705,1090,875 +offsets:0,34,1091,909 + +gameview_5.webp +size:1952,1408 +filter:Linear,Linear +scale:0.75 +gameview_b1_base2 +bounds:2,705,1244,701 +gameview_b1_base3 +bounds:1248,162,1244,701 +rotate:90 +gameview_b1_base4 +bounds:2,2,1244,701 + +gameview_6.webp +size:1952,1408 +filter:Linear,Linear +scale:0.75 +gameview_b2_base1 +bounds:2,705,1244,701 +gameview_b2_base2 +bounds:1248,162,1244,701 +rotate:90 +gameview_b2_base3 +bounds:2,2,1244,701 + +gameview_7.webp +size:1952,1408 +filter:Linear,Linear +scale:0.75 +gameview_b2_base4 +bounds:2,705,1244,701 +gameview_m_base1 +bounds:1248,162,1244,701 +rotate:90 +gameview_m_base2 +bounds:2,2,1244,701 + +gameview_8.webp +size:2016,1408 +filter:Linear,Linear +scale:0.75 +gameview_b1_temple_front_vines +bounds:2,141,765,1265 +offsets:0,84,765,1349 +gameview_m_base3 +bounds:769,705,1244,701 +gameview_m_base4 +bounds:769,2,1244,701 + +gameview_9.webp +size:1968,1120 +filter:Linear,Linear +scale:0.75 +gameview_b1_reels_bg +bounds:1071,2,1114,892 +rotate:90 +gameview_m_reels_frame_base +bounds:2,5,1111,1067 +offsets:79,14,1258,1082 +rotate:90 diff --git a/src/assets/spines/gameviews/gameview.webp b/src/assets/spines/gameviews/gameview.webp new file mode 100644 index 0000000..625897d Binary files /dev/null and b/src/assets/spines/gameviews/gameview.webp differ diff --git a/src/assets/spines/gameviews/gameview_2.webp b/src/assets/spines/gameviews/gameview_2.webp new file mode 100644 index 0000000..0ea8162 Binary files /dev/null and b/src/assets/spines/gameviews/gameview_2.webp differ diff --git a/src/assets/spines/gameviews/gameview_3.webp b/src/assets/spines/gameviews/gameview_3.webp new file mode 100644 index 0000000..44de7c6 Binary files /dev/null and b/src/assets/spines/gameviews/gameview_3.webp differ diff --git a/src/assets/spines/gameviews/gameview_4.webp b/src/assets/spines/gameviews/gameview_4.webp new file mode 100644 index 0000000..821a0e4 Binary files /dev/null and b/src/assets/spines/gameviews/gameview_4.webp differ diff --git a/src/assets/spines/gameviews/gameview_5.webp b/src/assets/spines/gameviews/gameview_5.webp new file mode 100644 index 0000000..1369c72 Binary files /dev/null and b/src/assets/spines/gameviews/gameview_5.webp differ diff --git a/src/assets/spines/gameviews/gameview_6.webp b/src/assets/spines/gameviews/gameview_6.webp new file mode 100644 index 0000000..b52a29d Binary files /dev/null and b/src/assets/spines/gameviews/gameview_6.webp differ diff --git a/src/assets/spines/gameviews/gameview_7.webp b/src/assets/spines/gameviews/gameview_7.webp new file mode 100644 index 0000000..8c44277 Binary files /dev/null and b/src/assets/spines/gameviews/gameview_7.webp differ diff --git a/src/assets/spines/gameviews/gameview_8.webp b/src/assets/spines/gameviews/gameview_8.webp new file mode 100644 index 0000000..22f2892 Binary files /dev/null and b/src/assets/spines/gameviews/gameview_8.webp differ diff --git a/src/assets/spines/gameviews/gameview_9.webp b/src/assets/spines/gameviews/gameview_9.webp new file mode 100644 index 0000000..2209792 Binary files /dev/null and b/src/assets/spines/gameviews/gameview_9.webp differ diff --git a/src/assets/spines/gameviews/main_character_placeholder.skel b/src/assets/spines/gameviews/main_character_placeholder.skel new file mode 100644 index 0000000..c4f63fd Binary files /dev/null and b/src/assets/spines/gameviews/main_character_placeholder.skel differ diff --git a/src/assets/spines/gameviews/main_game_background.skel b/src/assets/spines/gameviews/main_game_background.skel new file mode 100644 index 0000000..3511988 Binary files /dev/null and b/src/assets/spines/gameviews/main_game_background.skel differ diff --git a/src/assets/spines/gameviews/main_game_character.atlas b/src/assets/spines/gameviews/main_game_character.atlas new file mode 100644 index 0000000..721e9a4 --- /dev/null +++ b/src/assets/spines/gameviews/main_game_character.atlas @@ -0,0 +1,129 @@ +main_game_character.webp +size:1794,332 +filter:Linear,Linear +scale:0.75 +gameview_m_char_belt_back +bounds:776,11,141,84 +gameview_m_char_belt_decor1 +bounds:1258,79,97,96 +gameview_m_char_belt_decor1_s +bounds:930,137,102,100 +offsets:0,1,104,102 +gameview_m_char_belt_decor3 +bounds:1450,43,61,67 +gameview_m_char_belt_feathers1_l +bounds:1740,70,50,53 +gameview_m_char_belt_feathers1_r +bounds:1689,78,44,49 +rotate:90 +gameview_m_char_belt_feathers2_l +bounds:1613,20,54,59 +rotate:90 +gameview_m_char_belt_feathers2_r +bounds:1674,19,41,55 +gameview_m_char_cane +bounds:2,283,47,728 +rotate:90 +gameview_m_char_hair_l +bounds:1703,125,42,85 +rotate:90 +gameview_m_char_hair_r +bounds:1615,124,43,86 +rotate:90 +gameview_m_char_hand_l1 +bounds:618,108,98,173 +gameview_m_char_hand_l2 +bounds:1513,43,46,67 +gameview_m_char_hand_r1 +bounds:1258,2,75,109 +rotate:90 +gameview_m_char_hand_r2 +bounds:1034,132,60,126 +rotate:90 +gameview_m_char_hand_r3 +bounds:1615,76,46,72 +rotate:90 +gameview_m_char_hand_rs +bounds:1235,3,16,72 +gameview_m_char_head +bounds:696,2,78,93 +gameview_m_char_head_brows +bounds:1786,285,45,6 +rotate:90 +gameview_m_char_head_earring_l +bounds:1450,4,37,44 +rotate:90 +gameview_m_char_head_earring_r +bounds:1496,6,35,38 +rotate:90 +gameview_m_char_head_eye_l +bounds:558,107,17,15 +gameview_m_char_head_eye_r +bounds:908,141,16,16 +gameview_m_char_head_eyelid_l +bounds:327,61,18,11 +offsets:0,0,19,11 +rotate:90 +gameview_m_char_head_eyelid_r +bounds:718,262,19,12 +rotate:90 +gameview_m_char_head_fthr_; +bounds:919,13,105,122 +gameview_m_char_head_fthr_r +bounds:1026,17,98,113 +gameview_m_char_head_fthr_top_l +bounds:1441,112,80,88 +rotate:90 +gameview_m_char_head_fthr_top_r +bounds:1531,118,74,82 +rotate:90 +gameview_m_char_head_helmet +bounds:1162,77,115,94 +rotate:90 +gameview_m_char_head_helmet_s +bounds:1561,44,72,50 +offsets:0,0,74,50 +rotate:90 +gameview_m_char_head_l_s +bounds:1357,86,81,89 +gameview_m_char_head_r_s +bounds:242,3,76,83 +rotate:90 +gameview_m_char_leg_l1 +bounds:718,159,78,210 +rotate:90 +gameview_m_char_leg_l2 +bounds:2,5,74,238 +rotate:90 +gameview_m_char_leg_r1 +bounds:718,97,60,188 +rotate:90 +gameview_m_char_leg_r2 +bounds:340,32,90,216 +rotate:90 +gameview_m_char_s +bounds:340,124,276,157 +offsets:4,11,297,171 +gameview_m_char_shoulder_l +bounds:1126,2,107,73 +gameview_m_char_shoulder_r +bounds:1369,2,79,82 +gameview_m_char_skirt1 +bounds:1441,194,179,136 +gameview_m_char_skirt1_s +bounds:1258,177,181,153 +offsets:11,2,192,155 +gameview_m_char_skirt2 +bounds:1622,169,161,162 +rotate:90 +gameview_m_char_skirt3 +bounds:732,239,91,301 +rotate:90 +gameview_m_char_skirt_back +bounds:2,81,200,336 +rotate:90 +gameview_m_char_torso +bounds:1035,194,136,221 +rotate:90 +gameview_m_char_torso_s +bounds:558,2,136,93 diff --git a/src/assets/spines/gameviews/main_game_character.skel b/src/assets/spines/gameviews/main_game_character.skel new file mode 100644 index 0000000..4b9d7f2 Binary files /dev/null and b/src/assets/spines/gameviews/main_game_character.skel differ diff --git a/src/assets/spines/gameviews/main_game_character.webp b/src/assets/spines/gameviews/main_game_character.webp new file mode 100644 index 0000000..1eeb32a Binary files /dev/null and b/src/assets/spines/gameviews/main_game_character.webp differ diff --git a/src/assets/spines/gameviews/main_game_front.skel b/src/assets/spines/gameviews/main_game_front.skel new file mode 100644 index 0000000..4178967 Binary files /dev/null and b/src/assets/spines/gameviews/main_game_front.skel differ diff --git a/src/assets/spines/gameviews/reels.skel b/src/assets/spines/gameviews/reels.skel new file mode 100644 index 0000000..d818945 Binary files /dev/null and b/src/assets/spines/gameviews/reels.skel differ diff --git a/src/assets/spines/gameviews/respins_character.atlas b/src/assets/spines/gameviews/respins_character.atlas new file mode 100644 index 0000000..cb38c01 --- /dev/null +++ b/src/assets/spines/gameviews/respins_character.atlas @@ -0,0 +1,140 @@ +respins_character.webp +size:1620,524 +filter:Linear,Linear +scale:0.75 +gameview_b1_char_belt +bounds:2,5,60,196 +rotate:90 +gameview_b1_char_belt_s +bounds:470,25,67,118 +offsets:0,0,68,119 +rotate:90 +gameview_b1_char_chestpiece +bounds:375,102,185,99 +offsets:0,0,185,107 +rotate:90 +gameview_b1_char_chestpiece_decor +bounds:298,4,57,57 +gameview_b1_char_chestpiece_decor_s +bounds:1498,26,61,62 +offsets:1,1,63,64 +gameview_b1_char_chestpiece_s +bounds:476,152,173,92 +gameview_b1_char_cloak_back +bounds:1328,151,77,186 +rotate:90 +gameview_b1_char_eye_l +bounds:1593,419,20,20 +gameview_b1_char_eye_r +bounds:1301,116,14,14 +offsets:0,0,14,15 +gameview_b1_char_eyelid_l +bounds:1515,90,18,10 +gameview_b1_char_eyelid_r +bounds:1377,11,13,8 +gameview_b1_char_hair_back +bounds:1164,59,71,135 +rotate:90 +gameview_b1_char_hair_decor +bounds:711,153,227,200 +gameview_b1_char_hair_decor_eff +bounds:940,147,227,200 +gameview_b1_char_hand1_l +bounds:476,94,56,184 +offsets:0,0,56,186 +rotate:90 +gameview_b1_char_hand1_r +bounds:478,379,143,314 +rotate:90 +gameview_b1_char_hand2_l +bounds:922,54,91,155 +offsets:0,0,92,155 +rotate:90 +gameview_b1_char_hand2_l_glow +bounds:850,2,51,94 +offsets:2,0,58,96 +gameview_b1_char_hand2_r +bounds:291,63,80,87 +offsets:0,0,80,88 +gameview_b1_char_hand2_r_glow +bounds:1593,441,25,81 +offsets:1,2,26,84 +gameview_b1_char_hand3_r +bounds:662,98,53,166 +rotate:90 +gameview_b1_char_head +bounds:1079,31,83,114 +offsets:0,2,83,116 +gameview_b1_char_head_bandage +bounds:973,23,56,29 +gameview_b1_char_head_bandage_s +bounds:711,359,61,18 +offsets:2,1,64,20 +gameview_b1_char_head_feathers1 +bounds:794,355,266,167 +gameview_b1_char_head_feathers1_eff +bounds:1325,367,266,155 +gameview_b1_char_head_feathers2_back +bounds:651,157,57,87 +gameview_b1_char_head_leopard +bounds:1516,102,99,92 +gameview_b1_char_head_leopard_s +bounds:590,20,72,70 +offsets:1,1,74,72 +rotate:90 +gameview_b1_char_head_s +bounds:1258,4,53,40 +offsets:0,7,55,47 +rotate:90 +gameview_b1_char_legs1_l +bounds:1516,196,102,169 +gameview_b1_char_legs1_l_glow +bounds:1301,2,74,86 +offsets:0,15,74,101 +gameview_b1_char_legs2_l +bounds:2,67,83,287 +rotate:90 +gameview_b1_char_legs_r +bounds:2,152,135,371 +offsets:26,0,161,409 +rotate:90 +gameview_b1_char_legs_r_glow +bounds:903,13,39,68 +rotate:90 +gameview_b1_char_necklace +bounds:830,98,90,53 +gameview_b1_char_necklace_s +bounds:200,2,96,59 +gameview_b1_char_s +bounds:2,289,474,233 +offsets:15,18,503,265 +gameview_b1_char_shield +bounds:1169,132,157,215 +gameview_b1_char_shield_leaves1 +bounds:373,62,38,95 +rotate:90 +gameview_b1_char_shield_leaves2 +bounds:786,2,62,94 +gameview_b1_char_shield_leaves3 +bounds:1377,21,67,119 +rotate:90 +gameview_b1_char_shield_leaves4 +bounds:357,28,32,84 +offsets:0,0,32,99 +rotate:90 +gameview_b1_char_shield_leaves5 +bounds:1164,2,55,92 +rotate:90 +gameview_b1_char_shield_leaves6 +bounds:662,2,94,122 +rotate:90 +gameview_b1_char_skirt +bounds:1328,230,186,135 +gameview_b1_char_skirt_back +bounds:1328,90,185,59 +gameview_b1_char_torso +bounds:1062,349,173,261 +rotate:90 +gameview_b1_char_torso_glow +bounds:478,246,131,231 +rotate:90 diff --git a/src/assets/spines/gameviews/respins_character.skel b/src/assets/spines/gameviews/respins_character.skel new file mode 100644 index 0000000..42db148 Binary files /dev/null and b/src/assets/spines/gameviews/respins_character.skel differ diff --git a/src/assets/spines/gameviews/respins_character.webp b/src/assets/spines/gameviews/respins_character.webp new file mode 100644 index 0000000..68ddf11 Binary files /dev/null and b/src/assets/spines/gameviews/respins_character.webp differ diff --git a/src/assets/spines/gameviews/respins_character_placeholder.skel b/src/assets/spines/gameviews/respins_character_placeholder.skel new file mode 100644 index 0000000..257db38 Binary files /dev/null and b/src/assets/spines/gameviews/respins_character_placeholder.skel differ diff --git a/src/assets/spines/gameviews/respins_game_background.skel b/src/assets/spines/gameviews/respins_game_background.skel new file mode 100644 index 0000000..bce2043 Binary files /dev/null and b/src/assets/spines/gameviews/respins_game_background.skel differ diff --git a/src/assets/spines/gameviews/respins_game_front.skel b/src/assets/spines/gameviews/respins_game_front.skel new file mode 100644 index 0000000..91d457f Binary files /dev/null and b/src/assets/spines/gameviews/respins_game_front.skel differ diff --git a/src/assets/spines/ios/ios_scroll.atlas b/src/assets/spines/ios/ios_scroll.atlas new file mode 100644 index 0000000..4045bda --- /dev/null +++ b/src/assets/spines/ios/ios_scroll.atlas @@ -0,0 +1,13 @@ +ios_scroll.webp +size:576,184 +filter:Linear,Linear +images/arrow-up +bounds:2,2,178,452 +offsets:19,17,216,490 +rotate:90 +images/hand +bounds:456,59,121,117 +offsets:0,1,122,118 +rotate:90 +images/whiteTexture +bounds:456,47,10,10 diff --git a/src/assets/spines/ios/ios_scroll.skel b/src/assets/spines/ios/ios_scroll.skel new file mode 100644 index 0000000..8fbbc7e Binary files /dev/null and b/src/assets/spines/ios/ios_scroll.skel differ diff --git a/src/assets/spines/ios/ios_scroll.webp b/src/assets/spines/ios/ios_scroll.webp new file mode 100644 index 0000000..f2d688b Binary files /dev/null and b/src/assets/spines/ios/ios_scroll.webp differ diff --git a/src/assets/spines/mini-paytable/mini-paytable.atlas b/src/assets/spines/mini-paytable/mini-paytable.atlas new file mode 100644 index 0000000..47844d9 --- /dev/null +++ b/src/assets/spines/mini-paytable/mini-paytable.atlas @@ -0,0 +1,18 @@ +mini-paytable.webp +size:1688,728 +filter:Linear,Linear +glow1 +bounds:466,16,448,708 +offsets:1,1,450,710 +glow2 +bounds:2,2,462,722 +offsets:2,2,466,726 +placeholder +bounds:1324,30,100,100 +offsets:1,1,102,102 +stone +bounds:1324,132,360,592 +offsets:1,1,362,594 +stone_shadow +bounds:916,86,406,638 +offsets:1,1,408,640 diff --git a/src/assets/spines/mini-paytable/mini-paytable.skel b/src/assets/spines/mini-paytable/mini-paytable.skel new file mode 100644 index 0000000..9ce113d Binary files /dev/null and b/src/assets/spines/mini-paytable/mini-paytable.skel differ diff --git a/src/assets/spines/mini-paytable/mini-paytable.webp b/src/assets/spines/mini-paytable/mini-paytable.webp new file mode 100644 index 0000000..9ee1c7f Binary files /dev/null and b/src/assets/spines/mini-paytable/mini-paytable.webp differ diff --git a/src/assets/spines/paytable/paytable.atlas b/src/assets/spines/paytable/paytable.atlas new file mode 100644 index 0000000..213db0b --- /dev/null +++ b/src/assets/spines/paytable/paytable.atlas @@ -0,0 +1,124 @@ +paytable.webp +size:2020,1016 +filter:Linear,Linear +scale:0.75 +Xbutton_all +bounds:1345,2,37,36 +offsets:0,0,37,37 +rotate:90 +arrow_l_button +bounds:1573,74,62,107 +rotate:90 +arrow_l_button_h +bounds:657,87,62,107 +rotate:90 +arrow_r_button +bounds:660,23,62,107 +rotate:90 +arrow_r_button_h +bounds:1573,10,62,107 +rotate:90 +iconScatter_symbols1 +bounds:1538,790,221,224 +offsets:2,1,225,225 +iconWild_symbols1 +bounds:1327,647,360,209 +offsets:0,1,360,210 +rotate:90 +icon_h1 +bounds:1761,799,213,215 +offsets:6,4,225,225 +icon_h2 +bounds:659,314,212,212 +offsets:7,7,225,225 +icon_l1 +bounds:583,79,72,108 +offsets:60,42,192,192 +icon_l2 +bounds:1464,38,98,107 +offsets:47,42,192,192 +rotate:90 +icon_l3 +bounds:1345,41,117,115 +offsets:38,38,192,192 +icon_l4 +bounds:1222,32,121,124 +offsets:36,34,192,192 +icon_l5 +bounds:1872,97,160,132 +offsets:17,30,192,192 +rotate:90 +icon_m1 +bounds:1693,80,177,177 +offsets:24,24,225,225 +icon_m2 +bounds:864,4,177,177 +offsets:24,24,225,225 +icon_m3 +bounds:1043,4,177,177 +offsets:24,24,225,225 +pagebuttons_features1 +bounds:2,4,343,17 +pagebuttons_features2 +bounds:583,189,343,17 +rotate:90 +pagebuttons_features3 +bounds:602,189,343,17 +rotate:90 +pagebuttons_paylines +bounds:621,189,343,17 +rotate:90 +pagebuttons_symbols1 +bounds:640,189,343,17 +rotate:90 +pagebuttons_symbols2 +bounds:873,346,343,17 +paylines_1 +bounds:873,365,203,161 +paylines_10 +bounds:1078,365,203,161 +paylines_11 +bounds:1538,627,203,161 +paylines_12 +bounds:659,151,203,161 +paylines_13 +bounds:1327,484,203,161 +paylines_14 +bounds:1532,464,203,161 +paylines_15 +bounds:1283,321,203,161 +paylines_16 +bounds:1488,301,203,161 +paylines_2 +bounds:873,183,203,161 +paylines_3 +bounds:1078,183,203,161 +paylines_4 +bounds:1283,158,203,161 +paylines_5 +bounds:1488,138,203,161 +paylines_6 +bounds:1693,259,203,161 +rotate:90 +paylines_7 +bounds:1737,464,203,161 +paylines_8 +bounds:1743,627,203,161 +paylines_9 +bounds:1856,259,203,161 +rotate:90 +picAlienAbduction_features3 +bounds:2,534,713,473 +offsets:5,1,726,474 +picWarriors_features2 +bounds:717,528,608,479 +offsets:3,2,617,481 +picWildSpin_features1 +bounds:2,23,579,509 +offsets:7,22,592,531 +placeholder +bounds:583,2,75,75 +offsets:3,3,81,81 +underline_all +bounds:2,1009,1442,5 +offsets:11,0,1462,5 diff --git a/src/assets/spines/paytable/paytable.skel b/src/assets/spines/paytable/paytable.skel new file mode 100644 index 0000000..ddd3f72 Binary files /dev/null and b/src/assets/spines/paytable/paytable.skel differ diff --git a/src/assets/spines/paytable/paytable.webp b/src/assets/spines/paytable/paytable.webp new file mode 100644 index 0000000..c482e50 Binary files /dev/null and b/src/assets/spines/paytable/paytable.webp differ diff --git a/src/assets/spines/paytable/paytable_page_1.skel b/src/assets/spines/paytable/paytable_page_1.skel new file mode 100644 index 0000000..f27078f Binary files /dev/null and b/src/assets/spines/paytable/paytable_page_1.skel differ diff --git a/src/assets/spines/paytable/paytable_page_2.skel b/src/assets/spines/paytable/paytable_page_2.skel new file mode 100644 index 0000000..1cc9dcd Binary files /dev/null and b/src/assets/spines/paytable/paytable_page_2.skel differ diff --git a/src/assets/spines/paytable/paytable_page_3.skel b/src/assets/spines/paytable/paytable_page_3.skel new file mode 100644 index 0000000..9d3dfd8 Binary files /dev/null and b/src/assets/spines/paytable/paytable_page_3.skel differ diff --git a/src/assets/spines/paytable/paytable_page_4.skel b/src/assets/spines/paytable/paytable_page_4.skel new file mode 100644 index 0000000..c174736 Binary files /dev/null and b/src/assets/spines/paytable/paytable_page_4.skel differ diff --git a/src/assets/spines/paytable/paytable_page_5.skel b/src/assets/spines/paytable/paytable_page_5.skel new file mode 100644 index 0000000..ca26d2e Binary files /dev/null and b/src/assets/spines/paytable/paytable_page_5.skel differ diff --git a/src/assets/spines/paytable/paytable_page_6.skel b/src/assets/spines/paytable/paytable_page_6.skel new file mode 100644 index 0000000..3942877 Binary files /dev/null and b/src/assets/spines/paytable/paytable_page_6.skel differ diff --git a/src/assets/spines/preloader/preloader.atlas b/src/assets/spines/preloader/preloader.atlas new file mode 100644 index 0000000..db44b47 --- /dev/null +++ b/src/assets/spines/preloader/preloader.atlas @@ -0,0 +1,629 @@ + +preloader.webp +size: 1988, 1128 +format: RGBA8888 +filter: Linear, Linear +repeat: none +Popiplay_logo/Popiplay_logo00000 + rotate: false + xy: 1894, 128 + size: 50, 50 + orig: 390, 177 + offset: 97, 55 + index: -1 +Popiplay_logo/Popiplay_logo00001 + rotate: false + xy: 1894, 128 + size: 50, 50 + orig: 390, 177 + offset: 97, 55 + index: -1 +Popiplay_logo/Popiplay_logo00002 + rotate: false + xy: 1894, 128 + size: 50, 50 + orig: 390, 177 + offset: 97, 55 + index: -1 +Popiplay_logo/Popiplay_logo00003 + rotate: false + xy: 1894, 180 + size: 53, 50 + orig: 390, 177 + offset: 94, 55 + index: -1 +Popiplay_logo/Popiplay_logo00004 + rotate: true + xy: 1665, 7 + size: 61, 59 + orig: 390, 177 + offset: 88, 51 + index: -1 +Popiplay_logo/Popiplay_logo00005 + rotate: true + xy: 492, 22 + size: 69, 65 + orig: 390, 177 + offset: 84, 50 + index: -1 +Popiplay_logo/Popiplay_logo00006 + rotate: true + xy: 418, 11 + size: 80, 72 + orig: 390, 177 + offset: 81, 45 + index: -1 +Popiplay_logo/Popiplay_logo00007 + rotate: false + xy: 1669, 252 + size: 144, 144 + orig: 390, 177 + offset: 46, 15 + index: -1 +Popiplay_logo/Popiplay_logo00008 + rotate: false + xy: 1669, 398 + size: 153, 151 + orig: 390, 177 + offset: 42, 12 + index: -1 +Popiplay_logo/Popiplay_logo00009 + rotate: false + xy: 587, 93 + size: 155, 153 + orig: 390, 177 + offset: 42, 11 + index: -1 +Popiplay_logo/Popiplay_logo00010 + rotate: false + xy: 744, 94 + size: 154, 156 + orig: 390, 177 + offset: 42, 9 + index: -1 +Popiplay_logo/Popiplay_logo00011 + rotate: true + xy: 1692, 551 + size: 154, 156 + orig: 390, 177 + offset: 42, 9 + index: -1 +Popiplay_logo/Popiplay_logo00012 + rotate: true + xy: 1850, 588 + size: 117, 131 + orig: 390, 177 + offset: 61, 17 + index: -1 +Popiplay_logo/Popiplay_logo00013 + rotate: false + xy: 1665, 133 + size: 122, 117 + orig: 390, 177 + offset: 55, 31 + index: -1 +Popiplay_logo/Popiplay_logo00014 + rotate: false + xy: 1815, 232 + size: 142, 118 + orig: 390, 177 + offset: 45, 30 + index: -1 +Popiplay_logo/Popiplay_logo00015 + rotate: false + xy: 1824, 415 + size: 152, 108 + orig: 390, 177 + offset: 48, 29 + index: -1 +Popiplay_logo/Popiplay_logo00016 + rotate: true + xy: 1519, 667 + size: 164, 108 + orig: 390, 177 + offset: 50, 29 + index: -1 +Popiplay_logo/Popiplay_logo00017 + rotate: true + xy: 1409, 652 + size: 179, 108 + orig: 390, 177 + offset: 52, 29 + index: -1 +Popiplay_logo/Popiplay_logo00018 + rotate: true + xy: 1249, 87 + size: 198, 109 + orig: 390, 177 + offset: 54, 28 + index: -1 +Popiplay_logo/Popiplay_logo00019 + rotate: true + xy: 1171, 627 + size: 203, 110 + orig: 390, 177 + offset: 54, 28 + index: -1 +Popiplay_logo/Popiplay_logo00020 + rotate: true + xy: 1137, 78 + size: 204, 110 + orig: 390, 177 + offset: 54, 28 + index: -1 +Popiplay_logo/Popiplay_logo00021 + rotate: true + xy: 997, 580 + size: 245, 109 + orig: 390, 177 + offset: 54, 29 + index: -1 +Popiplay_logo/Popiplay_logo00022 + rotate: true + xy: 900, 4 + size: 248, 109 + orig: 390, 177 + offset: 54, 29 + index: -1 +Popiplay_logo/Popiplay_logo00023 + rotate: true + xy: 1527, 71 + size: 284, 106 + orig: 390, 177 + offset: 54, 29 + index: -1 +Popiplay_logo/Popiplay_logo00024 + rotate: true + xy: 1423, 67 + size: 288, 102 + orig: 390, 177 + offset: 54, 30 + index: -1 +Popiplay_logo/Popiplay_logo00025 + rotate: true + xy: 1061, 284 + size: 294, 102 + orig: 390, 177 + offset: 54, 30 + index: -1 +Popiplay_logo/Popiplay_logo00026 + rotate: true + xy: 871, 827 + size: 299, 94 + orig: 390, 177 + offset: 54, 30 + index: -1 +Popiplay_logo/Popiplay_logo00027 + rotate: true + xy: 839, 254 + size: 300, 94 + orig: 390, 177 + offset: 54, 30 + index: -1 +Popiplay_logo/Popiplay_logo00028 + rotate: false + xy: 116, 10 + size: 300, 81 + orig: 390, 177 + offset: 54, 30 + index: -1 +Popiplay_logo/Popiplay_logo00029 + rotate: false + xy: 559, 25 + size: 300, 66 + orig: 390, 177 + offset: 54, 45 + index: -1 +Popiplay_logo/Popiplay_logo00030 + rotate: true + xy: 967, 827 + size: 299, 64 + orig: 390, 177 + offset: 54, 47 + index: -1 +Popiplay_logo/Popiplay_logo00031 + rotate: true + xy: 935, 277 + size: 298, 61 + orig: 390, 177 + offset: 54, 50 + index: -1 +Popiplay_logo/Popiplay_logo00032 + rotate: true + xy: 1033, 829 + size: 297, 61 + orig: 390, 177 + offset: 54, 50 + index: -1 +Popiplay_logo/Popiplay_logo00033 + rotate: true + xy: 1096, 831 + size: 295, 61 + orig: 390, 177 + offset: 54, 50 + index: -1 +Popiplay_logo/Popiplay_logo00034 + rotate: true + xy: 1159, 832 + size: 294, 61 + orig: 390, 177 + offset: 54, 50 + index: -1 +Popiplay_logo/Popiplay_logo00035 + rotate: false + xy: 1074, 3 + size: 294, 61 + orig: 390, 177 + offset: 54, 50 + index: -1 +Popiplay_logo/Popiplay_logo00036 + rotate: true + xy: 1165, 301 + size: 293, 61 + orig: 390, 177 + offset: 54, 50 + index: -1 +Popiplay_logo/Popiplay_logo00037 + rotate: true + xy: 1222, 833 + size: 293, 61 + orig: 390, 177 + offset: 54, 50 + index: -1 +Popiplay_logo/Popiplay_logo00038 + rotate: true + xy: 1228, 332 + size: 293, 61 + orig: 390, 177 + offset: 54, 50 + index: -1 +Popiplay_logo/Popiplay_logo00039 + rotate: true + xy: 1285, 833 + size: 293, 61 + orig: 390, 177 + offset: 54, 50 + index: -1 +Popiplay_logo/Popiplay_logo00040 + rotate: true + xy: 1291, 337 + size: 293, 61 + orig: 390, 177 + offset: 54, 50 + index: -1 +Popiplay_logo/Popiplay_logo00041 + rotate: true + xy: 1348, 833 + size: 293, 61 + orig: 390, 177 + offset: 54, 50 + index: -1 +Popiplay_logo/Popiplay_logo00042 + rotate: true + xy: 1354, 355 + size: 293, 61 + orig: 390, 177 + offset: 54, 50 + index: -1 +Popiplay_logo/Popiplay_logo00043 + rotate: false + xy: 1370, 3 + size: 293, 61 + orig: 390, 177 + offset: 54, 50 + index: -1 +Popiplay_logo/Popiplay_logo00044 + rotate: true + xy: 1411, 833 + size: 293, 61 + orig: 390, 177 + offset: 54, 50 + index: -1 +Popiplay_logo/Popiplay_logo00045 + rotate: true + xy: 1474, 833 + size: 293, 61 + orig: 390, 177 + offset: 54, 50 + index: -1 +Popiplay_logo/Popiplay_logo00046 + rotate: true + xy: 1417, 357 + size: 293, 61 + orig: 390, 177 + offset: 54, 50 + index: -1 +Popiplay_logo/Popiplay_logo00047 + rotate: true + xy: 1480, 357 + size: 293, 61 + orig: 390, 177 + offset: 54, 50 + index: -1 +Popiplay_logo/Popiplay_logo00048 + rotate: true + xy: 1537, 833 + size: 293, 61 + orig: 390, 177 + offset: 54, 50 + index: -1 +Popiplay_logo/Popiplay_logo00049 + rotate: true + xy: 1600, 833 + size: 293, 61 + orig: 390, 177 + offset: 54, 50 + index: -1 +Popiplay_logo/Popiplay_logo00050 + rotate: true + xy: 1543, 372 + size: 293, 61 + orig: 390, 177 + offset: 54, 50 + index: -1 +Popiplay_logo/Popiplay_logo00051 + rotate: true + xy: 1606, 372 + size: 293, 61 + orig: 390, 177 + offset: 54, 50 + index: -1 +Popiplay_logo/Popiplay_logo00052 + rotate: true + xy: 1663, 833 + size: 293, 61 + orig: 390, 177 + offset: 54, 50 + index: -1 +Popiplay_logo/Popiplay_logo00053 + rotate: false + xy: 1692, 770 + size: 293, 61 + orig: 390, 177 + offset: 54, 50 + index: -1 +Popiplay_logo/Popiplay_logo00054 + rotate: true + xy: 1726, 833 + size: 293, 61 + orig: 390, 177 + offset: 54, 50 + index: -1 +Popiplay_logo/Popiplay_logo00055 + rotate: true + xy: 1789, 833 + size: 293, 61 + orig: 390, 177 + offset: 54, 50 + index: -1 +Popiplay_logo/Popiplay_logo00056 + rotate: true + xy: 1852, 833 + size: 293, 61 + orig: 390, 177 + offset: 54, 50 + index: -1 +Popiplay_logo/Popiplay_logo00057 + rotate: true + xy: 1915, 833 + size: 293, 61 + orig: 390, 177 + offset: 54, 50 + index: -1 +Popiplay_logo/Popiplay_logo00058 + rotate: false + xy: 1692, 707 + size: 293, 61 + orig: 390, 177 + offset: 54, 50 + index: -1 +Popiplay_logo/Popiplay_logo00059 + rotate: true + xy: 776, 253 + size: 301, 61 + orig: 390, 177 + offset: 46, 50 + index: -1 +Popiplay_logo/Popiplay_logo00060 + rotate: true + xy: 587, 248 + size: 306, 61 + orig: 390, 177 + offset: 41, 50 + index: -1 +Popiplay_logo/Popiplay_logo00061 + rotate: true + xy: 650, 249 + size: 305, 61 + orig: 390, 177 + offset: 42, 50 + index: -1 +Popiplay_logo/Popiplay_logo00062 + rotate: true + xy: 713, 252 + size: 302, 61 + orig: 390, 177 + offset: 45, 50 + index: -1 +Popiplay_logo/Popiplay_logo00063 + rotate: true + xy: 998, 283 + size: 295, 61 + orig: 390, 177 + offset: 52, 50 + index: -1 +Popiplay_logo/Popiplay_logo00064 + rotate: true + xy: 1360, 66 + size: 287, 61 + orig: 390, 177 + offset: 60, 50 + index: -1 +Popiplay_logo/Popiplay_logo00065 + rotate: true + xy: 1011, 6 + size: 275, 61 + orig: 390, 177 + offset: 72, 50 + index: -1 +Popiplay_logo/Popiplay_logo00066 + rotate: true + xy: 871, 562 + size: 263, 61 + orig: 390, 177 + offset: 84, 50 + index: -1 +Popiplay_logo/Popiplay_logo00067 + rotate: true + xy: 934, 577 + size: 248, 61 + orig: 390, 177 + offset: 99, 50 + index: -1 +Popiplay_logo/Popiplay_logo00068 + rotate: true + xy: 1108, 596 + size: 233, 61 + orig: 390, 177 + offset: 114, 50 + index: -1 +Popiplay_logo/Popiplay_logo00069 + rotate: true + xy: 1074, 66 + size: 216, 61 + orig: 390, 177 + offset: 131, 50 + index: -1 +Popiplay_logo/Popiplay_logo00070 + rotate: true + xy: 1283, 632 + size: 199, 61 + orig: 390, 177 + offset: 148, 50 + index: -1 +Popiplay_logo/Popiplay_logo00071 + rotate: true + xy: 1346, 650 + size: 181, 61 + orig: 390, 177 + offset: 166, 50 + index: -1 +Popiplay_logo/Popiplay_logo00072 + rotate: true + xy: 1629, 667 + size: 164, 61 + orig: 390, 177 + offset: 183, 50 + index: -1 +Popiplay_logo/Popiplay_logo00073 + rotate: false + xy: 1824, 352 + size: 146, 61 + orig: 390, 177 + offset: 201, 50 + index: -1 +Popiplay_logo/Popiplay_logo00074 + rotate: false + xy: 1850, 525 + size: 129, 61 + orig: 390, 177 + offset: 218, 50 + index: -1 +Popiplay_logo/Popiplay_logo00075 + rotate: false + xy: 1635, 70 + size: 113, 61 + orig: 390, 177 + offset: 234, 50 + index: -1 +Popiplay_logo/Popiplay_logo00076 + rotate: false + xy: 1750, 76 + size: 98, 55 + orig: 390, 177 + offset: 249, 50 + index: -1 +Popiplay_logo/Popiplay_logo00077 + rotate: true + xy: 59, 5 + size: 86, 55 + orig: 390, 177 + offset: 261, 50 + index: -1 +Popiplay_logo/Popiplay_logo00078 + rotate: true + xy: 2, 2 + size: 89, 55 + orig: 390, 177 + offset: 258, 50 + index: -1 +Popiplay_logo/Popiplay_logo00079 + rotate: true + xy: 1726, 8 + size: 60, 55 + orig: 390, 177 + offset: 285, 50 + index: -1 +Popiplay_logo/Popiplay_logo00080 + rotate: false + xy: 1839, 19 + size: 53, 55 + orig: 390, 177 + offset: 292, 50 + index: -1 +Popiplay_logo/Popiplay_logo00081 + rotate: false + xy: 1783, 19 + size: 54, 55 + orig: 390, 177 + offset: 294, 50 + index: -1 +Popiplay_logo/Popiplay_logo00082 + rotate: false + xy: 1850, 76 + size: 50, 50 + orig: 390, 177 + offset: 300, 55 + index: -1 +Popiplay_logo/Popiplay_logo00083 + rotate: false + xy: 1228, 287 + size: 43, 43 + orig: 390, 177 + offset: 303, 59 + index: -1 +Popiplay_logo/Popiplay_logo00084 + rotate: false + xy: 861, 63 + size: 29, 29 + orig: 390, 177 + offset: 310, 66 + index: -1 +Popiplay_logo/Popiplay_logo00085 + rotate: false + xy: 492, 5 + size: 15, 15 + orig: 390, 177 + offset: 317, 73 + index: -1 +Popiplay_logo/Popiplay_logo00086 + rotate: false + xy: 116, 5 + size: 3, 3 + orig: 390, 177 + offset: 323, 79 + index: -1 +glow + rotate: true + xy: 2, 93 + size: 1033, 583 + orig: 1035, 585 + offset: 1, 1 + index: -1 +logo + rotate: true + xy: 587, 556 + size: 570, 282 + orig: 570, 285 + offset: 0, 1 + index: -1 diff --git a/src/assets/spines/preloader/preloader.skel b/src/assets/spines/preloader/preloader.skel new file mode 100644 index 0000000..783571b Binary files /dev/null and b/src/assets/spines/preloader/preloader.skel differ diff --git a/src/assets/spines/preloader/preloader.webp b/src/assets/spines/preloader/preloader.webp new file mode 100644 index 0000000..af23c7c Binary files /dev/null and b/src/assets/spines/preloader/preloader.webp differ diff --git a/src/assets/spines/rules/rules.atlas b/src/assets/spines/rules/rules.atlas new file mode 100644 index 0000000..e8e0e27 --- /dev/null +++ b/src/assets/spines/rules/rules.atlas @@ -0,0 +1,16 @@ +rules.webp +size:1448,156 +filter:Linear,Linear +scale:0.75 +Xbutton_all +bounds:725,109,37,36 +offsets:0,0,37,37 +game_logo +bounds:423,2,300,143 +popiplay_logo +bounds:2,59,242,49 +title +bounds:2,110,419,35 +underline_all +bounds:2,147,1442,5 +offsets:11,0,1462,5 diff --git a/src/assets/spines/rules/rules.skel b/src/assets/spines/rules/rules.skel new file mode 100644 index 0000000..57434d4 Binary files /dev/null and b/src/assets/spines/rules/rules.skel differ diff --git a/src/assets/spines/rules/rules.webp b/src/assets/spines/rules/rules.webp new file mode 100644 index 0000000..f4a10bf Binary files /dev/null and b/src/assets/spines/rules/rules.webp differ diff --git a/src/assets/spines/startPage/startpage.atlas b/src/assets/spines/startPage/startpage.atlas new file mode 100644 index 0000000..09dc162 --- /dev/null +++ b/src/assets/spines/startPage/startpage.atlas @@ -0,0 +1,180 @@ +startpage.webp +size:1852,1292 +filter:Linear,Linear +scale:0.75 +200x +bounds:1645,53,119,42 +offsets:1,1,122,44 +20x +bounds:1335,794,95,60 +offsets:2,1,98,62 +rotate:90 +2x +bounds:1134,77,68,54 +offsets:1,2,71,57 +ex_wild1 +bounds:915,133,102,338 +rotate:90 +ex_wild1_glow +bounds:329,25,104,341 +offsets:0,0,104,342 +rotate:90 +ex_wild2 +bounds:808,163,105,340 +ex_wild2_glow +bounds:824,505,108,342 +offsets:0,1,108,344 +ex_wild_glow_l_01 +bounds:934,472,101,393 +rotate:90 +ex_wild_glow_l_02 +bounds:934,472,101,393 +rotate:90 +ex_wild_glow_l_03 +bounds:934,472,101,393 +rotate:90 +ex_wilds_frame +bounds:1419,794,496,378 +offsets:2,1,499,380 +rotate:90 +ex_wilds_glow +bounds:404,526,321,418 +offsets:1,1,324,420 +rotate:90 +ex_wilds_light_01 +bounds:741,188,336,65 +offsets:1,2,338,68 +rotate:90 +ex_wilds_light_02 +bounds:1799,888,51,157 +offsets:1,1,53,159 +ex_wilds_light_03 +bounds:1663,97,51,157 +offsets:1,1,53,159 +rotate:90 +ex_wilds_rays +bounds:404,849,531,441 +offsets:10,9,552,459 +expnd_w1_bg +bounds:329,131,101,393 +expnd_w1_bg_add +bounds:432,131,101,393 +expnd_w2_bg +bounds:535,131,101,393 +expnd_w2_bg_add +bounds:638,131,101,393 +expnd_w3_bg +bounds:915,369,101,392 +offsets:5,0,113,395 +rotate:90 +expnd_w3_bg_add +bounds:934,679,106,393 +offsets:3,0,113,395 +rotate:90 +expnd_w3_pttrn +bounds:915,237,130,321 +offsets:3,0,137,321 +rotate:90 +expnd_w3_pttrn_glow +bounds:1335,692,100,325 +offsets:1,1,101,326 +rotate:90 +logo +bounds:1332,562,260,128 +offsets:0,1,260,129 +placeholder +bounds:1057,56,75,75 +offsets:3,3,81,81 +source_bg_startpage +bounds:2,702,400,588 +offsets:1,5,405,601 +source_bg_startpage _x2 +bounds:2,120,580,325 +offsets:9,5,592,335 +rotate:90 +tap to start +bounds:1799,1047,243,38 +offsets:1,2,246,42 +rotate:90 +w1_X2 +bounds:1766,66,42,29 +w1_expnd_frame +bounds:937,787,102,396 +offsets:0,1,103,398 +rotate:90 +w1_expnd_multipl_bg +bounds:672,27,102,61 +offsets:0,0,103,62 +rotate:90 +w2_X5 +bounds:975,5,41,29 +w2_expnd_frame +bounds:934,575,102,396 +offsets:1,1,104,398 +rotate:90 +w3_expnd_frame +bounds:934,575,102,396 +offsets:1,1,104,398 +rotate:90 +w2_expnd_multipl_bg +bounds:1729,585,102,61 +offsets:1,0,104,62 +rotate:90 +w3_expnd_multipl_bg +bounds:1729,585,102,61 +offsets:1,0,104,62 +rotate:90 +w3_X10 +bounds:912,4,61,30 +wild1_frame +bounds:1511,32,132,112 +offsets:2,2,136,116 +wild2_frame +bounds:1594,576,133,111 +offsets:2,2,137,115 +wild3_frame +bounds:1662,689,137,103 +offsets:1,1,139,106 +wild_1_win +bounds:1368,32,141,112 +offsets:1,1,143,114 +wild_2_win +bounds:1255,2,142,111 +offsets:1,1,144,113 +rotate:90 +wild_3_win +bounds:912,36,143,95 +offsets:1,1,145,97 +wilds_light_01 +bounds:1799,823,44,63 +offsets:1,2,47,67 +wilds_light_02 +bounds:1204,68,44,63 +offsets:2,2,47,67 +wilds_light_03 +bounds:329,534,166,57 +offsets:2,2,170,60 +rotate:90 +wilds_light_04 +bounds:2,2,313,116 +offsets:1,6,315,123 +wilds_rays +bounds:937,891,480,399 +offsets:36,30,552,459 +wilds_stone_glow_1_l +bounds:1329,343,224,217 +offsets:1,2,227,221 +wilds_stone_glow_1_r +bounds:1555,343,224,217 +offsets:2,2,227,221 +wilds_stone_glow_1_top +bounds:1663,150,191,182 +offsets:2,2,196,186 +rotate:90 +wilds_stone_l +bounds:1255,146,202,195 +wilds_stone_r +bounds:1459,146,202,195 +wilds_stone_top +bounds:741,3,169,158 +offsets:0,1,169,159 diff --git a/src/assets/spines/startPage/startpage.skel b/src/assets/spines/startPage/startpage.skel new file mode 100644 index 0000000..ee3f140 Binary files /dev/null and b/src/assets/spines/startPage/startpage.skel differ diff --git a/src/assets/spines/startPage/startpage.webp b/src/assets/spines/startPage/startpage.webp new file mode 100644 index 0000000..9e7ecdf Binary files /dev/null and b/src/assets/spines/startPage/startpage.webp differ diff --git a/src/assets/spines/symbols/expanding/expanding_symbols.atlas b/src/assets/spines/symbols/expanding/expanding_symbols.atlas new file mode 100644 index 0000000..8e4323c --- /dev/null +++ b/src/assets/spines/symbols/expanding/expanding_symbols.atlas @@ -0,0 +1,1157 @@ +expanding_symbols.webp +size:2048,2048 +filter:Linear,Linear +ex_wild1_eye_right +bounds:1747,4,22,22 +offsets:280,953,502,1302 +ex_wild1_eyebrow_left +bounds:1625,2,32,24 +offsets:241,966,502,1302 +ex_wild1_eyebrow_right +bounds:1704,5,41,21 +offsets:271,958,502,1302 +ex_wild1_feather_right +bounds:181,874,39,45 +offsets:320,881,502,1302 +rotate:90 +ex_wild1_hand_left1 +bounds:1887,2,95,132 +offsets:108,954,502,1302 +ex_wild1_head_top +bounds:1401,2,107,77 +offsets:244,977,502,1302 +ex_wild1_headpiece_fthr10 +bounds:1719,553,138,50 +offsets:304,1003,502,1302 +rotate:90 +ex_wild1_headpiece_fthr11_glow +bounds:1833,1453,164,54 +offsets:289,980,502,1302 +ex_wild1_headpiece_fthr6 +bounds:2,874,39,177 +offsets:282,961,502,1302 +rotate:90 +ex_wild1_headpiece_fthr6_glow +bounds:1719,693,47,183 +offsets:277,956,502,1302 +ex_wild1_leg_left3_glow +bounds:1833,1509,166,213 +offsets:42,160,502,1302 +rotate:90 +ex_wild1_necklace1 +bounds:1771,2,132,114 +offsets:216,816,502,1302 +rotate:90 +ex_wild1_shirt +bounds:1768,805,229,278 +offsets:164,656,502,1302 +rotate:90 +ex_wild2_earring_r +bounds:1510,2,14,37 +offsets:211,966,502,1302 +rotate:90 +ex_wild2_eyebrow_left +bounds:1659,4,43,22 +offsets:221,1020,502,1302 +ex_wild2_eyes +bounds:1965,1051,66,13 +offsets:231,1010,502,1302 +ex_wild2_fell +bounds:1129,474,374,398 +offsets:78,554,502,1302 +ex_wild2_fell_glow +bounds:1444,1036,386,415 +offsets:75,546,502,1302 +ex_wild2_finger_r +bounds:1918,1036,45,28 +offsets:264,683,502,1302 +ex_wild2_headpiece_fthr1_glow +bounds:1990,179,43,56 +offsets:194,1046,502,1302 +rotate:90 +ex_wild2_headpiece_fthr3 +bounds:228,878,35,80 +offsets:240,1069,502,1302 +rotate:90 +ex_wild2_tassel +bounds:1559,28,67,208 +offsets:126,466,502,1302 +rotate:90 +expnd_frame +bounds:317,1755,291,1139 +offsets:115,98,502,1302 +rotate:90 +expnd_frame_add +bounds:317,1462,291,1139 +offsets:115,98,502,1302 +rotate:90 +expnd_w1_bg +bounds:317,874,287,1125 +offsets:118,104,502,1302 +rotate:90 +expnd_w1_bg_add +bounds:2,585,287,1125 +offsets:118,104,502,1302 +rotate:90 +expnd_w2_bg +bounds:2,297,286,1124 +offsets:117,105,502,1302 +rotate:90 +expnd_w2_bg_add +bounds:2,9,286,1124 +offsets:117,105,502,1302 +rotate:90 +expnd_w3_bg +bounds:317,1163,297,1125 +offsets:113,105,502,1302 +rotate:90 +expnd_w3_bg_add +bounds:2,915,313,1131 +offsets:105,105,502,1302 +expnd_w3_eff_rays +bounds:1458,1453,373,593 +offsets:75,509,502,1302 +expnd_w3_pttrn_face_crown2 +bounds:1510,18,47,61 +offsets:197,838,502,1302 +expnd_w3_pttrn_face_crown3 +bounds:1719,492,50,59 +offsets:281,836,502,1302 +expnd_w3_pttrn_rays_glow +bounds:1771,524,279,275 +offsets:121,667,502,1302 +rotate:90 +h1_eyelid_l +bounds:2034,109,25,12 +offsets:281,958,502,1302 +rotate:90 +lightning/lightning_00007 +bounds:1128,15,271,64 +offsets:29,62,300,493 +lightning_smoke/light_smoke_00003 +bounds:1768,802,1,1 +lightning_smoke/light_smoke_00007 +bounds:1444,878,156,322 +offsets:71,81,300,493 +rotate:90 +lightning_smoke/light_smoke_00018 +bounds:1832,1066,208,385 +offsets:54,72,300,493 +lightning_smoke/light_smoke_00019 +bounds:1559,97,210,386 +offsets:53,72,300,493 +lightning_smoke/light_smoke_00020 +bounds:1345,81,212,391 +offsets:52,71,300,493 +lightning_smoke/light_smoke_00021 +bounds:1505,485,212,391 +offsets:52,71,300,493 +lightning_smoke/light_smoke_00022 +bounds:1128,81,215,391 +offsets:51,71,300,493 +lightning_smoke/light_smoke_00024 +bounds:1771,136,217,386 +offsets:50,78,300,493 +lightning_smoke/light_smoke_00028 +bounds:1833,1677,213,369 +offsets:53,96,300,493 +smoke_01/smoke01_00000 +bounds:1984,5,7,29 +offsets:29,5,75,150 +rotate:90 +smoke_01/smoke01_00001 +bounds:1984,5,7,29 +offsets:29,5,75,150 +rotate:90 +smoke_01/smoke01_00002 +bounds:1559,2,24,64 +offsets:19,6,75,150 +rotate:90 +smoke_01/smoke01_00003 +bounds:1832,1036,28,84 +offsets:18,6,75,150 +rotate:90 +smoke_01/smoke01_00019 +bounds:1984,14,48,120 +offsets:23,6,75,150 +smoke_01/smoke01_00038 +bounds:1999,1456,44,51 +offsets:26,54,75,150 +smoke_01/smoke01_00042 +bounds:2,4,15,3 +offsets:29,103,75,150 +smoke_02/smoke02_00000 +bounds:1505,474,9,13 +offsets:31,5,75,150 +rotate:90 +smoke_02/smoke02_00001 +bounds:1505,474,9,13 +offsets:31,5,75,150 +rotate:90 +smoke_02/smoke02_00005 +bounds:1990,136,41,53 +offsets:12,6,75,150 +rotate:90 +smoke_02/smoke02_00006 +bounds:1990,136,41,53 +offsets:12,6,75,150 +rotate:90 +smoke_02/smoke02_00013 +bounds:1990,224,56,89 +offsets:8,6,75,150 +smoke_02/smoke02_00017 +bounds:1990,315,56,100 +offsets:9,6,75,150 +smoke_02/smoke02_00019 +bounds:1990,417,56,105 +offsets:9,6,75,150 + +expanding_symbols_2.webp +size:2048,2048 +filter:Linear,Linear +ex_wild1_belt_glow +bounds:1071,379,222,91 +offsets:156,627,502,1302 +ex_wild1_body_glow +bounds:1320,1230,231,304 +offsets:164,653,502,1302 +rotate:90 +ex_wild1_eye_left +bounds:1476,353,20,21 +offsets:245,963,502,1302 +rotate:90 +ex_wild1_hair_back1 +bounds:1731,230,156,121 +offsets:223,888,502,1302 +ex_wild1_hand1_left +bounds:1295,375,110,213 +offsets:307,688,502,1302 +rotate:90 +ex_wild1_hand1_left_glow +bounds:808,163,119,221 +offsets:301,684,502,1302 +rotate:90 +ex_wild1_hand_left_shadow +bounds:1260,207,214,166 +offsets:176,680,502,1302 +ex_wild1_head_glow +bounds:1883,891,160,177 +offsets:217,884,502,1302 +ex_wild1_headpiece_fthr12 +bounds:2005,537,167,39 +offsets:289,968,502,1302 +rotate:90 +ex_wild1_headpiece_fthr13 +bounds:597,284,170,53 +offsets:281,931,502,1302 +ex_wild1_headpiece_fthr2_glow +bounds:1798,697,91,120 +offsets:192,961,502,1302 +ex_wild1_headpiece_fthr3 +bounds:1893,1195,60,153 +offsets:235,968,502,1302 +rotate:90 +ex_wild1_headpiece_fthr4_glow +bounds:951,19,78,142 +offsets:213,963,502,1302 +ex_wild1_leg_left1_glow +bounds:1757,17,134,211 +offsets:124,398,502,1302 +ex_wild1_leg_right3_glow +bounds:1893,1257,153,200 +offsets:263,185,502,1302 +ex_wild1_skirt2 +bounds:1463,2,143,203 +offsets:120,493,502,1302 +ex_wild1_skirt2_glow +bounds:1893,20,152,211 +offsets:114,489,502,1302 +ex_wild1_skirt3 +bounds:1598,353,102,188 +offsets:293,493,502,1302 +rotate:90 +ex_wild1_sleeve_top_left1 +bounds:1883,1070,123,162 +offsets:101,832,502,1302 +rotate:90 +ex_wild1_strand +bounds:620,1289,54,101 +offsets:295,891,502,1302 +rotate:90 +ex_wild1_strand shield_glow +bounds:1889,233,157,201 +offsets:106,502,502,1302 +ex_wild2_belt1_top +bounds:866,1230,187,123 +offsets:162,652,502,1302 +ex_wild2_belt2_glow +bounds:558,2,165,212 +offsets:151,502,502,1302 +rotate:90 +ex_wild2_earring_l +bounds:1588,1085,18,39 +offsets:298,962,502,1302 +ex_wild2_eyebrow_right +bounds:895,361,39,19 +offsets:262,1021,502,1302 +ex_wild2_eyelid_l +bounds:1041,697,28,22 +offsets:269,1010,502,1302 +ex_wild2_eyelid_r +bounds:735,1345,30,23 +offsets:228,1010,502,1302 +ex_wild2_fell_left_s +bounds:700,169,106,113 +offsets:132,838,502,1302 +ex_wild2_fringe_l_glow +bounds:723,1230,113,141 +offsets:159,325,502,1302 +rotate:90 +ex_wild2_fringe_r_glow +bounds:2,2,115,176 +offsets:303,304,502,1302 +rotate:90 +ex_wild2_hair_back +bounds:772,2,159,177 +offsets:185,928,502,1302 +rotate:90 +ex_wild2_hand3_s_l +bounds:731,660,132,302 +offsets:119,633,502,1302 +ex_wild2_hand3_s_r +bounds:880,1380,163,302 +offsets:244,634,502,1302 +ex_wild2_headpiece_fthr1 +bounds:2015,1839,29,40 +offsets:199,1057,502,1302 +ex_wild2_headpiece_fthr5 +bounds:2015,1993,31,53 +offsets:290,1058,502,1302 +ex_wild2_headpiece_fthr6 +bounds:2015,1801,26,36 +offsets:302,1050,502,1302 +ex_wild2_leg1_l +bounds:1320,1126,102,286 +offsets:154,393,502,1302 +rotate:90 +ex_wild2_leg1_l_glow +bounds:406,169,113,292 +offsets:150,391,502,1302 +rotate:90 +ex_wild2_leg1_r +bounds:735,1370,143,308 +offsets:255,386,502,1302 +ex_wild2_leg1_r_glow +bounds:1702,1642,153,320 +offsets:254,381,502,1302 +rotate:90 +ex_wild2_leg2_l +bounds:1608,5,147,223 +offsets:109,206,502,1302 +ex_wild2_leg2_r +bounds:723,964,100,264 +offsets:319,166,502,1302 +ex_wild2_leg2_r_glow +bounds:1045,1355,114,273 +offsets:311,160,502,1302 +rotate:90 +ex_wild2_neckline +bounds:1891,706,183,145 +offsets:169,811,502,1302 +rotate:90 +ex_wild2_skirt +bounds:1281,487,227,204 +offsets:143,546,502,1302 +ex_wild2_skirt_glow +bounds:1041,721,244,218 +offsets:134,541,502,1302 +ex_wild2_tassel_glow +bounds:769,284,75,212 +offsets:119,463,502,1302 +rotate:90 +expnd_multipl_bg +bounds:865,675,291,174 +offsets:115,105,502,1302 +rotate:90 +expnd_multipl_bg_add +bounds:895,382,291,174 +offsets:115,105,502,1302 +rotate:90 +expnd_w3_pttrn_1 +bounds:1071,1145,247,208 +offsets:137,989,502,1302 +expnd_w3_pttrn_1_add +bounds:1071,472,247,208 +offsets:137,989,502,1302 +rotate:90 +expnd_w3_pttrn_1_glow +bounds:825,968,260,221 +offsets:130,983,502,1302 +rotate:90 +expnd_w3_pttrn_2 +bounds:1588,944,272,123 +offsets:125,910,502,1302 +expnd_w3_pttrn_2_add +bounds:1587,819,272,123 +offsets:125,910,502,1302 +expnd_w3_pttrn_2_glow +bounds:1301,984,285,140 +offsets:117,903,502,1302 +expnd_w3_pttrn_3 +bounds:1510,419,272,86 +offsets:126,606,502,1302 +rotate:90 +expnd_w3_pttrn_3_add +bounds:1788,423,272,86 +offsets:126,606,502,1302 +rotate:90 +expnd_w3_pttrn_3_glow +bounds:1301,883,284,99 +offsets:119,599,502,1302 +expnd_w3_pttrn_4 +bounds:1287,693,238,188 +offsets:143,437,502,1302 +expnd_w3_pttrn_4_add +bounds:1598,457,238,188 +offsets:143,437,502,1302 +rotate:90 +expnd_w3_pttrn_4_glow +bounds:1048,941,251,202 +offsets:135,430,502,1302 +expnd_w3_pttrn_5 +bounds:1031,2,214,180 +offsets:154,278,502,1302 +expnd_w3_pttrn_5_add +bounds:1247,2,214,180 +offsets:154,278,502,1302 +expnd_w3_pttrn_5_glow +bounds:1031,184,227,193 +offsets:147,271,502,1302 +expnd_w3_pttrn_face_crown6 +bounds:1527,836,45,58 +offsets:166,790,502,1302 +rotate:90 +expnd_w3_pttrn_rays +bounds:1058,1471,265,261 +offsets:128,674,502,1302 +expnd_w3_pttrn_rays_add +bounds:1626,1196,265,261 +offsets:128,674,502,1302 +expnd_win_anim_down +bounds:1527,697,269,120 +offsets:127,113,502,1302 +expnd_win_anim_down_glow +bounds:1608,1069,273,125 +offsets:124,110,502,1302 +expnd_win_anim_up +bounds:1476,230,253,121 +offsets:135,1112,502,1302 +expnd_win_anim_up_glow +bounds:1876,436,259,127 +offsets:131,1109,502,1302 +rotate:90 +expnd_win_anim_vert +bounds:97,860,85,1186 +offsets:74,82,502,1302 +expnd_win_anim_vert_glow +bounds:2,854,93,1192 +offsets:70,79,502,1302 +h1_eyelid_r +bounds:993,2,21,15 +offsets:244,965,502,1302 +lightning/lightning_00002 +bounds:620,1345,113,315 +offsets:89,72,300,493 +lightning/lightning_00003 +bounds:560,963,161,316 +offsets:71,66,300,493 +lightning/lightning_00004 +bounds:393,605,186,321 +offsets:67,67,300,493 +lightning/lightning_00005 +bounds:1702,1797,249,311 +offsets:29,68,300,493 +rotate:90 +lightning/lightning_00006 +bounds:1058,1734,265,312 +offsets:29,67,300,493 +lightning/lightning_00008 +bounds:406,284,189,319 +offsets:55,67,300,493 +lightning_smoke/light_smoke_00004 +bounds:747,361,146,297 +offsets:74,84,300,493 +lightning_smoke/light_smoke_00005 +bounds:581,651,148,310 +offsets:73,83,300,493 +lightning_smoke/light_smoke_00006 +bounds:597,339,148,310 +offsets:73,83,300,493 +lightning_smoke/light_smoke_00008 +bounds:220,2,165,336 +offsets:69,80,300,493 +rotate:90 +lightning_smoke/light_smoke_00009 +bounds:387,928,171,346 +offsets:66,79,300,493 +lightning_smoke/light_smoke_00010 +bounds:1325,1463,181,358 +offsets:60,78,300,493 +rotate:90 +lightning_smoke/light_smoke_00011 +bounds:1685,1459,181,358 +offsets:60,78,300,493 +rotate:90 +lightning_smoke/light_smoke_00012 +bounds:220,169,184,360 +offsets:60,78,300,493 +lightning_smoke/light_smoke_00013 +bounds:202,531,189,364 +offsets:59,77,300,493 +lightning_smoke/light_smoke_00014 +bounds:2,479,198,373 +offsets:56,76,300,493 +lightning_smoke/light_smoke_00015 +bounds:1325,1847,199,375 +offsets:56,76,300,493 +rotate:90 +lightning_smoke/light_smoke_00016 +bounds:1325,1646,199,375 +offsets:56,76,300,493 +rotate:90 +lightning_smoke/light_smoke_00017 +bounds:184,897,201,377 +offsets:56,75,300,493 +lightning_smoke/light_smoke_00023 +bounds:184,1660,216,386 +offsets:51,77,300,493 +lightning_smoke/light_smoke_00025 +bounds:402,1662,218,384 +offsets:49,81,300,493 +lightning_smoke/light_smoke_00026 +bounds:184,1276,216,382 +offsets:51,83,300,493 +lightning_smoke/light_smoke_00027 +bounds:402,1281,216,379 +offsets:52,86,300,493 +lightning_smoke/light_smoke_00029 +bounds:622,1680,216,366 +offsets:53,100,300,493 +lightning_smoke/light_smoke_00030 +bounds:840,1684,216,362 +offsets:53,104,300,493 +lightning_smoke/light_smoke_00031 +bounds:2,119,216,358 +offsets:53,109,300,493 +smoke_01/smoke01_00004 +bounds:180,28,35,89 +offsets:16,6,75,150 +smoke_01/smoke01_00005 +bounds:2005,442,40,93 +offsets:17,6,75,150 +smoke_01/smoke01_00006 +bounds:2005,442,40,93 +offsets:17,6,75,150 +smoke_01/smoke01_00030 +bounds:983,286,46,94 +offsets:25,6,75,150 +smoke_01/smoke01_00031 +bounds:983,286,46,94 +offsets:25,6,75,150 +smoke_01/smoke01_00039 +bounds:202,487,42,16 +offsets:27,90,75,150 +rotate:90 +smoke_01/smoke01_00040 +bounds:951,2,40,15 +offsets:28,91,75,150 +smoke_01/smoke01_00041 +bounds:951,2,40,15 +offsets:28,91,75,150 +smoke_02/smoke02_00002 +bounds:1527,819,15,31 +offsets:26,5,75,150 +rotate:90 +smoke_02/smoke02_00003 +bounds:1862,1028,19,39 +offsets:22,6,75,150 +smoke_02/smoke02_00012 +bounds:1510,362,55,86 +offsets:8,6,75,150 +rotate:90 +smoke_02/smoke02_00015 +bounds:1788,364,57,97 +offsets:8,6,75,150 +rotate:90 +smoke_02/smoke02_00016 +bounds:1788,364,57,97 +offsets:8,6,75,150 +rotate:90 +smoke_02/smoke02_00037 +bounds:2015,1936,55,30 +offsets:8,94,75,150 +rotate:90 +smoke_02/smoke02_00038 +bounds:2015,1881,53,30 +offsets:9,95,75,150 +rotate:90 + +expanding_symbols_3.webp +size:2048,1024 +filter:Linear,Linear +Layer 45ex_wild1_necklace2 +bounds:310,440,149,129 +offsets:213,785,502,1302 +rotate:90 +ex_wild1_belt +bounds:1537,940,211,82 +offsets:162,633,502,1302 +ex_wild1_cloth_back2 +bounds:1018,700,57,110 +offsets:123,819,502,1302 +ex_wild1_cloth_top1 +bounds:1315,933,89,220 +offsets:133,729,502,1302 +rotate:90 +ex_wild1_cloth_top1_glow +bounds:1085,923,99,228 +offsets:126,725,502,1302 +rotate:90 +ex_wild1_face +bounds:1265,804,111,117 +offsets:235,894,502,1302 +ex_wild1_hair_back2 +bounds:1855,787,122,101 +offsets:229,920,502,1302 +rotate:90 +ex_wild1_hair_left +bounds:1857,643,45,57 +offsets:218,946,502,1302 +rotate:90 +ex_wild1_hand0_left +bounds:153,2,86,87 +offsets:179,753,502,1302 +ex_wild1_hand2_left +bounds:343,9,115,95 +offsets:231,696,502,1302 +ex_wild1_hand_left0 +bounds:1118,590,82,108 +offsets:168,1054,502,1302 +ex_wild1_hand_left0_glow +bounds:747,628,89,119 +offsets:163,1048,502,1302 +rotate:90 +ex_wild1_hand_left1_glow +bounds:636,628,109,141 +offsets:101,948,502,1302 +ex_wild1_headpiece_fthr1 +bounds:563,108,72,91 +offsets:176,958,502,1302 +rotate:90 +ex_wild1_headpiece_fthr10_glow +bounds:441,442,147,58 +offsets:299,1000,502,1302 +rotate:90 +ex_wild1_headpiece_fthr11 +bounds:153,771,156,42 +offsets:294,986,502,1302 +ex_wild1_headpiece_fthr12_glow +bounds:448,268,172,46 +offsets:286,965,502,1302 +rotate:90 +ex_wild1_headpiece_fthr13_glow +bounds:130,418,176,61 +offsets:275,929,502,1302 +rotate:90 +ex_wild1_headpiece_fthr14 +bounds:1202,494,48,82 +offsets:330,924,502,1302 +ex_wild1_headpiece_fthr14_glow +bounds:1675,698,54,90 +offsets:326,917,502,1302 +ex_wild1_headpiece_fthr1_glow +bounds:769,339,77,95 +offsets:174,953,502,1302 +ex_wild1_headpiece_fthr2 +bounds:231,106,79,109 +offsets:198,967,502,1302 +rotate:90 +ex_wild1_headpiece_fthr3_glow +bounds:311,764,69,164 +offsets:230,961,502,1302 +rotate:90 +ex_wild1_headpiece_fthr4 +bounds:1501,787,70,144 +offsets:216,966,502,1302 +ex_wild1_headpiece_fthr5 +bounds:501,437,40,142 +offsets:264,990,502,1302 +rotate:90 +ex_wild1_headpiece_fthr5_glow +bounds:1680,790,49,148 +offsets:260,986,502,1302 +ex_wild1_headpiece_fthr7 +bounds:130,240,104,176 +offsets:270,958,502,1302 +ex_wild1_headpiece_fthr7_glow +bounds:1085,810,111,178 +offsets:268,957,502,1302 +rotate:90 +ex_wild1_headpiece_fthr8 +bounds:448,166,100,89 +offsets:309,1010,502,1302 +rotate:90 +ex_wild1_headpiece_fthr8_glow +bounds:1013,494,107,92 +offsets:304,1008,502,1302 +ex_wild1_headpiece_fthr9 +bounds:1958,847,118,88 +offsets:293,987,502,1302 +rotate:90 +ex_wild1_headpiece_fthr9_glow +bounds:881,483,130,102 +offsets:286,979,502,1302 +ex_wild1_headpiece_gld +bounds:1009,588,107,110 +offsets:259,968,502,1302 +ex_wild1_leg_left1 +bounds:878,898,124,205 +offsets:131,402,502,1302 +rotate:90 +ex_wild1_leg_left2 +bounds:777,719,96,150 +offsets:119,317,502,1302 +ex_wild1_leg_left2_glow +bounds:342,282,104,156 +offsets:114,313,502,1302 +ex_wild1_leg_left3 +bounds:153,815,156,207 +offsets:49,164,502,1302 +ex_wild1_leg_right1 +bounds:671,771,97,104 +offsets:259,416,502,1302 +rotate:90 +ex_wild1_leg_right1_glow +bounds:1077,700,108,111 +offsets:252,411,502,1302 +rotate:90 +ex_wild1_leg_right2 +bounds:342,166,104,114 +offsets:253,332,502,1302 +ex_wild1_leg_right2_glow +bounds:1731,793,116,122 +offsets:248,328,502,1302 +rotate:90 +ex_wild1_leg_right3 +bounds:2,596,148,193 +offsets:267,188,502,1302 +ex_wild1_neck +bounds:539,182,91,124 +offsets:241,828,502,1302 +ex_wild1_necklace_shadow +bounds:625,480,146,121 +offsets:214,808,502,1302 +rotate:90 +ex_wild1_pigtail +bounds:1252,537,57,116 +offsets:198,849,502,1302 +rotate:90 +ex_wild1_skirt1 +bounds:479,771,97,190 +offsets:223,483,502,1302 +rotate:90 +ex_wild1_skirt1_glow +bounds:2,3,104,198 +offsets:219,480,502,1302 +ex_wild1_skirt3_glow +bounds:1750,911,111,191 +offsets:284,489,502,1302 +rotate:90 +ex_wild1_skirt_det +bounds:108,48,43,153 +offsets:339,509,502,1302 +ex_wild1_sleeve_back_left1 +bounds:1061,271,74,53 +offsets:107,942,502,1302 +rotate:90 +ex_wild1_sleeve_left_glow +bounds:2,203,126,186 +offsets:98,813,502,1302 +ex_wild1_strand shield +bounds:679,871,151,197 +offsets:110,504,502,1302 +rotate:90 +ex_wild1_strand shield_shadow +bounds:2,391,126,203 +offsets:140,499,502,1302 +ex_wild2__fell_right_s +bounds:881,587,126,134 +offsets:281,821,502,1302 +ex_wild2_beads +bounds:236,187,104,59 +offsets:211,904,502,1302 +ex_wild2_beads_s +bounds:569,2,104,59 +offsets:210,902,502,1302 +rotate:90 +ex_wild2_belt2 +bounds:479,870,152,198 +offsets:158,506,502,1302 +rotate:90 +ex_wild2_belt2_s +bounds:152,596,156,173 +offsets:160,536,502,1302 +ex_wild2_bowl +bounds:875,723,141,87 +offsets:183,648,502,1302 +ex_wild2_fell_left +bounds:632,193,110,115 +offsets:129,848,502,1302 +ex_wild2_fell_left_glow +bounds:1378,805,121,126 +offsets:121,843,502,1302 +ex_wild2_fell_right +bounds:748,489,131,137 +offsets:284,830,502,1302 +ex_wild2_fell_right_glow +bounds:497,628,137,141 +offsets:280,830,502,1302 +ex_wild2_finger_l +bounds:1637,654,52,36 +offsets:181,683,502,1302 +rotate:90 +ex_wild2_fringe_l +bounds:1573,801,105,137 +offsets:164,326,502,1302 +ex_wild2_fringe_r +bounds:236,248,104,173 +offsets:309,304,502,1302 +ex_wild2_hair_back_glow +bounds:311,835,166,187 +offsets:177,920,502,1302 +ex_wild2_hand1_l +bounds:1250,732,70,122 +offsets:124,700,502,1302 +rotate:90 +ex_wild2_hand1_r +bounds:609,310,106,125 +offsets:301,678,502,1302 +ex_wild2_hand2_l +bounds:153,91,76,147 +offsets:126,783,502,1302 +ex_wild2_hand2_r +bounds:427,591,68,171 +offsets:336,763,502,1302 +ex_wild2_hand3_l +bounds:460,9,95,107 +offsets:151,640,502,1302 +rotate:90 +ex_wild2_hand3_r +bounds:1122,494,94,78 +offsets:245,640,502,1302 +rotate:90 +ex_wild2_head +bounds:496,308,111,127 +offsets:206,950,502,1302 +ex_wild2_headpiece +bounds:630,2,104,52 +offsets:210,1030,502,1302 +rotate:90 +ex_wild2_headpiece_fthr2 +bounds:1374,732,42,70 +offsets:212,1065,502,1302 +ex_wild2_headpiece_fthr2_glow +bounds:1418,756,47,81 +offsets:208,1057,502,1302 +rotate:90 +ex_wild2_headpiece_fthr3_glow +bounds:1017,45,46,89 +offsets:235,1064,502,1302 +ex_wild2_headpiece_fthr4 +bounds:645,441,37,78 +offsets:268,1062,502,1302 +rotate:90 +ex_wild2_headpiece_fthr4_glow +bounds:1012,347,44,86 +offsets:264,1057,502,1302 +rotate:90 +ex_wild2_headpiece_fthr5_glow +bounds:1731,645,43,63 +offsets:282,1052,502,1302 +rotate:90 +ex_wild2_headpiece_fthr6_glow +bounds:108,2,35,44 +offsets:297,1045,502,1302 +ex_wild2_leg2_l_glow +bounds:2,791,149,231 +offsets:106,203,502,1302 +ex_wild2_neck +bounds:1958,764,81,88 +offsets:225,918,502,1302 +rotate:90 +ex_wild2_torso +bounds:501,479,147,122 +offsets:177,726,502,1302 +rotate:90 +expnd_w3_pttrn_face +bounds:193,423,171,115 +offsets:173,743,502,1302 +rotate:90 +expnd_w3_pttrn_face_add +bounds:310,591,171,115 +offsets:173,743,502,1302 +rotate:90 +expnd_w3_pttrn_face_crown1 +bounds:1501,719,70,66 +offsets:227,840,502,1302 +expnd_w3_pttrn_face_crown1_add +bounds:1417,631,70,67 +offsets:227,839,502,1302 +expnd_w3_pttrn_face_crown2_add +bounds:767,132,47,61 +offsets:197,838,502,1302 +expnd_w3_pttrn_face_crown3_add +bounds:960,369,50,59 +offsets:281,836,502,1302 +expnd_w3_pttrn_face_crown4 +bounds:961,319,40,48 +offsets:181,828,502,1302 +expnd_w3_pttrn_face_crown4_add +bounds:1827,591,40,48 +offsets:181,828,502,1302 +expnd_w3_pttrn_face_crown5 +bounds:1869,596,40,45 +offsets:302,828,502,1302 +expnd_w3_pttrn_face_crown5_add +bounds:1061,229,40,45 +offsets:302,828,502,1302 +rotate:90 +expnd_w3_pttrn_face_crown6_add +bounds:927,135,45,58 +offsets:166,790,502,1302 +expnd_w3_pttrn_face_crown7 +bounds:1489,615,43,55 +offsets:311,792,502,1302 +rotate:90 +expnd_w3_pttrn_face_crown7_add +bounds:1546,609,43,55 +offsets:311,792,502,1302 +rotate:90 +expnd_w3_pttrn_face_earring_l +bounds:1675,648,54,48 +offsets:304,741,502,1302 +expnd_w3_pttrn_face_earring_l_add +bounds:1603,604,54,48 +offsets:304,741,502,1302 +expnd_w3_pttrn_face_earring_r +bounds:1659,598,54,48 +offsets:165,737,502,1302 +expnd_w3_pttrn_face_earring_r_add +bounds:1715,595,54,48 +offsets:165,737,502,1302 +expnd_w3_pttrn_face_necklace +bounds:1252,664,115,66 +offsets:207,707,502,1302 +expnd_w3_pttrn_face_necklace_add +bounds:1252,596,115,66 +offsets:207,707,502,1302 +lightning/lightning_00000 +bounds:878,812,84,187 +offsets:92,203,300,493 +rotate:90 +lightning/lightning_00001 +bounds:878,812,84,187 +offsets:92,203,300,493 +rotate:90 +placeholder +bounds:241,4,100,100 +offsets:1,1,102,102 +smoke_01/smoke01_00007 +bounds:1573,754,45,100 +offsets:17,6,75,150 +rotate:90 +smoke_01/smoke01_00008 +bounds:1369,624,46,106 +offsets:17,6,75,150 +smoke_01/smoke01_00009 +bounds:744,21,48,109 +offsets:17,6,75,150 +smoke_01/smoke01_00010 +bounds:848,317,50,111 +offsets:16,6,75,150 +rotate:90 +smoke_01/smoke01_00011 +bounds:796,226,50,111 +offsets:16,6,75,150 +smoke_01/smoke01_00012 +bounds:744,195,50,113 +offsets:17,6,75,150 +smoke_01/smoke01_00013 +bounds:1135,442,50,114 +offsets:18,6,75,150 +rotate:90 +smoke_01/smoke01_00014 +bounds:1252,485,50,116 +offsets:19,6,75,150 +rotate:90 +smoke_01/smoke01_00015 +bounds:1251,433,50,118 +offsets:20,6,75,150 +rotate:90 +smoke_01/smoke01_00016 +bounds:717,310,50,118 +offsets:20,6,75,150 +smoke_01/smoke01_00017 +bounds:748,436,51,119 +offsets:20,6,75,150 +rotate:90 +smoke_01/smoke01_00018 +bounds:869,430,51,119 +offsets:20,6,75,150 +rotate:90 +smoke_01/smoke01_00020 +bounds:1202,578,48,120 +offsets:23,6,75,150 +smoke_01/smoke01_00021 +bounds:1202,578,48,120 +offsets:23,6,75,150 +smoke_01/smoke01_00022 +bounds:1013,443,49,120 +offsets:23,6,75,150 +rotate:90 +smoke_01/smoke01_00023 +bounds:1010,259,49,86 +offsets:23,6,75,150 +smoke_01/smoke01_00024 +bounds:974,136,49,87 +offsets:23,6,75,150 +smoke_01/smoke01_00025 +bounds:1012,393,48,89 +offsets:23,6,75,150 +rotate:90 +smoke_01/smoke01_00026 +bounds:1012,393,48,89 +offsets:23,6,75,150 +rotate:90 +smoke_01/smoke01_00027 +bounds:960,225,48,90 +offsets:24,6,75,150 +smoke_01/smoke01_00028 +bounds:1826,690,48,92 +offsets:24,6,75,150 +rotate:90 +smoke_01/smoke01_00029 +bounds:1827,740,45,93 +offsets:25,6,75,150 +rotate:90 +smoke_01/smoke01_00032 +bounds:1370,527,44,95 +offsets:26,6,75,150 +smoke_01/smoke01_00033 +bounds:1573,708,44,96 +offsets:26,7,75,150 +rotate:90 +smoke_01/smoke01_00034 +bounds:1731,747,44,94 +offsets:26,9,75,150 +rotate:90 +smoke_01/smoke01_00035 +bounds:971,41,44,92 +offsets:26,12,75,150 +smoke_01/smoke01_00036 +bounds:971,41,44,92 +offsets:26,12,75,150 +smoke_01/smoke01_00037 +bounds:1371,434,45,91 +offsets:25,14,75,150 +smoke_02/smoke02_00004 +bounds:1010,225,32,46 +offsets:17,6,75,150 +rotate:90 +smoke_02/smoke02_00007 +bounds:1796,641,47,59 +offsets:11,6,75,150 +rotate:90 +smoke_02/smoke02_00008 +bounds:1569,654,52,66 +offsets:9,6,75,150 +rotate:90 +smoke_02/smoke02_00009 +bounds:1025,149,52,74 +offsets:8,7,75,150 +smoke_02/smoke02_00010 +bounds:1418,700,54,80 +offsets:9,7,75,150 +rotate:90 +smoke_02/smoke02_00011 +bounds:1418,700,54,80 +offsets:9,7,75,150 +rotate:90 +smoke_02/smoke02_00014 +bounds:1731,690,55,93 +offsets:9,6,75,150 +rotate:90 +smoke_02/smoke02_00018 +bounds:1943,967,55,103 +offsets:9,6,75,150 +rotate:90 +smoke_02/smoke02_00020 +bounds:853,26,57,107 +offsets:8,7,75,150 +smoke_02/smoke02_00021 +bounds:912,26,57,107 +offsets:8,7,75,150 +smoke_02/smoke02_00022 +bounds:342,106,58,108 +offsets:7,8,75,150 +rotate:90 +smoke_02/smoke02_00023 +bounds:452,106,58,109 +offsets:7,8,75,150 +rotate:90 +smoke_02/smoke02_00024 +bounds:848,369,59,110 +offsets:6,8,75,150 +rotate:90 +smoke_02/smoke02_00025 +bounds:848,256,59,110 +offsets:6,9,75,150 +rotate:90 +smoke_02/smoke02_00026 +bounds:848,256,59,110 +offsets:6,9,75,150 +rotate:90 +smoke_02/smoke02_00027 +bounds:848,195,59,110 +offsets:6,10,75,150 +rotate:90 +smoke_02/smoke02_00028 +bounds:656,132,59,109 +offsets:6,11,75,150 +rotate:90 +smoke_02/smoke02_00029 +bounds:684,21,58,109 +offsets:6,12,75,150 +smoke_02/smoke02_00030 +bounds:794,21,57,109 +offsets:7,13,75,150 +smoke_02/smoke02_00031 +bounds:794,21,57,109 +offsets:7,13,75,150 +smoke_02/smoke02_00032 +bounds:816,135,58,109 +offsets:7,13,75,150 +rotate:90 +smoke_02/smoke02_00033 +bounds:1190,700,58,108 +offsets:7,14,75,150 +smoke_02/smoke02_00034 +bounds:1500,660,57,67 +offsets:7,56,75,150 +rotate:90 +smoke_02/smoke02_00035 +bounds:1771,585,54,54 +offsets:9,70,75,150 +smoke_02/smoke02_00036 +bounds:1771,585,54,54 +offsets:9,70,75,150 diff --git a/src/assets/spines/symbols/expanding/expanding_symbols.skel b/src/assets/spines/symbols/expanding/expanding_symbols.skel new file mode 100644 index 0000000..a5a101e Binary files /dev/null and b/src/assets/spines/symbols/expanding/expanding_symbols.skel differ diff --git a/src/assets/spines/symbols/expanding/expanding_symbols.webp b/src/assets/spines/symbols/expanding/expanding_symbols.webp new file mode 100644 index 0000000..e9fdfcd Binary files /dev/null and b/src/assets/spines/symbols/expanding/expanding_symbols.webp differ diff --git a/src/assets/spines/symbols/expanding/expanding_symbols_2.webp b/src/assets/spines/symbols/expanding/expanding_symbols_2.webp new file mode 100644 index 0000000..dd81940 Binary files /dev/null and b/src/assets/spines/symbols/expanding/expanding_symbols_2.webp differ diff --git a/src/assets/spines/symbols/expanding/expanding_symbols_3.webp b/src/assets/spines/symbols/expanding/expanding_symbols_3.webp new file mode 100644 index 0000000..b329b8e Binary files /dev/null and b/src/assets/spines/symbols/expanding/expanding_symbols_3.webp differ diff --git a/src/assets/spines/symbols/high_symbols-h1-bounce.mov b/src/assets/spines/symbols/high_symbols-h1-bounce.mov new file mode 100644 index 0000000..65eccd1 Binary files /dev/null and b/src/assets/spines/symbols/high_symbols-h1-bounce.mov differ diff --git a/src/assets/spines/symbols/high_symbols-h1-idle.mov b/src/assets/spines/symbols/high_symbols-h1-idle.mov new file mode 100644 index 0000000..db6eab1 Binary files /dev/null and b/src/assets/spines/symbols/high_symbols-h1-idle.mov differ diff --git a/src/assets/spines/symbols/high_symbols-h1-win.mov b/src/assets/spines/symbols/high_symbols-h1-win.mov new file mode 100644 index 0000000..316fdac Binary files /dev/null and b/src/assets/spines/symbols/high_symbols-h1-win.mov differ diff --git a/src/assets/spines/symbols/high_symbols.skel b/src/assets/spines/symbols/high_symbols.skel new file mode 100644 index 0000000..765605a Binary files /dev/null and b/src/assets/spines/symbols/high_symbols.skel differ diff --git a/src/assets/spines/symbols/low_symbols.skel b/src/assets/spines/symbols/low_symbols.skel new file mode 100644 index 0000000..2d7ea13 Binary files /dev/null and b/src/assets/spines/symbols/low_symbols.skel differ diff --git a/src/assets/spines/symbols/mid_symbols.skel b/src/assets/spines/symbols/mid_symbols.skel new file mode 100644 index 0000000..404ccdf Binary files /dev/null and b/src/assets/spines/symbols/mid_symbols.skel differ diff --git a/src/assets/spines/symbols/scatter.skel b/src/assets/spines/symbols/scatter.skel new file mode 100644 index 0000000..7894ce7 Binary files /dev/null and b/src/assets/spines/symbols/scatter.skel differ diff --git a/src/assets/spines/symbols/sticky_frame.skel b/src/assets/spines/symbols/sticky_frame.skel new file mode 100644 index 0000000..b14f80e Binary files /dev/null and b/src/assets/spines/symbols/sticky_frame.skel differ diff --git a/src/assets/spines/symbols/symbols.atlas b/src/assets/spines/symbols/symbols.atlas new file mode 100644 index 0000000..05d1f40 --- /dev/null +++ b/src/assets/spines/symbols/symbols.atlas @@ -0,0 +1,774 @@ +symbols.webp +size:2048,2048 +filter:Linear,Linear +02/02_00000 +bounds:446,1359,131,148 +offsets:11,17,175,175 +rotate:90 +02/02_00001 +bounds:759,1336,131,148 +offsets:11,17,175,175 +rotate:90 +02/02_00022 +bounds:759,1336,131,148 +offsets:11,17,175,175 +rotate:90 +02/02_00003 +bounds:1547,1291,136,144 +offsets:2,16,175,175 +rotate:90 +02/02_00025 +bounds:1547,1291,136,144 +offsets:2,16,175,175 +rotate:90 +02/02_00005 +bounds:1073,1312,165,134 +offsets:0,22,175,175 +02/02_00006 +bounds:1240,1304,165,134 +offsets:0,22,175,175 +02/02_00027 +bounds:1240,1304,165,134 +offsets:0,22,175,175 +02/02_00008 +bounds:1129,1448,166,128 +offsets:0,23,175,175 +02/02_00030 +bounds:1129,1448,166,128 +offsets:0,23,175,175 +02/02_00010 +bounds:286,1500,158,120 +offsets:8,25,175,175 +02/02_00011 +bounds:446,1492,158,120 +offsets:8,25,175,175 +02/02_00032 +bounds:446,1492,158,120 +offsets:8,25,175,175 +02/02_00013 +bounds:283,1369,161,129 +offsets:8,31,175,175 +02/02_00035 +bounds:283,1369,161,129 +offsets:8,31,175,175 +02/02_00017 +bounds:909,1319,162,132 +offsets:1,25,175,175 +02/02_00038 +bounds:909,1319,162,132 +offsets:1,25,175,175 +02/02_00019 +bounds:137,1376,144,134 +offsets:7,23,175,175 +02/02_00024 +bounds:1693,1275,136,144 +offsets:2,16,175,175 +rotate:90 +02/02_00029 +bounds:1297,1440,166,128 +offsets:0,23,175,175 +02/02_00034 +bounds:596,1350,161,129 +offsets:8,31,175,175 +h1_bg +bounds:2,124,262,261 +offsets:20,21,302,302 +h1_bg_glow2 +bounds:1354,202,261,260 +offsets:20,22,302,302 +h1_body +bounds:1740,1413,256,127 +offsets:17,18,302,302 +h1_effect/h1_effect_00007 +bounds:278,2023,21,20 +offsets:15,59,175,175 +h1_effect/h1_effect_00008 +bounds:626,2015,30,28 +offsets:15,58,175,175 +h1_effect/h1_effect_00009 +bounds:792,2010,43,33 +offsets:15,59,175,175 +h1_effect/h1_effect_00010 +bounds:1771,2005,56,38 +offsets:15,59,175,175 +h1_effect/h1_effect_00011 +bounds:1415,1953,61,55 +offsets:15,59,175,175 +h1_effect/h1_effect_00012 +bounds:576,1896,67,75 +offsets:17,63,175,175 +rotate:90 +h1_effect/h1_effect_00013 +bounds:921,1808,78,92 +offsets:15,60,175,175 +rotate:90 +h1_effect/h1_effect_00014 +bounds:1687,1680,100,102 +offsets:14,60,175,175 +rotate:90 +h1_effect/h1_effect_00015 +bounds:678,1611,115,105 +offsets:15,62,175,175 +h1_effect/h1_effect_00016 +bounds:1448,1687,125,97 +offsets:23,71,175,175 +h1_effect/h1_effect_00017 +bounds:1068,1706,124,95 +offsets:26,73,175,175 +h1_effect/h1_effect_00018 +bounds:1575,1685,110,99 +offsets:40,70,175,175 +h1_effect/h1_effect_00019 +bounds:2,1641,101,118 +offsets:49,51,175,175 +rotate:90 +h1_effect/h1_effect_00020 +bounds:122,1638,102,134 +offsets:55,34,175,175 +rotate:90 +h1_effect/h1_effect_00021 +bounds:1791,1664,98,152 +offsets:64,16,175,175 +rotate:90 +h1_effect/h1_effect_00022 +bounds:1541,1786,88,157 +offsets:75,10,175,175 +rotate:90 +h1_effect/h1_effect_00023 +bounds:870,1888,68,157 +offsets:95,8,175,175 +rotate:90 +h1_effect/h1_effect_00024 +bounds:1271,1954,54,142 +offsets:108,7,175,175 +rotate:90 +h1_effect/h1_effect_00025 +bounds:1842,1943,58,122 +offsets:104,7,175,175 +rotate:90 +h1_effect/h1_effect_00026 +bounds:1478,1951,54,104 +offsets:108,7,175,175 +rotate:90 +h1_effect/h1_effect_00027 +bounds:1183,1955,53,86 +offsets:108,7,175,175 +rotate:90 +h1_effect/h1_effect_00028 +bounds:1046,1957,51,67 +offsets:110,8,175,175 +rotate:90 +h1_effect/h1_effect_00029 +bounds:700,1963,53,50 +offsets:107,8,175,175 +h1_eye_l +bounds:413,2019,24,24 +offsets:146,132,302,302 +h1_eye_r +bounds:439,2018,26,25 +offsets:103,141,302,302 +h1_eyebrow_l +bounds:338,2021,47,22 +offsets:136,138,302,302 +h1_eyebrow_r +bounds:467,2017,35,26 +offsets:101,146,302,302 +h1_eyelid_l +bounds:2,2029,31,14 +offsets:144,136,302,302 +h1_eyelid_r +bounds:87,2027,21,16 +offsets:106,146,302,302 +h1_feather_big +bounds:444,1901,64,130 +offsets:34,17,302,302 +rotate:90 +h1_feather_small +bounds:107,1978,44,56 +offsets:208,32,302,302 +rotate:90 +h1_head +bounds:779,1173,144,193 +offsets:84,59,302,302 +rotate:90 +h1_head_gld +bounds:1920,2003,40,41 +offsets:120,170,302,302 +rotate:90 +h1_headpiece_fthr1 +bounds:403,1733,90,110 +offsets:24,124,302,302 +rotate:90 +h1_headpiece_fthr2 +bounds:1104,1803,79,104 +offsets:42,177,302,302 +rotate:90 +h1_headpiece_fthr3 +bounds:1210,1796,86,83 +offsets:70,201,302,302 +h1_headpiece_fthr4 +bounds:186,1910,64,77 +offsets:121,208,302,302 +rotate:90 +h1_headpiece_fthr5 +bounds:1236,1881,71,79 +offsets:165,205,302,302 +rotate:90 +h1_headpiece_fthr6 +bounds:964,1711,102,93 +offsets:181,192,302,302 +h1_headpiece_fthr7 +bounds:515,1727,91,112 +offsets:194,146,302,302 +rotate:90 +h1_headpiece_fthr8 +bounds:1015,1806,78,87 +offsets:205,82,302,302 +rotate:90 +h1_headpiece_gld +bounds:730,1481,123,128 +offsets:115,149,302,302 +rotate:90 +h1_necklace +bounds:547,1614,129,104 +offsets:89,17,302,302 +h1_s +bounds:807,2,274,276 +offsets:13,13,302,302 +rotate:90 +h2_bg +bounds:1617,202,260,262 +offsets:21,21,302,302 +rotate:90 +h2_bg_glow +bounds:266,88,262,262 +offsets:20,21,302,302 +h2_body +bounds:2,1236,270,138 +offsets:18,16,302,302 +h2_earring_l +bounds:504,2017,26,54 +offsets:185,79,302,302 +rotate:90 +h2_earring_r +bounds:160,2024,19,47 +offsets:81,83,302,302 +rotate:90 +h2_effect/h2_effect_00007 +bounds:387,2021,24,22 +offsets:21,34,175,175 +h2_effect/h2_effect_00008 +bounds:658,2015,35,28 +offsets:20,31,175,175 +h2_effect/h2_effect_00009 +bounds:1501,2007,46,36 +offsets:18,28,175,175 +h2_effect/h2_effect_00010 +bounds:479,1968,55,47 +offsets:17,28,175,175 +h2_effect/h2_effect_00011 +bounds:1966,1928,60,68 +offsets:15,29,175,175 +rotate:90 +h2_effect/h2_effect_00012 +bounds:2,1918,71,60 +offsets:14,28,175,175 +h2_effect/h2_effect_00013 +bounds:1317,1881,71,84 +offsets:13,30,175,175 +rotate:90 +h2_effect/h2_effect_00014 +bounds:1725,1872,72,112 +offsets:11,30,175,175 +rotate:90 +h2_effect/h2_effect_00015 +bounds:1700,1782,88,133 +offsets:12,31,175,175 +rotate:90 +h2_effect/h2_effect_00016 +bounds:403,1622,103,142 +offsets:17,32,175,175 +rotate:90 +h2_effect/h2_effect_00017 +bounds:1356,1570,115,141 +offsets:25,34,175,175 +rotate:90 +h2_effect/h2_effect_00018 +bounds:1757,1544,118,136 +offsets:30,38,175,175 +rotate:90 +h2_effect/h2_effect_00019 +bounds:1895,1542,118,129 +offsets:32,44,175,175 +rotate:90 +h2_effect/h2_effect_00020 +bounds:1629,1561,117,126 +offsets:34,47,175,175 +rotate:90 +h2_effect/h2_effect_00021 +bounds:1102,1581,112,136 +offsets:39,36,175,175 +rotate:90 +h2_effect/h2_effect_00022 +bounds:2,1518,118,140 +offsets:41,31,175,175 +rotate:90 +h2_effect/h2_effect_00023 +bounds:144,1512,119,140 +offsets:49,30,175,175 +rotate:90 +h2_effect/h2_effect_00024 +bounds:795,1606,107,140 +offsets:66,29,175,175 +rotate:90 +h2_effect/h2_effect_00025 +bounds:1400,1792,84,139 +offsets:90,28,175,175 +rotate:90 +h2_effect/h2_effect_00026 +bounds:739,1890,66,129 +offsets:107,29,175,175 +rotate:90 +h2_effect/h2_effect_00027 +bounds:1732,1946,57,108 +offsets:118,18,175,175 +rotate:90 +h2_effect/h2_effect_00028 +bounds:1584,1949,56,86 +offsets:119,19,175,175 +rotate:90 +h2_effect/h2_effect_00029 +bounds:1115,1956,52,66 +offsets:123,19,175,175 +rotate:90 +h2_effect/h2_effect_00030 +bounds:594,1965,48,52 +offsets:124,30,175,175 +rotate:90 +h2_effect/h2_effect_00031 +bounds:1963,2003,40,41 +offsets:126,34,175,175 +rotate:90 +h2_effect/h2_effect_00032 +bounds:560,2016,32,27 +offsets:132,36,175,175 +h2_effect/h2_effect_00033 +bounds:209,2024,19,19 +offsets:143,39,175,175 +h2_eye_l +bounds:695,2015,28,29 +offsets:96,185,302,302 +rotate:90 +h2_eye_r +bounds:757,2011,33,32 +offsets:139,187,302,302 +h2_eyebrows_l +bounds:230,2024,46,19 +offsets:137,207,302,302 +h2_eyebrows_r +bounds:35,2029,25,14 +offsets:102,211,302,302 +h2_eyelid_l +bounds:62,2029,23,14 +offsets:99,196,302,302 +h2_eyelid_r +bounds:301,2022,35,21 +offsets:144,195,302,302 +h2_hair +bounds:1661,1114,157,211 +offsets:97,37,302,302 +rotate:90 +h2_head +bounds:1407,1300,138,135 +offsets:83,108,302,302 +h2_headpiece +bounds:1115,1884,119,69 +offsets:102,185,302,302 +h2_headpiece_fthr +bounds:755,1959,97,49 +offsets:126,231,302,302 +h2_necklace +bounds:652,1813,146,75 +offsets:70,17,302,302 +h2_s +bounds:530,39,270,275 +offsets:17,15,302,302 +rotate:90 +light_01 +bounds:854,1958,50,190 +offsets:9,19,69,226 +rotate:90 +low1_decor +bounds:800,1811,75,119 +offsets:113,93,302,302 +rotate:90 +low1_shadow +bounds:1194,1695,96,143 +offsets:103,80,302,302 +rotate:90 +low1_stone +bounds:629,1720,91,137 +offsets:105,83,302,302 +rotate:90 +low2_decor +bounds:1339,1694,96,107 +offsets:103,98,302,302 +rotate:90 +low2_shadow +bounds:1597,1429,130,141 +offsets:86,81,302,302 +rotate:90 +low2_stone +bounds:860,1469,124,136 +offsets:89,84,302,302 +rotate:90 +low3_decor +bounds:1465,1437,130,129 +offsets:86,87,302,302 +low3_shadow +bounds:1177,1149,156,153 +offsets:73,75,302,302 +low3_stone +bounds:274,1218,150,149 +offsets:76,77,302,302 +low4_decor +bounds:998,1453,126,129 +offsets:87,86,302,302 +rotate:90 +low4_shadow +bounds:1495,1128,161,164 +offsets:70,69,302,302 +rotate:90 +low4_stone +bounds:1335,1144,154,158 +offsets:73,71,302,302 +rotate:90 +low5_decor +bounds:426,1208,177,140 +offsets:62,82,302,302 +low5_shadow +bounds:985,972,213,175 +offsets:44,64,302,302 +low5_stone +bounds:778,993,205,168 +offsets:48,68,302,302 +m1_bg +bounds:884,526,235,235 +offsets:34,33,302,302 +m1_crown1 +bounds:377,1903,65,64 +offsets:120,187,302,302 +m1_crown2 +bounds:165,1978,44,58 +offsets:91,186,302,302 +rotate:90 +m1_crown3 +bounds:536,1967,47,56 +offsets:171,184,302,302 +rotate:90 +m1_crown4 +bounds:1873,2004,39,45 +offsets:76,176,302,302 +rotate:90 +m1_crown5 +bounds:1829,2005,38,42 +offsets:191,177,302,302 +rotate:90 +m1_crown6 +bounds:2,1984,43,55 +offsets:61,140,302,302 +rotate:90 +m1_crown7 +bounds:2006,1990,40,53 +offsets:200,142,302,302 +m1_earring_l +bounds:274,1974,52,46 +offsets:192,94,302,302 +m1_earring_r +bounds:328,1973,52,46 +offsets:60,90,302,302 +m1_face +bounds:937,1595,163,109 +offsets:68,97,302,302 +m1_frame_glow +bounds:610,311,246,246 +offsets:29,27,302,302 +m1_necklace +bounds:75,1914,109,62 +offsets:101,62,302,302 +m1_s +bounds:720,787,204,212 +offsets:50,50,302,302 +rotate:90 +m2_bg +bounds:1121,493,235,235 +offsets:34,33,302,302 +m2_earring1 +bounds:1672,1949,58,56 +offsets:83,102,302,302 +m2_earring2 +bounds:648,1965,50,48 +offsets:108,127,302,302 +m2_face +bounds:265,1908,63,110 +offsets:156,95,302,302 +rotate:90 +m2_frame_glow +bounds:858,278,246,246 +offsets:29,27,302,302 +m2_jaguar +bounds:605,1193,141,172 +offsets:85,83,302,302 +rotate:90 +m2_neck +bounds:1499,1568,115,128 +offsets:61,62,302,302 +rotate:90 +m2_s +bounds:1200,964,178,206 +offsets:52,51,302,302 +rotate:90 +m3_bg +bounds:1358,465,235,235 +offsets:34,33,302,302 +m3_eagle +bounds:974,1163,147,201 +offsets:72,51,302,302 +rotate:90 +m3_face +bounds:2,1748,89,105 +offsets:78,98,302,302 +rotate:90 +m3_frame_glow +bounds:1106,245,246,246 +offsets:29,27,302,302 +m3_s +bounds:514,805,202,204 +offsets:69,49,302,302 +rotate:90 +m3_wing +bounds:258,1633,102,143 +offsets:160,65,302,302 +rotate:90 +placeholder +bounds:1945,1662,100,100 +scttr_eff_glow_anticip1 +bounds:1403,1878,77,71 +offsets:182,221,362,362 +scttr_eff_glow_anticip2 +bounds:2,1839,73,81 +offsets:219,182,362,362 +rotate:90 +scttr_eff_glow_anticip3 +bounds:653,1892,69,84 +offsets:223,99,362,362 +rotate:90 +scttr_eff_glow_anticip4 +bounds:85,1839,77,73 +offsets:182,70,362,362 +scttr_eff_glow_anticip5 +bounds:1482,1878,80,71 +offsets:102,70,362,362 +scttr_eff_glow_anticip6 +bounds:164,1835,73,83 +offsets:70,100,362,362 +rotate:90 +scttr_eff_glow_anticip7 +bounds:1839,1869,72,83 +offsets:70,182,362,362 +rotate:90 +scttr_eff_glow_anticip8 +bounds:496,1825,76,74 +offsets:106,218,362,362 +scttr_eff_glow_win1 +bounds:1835,1764,93,88 +offsets:173,213,362,362 +scttr_eff_glow_win2 +bounds:109,1744,89,96 +offsets:211,174,362,362 +rotate:90 +scttr_eff_glow_win3 +bounds:1298,1793,86,100 +offsets:215,92,362,362 +rotate:90 +scttr_eff_glow_win4 +bounds:207,1742,93,89 +offsets:173,61,362,362 +scttr_eff_glow_win5 +bounds:1930,1764,96,88 +offsets:95,61,362,362 +scttr_eff_glow_win6 +bounds:302,1737,89,99 +offsets:61,93,362,362 +rotate:90 +scttr_eff_glow_win7 +bounds:768,1718,91,99 +offsets:61,173,362,362 +rotate:90 +scttr_eff_glow_win8 +bounds:869,1715,93,91 +offsets:98,210,362,362 +scttr_gem +bounds:1240,1578,114,114 +offsets:124,124,362,362 +scttr_gem_eff_glow_win +bounds:606,1489,122,120 +offsets:119,121,362,362 +scttr_gem_frame_gld +bounds:1874,1101,170,170 +offsets:96,96,362,362 +scttr_gem_frame_gld_s +bounds:596,1009,180,182 +offsets:91,88,362,362 +scttr_gem_frame_pnk +bounds:2,1383,133,133 +offsets:115,114,362,362 +scttr_gem_frame_pnk_s +bounds:1839,1273,138,138 +offsets:112,110,362,362 +scttr_mid_gems_dark_m +bounds:594,2016,27,30 +offsets:93,110,362,362 +rotate:90 +scttr_mid_gems_dark_s +bounds:110,2025,22,18 +offsets:81,142,362,362 +scttr_mid_gems_light_m +bounds:726,2015,29,28 +offsets:117,246,362,362 +scttr_mid_gems_light_s +bounds:134,2025,18,24 +offsets:146,260,362,362 +rotate:90 +scttr_mid_gld1 +bounds:1564,1876,77,71 +offsets:182,221,362,362 +scttr_mid_gld2 +bounds:249,1833,73,81 +offsets:219,182,362,362 +rotate:90 +scttr_mid_gld3 +bounds:1029,1886,69,84 +offsets:223,99,362,362 +rotate:90 +scttr_mid_gld4 +bounds:332,1828,77,73 +offsets:182,70,362,362 +scttr_mid_gld5 +bounds:1643,1876,80,71 +offsets:102,70,362,362 +scttr_mid_gld6 +bounds:411,1826,73,83 +offsets:70,100,362,362 +rotate:90 +scttr_mid_gld7 +bounds:1924,1854,72,83 +offsets:70,182,362,362 +rotate:90 +scttr_mid_gld8 +bounds:574,1820,76,74 +offsets:106,218,362,362 +scttr_mid_gld_s +bounds:654,559,226,228 +offsets:68,65,362,362 +rotate:90 +sticky_frame_line1 +bounds:837,2010,217,33 +offsets:71,304,362,362 +sticky_frame_line2 +bounds:1056,2010,33,220 +offsets:299,79,362,362 +rotate:90 +sticky_frame_line3 +bounds:1549,2007,220,36 +offsets:74,36,362,362 +sticky_frame_line4 +bounds:1278,2010,33,221 +offsets:30,73,362,362 +rotate:90 +sticky_frame_sqr1 +bounds:225,1976,47,46 +offsets:27,293,362,362 +sticky_frame_sqr2 +bounds:382,1971,47,46 +offsets:288,293,362,362 +sticky_frame_sqr3 +bounds:431,1969,46,46 +offsets:288,33,362,362 +sticky_frame_sqr4 +bounds:59,1980,46,45 +offsets:28,34,362,362 +wild1 +bounds:1408,931,222,195 +offsets:41,72,302,302 +wild1_frame +bounds:226,840,286,199 +offsets:8,70,302,302 +wild1_glow +bounds:1595,464,302,236 +offsets:0,57,302,302 +wild1_in +bounds:2,1069,196,165 +offsets:83,116,362,362 +wild2 +bounds:1632,917,222,195 +offsets:41,72,302,302 +wild2_frame +bounds:934,763,286,199 +offsets:8,70,302,302 +wild2_glow +bounds:2,387,302,236 +offsets:0,57,302,302 +wild2_in +bounds:200,1051,196,165 +offsets:83,116,362,362 +wild3 +bounds:2,854,222,195 +offsets:41,72,302,302 +wild3_frame +bounds:1222,730,286,199 +offsets:8,70,302,302 +wild3_glow +bounds:306,352,302,236 +offsets:0,57,302,302 +wild3_in +bounds:398,1041,196,165 +offsets:83,116,362,362 +wild_1_win +bounds:1510,702,324,213 +offsets:19,117,362,362 +wild_2_win +bounds:2,625,324,213 +offsets:19,117,362,362 +wild_3_win +bounds:328,590,324,213 +offsets:19,117,362,362 + +symbols_2.webp +size:1244,652 +filter:Linear,Linear +h1_frame +bounds:2,2,282,282 +offsets:10,11,302,302 +h1_frame_glow +bounds:366,65,286,287 +offsets:8,8,302,302 +h2_frame +bounds:957,71,281,282 +offsets:11,11,302,302 +h2_frame_glow +bounds:666,355,293,292 +offsets:5,6,302,302 +rotate:90 +reels_slot +bounds:960,368,280,280 +scttr_s +bounds:366,354,294,298 +offsets:36,42,362,362 +rotate:90 +scttr_stone +bounds:666,65,288,289 +offsets:37,49,362,362 +rotate:90 +sticky_frame_s +bounds:2,286,362,362 diff --git a/src/assets/spines/symbols/symbols.webp b/src/assets/spines/symbols/symbols.webp new file mode 100644 index 0000000..2d87ea1 Binary files /dev/null and b/src/assets/spines/symbols/symbols.webp differ diff --git a/src/assets/spines/symbols/symbols_2.webp b/src/assets/spines/symbols/symbols_2.webp new file mode 100644 index 0000000..93dadaa Binary files /dev/null and b/src/assets/spines/symbols/symbols_2.webp differ diff --git a/src/assets/spines/symbols/wild_symbols.skel b/src/assets/spines/symbols/wild_symbols.skel new file mode 100644 index 0000000..85897fb Binary files /dev/null and b/src/assets/spines/symbols/wild_symbols.skel differ diff --git a/src/assets/spines/transition/transition.atlas b/src/assets/spines/transition/transition.atlas new file mode 100644 index 0000000..92ced32 --- /dev/null +++ b/src/assets/spines/transition/transition.atlas @@ -0,0 +1,35 @@ +transition.webp +size:2048,2048 +filter:Linear,Linear +scale:0.75 +trans_bg_down1 +bounds:2,771,1237,1038 +offsets:1,0,2439,1082 +trans_bg_up1 +bounds:1241,571,1238,743 +offsets:0,339,2439,1082 +rotate:90 +trans_bg_up2 +bounds:2,2,1235,767 +offsets:1204,315,2439,1082 +trans_snake_down1 +bounds:1239,72,806,497 +offsets:432,251,2439,1082 + +transition_2.webp +size:2048,2048 +filter:Linear,Linear +scale:0.75 +trans_bg_down2 +bounds:2,1076,1236,738 +offsets:1203,0,2439,1082 +trans_snake_down2 +bounds:2,2,1181,520 +offsets:1204,238,2439,1082 +trans_snake_up1 +bounds:2,524,1181,550 +offsets:57,338,2439,1082 +trans_snake_up2 +bounds:1240,946,868,490 +offsets:1204,331,2439,1082 +rotate:90 diff --git a/src/assets/spines/transition/transition.skel b/src/assets/spines/transition/transition.skel new file mode 100644 index 0000000..eff37af Binary files /dev/null and b/src/assets/spines/transition/transition.skel differ diff --git a/src/assets/spines/transition/transition.webp b/src/assets/spines/transition/transition.webp new file mode 100644 index 0000000..bf31b42 Binary files /dev/null and b/src/assets/spines/transition/transition.webp differ diff --git a/src/assets/spines/transition/transition_2.webp b/src/assets/spines/transition/transition_2.webp new file mode 100644 index 0000000..53b7a37 Binary files /dev/null and b/src/assets/spines/transition/transition_2.webp differ diff --git a/src/assets/spines/ui/autospin_settings.skel b/src/assets/spines/ui/autospin_settings.skel new file mode 100644 index 0000000..38fc468 Binary files /dev/null and b/src/assets/spines/ui/autospin_settings.skel differ diff --git a/src/assets/spines/ui/buttons.atlas b/src/assets/spines/ui/buttons.atlas new file mode 100644 index 0000000..64607ac --- /dev/null +++ b/src/assets/spines/ui/buttons.atlas @@ -0,0 +1,20 @@ +buttons.webp +size:2048,128 +filter:Linear,Linear +bet-select-btn +bounds:758,2,250,110 +bet-select-btn-disabled +bounds:2,2,250,110 +bet-select-btn-hover +bounds:254,2,250,110 +bet-select-btn-press +bounds:506,2,250,110 +check-box +bounds:1174,52,60,60 +check-box-hover +bounds:1112,52,60,60 +close-btn +bounds:1236,72,38,40 +placeholder +bounds:1010,14,100,98 +offsets:1,1,102,100 diff --git a/src/assets/spines/ui/buttons.skel b/src/assets/spines/ui/buttons.skel new file mode 100644 index 0000000..c7d2d1e Binary files /dev/null and b/src/assets/spines/ui/buttons.skel differ diff --git a/src/assets/spines/ui/buttons.webp b/src/assets/spines/ui/buttons.webp new file mode 100644 index 0000000..d6b013b Binary files /dev/null and b/src/assets/spines/ui/buttons.webp differ diff --git a/src/assets/spines/ui/keyboard.skel b/src/assets/spines/ui/keyboard.skel new file mode 100644 index 0000000..b64a709 Binary files /dev/null and b/src/assets/spines/ui/keyboard.skel differ diff --git a/src/assets/spines/ui/settings.skel b/src/assets/spines/ui/settings.skel new file mode 100644 index 0000000..427518a Binary files /dev/null and b/src/assets/spines/ui/settings.skel differ diff --git a/src/assets/spines/ui/start_page_ui.skel b/src/assets/spines/ui/start_page_ui.skel new file mode 100644 index 0000000..5b50c4d Binary files /dev/null and b/src/assets/spines/ui/start_page_ui.skel differ diff --git a/src/assets/spines/ui/ui.atlas b/src/assets/spines/ui/ui.atlas new file mode 100644 index 0000000..8963d68 --- /dev/null +++ b/src/assets/spines/ui/ui.atlas @@ -0,0 +1,255 @@ +ui.webp +size:1388,2056 +filter:Linear,Linear +AS_bg_advanced_expanded +bounds:131,132,889,1122 +rotate:90 +as_top_bgTriangle +bounds:1369,1157,21,12 +offsets:1,1,23,14 +rotate:90 +autospin_btn +bounds:1093,1039,97,97 +autospin_infinity +bounds:338,9,45,20 +autospin_stop_btn +bounds:1277,1566,97,96 +offsets:0,1,97,97 +rotate:90 +autospins_back +bounds:1277,1665,182,96 +rotate:90 +bet_btn +bounds:1093,1638,97,97 +btn_AS_bg +bounds:131,63,163,67 +offsets:1,1,165,69 +btn_AudioToggle +bounds:1329,100,53,53 +offsets:1,1,55,55 +btn_bar_AudioToggle +bounds:1242,1261,586,33 +offsets:1,1,588,35 +rotate:90 +btn_bar_AudioToggle 2 +bounds:1205,1259,588,35 +rotate:90 +btn_bg_basic +bounds:1093,1180,290,77 +offsets:1,1,292,79 +btn_checkboxOff_bg +bounds:1324,214,57,57 +offsets:1,1,59,59 +btn_checkboxOn +bounds:1326,546,43,30 +offsets:1,1,45,32 +btn_checkboxOn_bg +bounds:1329,155,57,57 +offsets:1,1,59,59 +btn_circle_orange +bounds:1255,928,96,96 +btn_circle_yellow +bounds:1255,830,96,96 +btn_i10 +bounds:1324,400,144,62 +offsets:1,1,146,64 +rotate:90 +btn_i100 +bounds:1324,400,144,62 +offsets:1,1,146,64 +rotate:90 +btn_i25 +bounds:1324,400,144,62 +offsets:1,1,146,64 +rotate:90 +btn_i250 +bounds:1324,400,144,62 +offsets:1,1,146,64 +rotate:90 +btn_i50 +bounds:1324,400,144,62 +offsets:1,1,146,64 +rotate:90 +btn_i500 +bounds:1324,400,144,62 +offsets:1,1,146,64 +rotate:90 +btn_i750 +bounds:1324,400,144,62 +offsets:1,1,146,64 +rotate:90 +btn_i_1000 +bounds:1324,400,144,62 +offsets:1,1,146,64 +rotate:90 +btn_infinity +bounds:1324,400,144,62 +offsets:1,1,146,64 +rotate:90 +btn_x +bounds:1156,1324,41,42 +offsets:1,1,43,44 +btn_x_bg +bounds:1324,335,63,62 +offsets:1,1,65,64 +rotate:90 +checkboxOff_1 +bounds:296,66,64,64 +offsets:1,1,66,66 +checkboxOn_1 +bounds:362,66,64,64 +offsets:1,1,66,66 +checkboxOn_V_1 +bounds:338,31,47,33 +offsets:1,1,49,35 +close-btn +bounds:296,26,38,40 +rotate:90 +close_btn_ +bounds:1298,1850,60,60 +close_btn_hover +bounds:1324,273,60,60 +desktop_bg +bounds:2,5,2048,127 +rotate:90 +fr_back +bounds:1255,160,384,67 +offsets:1,0,385,67 +rotate:90 +home_btn +bounds:1093,1737,110,110 +info_btn +bounds:1298,1912,69,69 +max_btn +bounds:1192,1026,100,70 +max_btn_mob +bounds:1093,1539,97,97 +menu_btn +bounds:1294,1027,69,69 +minus_btn +bounds:1125,1368,69,70 +paytable_btn +bounds:1255,759,69,69 +placeholder +bounds:1360,1885,25,25 +plus_btn +bounds:1298,1983,69,70 +popiplay +bounds:1354,1272,122,32 +offsets:0,1,123,33 +rotate:90 +quick_btn +bounds:1093,1440,97,97 +quick_icon +bounds:1156,1262,37,60 +settings_bg +bounds:131,1023,960,1030 +offsets:1,1,962,1032 +settings_btn +bounds:1255,688,69,69 +sound_off_btn +bounds:1255,617,69,69 +sound_on_btn +bounds:1255,546,69,69 +spin_btn +bounds:1093,1849,204,203 +rotate:90 +tx_tNumbers of rounds +bounds:843,98,383,32 +offsets:1,1,385,34 +txt_Audio +bounds:1283,4,154,44 +offsets:1,1,156,46 +rotate:90 +txt_Autospin settings +bounds:428,83,413,47 +offsets:1,1,415,49 +txt_I +bounds:1093,1034,3,24 +offsets:1,1,5,26 +rotate:90 +txt_If bonus game is won +bounds:412,15,329,32 +offsets:1,1,331,34 +txt_If cash balance decreases by +bounds:1353,578,447,32 +offsets:1,1,449,34 +rotate:90 +txt_If cash balance increases by +bounds:428,49,436,32 +offsets:1,1,438,34 +txt_If single win exceeds +bounds:866,64,321,32 +offsets:1,1,323,34 +txt_Music +bounds:1125,1260,106,29 +offsets:1,1,108,31 +rotate:90 +txt_On any win +bounds:1354,1396,168,31 +offsets:1,1,170,33 +rotate:90 +txt_Settings +bounds:1277,1266,298,75 +offsets:1,1,300,77 +rotate:90 +txt_Sound FX +bounds:1093,1262,176,30 +offsets:1,1,178,32 +rotate:90 +txt_Spacebar to spin +bounds:866,24,311,38 +offsets:1,1,313,40 +txt_Stop_autospin +bounds:1093,1138,274,40 +offsets:1,1,276,42 +txt_Turbospin +bounds:1192,1098,185,38 +offsets:1,1,187,40 +txt_Volume +bounds:131,26,159,35 +offsets:1,1,161,37 +txt_btn_10 +bounds:387,31,33,23 +offsets:1,1,35,25 +rotate:90 +txt_btn_100 +bounds:1326,606,53,23 +offsets:1,1,55,25 +rotate:90 +txt_btn_1000 +bounds:1356,26,72,23 +offsets:1,1,74,25 +rotate:90 +txt_btn_25 +bounds:1360,1849,34,23 +offsets:1,1,36,25 +rotate:90 +txt_btn_250 +bounds:1326,717,54,23 +offsets:1,1,56,25 +rotate:90 +txt_btn_50 +bounds:1228,95,35,23 +offsets:1,1,37,25 +rotate:90 +txt_btn_500 +bounds:1326,773,55,23 +offsets:1,1,57,25 +rotate:90 +txt_btn_750 +bounds:1326,661,54,23 +offsets:1,1,56,25 +rotate:90 +txt_btn_Advanced +bounds:1255,2,156,26 +offsets:1,1,158,28 +rotate:90 +txt_btn_Basic +bounds:1329,17,81,25 +offsets:1,1,83,27 +rotate:90 +txt_btn_infinity +bounds:1365,1051,45,20 +offsets:1,1,47,22 +rotate:90 diff --git a/src/assets/spines/ui/ui.webp b/src/assets/spines/ui/ui.webp new file mode 100644 index 0000000..df6a7e2 Binary files /dev/null and b/src/assets/spines/ui/ui.webp differ diff --git a/src/assets/spines/wins/basic_win.skel b/src/assets/spines/wins/basic_win.skel new file mode 100644 index 0000000..d58348c Binary files /dev/null and b/src/assets/spines/wins/basic_win.skel differ diff --git a/src/assets/spines/wins/tap_to_continue.skel b/src/assets/spines/wins/tap_to_continue.skel new file mode 100644 index 0000000..b843531 Binary files /dev/null and b/src/assets/spines/wins/tap_to_continue.skel differ diff --git a/src/assets/spines/wins/value.skel b/src/assets/spines/wins/value.skel new file mode 100644 index 0000000..ffecdb2 Binary files /dev/null and b/src/assets/spines/wins/value.skel differ diff --git a/src/assets/spines/wins/wins.atlas b/src/assets/spines/wins/wins.atlas new file mode 100644 index 0000000..abd575d --- /dev/null +++ b/src/assets/spines/wins/wins.atlas @@ -0,0 +1,943 @@ +wins.webp +size:2046,2044 +filter:Linear,Linear +scale:0.75 +basic_win_light_1 +bounds:1319,1928,224,47 +offsets:8,3,250,54 +basic_win_light_2 +bounds:221,1046,298,116 +offsets:8,5,314,125 +big_big_shadow +bounds:1806,821,235,140 +offsets:1,1,236,142 +big_big_text_top +bounds:133,1491,192,94 +big_big_text_un +bounds:1565,1215,208,110 +big_decor_1 +bounds:227,1680,82,77 +offsets:2,0,84,78 +big_decor_1_s +bounds:681,1816,93,61 +offsets:1,1,95,63 +big_decor_2 +bounds:1529,1640,83,83 +offsets:1,0,85,84 +big_decor_2_s_l +bounds:1221,1870,58,93 +offsets:1,1,59,95 +rotate:90 +big_decor_3 +bounds:1789,1628,83,83 +offsets:1,0,85,84 +big_decor_3_s_r +bounds:1880,1858,59,93 +offsets:0,1,59,95 +rotate:90 +big_decor_4 +bounds:311,1677,82,77 +offsets:2,0,85,78 +big_decor_4_s_un +bounds:900,1875,93,56 +offsets:1,0,95,57 +big_glow_0 +bounds:1375,2016,26,26 +offsets:1,2,28,29 +big_glow_2 +bounds:1327,1978,38,37 +offsets:1,1,40,39 +big_glow_3 +bounds:2,1689,76,132 +offsets:1,1,79,134 +rotate:90 +big_glow_top_0 +bounds:97,2033,9,9 +offsets:1,1,10,11 +big_glow_top_1 +bounds:394,79,294,297 +rotate:90 +big_glow_top_2 +bounds:540,2022,20,20 +big_glow_top_3 +bounds:565,1818,60,114 +offsets:0,1,60,116 +rotate:90 +big_leaf_1 +bounds:638,1984,34,56 +rotate:90 +big_leaf_2 +bounds:654,2020,62,22 +offsets:1,0,63,23 +big_leaf_3 +bounds:286,2026,64,16 +offsets:0,1,64,17 +big_leaf_4 +bounds:482,2023,19,56 +offsets:1,0,20,56 +rotate:90 +big_leaf_5 +bounds:132,2028,41,14 +big_leaf_6 +bounds:352,2026,56,16 +offsets:1,1,57,17 +big_leaf_7 +bounds:1367,1977,42,37 +offsets:0,0,42,38 +big_leaf_8 +bounds:175,2027,15,58 +rotate:90 +big_leaf_9 +bounds:2,1400,100,123 +rotate:90 +big_leaf_palm_01 +bounds:344,1946,64,43 +offsets:2,1,66,44 +big_leaf_palm_02 +bounds:1403,2016,26,58 +offsets:0,2,26,60 +rotate:90 +big_leaf_palm_03 +bounds:396,1888,95,53 +offsets:0,0,95,54 +big_leaf_palm_04 +bounds:1138,2017,81,25 +offsets:0,1,83,28 +big_leaf_palm_05 +bounds:701,1879,139,54 +offsets:0,0,139,55 +big_wheel_3 +bounds:1577,232,269,271 +offsets:1,0,273,272 +rotate:90 +big_win_shadow +bounds:452,757,256,140 +offsets:0,1,257,142 +big_win_text_top +bounds:316,1389,215,94 +big_win_text_un +bounds:1775,1215,230,110 +max_blood_1 +bounds:476,1668,283,75 +offsets:12,5,307,90 +max_blood_2 +bounds:894,889,165,136 +offsets:56,1,256,140 +max_coins_left +bounds:113,1287,268,100 +offsets:0,1,269,101 +max_coins_right +bounds:383,1279,268,100 +offsets:1,0,269,100 +max_earrings_left +bounds:761,1661,77,176 +rotate:90 +max_earrings_right +bounds:1046,1654,77,176 +rotate:90 +max_earrings_shadow_l +bounds:759,1570,89,191 +offsets:0,0,90,191 +rotate:90 +max_earrings_shadow_r +bounds:952,1563,89,191 +offsets:1,0,91,191 +rotate:90 +max_eye_l +bounds:902,1933,58,46 +max_eyes_r +bounds:962,1933,58,46 +max_glow_left_top +bounds:693,2,292,410 +offsets:0,0,293,410 +rotate:90 +max_glow_top_02 +bounds:1026,1980,36,46 +offsets:2,2,40,50 +rotate:90 +max_glow_top_03 +bounds:1168,1804,97,64 +offsets:2,2,101,68 +max_glow_top_1 +bounds:1826,1788,129,68 +offsets:2,2,133,72 +max_glow_top_1- +bounds:418,1990,33,51 +offsets:1,1,35,53 +rotate:90 +max_glow_top_10 +bounds:1316,1870,56,107 +offsets:2,2,59,111 +rotate:90 +max_glow_top_11 +bounds:2,1292,109,106 +offsets:2,2,113,110 +max_glow_top_12 +bounds:1697,1973,54,39 +offsets:2,1,58,42 +max_glow_top_2 +bounds:67,1836,66,60 +offsets:1,2,69,63 +max_glow_top_2- +bounds:734,1982,35,38 +offsets:1,1,37,40 +rotate:90 +max_glow_top_3 +bounds:1096,1809,63,70 +offsets:2,2,67,74 +rotate:90 +max_glow_top_3- +bounds:395,1674,77,79 +offsets:1,1,79,81 +rotate:90 +max_glow_top_4 +bounds:1816,1713,73,100 +offsets:2,2,77,104 +rotate:90 +max_glow_top_4- +bounds:2,1053,217,119 +offsets:1,1,219,121 +max_glow_top_5 +bounds:1719,1863,98,57 +offsets:2,2,102,61 +max_glow_top_5- +bounds:1614,1637,173,81 +offsets:1,1,175,83 +max_glow_top_6 +bounds:241,1759,77,69 +offsets:2,2,81,73 +max_glow_top_6- +bounds:1669,2014,182,28 +offsets:1,1,184,30 +max_glow_top_7 +bounds:320,1756,121,69 +offsets:2,1,125,72 +max_glow_top_7- +bounds:559,1745,213,69 +offsets:1,1,215,71 +max_glow_top_8 +bounds:1224,1652,185,77 +offsets:2,2,189,81 +max_glow_top_8- +bounds:1663,1923,111,48 +offsets:1,1,113,50 +max_glow_top_9 +bounds:1957,1785,68,74 +offsets:2,2,72,77 +rotate:90 +max_head_back +bounds:1218,988,174,126 +max_hrad_crown +bounds:238,375,477,201 +max_leaf_1 +bounds:743,2019,23,128 +rotate:90 +max_leaf_2 +bounds:222,1948,42,120 +rotate:90 +max_leaf_3 +bounds:1425,1870,56,99 +rotate:90 +max_leaf_4 +bounds:939,1661,77,105 +rotate:90 +max_leaf_5 +bounds:1783,1527,98,92 +max_leaf_6 +bounds:333,1890,54,61 +rotate:90 +max_leaf_7 +bounds:333,1583,89,110 +rotate:90 +max_leaf_8 +bounds:138,1895,51,122 +rotate:90 +max_max +bounds:832,1152,277,114 +offsets:1,0,278,115 +max_max_shadow +bounds:1247,837,299,139 +offsets:1,1,300,141 +max_max_top +bounds:327,1485,258,93 +max_mouth_top +bounds:653,1275,186,104 +max_mouth_un +bounds:127,1392,187,97 +max_win +bounds:1519,1098,233,115 +offsets:1,0,235,116 +max_win_shadow +bounds:710,747,255,140 +offsets:0,0,256,141 +max_win_top +bounds:876,1372,215,94 +mega_circle_left_1 +bounds:1753,1973,39,39 +mega_circle_left_2 +bounds:1690,1795,66,66 +mega_circle_left_3 +bounds:1526,1867,59,58 +offsets:0,1,59,59 +mega_circle_right_1 +bounds:1794,1973,39,39 +mega_circle_right_2 +bounds:1758,1792,66,66 +mega_circle_right_3 +bounds:1819,1860,59,58 +offsets:0,1,59,59 +mega_circle_s +bounds:673,578,272,167 +offsets:0,1,272,168 +mega_circle_top +bounds:1975,1855,59,59 +mega_eye_glow_l +bounds:1381,1731,72,71 +offsets:12,13,97,97 +mega_eye_glow_r +bounds:1381,1731,72,71 +offsets:12,13,97,97 +mega_eyes_left +bounds:171,1994,45,31 +mega_eyes_right +bounds:774,1982,44,35 +mega_eyes_top_l +bounds:1198,1930,58,47 +offsets:0,1,59,50 +mega_eyes_top_r +bounds:1258,1930,59,47 +offsets:0,1,59,50 +mega_face +bounds:947,538,176,170 +mega_face s +bounds:1593,504,179,172 +mega_glow_1 +bounds:67,1898,52,69 +offsets:1,1,54,71 +rotate:90 +mega_glow_10 +bounds:1074,1980,39,36 +offsets:1,2,41,39 +mega_glow_2 +bounds:1455,1727,109,71 +offsets:2,1,113,73 +mega_glow_3 +bounds:1611,2015,27,27 +offsets:1,1,29,29 +mega_glow_4 +bounds:1835,1973,45,39 +offsets:1,1,47,41 +mega_glow_5 +bounds:1839,1920,52,50 +offsets:1,1,54,53 +mega_glow_6 +bounds:262,1893,69,53 +offsets:1,1,71,55 +mega_glow_7 +bounds:266,1992,67,32 +offsets:1,1,69,34 +mega_glow_8 +bounds:1609,1924,48,52 +offsets:1,1,50,54 +rotate:90 +mega_glow_9 +bounds:2,1908,51,63 +offsets:1,1,53,65 +rotate:90 +mega_glow_top_1 +bounds:1115,1979,36,52 +offsets:0,1,36,53 +rotate:90 +mega_glow_top_10 +bounds:562,2022,23,20 +mega_glow_top_2 +bounds:606,1880,93,55 +offsets:1,0,95,55 +mega_glow_top_3 +bounds:120,2032,10,10 +offsets:1,1,11,11 +mega_glow_top_4 +bounds:587,2021,29,21 +offsets:0,1,29,23 +mega_glow_top_5 +bounds:696,1984,36,34 +offsets:0,0,36,35 +mega_glow_top_6 +bounds:1411,1977,52,37 +offsets:1,0,53,37 +mega_glow_top_7 +bounds:235,2027,49,15 +offsets:1,1,51,16 +mega_glow_top_8 +bounds:78,2000,31,36 +offsets:0,0,32,36 +rotate:90 +mega_glow_top_9 +bounds:820,1982,35,46 +offsets:0,1,35,47 +rotate:90 +mega_leaf_1 +bounds:135,1836,122,57 +offsets:1,0,123,57 +mega_leaf_2 +bounds:227,1587,104,88 +offsets:2,1,106,89 +mega_leaf_3 +bounds:1585,1798,65,103 +offsets:1,0,66,105 +rotate:90 +mega_leaf_4 +bounds:1083,1931,46,113 +offsets:1,4,48,120 +rotate:90 +mega_leaf_5 +bounds:1587,1865,56,130 +offsets:0,2,56,132 +rotate:90 +mega_leaf_6 +bounds:136,1689,76,89 +offsets:0,4,76,93 +rotate:90 +mega_leaf_7 +bounds:323,1827,59,121 +offsets:0,0,59,122 +rotate:90 +mega_leana_01 +bounds:2,777,187,140 +mega_leana_02 +bounds:774,1740,321,67 +mega_leana_03 +bounds:196,916,260,128 +mega_mega +bounds:235,1164,360,113 +mega_mega_shadow +bounds:1222,694,384,141 +offsets:1,1,385,143 +mega_mega_top +bounds:533,1381,341,93 +mega_mouth_back_1 +bounds:1893,1919,93,50 +mega_mouth_back_2 +bounds:1566,1725,110,71 +mega_mouth_top +bounds:868,1981,110,35 +mega_mouth_un +bounds:410,1943,110,42 +mega_tongue +bounds:1545,1927,47,62 +offsets:3,3,53,65 +rotate:90 +mega_wheel1_shadow_x2 +bounds:717,362,214,221 +offsets:0,1,214,223 +rotate:90 +mega_win +bounds:2,1174,231,111 +mega_win_shadow +bounds:967,710,253,140 +offsets:0,1,254,142 +mega_win_top +bounds:1093,1370,215,94 +placeholder +bounds:1918,1708,75,75 +source_win_bg_x4 +bounds:1235,268,340,261 +offsets:8,7,356,274 +super_eyes_left +bounds:1853,2014,103,28 +offsets:0,0,104,28 +super_eyes_right +bounds:47,2004,29,29 +super_fangs_left +bounds:1463,2016,26,58 +offsets:1,1,29,59 +rotate:90 +super_fangs_right +bounds:1958,2014,28,58 +offsets:1,1,29,59 +rotate:90 +super_glow_1 +bounds:1988,1916,52,56 +offsets:1,1,54,58 +rotate:90 +super_glow_10 +bounds:2,451,178,234 +offsets:2,1,182,237 +rotate:90 +super_glow_11 +bounds:1883,1523,130,96 +offsets:2,2,134,99 +super_glow_2 +bounds:1465,1977,51,37 +offsets:1,1,53,39 +super_glow_3 +bounds:873,2018,24,62 +offsets:1,1,26,64 +rotate:90 +super_glow_4 +bounds:259,1830,62,61 +offsets:1,1,65,63 +super_glow_5 +bounds:1640,2015,27,27 +offsets:1,1,29,29 +super_glow_6 +bounds:1417,1236,114,146 +offsets:1,1,116,148 +rotate:90 +super_glow_7 +bounds:493,1885,53,111 +offsets:1,1,56,113 +rotate:90 +super_glow_8 +bounds:382,1991,34,33 +offsets:1,1,36,35 +super_glow_9 +bounds:1874,1621,149,85 +offsets:2,2,152,88 +super_glow_right_ear_l +bounds:937,2018,24,34 +offsets:1,1,26,36 +rotate:90 +super_glow_right_ear_l2 +bounds:937,2018,24,34 +offsets:1,1,26,36 +rotate:90 +super_glow_right_ear_r +bounds:973,2018,24,34 +offsets:1,1,26,36 +rotate:90 +super_glow_right_ear_r2 +bounds:973,2018,24,34 +offsets:1,1,26,36 +rotate:90 +super_glow_top_1 +bounds:1169,1979,36,40 +rotate:90 +super_glow_top_10 +bounds:451,590,165,220 +offsets:0,0,165,221 +rotate:90 +super_glow_top_11 +bounds:1411,1643,116,82 +offsets:1,1,117,83 +super_glow_top_2 +bounds:618,2021,34,21 +offsets:0,0,35,21 +super_glow_top_3 +bounds:11,2035,7,45 +offsets:1,0,8,46 +rotate:90 +super_glow_top_4 +bounds:522,1940,46,45 +offsets:0,0,47,45 +super_glow_top_5 +bounds:108,2033,9,10 +offsets:1,0,11,11 +rotate:90 +super_glow_top_6 +bounds:2,1502,98,129 +offsets:0,1,98,130 +rotate:90 +super_glow_top_7 +bounds:1559,1976,37,95 +offsets:0,0,38,95 +rotate:90 +super_glow_top_8 +bounds:410,2026,16,16 +offsets:1,0,18,16 +super_glow_top_9 +bounds:1678,1720,136,70 +offsets:0,1,136,71 +super_head +bounds:940,296,293,233 +super_head_decor +bounds:445,1580,219,86 +super_head_decor_shadow +bounds:1145,1561,222,89 +super_leaf_1 +bounds:1523,2016,53,26 +offsets:0,0,53,27 +super_leaf_2 +bounds:116,1997,53,29 +offsets:1,0,54,29 +super_leaf_3 +bounds:1954,1971,41,41 +super_leaf_4 +bounds:218,1993,46,32 +offsets:0,0,47,32 +super_leaf_5 +bounds:1578,2016,31,26 +offsets:1,0,32,26 +super_leaf_6 +bounds:1518,1977,39,37 +offsets:1,0,40,37 +super_leaf_7 +bounds:980,1981,35,44 +rotate:90 +super_leaf_8 +bounds:428,2025,17,52 +offsets:0,0,17,53 +rotate:90 +super_leaf_9 +bounds:1587,1347,102,116 +rotate:90 +super_mega +bounds:521,1034,363,116 +offsets:0,0,363,117 +super_mega_shadow +bounds:1608,678,386,141 +offsets:1,1,387,143 +super_mega_top +bounds:587,1476,340,92 +super_mouth +bounds:976,1810,118,62 +super_mouth_bg +bounds:624,1937,99,45 +super_mouth_top +bounds:518,1987,118,32 +super_super +bounds:1267,1804,236,64 +super_super_shadow +bounds:2,1767,237,67 +offsets:1,1,239,69 +super_super_top +bounds:995,1874,224,54 +super_win +bounds:597,1159,233,114 +offsets:1,0,234,115 +super_win_shadow +bounds:1548,837,256,139 +offsets:0,1,257,141 +super_win_top +bounds:929,1468,214,93 +total_blood_1 +bounds:1310,1352,275,97 +offsets:3,7,280,115 +total_blood_2 +bounds:1347,1116,170,118 +offsets:2,30,174,150 +total_blood_3 +bounds:1145,1466,200,93 +offsets:3,5,206,101 +total_blood_5 +bounds:1525,1545,256,90 +offsets:2,2,259,93 +total_coins_left +bounds:841,1268,268,100 +offsets:0,0,269,100 +total_coins_right +bounds:1705,1327,269,99 +total_column_left +bounds:1816,963,132,192 +rotate:90 +total_column_right +bounds:2,919,132,192 +rotate:90 +total_decor_left +bounds:776,1815,62,63 +rotate:90 +total_decor_right +bounds:911,1811,62,63 +rotate:90 +total_eye_l +bounds:471,1988,45,33 +total_eye_r +bounds:335,1992,45,32 +total_fire_left +bounds:1211,1979,36,56 +offsets:3,3,42,62 +rotate:90 +total_fire_right +bounds:1269,1979,36,56 +offsets:3,3,42,61 +rotate:90 +total_glow_00 +bounds:1061,852,184,134 +offsets:3,3,189,140 +total_glow_1 +bounds:2,1847,59,63 +offsets:1,1,62,65 +rotate:90 +total_glow_14 +bounds:842,1878,55,56 +offsets:2,1,58,58 +rotate:90 +total_glow_15 +bounds:2,1961,64,41 +offsets:1,1,66,43 +total_glow_16 +bounds:2,1602,85,131 +offsets:1,2,87,134 +rotate:90 +total_glow_17 +bounds:1009,2018,24,30 +offsets:1,1,26,32 +rotate:90 +total_glow_18 +bounds:163,1950,41,57 +offsets:1,1,44,59 +rotate:90 +total_glow_2 +bounds:718,2020,22,23 +offsets:1,1,25,25 +rotate:90 +total_glow_3 +bounds:1997,1970,47,42 +offsets:1,1,49,44 +total_glow_4 +bounds:1882,1972,70,40 +offsets:1,1,72,42 +total_glow_5 +bounds:841,1812,61,68 +offsets:1,2,63,72 +rotate:90 +total_glow_6 +bounds:1041,2018,40,24 +offsets:1,1,42,26 +total_glow_7 +bounds:1022,1932,59,46 +offsets:1,1,61,48 +total_glow_8 +bounds:1505,1800,65,78 +offsets:1,1,67,80 +rotate:90 +total_glow_9 +bounds:68,1956,45,42 +offsets:1,1,47,44 +total_glow_left +bounds:135,1596,90,91 +offsets:10,8,108,108 +total_glow_right +bounds:666,1576,91,90 +offsets:8,9,108,109 +total_glow_top_0 +bounds:886,1027,173,123 +total_glow_top_1 +bounds:115,1952,43,46 +offsets:0,0,44,47 +rotate:90 +total_glow_top_14 +bounds:1656,1974,39,38 +offsets:0,1,39,40 +total_glow_top_15 +bounds:1221,2017,48,25 +total_glow_top_16 +bounds:443,1753,69,114 +rotate:90 +total_glow_top_17 +bounds:82,2034,8,13 +offsets:0,1,8,14 +rotate:90 +total_glow_top_18 +bounds:1271,2017,25,39 +offsets:0,1,26,41 +rotate:90 +total_glow_top_1_ +bounds:1369,1551,154,90 +offsets:1,1,156,92 +total_glow_top_2 +bounds:2,2036,6,7 +offsets:0,0,7,7 +rotate:90 +total_glow_top_2_ +bounds:1111,1260,117,108 +offsets:1,1,119,110 +total_glow_top_3 +bounds:1312,2017,30,25 +offsets:1,1,31,26 +total_glow_top_3_ +bounds:446,1824,117,59 +offsets:1,1,119,61 +total_glow_top_4 +bounds:1083,2018,53,24 +offsets:1,0,54,24 +total_glow_top_4_ +bounds:1097,1733,282,69 +offsets:1,1,284,71 +total_glow_top_5 +bounds:570,1940,45,52 +offsets:0,0,45,53 +rotate:90 +total_glow_top_6 +bounds:58,2035,22,7 +offsets:1,0,24,8 +total_glow_top_7 +bounds:2,2005,43,28 +offsets:0,1,43,30 +total_glow_top_8 +bounds:1776,1922,49,61 +offsets:0,0,49,62 +rotate:90 +total_glow_top_9 +bounds:1344,2017,29,25 +offsets:0,1,29,26 +total_head_bottom +bounds:1754,1097,258,116 +offsets:0,1,258,117 +total_head_decor +bounds:1061,1001,123,155 +rotate:90 +total_head_top +bounds:1774,503,267,173 +total_light_red_x2 +bounds:2,92,390,281 +offsets:21,6,426,294 +total_mouth_back +bounds:1230,1242,185,108 +total_mouth_blood_4 +bounds:725,1935,175,44 +offsets:2,0,180,48 +total_steps +bounds:1125,531,466,161 +offsets:1,0,468,161 +total_total +bounds:1394,978,420,117 +offsets:0,0,421,117 +total_total_shadow +bounds:191,775,259,139 +offsets:1,2,261,142 +total_total_top +bounds:1347,1451,398,92 +total_whell1_shadow +bounds:458,899,434,126 +offsets:3,0,440,130 +total_win +bounds:1111,1126,234,114 +offsets:0,0,234,115 +total_win_shadow +bounds:2,631,447,142 +offsets:1,1,449,144 +total_win_top +bounds:1747,1428,214,93 + +wins_2.webp +size:2014,1766 +filter:Linear,Linear +scale:0.75 +big_glow_1 +bounds:1650,1452,312,315 +offsets:1,1,314,317 +rotate:90 +big_wheel_2 +bounds:1264,1147,323,323 +max_glow_left +bounds:854,837,308,425 +offsets:3,3,314,431 +rotate:90 +max_glow_right +bounds:427,856,307,425 +offsets:3,3,313,431 +rotate:90 +max_glow_right_top +bounds:2,1472,292,410 +offsets:1,0,293,410 +rotate:90 +max_head +bounds:1281,815,477,328 +offsets:0,4,477,332 +max_head_decor +bounds:1034,2,803,402 +max_steps +bounds:2,509,819,345 +mega_glow_left +bounds:414,1165,305,423 +offsets:5,4,314,431 +rotate:90 +mega_glow_left_top +bounds:414,1472,292,410 +offsets:0,0,293,410 +rotate:90 +mega_glow_right +bounds:839,1165,305,423 +offsets:4,4,313,431 +rotate:90 +mega_glow_right_top +bounds:826,1472,292,410 +offsets:1,0,293,410 +rotate:90 +super_glow_left +bounds:1589,1145,305,423 +offsets:5,4,314,431 +rotate:90 +super_glow_left_top +bounds:1238,1472,292,410 +offsets:0,0,293,410 +rotate:90 +super_glow_right +bounds:2,858,305,423 +offsets:4,4,313,431 +rotate:90 +super_glow_right_top +bounds:2,1178,292,410 +offsets:1,0,293,410 +rotate:90 +super_wheel2 +bounds:1272,406,412,407 +total_rays_02 +bounds:2,121,1030,358 +offsets:27,31,1085,390 +total_whell2 +bounds:823,481,447,354 +offsets:2,2,451,358 + +wins_3.webp +size:1920,1528 +filter:Linear,Linear +scale:0.75 +big_bg +bounds:998,546,920,542 +offsets:21,21,962,586 +big_wheel_1 +bounds:1421,1090,437,436 +offsets:0,0,437,437 +mega_bg +bounds:2,22,920,542 +offsets:20,21,962,586 +mega_wheel_1 +bounds:2,1110,416,431 +rotate:90 +mega_wheel_2 +bounds:2,659,448,448 +offsets:0,0,448,449 +super_bg +bounds:924,2,919,542 +offsets:21,21,962,586 +super_wheel1 +bounds:452,566,544,541 +offsets:3,4,551,548 +total_rays_01 +bounds:435,1109,984,417 +offsets:42,40,1064,458 + +wins_4.webp +size:1943,1864 +filter:Linear,Linear +scale:0.75 +max_rays_01 +bounds:1307,650,1212,614 +offsets:70,30,1334,645 +rotate:90 +max_rays_02 +bounds:2,1187,1303,675 +offsets:2,29,1353,704 +super_smoke +bounds:1099,61,842,587 +offsets:4,142,883,758 +total_bg +bounds:2,2,1095,646 +offsets:25,26,1145,698 + +wins_5.webp +size:1392,1113 +filter:Linear,Linear +scale:0.75 +max_bg +bounds:2,128,983,580 +offsets:22,22,1028,626 +rotate:90 +mega_smoke +bounds:584,549,806,562 +offsets:4,136,845,726 +total_whell1 +bounds:584,2,545,545 +offsets:3,3,551,551 diff --git a/src/assets/spines/wins/wins.skel b/src/assets/spines/wins/wins.skel new file mode 100644 index 0000000..f34f089 Binary files /dev/null and b/src/assets/spines/wins/wins.skel differ diff --git a/src/assets/spines/wins/wins.webp b/src/assets/spines/wins/wins.webp new file mode 100644 index 0000000..a851bec Binary files /dev/null and b/src/assets/spines/wins/wins.webp differ diff --git a/src/assets/spines/wins/wins_2.webp b/src/assets/spines/wins/wins_2.webp new file mode 100644 index 0000000..a100a8c Binary files /dev/null and b/src/assets/spines/wins/wins_2.webp differ diff --git a/src/assets/spines/wins/wins_3.webp b/src/assets/spines/wins/wins_3.webp new file mode 100644 index 0000000..a7559a8 Binary files /dev/null and b/src/assets/spines/wins/wins_3.webp differ diff --git a/src/assets/spines/wins/wins_4.webp b/src/assets/spines/wins/wins_4.webp new file mode 100644 index 0000000..f0e8b5a Binary files /dev/null and b/src/assets/spines/wins/wins_4.webp differ diff --git a/src/assets/spines/wins/wins_5.webp b/src/assets/spines/wins/wins_5.webp new file mode 100644 index 0000000..bf0b208 Binary files /dev/null and b/src/assets/spines/wins/wins_5.webp differ diff --git a/src/assets/spines/wins/wins_back.atlas b/src/assets/spines/wins/wins_back.atlas new file mode 100644 index 0000000..80fdd9d --- /dev/null +++ b/src/assets/spines/wins/wins_back.atlas @@ -0,0 +1,13 @@ + +wins_back.webp +size: 312, 152 +format: RGBA8888 +filter: Linear, Linear +repeat: none +BG + rotate: false + xy: 2, 2 + size: 308, 148 + orig: 308, 148 + offset: 0, 0 + index: -1 diff --git a/src/assets/spines/wins/wins_back.skel b/src/assets/spines/wins/wins_back.skel new file mode 100644 index 0000000..31a4adc Binary files /dev/null and b/src/assets/spines/wins/wins_back.skel differ diff --git a/src/assets/spines/wins/wins_back.webp b/src/assets/spines/wins/wins_back.webp new file mode 100644 index 0000000..891be3b Binary files /dev/null and b/src/assets/spines/wins/wins_back.webp differ diff --git a/src/assets/spines/wins/xbet_value.skel b/src/assets/spines/wins/xbet_value.skel new file mode 100644 index 0000000..6178d64 Binary files /dev/null and b/src/assets/spines/wins/xbet_value.skel differ diff --git a/src/assets/textures/bet_feature.png b/src/assets/textures/bet_feature.png new file mode 100644 index 0000000..ab3a82f Binary files /dev/null and b/src/assets/textures/bet_feature.png differ diff --git a/src/assets/textures/buy_bonus.png b/src/assets/textures/buy_bonus.png new file mode 100644 index 0000000..5f2d80f Binary files /dev/null and b/src/assets/textures/buy_bonus.png differ diff --git a/src/assets/textures/buy_freespins.png b/src/assets/textures/buy_freespins.png new file mode 100644 index 0000000..0805181 Binary files /dev/null and b/src/assets/textures/buy_freespins.png differ diff --git a/src/assets/textures/win_line.png b/src/assets/textures/win_line.png new file mode 100644 index 0000000..9e492cc Binary files /dev/null and b/src/assets/textures/win_line.png differ diff --git a/src/assets/translations/locales/de.json b/src/assets/translations/locales/de.json new file mode 100644 index 0000000..86540df --- /dev/null +++ b/src/assets/translations/locales/de.json @@ -0,0 +1,33 @@ +{ + "skip_intro": "Überspringen", + "respins_left_str_1": "Pfad des Kriegers", + "freespins_left_str_1": "FREISPIELE", + "freespins_left_str_2": "Übrig", + "freespins_label": "Freispiele", + "paytable_symbols_title": "Symbole", + "paytable_feature_title": "Zusatzfunktionen", + "paytable_wilds_title": "Wilds", + "paytable_bonus_game_title": "Bonusspiel", + "paytable_paylines_title": "Gewinnlinien", + "paytable_page_1_str_0": "Gewinne werden erzielt, wenn identische Symbole auf einer aktiven Gewinnlinie landen, die den vorgegebenen Gewinnlinienmustern folgt.", + "paytable_page_1_title_1": "Wild-Multiplikatoren", + "paytable_page_1_str_1": "Wild-Multiplikatoren erscheinen in 3 Varianten mit einem Wert bis zu 200x. Erhältst du 3 Wild-Multiplikatoren in einer Runde, wird der Pfad des Kriegers ausgelöst.", + "paytable_page_1_title_2": "Scatter", + "paytable_page_1_str_2": "Das Scatter-Symbol ist auf allen Walzen vorhanden. Erhältst du 3 oder mehr Scatter-Symbole, wird das Freispiele-Bonusspiel „Ritual“ ausgelöst.", + "paytable_page_3_title_1": "Wild-Drehung", + "paytable_page_3_str_1": "Die Funktion Wild-Drehung bietet mehr Möglichkeiten, Gewinnkombinationen zu bilden, und erhöht die Chancen, die Funktion Pfad des Kriegers auszulösen. Die Funktion Wild-Drehung führt bei jeder Drehung ein zufälliges Wild-Symbol ein, mit zufälligen Multiplikatoren von x1 bis x200. Die Spieler aktivieren es über das Bonuskauf-Pop-up. Die Oberfläche der Bonus-Schaltfläche ändert sich zu Wild-Drehung, um anzuzeigen, dass die Funktion aktiv ist. Die Spieler können Wild-Drehung über dasselbe Bonuskauf-Pop-up deaktivieren. Bei Aktivierung wird der Einsatz dreimal erhöht und andere Boni werden gesperrt.", + "paytable_page_4_title_1": "Pfad des Kriegers", + "paytable_page_4_str_1": "Ausgelöst durch 3 Wilds, die 3 Drehungen gewähren. Ausgelöste Wilds werden klebrig, und neue Wilds setzen die Drehungen auf 3 zurück und werden klebrig. Überlappende Wilds kombinieren ihre Werte. Gewinne werden bei jeder Drehung ausgezahlt und enden, wenn die Drehungen aufgebraucht sind.", + "paytable_page_5_title_1": "Ritual-Freispiele", + "paytable_page_5_str_1": "Bei 3 Scatter-Symbolen gibt es 10 Freispiele. Scatter-Symbole verwandeln die Walzen in Wild-Ritualwalzen mit gestapelten Multiplikatoren: Priester (2x-4x), Schamane (5x-20x), und Goldenes Idol (25x-200x). Multiplikatoren von mehreren Walzen werden zu den Gewinnen addiert.", + "start_page_1_desc": "MAX GEWINN X{MAX_MULTIPLIER}", + "start_page_2_desc": "WILDS MIT BIS ZU 200x-MULTIPLIKATOREN", + "start_page_3_desc": "REELE WERDEN MULTIPLIEREN JEDES NEUEN SPIN", + "buy_bonus_title": "Pfad des Kriegers", + "buy_bonus_desc": "Wiederholbare 3 Drehungen mit klebrigen Multiplikator-Wilds!", + "buy_freespins_title": "Ritual-Freispiele", + "buy_freespins_desc": "Freispiele mit bis zu 200x gestapelten Multiplikatoren!", + "bet_feature_title": "Wild-Drehung", + "bet_feature_desc": "1 Wilds mit garantierten Multiplikatoren von bis zu 200x bei jeder Drehung!", + "bet_feature_confirmation_desc": "Sind Sie sicher, dass Sie die Funktion Wild-Drehung aktivieren möchten?\n\nEinmal aktiviert, bleibt die Funktion aktiv, bis du sie deaktivierst!" +} diff --git a/src/assets/translations/locales/en-SOCIAL.json b/src/assets/translations/locales/en-SOCIAL.json new file mode 100644 index 0000000..c86afa4 --- /dev/null +++ b/src/assets/translations/locales/en-SOCIAL.json @@ -0,0 +1,33 @@ +{ + "skip_intro": "Skip", + "respins_left_str_1": "Warrior's Path", + "freespins_left_str_1": "FREE SPINS", + "freespins_left_str_2": "LEFT", + "freespins_label": "Free Spins", + "paytable_symbols_title": "Symbols", + "paytable_feature_title": "Features", + "paytable_wilds_title": "Wilds", + "paytable_bonus_game_title": "Bonus Game", + "paytable_paylines_title": "Lines", + "paytable_page_1_str_0": "Rewards are formed when identical symbols, or ones including Wild, land on an active award line, following the preset reward line patterns.", + "paytable_page_1_title_1": "Wild Multipliers", + "paytable_page_1_str_1": "Wild Multipliers appear in 3 variations carrying up to 200x in value. Landing 3 Wild Multipliers in 1 spin triggers Warrior's Path.", + "paytable_page_1_title_2": "Scatter", + "paytable_page_1_str_2": "Scatter symbol is present on all reels. Landing 3 or more Scatters triggers The Ritual Free Spins bonus game.", + "paytable_page_3_title_1": "Wild Spin", + "paytable_page_3_str_1": "The Wild Spins feature gives more opportunities to land rewards and increases chances for activating the Warrior's Path game. The Wild Spin feature introduces a random Wild symbol on each spin, with random multipliers from x1-x200. Players activate it through the Featured Spins pop-up. The bonus button interface changes to Wild Spin to indicate the feature is active. Players can deactivate Wild Spin using the same Featured Spins pop-up. Activation increases the play amount 3x and locks out other bonuses.", + "paytable_page_4_title_1": "Warrior's Path", + "paytable_page_4_str_1": "Triggered by 3 Wilds, awarding 3 spins. Triggering Wilds become sticky, and new ones reset spins to 3 and turn sticky. Overlapping Wilds combine values. Rewards are assigned on each spin, with the feature ending when no spins remain.", + "paytable_page_5_title_1": "Ritual Free Spins", + "paytable_page_5_str_1": "Landing 3 Scatter symbols awards 10 free spins. Scatters turn reels into Wild Ritual Reels with stacked multipliers: Priest (2x-4x), Shaman (5x-20x), and Golden Idol (25x-200x). Multipliers from multiple reels are added to the final reward.", + "start_page_1_desc": "MAX WIN X {MAX_MULTIPLIER}", + "start_page_2_desc": "WILDS WITH UP TO X200 VALUES", + "start_page_3_desc": "RITUAL REELS ARE STACKED WILDS WITH MULTIPLIERS", + "buy_bonus_title": "Warrior's Path", + "buy_bonus_desc": "Retriggable 3 spins with Sticky Wilds carrying multipliers!", + "buy_freespins_title": "Ritual Free Spins", + "buy_freespins_desc": "Free Spin with up to 200x Stacked Multipliers!", + "bet_feature_title": "Wild Spin", + "bet_feature_desc": "1 Wild with up to 200x multipliers guaranteed on each spin!", + "bet_feature_confirmation_desc": "Are you sure you want to activate the Wild Spin feature?\n\nOnce activated, the feature remains active until you disable it! " +} diff --git a/src/assets/translations/locales/en.json b/src/assets/translations/locales/en.json new file mode 100644 index 0000000..3a2c230 --- /dev/null +++ b/src/assets/translations/locales/en.json @@ -0,0 +1,33 @@ +{ + "skip_intro": "Skip", + "respins_left_str_1": "Warrior's path", + "freespins_left_str_1": "FREE SPINS", + "freespins_left_str_2": "LEFT", + "freespins_label": "Free Spins", + "paytable_symbols_title": "Symbols", + "paytable_feature_title": "Features", + "paytable_wilds_title": "Wilds", + "paytable_bonus_game_title": "Bonus Game", + "paytable_paylines_title": "Paylines", + "paytable_page_1_str_0": "Winnings are formed when identical symbols land on an active payline, following preset win line patterns.", + "paytable_page_1_title_1": "Wild Multipliers", + "paytable_page_1_str_1": "Wild Multipliers appear in 3 variations carrying up to 200x in value. Landing 3 Wild Multipliers in 1 spin triggers Warrior's Path.", + "paytable_page_1_title_2": "Scatter", + "paytable_page_1_str_2": "Scatter symbol is present on all reels. Landing 3 or more Scatters triggers The Ritual Free Spins bonus game.", + "paytable_page_3_title_1": "Wild Spin", + "paytable_page_3_str_1": "The Wild Spins feature provides more opportunities to form winning combinations and increases the chances of triggering the Warrior's path game. The Wild Spin feature introduces a random wild symbol on each spin, with multipliers ranging from x1 to x200.\nPlayers activate it through the Bonus Buy pop-up. The bonus button interface changes to Wild Spin to indicate the feature is active. Players can deactivate Wild Spin using the same Bonus Buy pop-up. Activation increases the bet amount 3x and locks out other bonuses.", + "paytable_page_4_title_1": "Warrior's Path", + "paytable_page_4_str_1": "Triggered by 3 Wilds, awarding 3 spins. Triggering Wilds become sticky, and new ones reset spins to 3 and turn sticky. Overlapping Wilds combine values. Wins pay on each spin, ending when spins are used.", + "paytable_page_5_title_1": "Ritual Free Spins", + "paytable_page_5_str_1": "Landing 3 Scatter symbols awards 10 free spins. Scatters turn reels into Wild Ritual Reels with stacked multipliers: Priest (2x-4x), Shaman (5x-20x), and Golden Idol (25x-200x). Multipliers from multiple reels are added to wins.", + "start_page_1_desc": "MAX WIN X {MAX_MULTIPLIER}", + "start_page_2_desc": "WILDS WITH UP TO X200 VALUES", + "start_page_3_desc": "RITUAL REELS ARE STACKED WILDS WITH MULTIPLIERS", + "buy_bonus_title": "Warrior's Path", + "buy_bonus_desc": "Retriggable 3 spins with Sticky Wilds carrying multipliers!", + "buy_freespins_title": "Ritual Free Spins", + "buy_freespins_desc": "Free Spin with up to 200x Stacked Multipliers!", + "bet_feature_title": "Wild Spin", + "bet_feature_desc": "1 Wild with up to 200x multipliers guaranteed on each spin!", + "bet_feature_confirmation_desc": "Are you sure you want to activate the Wild Spin feature?\n\nOnce activated, the feature remains active until you disable it! " +} diff --git a/src/assets/translations/locales/es.json b/src/assets/translations/locales/es.json new file mode 100644 index 0000000..4baf92a --- /dev/null +++ b/src/assets/translations/locales/es.json @@ -0,0 +1,33 @@ +{ + "skip_intro": "Omitir", + "respins_left_str_1": "Senda del Guerrero", + "freespins_left_str_1": "GIROS GRATIS", + "freespins_left_str_2": "Restantes", + "freespins_label": "Giros gratis", + "paytable_symbols_title": "Símbolos", + "paytable_feature_title": "Características", + "paytable_wilds_title": "Wilds", + "paytable_bonus_game_title": "Juego de Bonificación", + "paytable_paylines_title": "Líneas de pago", + "paytable_page_1_str_0": "Las ganancias se obtienen cuando los símbolos idénticos caen en una línea de pago activa, siguiendo patrones de línea de ganancias preestablecidos.", + "paytable_page_1_title_1": "Multiplicadores Wild", + "paytable_page_1_str_1": "Los Multiplicadores Wild aparecen en 3 variantes con un valor de hasta 200x. Si consigues 3 Multiplicadores Wild en 1 giro, se activa la Senda del Guerrero.", + "paytable_page_1_title_2": "Scatter", + "paytable_page_1_str_2": "El símbolo Scatter está presente en todos los rodillos. 3 o más Scatters activan el juego de bonificación Giros Gratis Rituales.", + "paytable_page_3_title_1": "Wild spin", + "paytable_page_3_str_1": "La función Wild Spins da más oportunidades de formar combinaciones ganadoras y aumenta las posibilidades de activar la función Senda del Guerrero. La función Wild Spin introduce un símbolo Wild aleatorio en cada giro, con multiplicadores aleatorios de x1 a x200.\nLos jugadores la activan a través de la ventana emergente de comprar bonus. La interfaz del botón de bonus cambia a Wild Spin indicando que la función está activa. Se puede desactivar Wild Spin usando la misma ventana emergente de comprar bonus. La activación aumenta el importe de la apuesta 3 veces y bloquea otras bonificaciones.", + "paytable_page_4_title_1": "Senda del Guerrero", + "paytable_page_4_str_1": "Se activa con 3 Wilds y otorga 3 giros. Los Glifos que se activan se vuelven pegajosos, y los nuevos reinician los giros a 3 y se vuelven pegajosos. Los Glifos superpuestos combinan valores. Las ganancias se pagan en cada giro y terminan cuando se agotan los giros.", + "paytable_page_5_title_1": "Giros Gratis Rituales", + "paytable_page_5_str_1": "La combinación de 3 símbolos Scatter otorgan 10 Giros Gratis. Los Scatters convierten los rodillos en Rodillos Rituales Wild con multiplicadores apilados: Sacerdote (2x-4x), Chamán (5x-20x) y Ídolo Dorado (25x-200x). Los multiplicadores de varios rodillos se añaden a las ganancias.", + "start_page_1_desc": "GANANCIA MÁX. X{MAX_MULTIPLIER}", + "start_page_2_desc": "WILDS CON VÁLUES A X200", + "start_page_3_desc": "LOS RODILLOS RITUALES SON WILDS APILADOS CON MULTIPLICADORES", + "buy_bonus_title": "Senda del Guerrero", + "buy_bonus_desc": "¡3 giros rejugables con Wilds Pegajosos que contienen multiplicadores!", + "buy_freespins_title": "Giros Gratis Rituales", + "buy_freespins_desc": "Giros Gratis con Multiplicadores acumulados de hasta 200x!", + "bet_feature_title": "Wild spin", + "bet_feature_desc": "¡1 Wilds con multiplicadores de hasta 200x garantizados en cada giro!", + "bet_feature_confirmation_desc": "¿Seguro que quieres activar la función Wild Spin?\n\n¡Una vez activada, la función permanecerá activa hasta que la desactives! " +} diff --git a/src/assets/translations/locales/fi.json b/src/assets/translations/locales/fi.json new file mode 100644 index 0000000..920bfd0 --- /dev/null +++ b/src/assets/translations/locales/fi.json @@ -0,0 +1,33 @@ +{ + "skip_intro": "Ohita", + "respins_left_str_1": "Soturin polku", + "freespins_left_str_1": "ILMAISPYÖRÄYTYKSET", + "freespins_left_str_2": "Jäljellä", + "freespins_label": "Ilmaispyöräytykset", + "paytable_symbols_title": "Symbolit", + "paytable_feature_title": "Ominaisuudet", + "paytable_wilds_title": "Wilds", + "paytable_bonus_game_title": "Bonuspeli", + "paytable_paylines_title": "Voittolinjat", + "paytable_page_1_str_0": "Pelaaja saa voittoja hankkimalla samoja symboleja käytössä olevalle voittolinjalle etukäteen määritettyjen voittoasetusten mukaisesti.", + "paytable_page_1_title_1": "Wild-kertoimet", + "paytable_page_1_str_1": "Wild-kertoimista on tarjolla 3 eri versiota, jotka voivat olla arvoltaan jopa 200-kertaisia. 3:n Wild-kertoimen hankkiminen 1:llä pyöräytyksellä käynnistää Soturin polun.", + "paytable_page_1_title_2": "Scatter", + "paytable_page_1_str_2": "Scatter-symboli löytyy kaikista rullista. 3:n tai useamman Scatter-symbolin hankkiminen käynnistää rituaali-ilmaispyöräytysten bonuspelin.", + "paytable_page_3_title_1": "Wild pyöräytys", + "paytable_page_3_str_1": "Wild Pyöräytys-ominaisuus antaa enemmän mahdollisuuksia muodostaa voittoyhdistelmiä ja lisää mahdollisuuksia Soturin polku -ominaisuuden käynnistämiseen. Wild Pyöräytys-ominaisuus tuo jokaisella kierroksella satunnaisen Wild-symbolin, jonka kertoimet vaihtelevat välillä x1 ja x200.\nPelaaja voi aktivoida sen Osta Bonus-ponnahdusikkunan kautta. Bonuspainikke muuttuu Wild Pyöräytys-painikkeeksi, jolloin se osoittaa, että ominaisuus on aktiivinen. Pelaaja voi poistaa Wild pyöräytys-ominaisuuden käytöstä saman Osta Bonus-ponnahdusikkunan kautta. Aktivointi kasvattaa panoksen määrän kolminkertaiseksi ja sulkee muut bonukset pois.", + "paytable_page_4_title_1": "Soturin polku", + "paytable_page_4_str_1": "3 Wildin käynnistämä, tarjoaa 3 pyöräytystä. Ominaisuuden aktivoineet kuviot muuttuvat tarrautuviksi, ja uudet kuviot palauttavat pyöräytysten määrän kolmeen ja muuttuvat tarrautuviksi. Päällekkäiset Wildit yhdistävät arvoja. Voitot maksetaan jokaisella kierroksella, ja ne päättyvät, kun kierrokset on käytetty.", + "paytable_page_5_title_1": "Rituaali-ilmaispyöräytykset", + "paytable_page_5_str_1": "Kolmen Scatter-symbolin hankkiminen antaa 10 Ilmaispyöräytystä. Scatterit muuttavat rullat kasautuvilla kertoimilla varustetuiksi Rituaali-Wildrulliksi: Pappi (2x-4x), Shamaani (5x-20x) ja Kultainen patsas (25x-200x). Eri rullien kertoimet lasketaan yhteen voittoja laskettaessa.", + "start_page_1_desc": "MAKSIMI VOITTO X{MAX_MULTIPLIER}", + "start_page_2_desc": "PERUSTEET X200 ARTIKLAN MUKAISESTI", + "start_page_3_desc": "RITUAALISET RULLAT OVAT PINOTTUJA VILLEJÄ, JOISSA ON KERTOIMIA", + "buy_bonus_title": "Soturin polku", + "buy_bonus_desc": "3 uudelleen käynnistettävää pyöräytystä, jotka sisältävät kertoimilla varustettuja Tarrautuvia Wildeja!", + "buy_freespins_title": "Rituaali-ilmaispyöräytykset", + "buy_freespins_desc": "Jopa 200-kertaisilla kasautuvilla kertoimilla varustettu ilmaispyöräytys!", + "bet_feature_title": "Wild pyöräytys", + "bet_feature_desc": "1 Wildia, jotka antavat jopa 200-kertaisia kertoimia jokaisella pyöräytyksellä!", + "bet_feature_confirmation_desc": "Oletko varma, että haluat aktivoida Wild pyöräytys -toiminnon?\n\nKun toiminto on aktivoitu, se pysyy aktiivisena, kunnes poistat sen käytöstä! " +} diff --git a/src/assets/translations/locales/fr-CA.json b/src/assets/translations/locales/fr-CA.json new file mode 100644 index 0000000..789c079 --- /dev/null +++ b/src/assets/translations/locales/fr-CA.json @@ -0,0 +1,33 @@ +{ + "skip_intro": "Passer", + "respins_left_str_1": "Chemin du guerrier", + "freespins_left_str_1": "TOURS GRATUITS", + "freespins_left_str_2": "Restants", + "freespins_label": "Tours Gratuits", + "paytable_symbols_title": "Symboles", + "paytable_feature_title": "Fonctionnalités", + "paytable_wilds_title": "Wilds", + "paytable_bonus_game_title": "Partie bonus", + "paytable_paylines_title": "Lignes de paiement", + "paytable_page_1_str_0": "Les gains sont formés lorsque des symboles identiques atterrissent sur une ligne de paiement active, suivant des modèles de lignes gagnantes prédéfinis.", + "paytable_page_1_title_1": "Multiplicateurs Wild", + "paytable_page_1_str_1": "Les multiplicateurs Wild apparaissent dans 3 variantes portant une valeur jusqu'à x 200 la mise. L'obtention de 3 multiplicateurs Wild en 1 tour déclenche le Chemin du guerrier.", + "paytable_page_1_title_2": "Scatter", + "paytable_page_1_str_2": "Le symbole Scatter est présent sur tous les rouleaux. L'obtention de 3 symboles Scatters ou plus déclenche le jeu boni Tours gratuits Le rituel.", + "paytable_page_3_title_1": "Tour Wild", + "paytable_page_3_str_1": "La fonctionnalité de tours Wild offre plus de possibilités de former des combinaisons gagnantes et augmente les chances de déclencher la fonctionnalité Chemin du guerrier. La fonctionnalité de tours Wild introduit un symbole Wild aléatoire à chaque tour, avec des multiplicateurs aléatoires de x1 à x200.\nLes joueurs l’activent à partir de la fenêtre contextuelle d’achat de bonus. L’interface du bouton de bonus se change en tour Wild pour indiquer que la fonctionnalité est active. Les joueurs peuvent désactiver le tour Wild en utilisant la même fenêtre contextuelle d’achat de bonus. L’activation augmente le montant de la mise par 3 et bloque les autres bonus.", + "paytable_page_4_title_1": "Chemin du guerrier", + "paytable_page_4_str_1": "Déclenché par 3 Wilds et attribue 3 tours. Les glyphes déclencheurs deviennent collants et les nouveaux réinitialisent le nombre de tours à 3 et deviennent collants. Les Wilds qui se chevauchent combinent des valeurs. Les gains sont payés à chaque tour et se terminent lorsque les tours sont utilisés.", + "paytable_page_5_title_1": "Rituel de Tours gratuits", + "paytable_page_5_str_1": "L'atterrissage de 3 symboles Scatter sur les rouleaux attribue 10 Tours gratuits. Les symboles Scatters transforment les rouleaux en rouleaux rituels Wild avec des multiplicateurs empilés : Prêtre (x 2 à x 4), chaman (x 5 à x 20) et Idole dorée (x 25 à x 200). Les multiplicateurs de plusieurs rouleaux sont ajoutés aux gains.", + "start_page_1_desc": "GAIN MAX X{MAX_MULTIPLIER}", + "start_page_2_desc": "WILDS AVEC DES VALEURS ALLANT JUSQU'À X200", + "start_page_3_desc": "LES REELS SONT EMPILÉS AVEC DES MULTIPLICATEURS WILD À CHAQUE NOUVEAU TOUR", + "buy_bonus_title": "Chemin du guerrier", + "buy_bonus_desc": "3 tours redéclenchables avec des Wilds collants portant des multiplicateurs!", + "buy_freespins_title": "Rituel de Tours gratuits", + "buy_freespins_desc": "Tours gratuits avec des multiplicateurs empilés jusqu'à x 200!", + "bet_feature_title": "Tour Wild", + "bet_feature_desc": "1 symboles Wilds avec des multiplicateurs jusqu'à x 200 garantis à chaque tour !", + "bet_feature_confirmation_desc": "Êtes-vous sûr de vouloir activer la fonctionnalité de tour Wild ?\n\nUne fois activée, la fonctionnalité reste active jusqu’à ce que vous la désactiviez !" +} diff --git a/src/assets/translations/locales/nl.json b/src/assets/translations/locales/nl.json new file mode 100644 index 0000000..9b67293 --- /dev/null +++ b/src/assets/translations/locales/nl.json @@ -0,0 +1,33 @@ +{ + "skip_intro": "Overslaan", + "respins_left_str_1": "Pad van de Krijger", + "freespins_left_str_1": "GRATIS SPINS", + "freespins_left_str_2": "OVER", + "freespins_label": "Gratis spins", + "paytable_symbols_title": "Symbolen", + "paytable_feature_title": "Functies", + "paytable_wilds_title": "Wilds", + "paytable_bonus_game_title": "Bonusspel", + "paytable_paylines_title": "Winlijnen", + "paytable_page_1_str_0": "Winsten worden gevormd wanneer identieke symbolen op een actieve winlijn landen, volgens vooraf ingestelde winlijnpatronen.", + "paytable_page_1_title_1": "Wild-vermenigvuldigers", + "paytable_page_1_str_1": "Match de kleuren van de bubbles en lijnen om de X-waarde van de lijn toe te passen.\nElke nieuwe spin wijst tot een 20x vermenigvuldiger toe aan elke lijn.", + "paytable_page_1_title_2": "Scatter", + "paytable_page_1_str_2": "Het Scatter-symbool is aanwezig op alle rollen. Het landen van 3 of meer Scatters activeert de Rituele Gratis spins bonusronde.", + "paytable_page_3_title_1": "Wild spin", + "paytable_page_3_str_1": "De Wild Spins-functie biedt meer mogelijkheden om winnende combinaties te vormen en vergroot de kans om het Pad van de Krijger te activeren. De Wild spin-functie introduceert een willekeurig Wild-symbool bij elke spin, met willekeurige vermenigvuldigers van x1 tot x200.\nSpelers activeren het via de pop-up voor de Koop bonus-optie. Het uiterlijk van de bonusknop verandert in Wild spin om aan te geven dat de functie actief is. Spelers kunnen Wild spin uitschakelen via dezelfde pop-up voor de Koop bonus-optie. Activering verhoogt het inzetbedrag 3x en sluit andere bonussen uit.", + "paytable_page_4_title_1": "Pad van de Krijger", + "paytable_page_4_str_1": "Geactiveerd door 3 Wilds, die 3 spins toekennen. De activerende Wilds worden plakkerig, en nieuwe Wilds resetten de spins naar 3 en worden plakkerig. Overlappende Wilds combineren de waarden. Winsten worden uitbetaald bij elke spin, en eindigen wanneer de spins zijn opgebruikt.", + "paytable_page_5_title_1": "Rituele Gratis spins", + "paytable_page_5_str_1": "Het landen van 3 Scatter-symbolen geeft 10 gratis spins. Scatters veranderen de rollen in Wild Rituele Rollen met gestapelde vermenigvuldigers: Priester (2x-4x), Sjamaan (5x-20x) en Gouden Idool (25x-200x). Vermenigvuldigers van meerdere rollen worden bij winsten opgeteld.", + "start_page_1_desc": "Max. WINST X{MAX_MULTIPLIER}", + "start_page_2_desc": "WILDEN MET U NAAR X200 VALUES", + "start_page_3_desc": "RITUELE ROLLEN ZIJN GESTAPELDE WILDS MET VERMENIGVULDIGERS", + "buy_bonus_title": "Pad van de Krijger", + "buy_bonus_desc": "Heractiverbare 3 spins met Plakkerige Wilds die vermenigvuldigers dragen!", + "buy_freespins_title": "Rituele Gratis spins", + "buy_freespins_desc": "Gratis Spin met gestapelde vermenigvuldigers tot 200x!", + "bet_feature_title": "Wild spin", + "bet_feature_desc": "1 Wilds met vermenigvuldigers tot 200x gegarandeerd bij elke spin!", + "bet_feature_confirmation_desc": "Weet je zeker dat je de Wild spin-functie wilt activeren?\n\nEenmaal geactiveerd blijft de functie actief totdat je hem uitschakelt!" +} diff --git a/src/assets/translations/locales/no.json b/src/assets/translations/locales/no.json new file mode 100644 index 0000000..65fe58c --- /dev/null +++ b/src/assets/translations/locales/no.json @@ -0,0 +1,33 @@ +{ + "skip_intro": "Hopp over", + "respins_left_str_1": "Krigerens vei", + "freespins_left_str_1": "GRATISSPINN", + "freespins_left_str_2": "igjen", + "freespins_label": "Gratisspinn", + "paytable_symbols_title": "Symboler", + "paytable_feature_title": "Funksjoner", + "paytable_wilds_title": "Wilds", + "paytable_bonus_game_title": "Bonusspill", + "paytable_paylines_title": "Gevinstlinjer", + "paytable_page_1_str_0": "Gevinster dannes når identiske symboler lander på en aktiv gevinstlinje, i henhold til forhåndsbestemte mønstre.", + "paytable_page_1_title_1": "Wild-multiplikatorer", + "paytable_page_1_str_1": "Wild multiplikatorer vises i 3 varianter og har inntil 200x av verdien. Å få 3 Wild-multiplikatorer i 1 spinn utløser funksjonen Krigerens vei.", + "paytable_page_1_title_2": "Scatter", + "paytable_page_1_str_2": "Scatter-symbol er til stedet på alle hjulene. Å få 3 eller flere Scatter-symboler utløser et rituelt Gratisspinn-bonusspill.", + "paytable_page_3_title_1": "Wild-spinn", + "paytable_page_3_str_1": "Wild-spinnfunksjonen gir flere muligheter til å skape vinnende kombinasjoner, og øker sjansene for å utløse Krigerens vei-funksjonen. Wild-spinnfunksjonen introduserer et tilfeldig wild-symbol ved hvert spinn, med tilfeldige multiplikatorer fra x1 til x200.\nSpillere aktiverer den via bonus kjøp-sprettoppvinduet. Bonusknappgrensesnittet endres til Wild-spinn for å indikere at funksjonen er aktiv. Spillere kan deaktivere Wild-spinn ved å bruke det samme Bonus kjøp-sprettoppvinduet. Aktivering øker innsatsbeløpet med 3x, og låser ute andre bonuser.", + "paytable_page_4_title_1": "Krigerens vei", + "paytable_page_4_str_1": "Utløst av 3 Wilds, og tildeler 3 spinn. Utløsende Wilds blir klissete, og nye tilbakestiller spinn til 3 og blir klissete. Overlappende Wilds kombinerer verdier. Gevinster betaler på hvert spinn, og slutter når spinnene er brukt opp.", + "paytable_page_5_title_1": "Rituelle Gratisspinn", + "paytable_page_5_str_1": "3 Scatter-symboler gir 10 Gratisspinn. Scatter-symboler forvandler hjul til wild-ritualhjul med stablede multiplikatorer: Prest (2x-4x), Sjaman (5x-20x) og Gyllent Idol (25x-200x). Multiplikatorer fra flere hjul legges sammen for å øke gevinstene.", + "start_page_1_desc": "MAKS. GEVINST X{MAX_MULTIPLIER}", + "start_page_2_desc": "WILDS MED OPP TIL X200 VERDIER", + "start_page_3_desc": "RITUELLE HJUL ER STABLET WILDS MED MULTIPLIKATORER", + "buy_bonus_title": "Krigerens vei", + "buy_bonus_desc": "3 respinn som kan reaktiveres, med klebrige Wild med multiplikatorer!", + "buy_freespins_title": "Rituelle Gratisspinn", + "buy_freespins_desc": "Gratisspinn med opptil 200x stablede multiplikatorer!", + "bet_feature_title": "Wild-spinn", + "bet_feature_desc": "1 Wild-symboler med opptil 200x multiplikatorer er garantert på hvert spinn!", + "bet_feature_confirmation_desc": "Er du sikker på at du vil aktivere wilda-spinnfunksjonen?\n\nNår funksjonen er aktivert, forblir den aktiv frem til du deaktiverer den! " +} diff --git a/src/assets/translations/locales/pt-BR.json b/src/assets/translations/locales/pt-BR.json new file mode 100644 index 0000000..4c4ee66 --- /dev/null +++ b/src/assets/translations/locales/pt-BR.json @@ -0,0 +1,33 @@ +{ + "skip_intro": "Pular", + "respins_left_str_1": "Caminho do Guerreiro", + "freespins_left_str_1": "RODADAS GRÁTIS", + "freespins_left_str_2": "RESTANTES", + "freespins_label": "Rodadas Grátis", + "paytable_symbols_title": "Símbolos", + "paytable_feature_title": "Recursos", + "paytable_wilds_title": "Wilds", + "paytable_bonus_game_title": "Jogo bônus", + "paytable_paylines_title": "Linhas de pagamento", + "paytable_page_1_str_0": "Ganhos são formados quando símbolos idênticos caem em uma linha de pagamento ativa, seguindo padrões de linha ganhadora predefinidos.", + "paytable_page_1_title_1": "Multiplicadores Wild", + "paytable_page_1_str_1": "Multiplicadores Wild aparecem em 3 variações, carregando até 200x de valor. Obter 3 Multiplicadores Wild em 1 giro ativa o Caminho do Guerreiro.", + "paytable_page_1_title_2": "Scatter", + "paytable_page_1_str_2": "O símbolo Scatter está presente em todos os cilindros. Obter 3 ou mais Scatters aciona o jogo de bônus de Rodadas Grátis de Ritual.", + "paytable_page_3_title_1": "Giro Wild", + "paytable_page_3_str_1": "O recurso de Giro Wild oferece mais chances de formar combinações vencedoras e acionar o recurso Caminho do Guerreiro. O Giro Wild adiciona um símbolo Wild aleatório a cada giro, com multiplicadores aleatórios de x1 a x200.\nOs jogadores podem ativá-lo a partir do pop-up de compra de bônus. O visual do botão de bônus muda para Giro Wild quando o recurso está ativo. Os jogadores podem desativar o Giro Wild usando o mesmo pop-up de compra de bônus. A ativação triplica o valor da aposta e bloqueia outros bônus.", + "paytable_page_4_title_1": "Caminho do Guerreiro", + "paytable_page_4_str_1": "Acionado por 3 Wilds, oferecendo 3 giros. Wilds acionadores tornam-se pegajosos e wilds novos retornam o número de giros a 3 e se tornam pegajosos. Wilds sobrepostos combinam seus valores. Ganhos são pagos a cada giro, acabando quando giros são usados.", + "paytable_page_5_title_1": "Giros Grátis de Ritual", + "paytable_page_5_str_1": "Obter 3 símbolos Scatter oferece 10 Rodadas Grátis. Scatters transformam cilindros em cilindros Wild de Ritual com multiplicadores acumulados: Padre (2x-4x), Xamã (5x-20x) e Ídolo Dourado (25x-200x). Multiplicadores de cilindros diferentes são somados aos ganhos.", + "start_page_1_desc": "GANHO MÁXIMO X{MAX_MULTIPLIER}", + "start_page_2_desc": "SEUS COM VALORES PARA OS X200 VALORES", + "start_page_3_desc": " CILINDROS DE RITUAIS FICAM CHEIOS DE WILDS COM MULTIPLICADORES", + "buy_bonus_title": "Caminho do Guerreiro", + "buy_bonus_desc": "3 giros reativáveis com Wild Pegajosos que carregam multiplicadores!", + "buy_freespins_title": "Giros Grátis de Ritual", + "buy_freespins_desc": "Rodadas Grátis com multiplicadores acumulados de ate 200x!", + "bet_feature_title": "Giro Wild", + "bet_feature_desc": "1 Wilds com multiplicadores de até 200x garantidos a cada giro!", + "bet_feature_confirmation_desc": "Você tem certeza que quer ativar o Giro Wild?\n\nUma vez ativado, o recurso permanece ativo até ser desativado! " +} diff --git a/src/assets/translations/locales/ru.json b/src/assets/translations/locales/ru.json new file mode 100644 index 0000000..496fe21 --- /dev/null +++ b/src/assets/translations/locales/ru.json @@ -0,0 +1,33 @@ +{ + "skip_intro": "Пропустить", + "respins_left_str_1": "Путь Воина", + "freespins_left_str_1": "ФРИСПИНЫ", + "freespins_left_str_2": "ОСТАЛОСЬ", + "freespins_label": "Фриспины", + "paytable_symbols_title": "Символы", + "paytable_feature_title": "Игровые функции", + "paytable_wilds_title": "Вайлды", + "paytable_bonus_game_title": "Бонусная игра", + "paytable_paylines_title": "Линии выплат", + "paytable_page_1_str_0": "Выигрыши формируются, когда идентичные символы выпадают на активной линии выплат в соответствии с заданными выигрышными линиями.", + "paytable_page_1_title_1": "Вайлды с множителями", + "paytable_page_1_str_1": "Вайлды с множителями бывают трёх видов и могут достигать x200. Выпадение 3 диких множителей за одно вращение активирует функцию «Путь Воина».", + "paytable_page_1_title_2": "Скаттер", + "paytable_page_1_str_2": "Скаттер присутствует на всех барабанах. Выпадение 3 или более скаттеров активирует бонусную игру Фриспины: Ритуал.", + "paytable_page_3_title_1": "Вайлд спин", + "paytable_page_3_str_1": "Функция «Вайлд спин» дает больше возможностей для формирования выигрышных комбинаций и увеличивает шансы на запуск функции «Путь Воина». С функцией «Вайлд спин» при каждом вращении выпадает случайный вайлд со случайным множителем от х1 до х200.\nИгроки активируют функцию через окно покупки бонуса. Текст кнопки покупки бонуса меняется на «Вайлд спин», указывая на активацию функции. Игроки могут выключить «Вайлд спин» в том же окне покупки бонуса. Активация функции увеличивает сумму ставки в три раза и блокирует другие бонусы.", + "paytable_page_4_title_1": "Путь Воина", + "paytable_page_4_str_1": "Активируется при выпадении 3 Вайлдов и дает 3 вращения. Эти вайлды фиксируются, а новые восстанавливают количество вращений до 3 и тоже фиксируются. При выпадении нового Вайлда на уже занятое поле, значения Вайлдов суммируются. Выигрыши выплачиваются после каждого вращения, а функция завершается, когда заканчиваются спины.", + "paytable_page_5_title_1": "Фриспины: Ритуал", + "paytable_page_5_str_1": "Выпадение 3 Скаттеров приносит 10 Фриспинов. Скаттеры превращают барабаны в Ритуальные барабаны со стопками множителей: Жрец (2x–4x), Шаман (5x–20x) и Золотой идол (25x–200x). Множители с нескольких барабанов суммируются и применяются к выигрышу.", + "start_page_1_desc": "МАКСИМАЛЬНЫЙ ВЫИГРЫШ {MAX_MULTIPLIER}X", + "start_page_2_desc": "ВАЙЛДЫ СО ЗНАЧЕНИЯМИ ДО Х200", + "start_page_3_desc": "НА РИТУАЛЬНЫХ БАРАБАНАХ СЛОЖЕНЫ ВАЙЛДЫ С МНОЖИТЕЛЯМИ", + "buy_bonus_title": "Путь Воина", + "buy_bonus_desc": "Повторно активируемые 3 спина с фиксируемыми Вайлдами и множителями!", + "buy_freespins_title": "Фриспины: Ритуал", + "buy_freespins_desc": "Фриспины со стопками множителей до x200!", + "bet_feature_title": "Вайлд спин", + "bet_feature_desc": "1 Вайлда с множителями до x200 гарантированы в каждом вращении!", + "bet_feature_confirmation_desc": "Вы уверены, что хотите активировать функцию Вайлд-спин?\n\nПосле активации функция будет работать, пока вы ее не отключите! " +} diff --git a/src/assets/translations/locales/sv.json b/src/assets/translations/locales/sv.json new file mode 100644 index 0000000..6fb9fda --- /dev/null +++ b/src/assets/translations/locales/sv.json @@ -0,0 +1,33 @@ +{ + "skip_intro": "Hoppa över", + "respins_left_str_1": "Krigarens väg", + "freespins_left_str_1": "GRATISSNURR", + "freespins_left_str_2": "KVAR", + "freespins_label": "Gratissnurr", + "paytable_symbols_title": "Symboler", + "paytable_feature_title": "Funktioner", + "paytable_wilds_title": "Wilds", + "paytable_bonus_game_title": "Bonusspel", + "paytable_paylines_title": "Vinstlinjer", + "paytable_page_1_str_0": "Vinster bildas när identiska symboler landar på en aktiv vinstlinje, efter förinställda vinstlinjemönster.", + "paytable_page_1_title_1": "Wild-multiplikatorer", + "paytable_page_1_str_1": "Wild-multiplikatorer visas i 3 varianter med upp till 200x i värde. När 3 Wild-multiplikatorerna landar i 1 snurr utlöses Krigarens väg.", + "paytable_page_1_title_2": "Scatter", + "paytable_page_1_str_2": "Scatter-symbolen finns med på alla hjul. Att få 3 eller fler Scatters utlöser bonusspelet Ritual-gratissnurr.", + "paytable_page_3_title_1": "Wild spin", + "paytable_page_3_str_1": "Wild Spin-funktionen ger fler möjligheter att skapa vinnande kombinationer och ökar chanserna för att utlösa Krigarens väg-funktionen. Wild Spin-funktionen introducerar en slumpmässig Wild-symbol vid varje snurr, med slumpmässiga multiplikatorer från x1 till x200.\nSpelaren aktiverar funktionen genom popup-rutan för Bonusköp. Bonusknappens gränssnitt ändras till Wild Spin för att indikera att funktionen är aktiv. Spelaren kan inaktivera Wild Spin genom att använda samma bonusköps-popup. Att aktivera funktionen ökar insatsbeloppet 3x och låser ute andra bonusar.", + "paytable_page_4_title_1": "Krigarens väg", + "paytable_page_4_str_1": "Triggas av 3 Wilds och ger 3 snurr. Triggering Wilds blir klibbiga, och nya återställer snurren till 3 och blir klibbiga. Överlappande tecken kombinerar värdena. Vinster betalas ut för varje snurr och slutar när snurren hartanvänds.", + "paytable_page_5_title_1": "Ritual-gratissnurr", + "paytable_page_5_str_1": "Att få 3 Scatter-symboler belönas med 10 Gratissnurr. Scatters förvandlar hjulen till Wild Ritual-hjul med staplade multiplikatorer: Präst (2x-4x), shaman (5x-20x) och Gyllene gudabild (25x-200x). Multiplikatorer från flera hjul läggs till vinsterna.", + "start_page_1_desc": "MAXVINST X{MAX_MULTIPLIER}", + "start_page_2_desc": "WILDS MED UPP TILL X200 VÄRDEN", + "start_page_3_desc": "RITUELLA HJUL ÄR STAPLADE WILDS MED MULTIPLIKATORER", + "buy_bonus_title": "Krigarens väg", + "buy_bonus_desc": "Retriggable 3 snurr med Sticky Wilds som bär multiplikatorer!", + "buy_freespins_title": "Ritual-gratissnurr", + "buy_freespins_desc": "Gratissnurr med upp till 200x staplade multiplikatorer!", + "bet_feature_title": "Wild spin", + "bet_feature_desc": "1 Wilds med upp till 200x multiplikatorer garanteras för varje snurr!", + "bet_feature_confirmation_desc": "Är du säker på att du vill aktivera Wild Spin-funktionen? \n\nNär den väl har aktiverats förblir funktionen aktiv tills du inaktiverar den!" +} diff --git a/src/assets/translations/locales/tr.json b/src/assets/translations/locales/tr.json new file mode 100644 index 0000000..07e8dfc --- /dev/null +++ b/src/assets/translations/locales/tr.json @@ -0,0 +1,33 @@ +{ + "skip_intro": "Atla", + "respins_left_str_1": "Savaşçının Yolu", + "freespins_left_str_1": "ÜCRETSİZ SPIN", + "freespins_left_str_2": "KALAN", + "freespins_label": "Ücretsiz Spin", + "paytable_symbols_title": "Semboller", + "paytable_feature_title": "Özellikler", + "paytable_wilds_title": "Wilds", + "paytable_bonus_game_title": "Bonus Oyun", + "paytable_paylines_title": "Ödeme Hatları", + "paytable_page_1_str_0": "Aynı semboller aktif bir ödeme hattı üzerinde önceden belirlenmiş kazanç hattı düzenlerini takip ederek sıralandığında kazançlar oluşur.", + "paytable_page_1_title_1": "Wild Çarpanlar", + "paytable_page_1_str_1": "Wild Çarpanlar, 3 farklı şekilde belirir ve 200 kata kadar değer taşıyabilirler. 1 spinde 3 Wild Çarpan elde ederseniz Savaşçının Yolunu tetiklersiniz.", + "paytable_page_1_title_2": "Scatter", + "paytable_page_1_str_2": "Scatter sembolü tüm makaralarda bulunur. 3 veya daha fazla Scatter gelirse Ritüel Ücretsiz Spin bonus oyununu tetiklenir.", + "paytable_page_3_title_1": "Wild spin", + "paytable_page_3_str_1": "Wild Spin özelliği, kazanan kombinasyonlar oluşturmak ve Savaşçının Yolu özelliğini tetikleme şansını artırmak için daha fazla fırsat verir. Wild Spin özelliği, her spin için x1'den x200'e kadar rastgele çarpanlara sahip rastgele bir wild sembolü sunar.\nOyuncular bunu bonus satın alma açılır penceresi aracılığıyla etkinleştirir. Bonus butonu arayüzü, özelliğin etkin olduğunu göstermek için Wild Spin olarak değişir. Oyuncular Wild Spini devre dışı bırakmak için aynı bonus satın alma butonunu kullanabilir. Özellik etkinleştirilirse bahis miktarı x3 artar ve diğer bonuslar kilitlenir.", + "paytable_page_4_title_1": "Savaşçının Yolu", + "paytable_page_4_str_1": "3 Wild sembolü tarafından tetiklenir ve 3 spin kazandırır. Tetikleyici Wild sembolleri yapışkan hale gelir, yeni olanlar spin sayısını 3'e geri getirir ve yapışkan hale gelir. Birbiri üzerine gelen Wild sembolleri, değerleri birleştirir. Kazançlar her spinde ödenir ve spinler kullanıldığında sona erer.", + "paytable_page_5_title_1": "Ritüel Ücretsiz Spin", + "paytable_page_5_str_1": "3 Scatter sembolü gelirse 10 ücretsiz spin kazanırsınız. Scatter'lar makaraları, stacked çarpanlara sahip Wild Ritüel Makaralara dönüştürür: Rahip (x2-x4), Şaman (x5-x20) ve Altın İdol (x25-x200). Birden fazla makaradan gelen çarpanlar kazançlara eklenir.", + "start_page_1_desc": "MAKS KAZANÇ X{MAX_MULTIPLIER}", + "start_page_2_desc": "X200 DEĞERE VARAN WILD SEMBOLLERİ", + "start_page_3_desc": "RİTUEL MAKARALARI, ÇARPANLI İSTİFLENMİŞ WILD SEMBOLLERİDİR", + "buy_bonus_title": "Savaşçının Yolu", + "buy_bonus_desc": "Çarpan taşıyan Yapışkan Wild semboller ile yeniden tetiklenebilir 3 spin!", + "buy_freespins_title": "Ritüel Ücretsiz Spin", + "buy_freespins_desc": "x200'e varan Stacked Çarpanlı, Ücretsiz Spin!", + "bet_feature_title": "Wild spin", + "bet_feature_desc": "Her spinde x200'e kadar çarpan garantili 1 Wild!", + "bet_feature_confirmation_desc": "Wild Spin özelliğini etkinleştirmek istediğinden emin misin?\n\nBu özellik etkinleştirildikten sonra devre dışı bırakılana kadar etkin kalır! " +} diff --git a/src/assets/translations/translations.json b/src/assets/translations/translations.json new file mode 100644 index 0000000..3a2c230 --- /dev/null +++ b/src/assets/translations/translations.json @@ -0,0 +1,33 @@ +{ + "skip_intro": "Skip", + "respins_left_str_1": "Warrior's path", + "freespins_left_str_1": "FREE SPINS", + "freespins_left_str_2": "LEFT", + "freespins_label": "Free Spins", + "paytable_symbols_title": "Symbols", + "paytable_feature_title": "Features", + "paytable_wilds_title": "Wilds", + "paytable_bonus_game_title": "Bonus Game", + "paytable_paylines_title": "Paylines", + "paytable_page_1_str_0": "Winnings are formed when identical symbols land on an active payline, following preset win line patterns.", + "paytable_page_1_title_1": "Wild Multipliers", + "paytable_page_1_str_1": "Wild Multipliers appear in 3 variations carrying up to 200x in value. Landing 3 Wild Multipliers in 1 spin triggers Warrior's Path.", + "paytable_page_1_title_2": "Scatter", + "paytable_page_1_str_2": "Scatter symbol is present on all reels. Landing 3 or more Scatters triggers The Ritual Free Spins bonus game.", + "paytable_page_3_title_1": "Wild Spin", + "paytable_page_3_str_1": "The Wild Spins feature provides more opportunities to form winning combinations and increases the chances of triggering the Warrior's path game. The Wild Spin feature introduces a random wild symbol on each spin, with multipliers ranging from x1 to x200.\nPlayers activate it through the Bonus Buy pop-up. The bonus button interface changes to Wild Spin to indicate the feature is active. Players can deactivate Wild Spin using the same Bonus Buy pop-up. Activation increases the bet amount 3x and locks out other bonuses.", + "paytable_page_4_title_1": "Warrior's Path", + "paytable_page_4_str_1": "Triggered by 3 Wilds, awarding 3 spins. Triggering Wilds become sticky, and new ones reset spins to 3 and turn sticky. Overlapping Wilds combine values. Wins pay on each spin, ending when spins are used.", + "paytable_page_5_title_1": "Ritual Free Spins", + "paytable_page_5_str_1": "Landing 3 Scatter symbols awards 10 free spins. Scatters turn reels into Wild Ritual Reels with stacked multipliers: Priest (2x-4x), Shaman (5x-20x), and Golden Idol (25x-200x). Multipliers from multiple reels are added to wins.", + "start_page_1_desc": "MAX WIN X {MAX_MULTIPLIER}", + "start_page_2_desc": "WILDS WITH UP TO X200 VALUES", + "start_page_3_desc": "RITUAL REELS ARE STACKED WILDS WITH MULTIPLIERS", + "buy_bonus_title": "Warrior's Path", + "buy_bonus_desc": "Retriggable 3 spins with Sticky Wilds carrying multipliers!", + "buy_freespins_title": "Ritual Free Spins", + "buy_freespins_desc": "Free Spin with up to 200x Stacked Multipliers!", + "bet_feature_title": "Wild Spin", + "bet_feature_desc": "1 Wild with up to 200x multipliers guaranteed on each spin!", + "bet_feature_confirmation_desc": "Are you sure you want to activate the Wild Spin feature?\n\nOnce activated, the feature remains active until you disable it! " +} diff --git a/src/config.js b/src/config.js new file mode 100644 index 0000000..7012d90 --- /dev/null +++ b/src/config.js @@ -0,0 +1,4 @@ +export const SKIN_TYPES = { + PORT: 'portrait', + LAND: 'landscape' +} \ No newline at end of file diff --git a/src/game/Game.js b/src/game/Game.js new file mode 100644 index 0000000..8b43ba9 --- /dev/null +++ b/src/game/Game.js @@ -0,0 +1,103 @@ +import {Locator, Model, BaseGame, SCENES, Mode, UI, StartScreenUI} from '@popiplay/slot-game-kit'; +import GameController from './GameController'; +import {GameData} from './models/GameData.js'; +import PreloadScene from './scene/PreloadScene/PreloadScene.js'; +import StartScene from './scene/StartScene/StartScene.js'; +import MainGameScene from './scene/MainGameScene/MainGameScene.js'; +import BuyBonus from './scene/BuyBonus/BuyBonus'; +import RespinsScene from './scene/RespinsScene/RespinsScene'; +import TotalWinScene from './scene/WinScenes/TotalWinScene.js'; +import TransitionScene from './scene/TransitionScene/TransitionScene'; +import Rules from './scene/Rules/Rules'; +import MiniPaytableScene from './scene/MiniPaytableScene/MiniPaytableScene'; +import BigWinScene from './scene/WinScenes/BigWinScene.js'; +import FreespinsScene from './scene/FreespinsScene/FreespinsScene.js'; +import FreespinsWonPopup from './scene/Popups/FreespinsWonPopup.js'; +import MaxWinScene from './scene/WinScenes/MaxWinScene.js'; +import Paytable from './scene/Paytable/Paytable.js'; +import FreespinsLeftPopup from './scene/Popups/FreespinsLeftPopup.js'; +import RespinsWonPopup from './scene/Popups/RespinsWonPopup.js'; +import RespinsLeftPopup from './scene/Popups/RespinsLeftPopup.js'; +import MusicSystem from './systems/MusicSystem.js'; +import SFXSystem from './systems/SFXSystem.js'; +import GatherClientSessionEnvironmentInfo from "@popiplay/slot-game-kit/activities/GatherClientSessionEnvironmentInfo"; +import TrackOrientationActivity from "@popiplay/slot-game-kit/activities/TrackOrientationActivity"; + +/** + * Represents the game. + */ +export default class Game extends BaseGame { + constructor() { + super(); + this.loadingCompleted = false; + this.createObservers(); + this.createMusicAndSFXSystems(); + Mode.provideGameDataClass(GameData); + } + + createScenes() { + // Preloader + Locator.scenes.add(SCENES.PRELOADER, new PreloadScene()); + // Start + Locator.scenes.add(SCENES.START_SCENE, new StartScene()); + Locator.scenes.add(SCENES.START_SCENE_UI, new StartScreenUI()); + // Main + Locator.scenes.add(SCENES.MAIN_GAME_SCENE, new MainGameScene()); + Locator.scenes.add(SCENES.TRANSITION, new TransitionScene()); + Locator.scenes.add(SCENES.BUY_BONUS_SCENE, new BuyBonus()); + Locator.scenes.add(SCENES.GAME_UI, new UI()); + Locator.scenes.add(SCENES.MINI_PAYTABLES, new MiniPaytableScene()); + // Respins + Locator.scenes.add(SCENES.RESPINS_GAME_SCENE, new RespinsScene()); + Locator.scenes.add(SCENES.RESPINS_GAME_WON_POPUP, new RespinsWonPopup()); + Locator.scenes.add(SCENES.RESPINS_LEFT_POPUP, new RespinsLeftPopup()); + // Free Spins + Locator.scenes.add(SCENES.FREESPINS_GAME_SCENE, new FreespinsScene()); + Locator.scenes.add(SCENES.FREESPINS_GAME_WON_POPUP, new FreespinsWonPopup()); + Locator.scenes.add(SCENES.FREESPINS_LEFT_POPUP, new FreespinsLeftPopup()); + // Wins + Locator.scenes.add(SCENES.BIG_WINS_POPUP, new BigWinScene()); + Locator.scenes.add(SCENES.MAX_WIN_POPUP, new MaxWinScene()); + Locator.scenes.add(SCENES.TOTAL_WIN_POPUP, new TotalWinScene()); + // Rules & Paytable + Locator.scenes.add(SCENES.RULES, new Rules()); + Locator.scenes.add(SCENES.PAYTABLE, new Paytable()); + } + + createController() { + this.controller = new GameController(this.model); + } + + createModel() { + this.model = new Model(); + } + + createObservers() { + + } + + createMusicAndSFXSystems() { + this.musicSystem = new MusicSystem(this.model); + this.sfxSystem = new SFXSystem(this.model); + } + + /** + * Starts the game + */ + start() { + super.start(); + this.controller.start(); + Locator.events.on('loadingCompleted', () => { + this.loadingCompleted = true; + this.musicSystem.start(); + this.sfxSystem.start(); + }); + } + + update(delta) { + super.update(delta); + if (!this.loadingCompleted) return; + this.musicSystem.update(delta); + this.sfxSystem.update(delta); + } +} diff --git a/src/game/GameController.js b/src/game/GameController.js new file mode 100644 index 0000000..b79b8da --- /dev/null +++ b/src/game/GameController.js @@ -0,0 +1,121 @@ +import {BaseGameController, LoadSystemAssets} from "@popiplay/slot-game-kit"; +import Init from "./activities/Init"; +import InitModel from "./activities/InitModel"; +import Loading from "./activities/Loading"; +import RunGameplay from "./activities/RunGameplay"; +import ShowStartScene from "./activities/ShowStartScene"; +import ShowBigWinPopup from "./activities/ShowBigWinPopup"; +import ShowMaxWinPopup from "./activities/ShowMaxWinPopup"; +import ShowFreespinsGameWonPopup from "./activities/ShowFreespinsGameWonPopup"; +import SwitchToFreespinsGameMode from "./activities/SwitchToFreespinsGameMode"; +import ShowFreespinsLeftPopup from "./activities/ShowFreespinsLeftPopup"; +import ShowRespinsGameWonPopup from "./activities/ShowRespinsGameWonPopup"; +import SwitchToRespinsGameMode from "./activities/SwitchToRespinsGameMode"; +import ShowRespinsLeftPopup from "./activities/ShowRespinsLeftPopup"; +import ShowTotalWinPopup from "./activities/ShowTotalWinPopup"; +import ExitBonusGame from "./activities/ExitBonusGame"; +import ShowCasinoRoundsWonPopup from "./activities/ShowCasinoRoundsWonPopup"; +import ShowCasinoRoundsLeftPopup from "./activities/ShowCasinoRoundsLeftPopup"; +import ExitCasinoRounds from "./activities/ExitCasinoRounds"; +import ShowBuyBonus from "./activities/ShowBuyBonus"; +import ShowPaytable from "./activities/ShowPaytable"; +import ShowRules from "./activities/ShowRules"; +import { GatherClientSessionEnvironmentInfo } from "@popiplay/slot-game-kit"; +import { TrackOrientationActivity } from "@popiplay/slot-game-kit"; + + +export default class GameController extends BaseGameController { + + /** + * Starts the game by executing the required activities in sequence. + * Logs errors if any activity fails. + */ + start() { + console.log("Game Controller: Starting the game"); + this.activityRunner.addActivity(new GatherClientSessionEnvironmentInfo()); + this.activityRunner.addActivity(new TrackOrientationActivity()); + this.activityRunner.addActivity(new Init()); + this.activityRunner.addActivity(new LoadSystemAssets()) + this.activityRunner.addActivity(new Loading()); + this.activityRunner.addActivity(new ShowStartScene(this.model)); + this.activityRunner.addActivity(new InitModel(this.model)); + this.activityRunner.addActivity(new RunGameplay(this.model)); + } + + handleShowBigWin() { + console.log("Game Controller: Big win"); + this.activityRunner.addActivity(new ShowBigWinPopup(this.model)); + } + + handleShowTotalWin() { + console.log("Game Controller: Total win"); + this.activityRunner.addActivity(new ShowTotalWinPopup(this.model)); + } + + handleShowMaxWin() { + console.log("Game Controller: Max win"); + this.activityRunner.addActivity(new ShowMaxWinPopup(this.model)); + } + + handleRespinsGameTriggered() { + console.log("Game Controller: Respin game triggered"); + this.activityRunner.addActivity(new ShowRespinsGameWonPopup(this.model)); + this.activityRunner.addActivity(new SwitchToRespinsGameMode(this.model)); + } + + handleRespinsGameRestore() { + console.log("Game Controller: Respin game restore"); + this.activityRunner.addActivity(new ShowRespinsLeftPopup(this.model)); + } + + handleFreespinsGameTriggered() { + console.log("Game Controller: Freespin game triggered"); + this.activityRunner.addActivity(new ShowFreespinsGameWonPopup(this.model)); + this.activityRunner.addActivity(new SwitchToFreespinsGameMode(this.model)); + } + + handleFreespinsGameRestore() { + console.log("Game Controller: Freespin game restore"); + this.activityRunner.addActivity(new ShowFreespinsLeftPopup(this.model)); + } + + handleExitBonusGame() { + console.log("Game Controller: Exit bonus game"); + this.activityRunner.addActivity(new ExitBonusGame(this.model)); + } + + handleCasinoRoundsTriggered() { + console.log("Game Controller: Casino rounds triggered"); + this.activityRunner.addActivity(new ShowCasinoRoundsWonPopup(this.model)); + } + + handleCasinoRoundsRestore() { + console.log("Game Controller: Casino rounds restore"); + this.activityRunner.addActivity(new ShowCasinoRoundsLeftPopup(this.model)); + } + + handleExitCasinoRounds() { + console.log("Game Controller: Exit casino rounds"); + this.activityRunner.addActivity(new ExitCasinoRounds(this.model)); + } + + handlePerformBuyBonusButtonAction() { + console.log("Game Controller: Perform Buy bonus button action"); + this.activityRunner.addActivity(new ShowBuyBonus(this.model)); + } + + handlePerformPaytableAction() { + console.log("Game Controller: Perform Paytable action"); + this.activityRunner.addActivity(new ShowPaytable(this.model)); + } + + handlePerformRulesAction() { + console.log("Game Controller: Perform Rules action"); + this.activityRunner.addActivity(new ShowRules()); + } + + restoreAfterError() { + this.activityRunner.addActivity(new InitModel(this.model)); + this.activityRunner.addActivity(new RunGameplay(this.model)); + } +} diff --git a/src/game/activities/ExitBonusGame.js b/src/game/activities/ExitBonusGame.js new file mode 100644 index 0000000..ee1de19 --- /dev/null +++ b/src/game/activities/ExitBonusGame.js @@ -0,0 +1,26 @@ +import {Locator, GameplayViewModel, Activity, SCENES} from "@popiplay/slot-game-kit"; +import {waitForEventOnce} from "../../../utils/utils"; + + +export default class ExitBonusGame extends Activity { + constructor(model) { + super("ExitBonusGame"); + this.model = model; + } + + async execute() { + const transition = Locator.scenes.run(SCENES.TRANSITION); + transition.mask(); + await waitForEventOnce(transition, "masked"); + Locator.scenes.stop(this.model.currentMode.scene); + this.model.exitMode(); + Locator.scenes.get(this.model.currentMode.scene).inputs = new GameplayViewModel(this.model); + const scene = Locator.scenes.run(this.model.currentMode.scene); + transition.unmask(); + await Promise.all([ + waitForEventOnce(transition, "unmasked"), + waitForEventOnce(scene, "endRound") + ]) + this.model.completeModeSwitching(); + } +} diff --git a/src/game/activities/ExitCasinoRounds.js b/src/game/activities/ExitCasinoRounds.js new file mode 100644 index 0000000..680149d --- /dev/null +++ b/src/game/activities/ExitCasinoRounds.js @@ -0,0 +1,24 @@ +import {Activity, Locator, CasinoFreespinsPopup, showErrorPopup} from "@popiplay/slot-game-kit"; + +export default class ExitCasinoRounds extends Activity { + constructor(model) { + super('ExitCasinoRounds'); + this.model = model; + } + + async execute() { + const strings = Locator.locales.get('you_have_won_in_free_rounds').split('{N}'); + await CasinoFreespinsPopup({ + msg1: strings[0], + value: `${this.model.currency.getFormattedValue(this.model.totalWin)}`, + msg2: strings[1], + timeout: 0, + }); + await showErrorPopup({ + msg: Locator.locales.get('future_spins_will_use_your_account_money') + }); + this.model.exitMode(); + this.model.completeModeSwitching(); + this.model.completeCasinoRoundsNotification(); + } +} diff --git a/src/game/activities/Init.js b/src/game/activities/Init.js new file mode 100644 index 0000000..7d54c75 --- /dev/null +++ b/src/game/activities/Init.js @@ -0,0 +1,36 @@ +import { Activity, Locator } from "@popiplay/slot-game-kit"; +import { Assets } from "pixi.js"; +import {FullScreenController} from "@popiplay/slot-game-kit"; +import {isSafariOnIphone} from "../../../utils/isSafariOnIOS"; +import {isInIframe} from "../../../utils/isIframe"; +import SafariFullscreenObserver from "../observers/SafariFullscreenObserver"; +import {isMobile} from "@pixi/core"; + +export default class Init extends Activity { + constructor() { + super("Init"); + } + + async execute() { + const manifest = isMobile.any ? "manifest_mob.json" : "manifest.json"; + await Assets.init({ + basePath: Locator.network.baseAssetsUrl, + manifest: manifest, + defaultSearchParams: "v" + __VERSION // __VERSION will be replaced with version from the package.json by webpack + }); + + await Promise.all([ + Assets.loadBundle("preload"), + Assets.loadBundle("ios_scroll"), + Assets.loadBundle("locales"), + Assets.loadBundle("fonts") + ]); + + + if (isSafariOnIphone() && !isInIframe()) { + new SafariFullscreenObserver(); + } else { + new FullScreenController(); + } + } +} diff --git a/src/game/activities/InitModel.js b/src/game/activities/InitModel.js new file mode 100644 index 0000000..8f22ea6 --- /dev/null +++ b/src/game/activities/InitModel.js @@ -0,0 +1,19 @@ +import {Activity} from "@popiplay/slot-game-kit"; +import {Assets} from "pixi.js"; + +export default class InitModel extends Activity { + constructor(model) { + super("InitModel"); // Pass the activity name to the parent constructor + this.model = model; // The game model instance + } + + /** + * Executes the model initialization process. + * Calls the model's `init` method and logs completion. + */ + async execute() { + console.log("Init model execute"); + await this.model.init(__OPTIONS__.title, Assets.get("slotMachine")); // Initialize the model + console.log("Model initialized"); + } +} diff --git a/src/game/activities/Loading.js b/src/game/activities/Loading.js new file mode 100644 index 0000000..a54d776 --- /dev/null +++ b/src/game/activities/Loading.js @@ -0,0 +1,27 @@ +import { Activity, Locator } from "@popiplay/slot-game-kit"; +import { Assets } from "pixi.js"; + +export default class Loading extends Activity { + constructor() { + super("Loading"); + } + + async execute() { + Locator.scenes.run("preloader"); + + await Promise.all([ + Locator.locales.load(), + Assets.loadBundle("atlases"), + Assets.loadBundle("intro"), + Assets.loadBundle("ui"), + Assets.loadBundle("gameplay"), + Assets.loadBundle("symbols"), + Assets.loadBundle("sounds"), + Assets.loadBundle("win_popups"), + Assets.loadBundle("bonus_popups"), + ]); + Locator.scenes.stop("preloader"); + Locator.events.emit("loadingCompleted"); + Assets.unloadBundle("preloader") + } +} diff --git a/src/game/activities/RunGameplay.js b/src/game/activities/RunGameplay.js new file mode 100644 index 0000000..15e1ea3 --- /dev/null +++ b/src/game/activities/RunGameplay.js @@ -0,0 +1,22 @@ +import { Activity, Locator, SCENES, PaytableViewModel, UIViewModel, GameplayViewModel } from "@popiplay/slot-game-kit"; +import {waitForEventOnce} from "../../../utils/utils"; + +export default class RunGameplay extends Activity { + constructor(model) { + super("RunGameplay"); + this.model = model; + } + + async execute() { + const currentSceneName = this.model.currentMode.scene; + this.model.currentMode.music = currentSceneName; + Locator.scenes.get(currentSceneName).inputs = new GameplayViewModel(this.model); + Locator.scenes.run(currentSceneName); + Locator.scenes.get(SCENES.GAME_UI).inputs = new UIViewModel(this.model); + Locator.scenes.get(SCENES.GAME_UI).inputs.isUserInputLocked = true; + Locator.scenes.run(SCENES.GAME_UI); + Locator.scenes.get(SCENES.MINI_PAYTABLES).inputs = new PaytableViewModel(this.model); + await waitForEventOnce(Locator.scenes.get(currentSceneName), 'endRound'); + Locator.scenes.get(SCENES.GAME_UI).inputs.isUserInputLocked = false; + } +} diff --git a/src/game/activities/ShowBigWinPopup.js b/src/game/activities/ShowBigWinPopup.js new file mode 100644 index 0000000..b755e80 --- /dev/null +++ b/src/game/activities/ShowBigWinPopup.js @@ -0,0 +1,20 @@ +import {Activity, Locator, SCENES} from "@popiplay/slot-game-kit"; +import {waitForEventOnce} from "../../../utils/utils"; + +export default class ShowBigWinPopup extends Activity { + constructor(model) { + super("ShowBigWinPopup"); + this.model = model; + } + + async execute() { + const bigWinScene = Locator.scenes.get(SCENES.BIG_WINS_POPUP); + bigWinScene.inputs.win = this.model.currentMode.gameData.winInRound; + bigWinScene.inputs.bet = this.model.bet; + bigWinScene.inputs.currency = this.model.currency; + Locator.scenes.run(SCENES.BIG_WINS_POPUP); + await waitForEventOnce(bigWinScene, "complete"); + Locator.scenes.stop(SCENES.BIG_WINS_POPUP); + this.model.completeWinProcessing(); + } +} diff --git a/src/game/activities/ShowBuyBonus.js b/src/game/activities/ShowBuyBonus.js new file mode 100644 index 0000000..dcf0890 --- /dev/null +++ b/src/game/activities/ShowBuyBonus.js @@ -0,0 +1,22 @@ +import {Activity, Locator, SCENES, BuyBonusViewModel, GameplayViewModel} from "@popiplay/slot-game-kit"; +import { waitForEventOnce } from "../../../utils/utils"; + +export default class ShowBuyBonus extends Activity { + constructor(model) { + super("ShowBuyBonus"); + this.model = model; + } + + async execute() { + const currentGameSceneName = this.model.currentMode.scene; + Locator.scenes.get(SCENES.GAME_UI).inputs.isUserInputLocked = true; + Locator.scenes.pause(currentGameSceneName); + const buyBonusScene = Locator.scenes.get(SCENES.BUY_BONUS_SCENE); + buyBonusScene.inputs = new BuyBonusViewModel(this.model); + Locator.scenes.run(SCENES.BUY_BONUS_SCENE); + await waitForEventOnce(buyBonusScene, "complete"); + Locator.scenes.stop(SCENES.BUY_BONUS_SCENE); + Locator.scenes.resume(currentGameSceneName); + Locator.scenes.get(SCENES.GAME_UI).inputs.isUserInputLocked = false; + } +} diff --git a/src/game/activities/ShowCasinoRoundsLeftPopup.js b/src/game/activities/ShowCasinoRoundsLeftPopup.js new file mode 100644 index 0000000..3ba3d93 --- /dev/null +++ b/src/game/activities/ShowCasinoRoundsLeftPopup.js @@ -0,0 +1,20 @@ +import {Activity, Locator, CasinoFreespinsPopup} from "@popiplay/slot-game-kit"; + +export default class ShowCasinoRoundsLeftPopup extends Activity { + constructor(model) { + super('ShowCasinoRoundsLeftPopup'); + this.model = model; + } + + async execute() { + const string = Locator.locales.get("you_have_free_rounds_left"); + const value = this.model.currentMode.gameData.casinoRounds.left; + const substrings = string.split("{N}"); + await CasinoFreespinsPopup({ + msg1: substrings[0], + value: value, + msg2: substrings[1], + }); + this.model.completeCasinoRoundsNotification(); + } +} diff --git a/src/game/activities/ShowCasinoRoundsWonPopup.js b/src/game/activities/ShowCasinoRoundsWonPopup.js new file mode 100644 index 0000000..5ef87c3 --- /dev/null +++ b/src/game/activities/ShowCasinoRoundsWonPopup.js @@ -0,0 +1,20 @@ +import {Activity, Locator, CasinoFreespinsPopup} from "@popiplay/slot-game-kit"; + +export default class ShowCasinoRoundsWonPopup extends Activity { + constructor(model) { + super('ShowCasinoRoundsWonPopup'); + this.model = model; + } + + async execute() { + const string = Locator.locales.get("you_have_been_credited_with_free_rounds"); + const value = this.model.currentMode.gameData.casinoRounds.issued; + const substrings = string.split("{N}"); + await CasinoFreespinsPopup({ + msg1: substrings[0], + value: value, + msg2: substrings[1], + }); + this.model.completeCasinoRoundsNotification(); + } +} diff --git a/src/game/activities/ShowFreespinsGameWonPopup.js b/src/game/activities/ShowFreespinsGameWonPopup.js new file mode 100644 index 0000000..e49d45e --- /dev/null +++ b/src/game/activities/ShowFreespinsGameWonPopup.js @@ -0,0 +1,20 @@ +import { Activity, Locator, SCENES } from "@popiplay/slot-game-kit"; +import { waitForEventOnce } from "../../../utils/utils"; + +export default class ShowFreespinsGameWonPopup extends Activity { + constructor(model) { + super('ShowFreespinsGameWonPopup'); + this.model = model; + } + + async execute() { + const popupScene = Locator.scenes.get(SCENES.FREESPINS_GAME_WON_POPUP); + popupScene.inputs.amount = this.model.currentMode.gameData.bonusSpins.issued; + const UIInputs = Locator.scenes.get(SCENES.GAME_UI).inputs; + const {isAutoGameActive, isBonusWonChecked} = UIInputs; + popupScene.settings.autoClose = isAutoGameActive && !isBonusWonChecked; + Locator.scenes.run(SCENES.FREESPINS_GAME_WON_POPUP); + await waitForEventOnce(popupScene, "complete"); + Locator.scenes.stop(SCENES.FREESPINS_GAME_WON_POPUP); + } +} \ No newline at end of file diff --git a/src/game/activities/ShowFreespinsLeftPopup.js b/src/game/activities/ShowFreespinsLeftPopup.js new file mode 100644 index 0000000..d973d75 --- /dev/null +++ b/src/game/activities/ShowFreespinsLeftPopup.js @@ -0,0 +1,18 @@ +import { Activity, Locator, SCENES } from "@popiplay/slot-game-kit"; +import { waitForEventOnce } from "../../../utils/utils"; + +export default class ShowFreespinsLeftPopup extends Activity { + constructor(model) { + super("ShowFreespinsLeftPopup"); + this.model = model; + } + + async execute() { + const popupScene = Locator.scenes.get(SCENES.FREESPINS_LEFT_POPUP); + popupScene.inputs.amount = this.model.currentMode.bonusIndicatorData.left + Locator.scenes.run(SCENES.FREESPINS_LEFT_POPUP); + await waitForEventOnce(popupScene, "complete"); + Locator.scenes.stop(SCENES.FREESPINS_LEFT_POPUP); + this.model.completeRestore(); + } +} diff --git a/src/game/activities/ShowMaxWinPopup.js b/src/game/activities/ShowMaxWinPopup.js new file mode 100644 index 0000000..2854127 --- /dev/null +++ b/src/game/activities/ShowMaxWinPopup.js @@ -0,0 +1,20 @@ +import {Activity, Locator, SCENES} from "@popiplay/slot-game-kit"; +import {waitForEventOnce} from "../../../utils/utils"; + +export default class ShowMaxWinPopup extends Activity { + constructor(model) { + super("ShowMaxWinPopup"); + this.model = model; + } + + async execute() { + const maxWinScene = Locator.scenes.get(SCENES.MAX_WIN_POPUP); + maxWinScene.inputs.win = this.model.currentMode.gameData.gameTotalWin; + maxWinScene.inputs.bet = this.model.bet; + maxWinScene.inputs.currency = this.model.currency; + Locator.scenes.run(SCENES.MAX_WIN_POPUP); + await waitForEventOnce(maxWinScene, "complete"); + Locator.scenes.stop(SCENES.MAX_WIN_POPUP); + this.model.completeWinProcessing(); + } +} diff --git a/src/game/activities/ShowPaytable.js b/src/game/activities/ShowPaytable.js new file mode 100644 index 0000000..46ae88c --- /dev/null +++ b/src/game/activities/ShowPaytable.js @@ -0,0 +1,99 @@ +import { Activity, Locator, SETTINGS, SCENES } from "@popiplay/slot-game-kit"; +import { Assets, Sprite, Texture } from "pixi.js"; +import { gsap } from "gsap"; +import Paytable from "../scene/Paytable/Paytable.js"; +import { PaytableViewModel } from "@popiplay/slot-game-kit"; + +export default class ShowPaytable extends Activity { + constructor(model) { + super("ShowPaytable"); + + this.model = model; + } + + _getLocale() { + const config = Assets.get("locales_config"); + const hasLang = config.includes(Locator.locales.currentLang); + + return hasLang ? Locator.locales.currentLang : "en"; + } + + async execute() { + Locator.scenes.get(SCENES.GAME_UI).inputs.isUserInputLocked = true; + Locator.scenes.pauseAllUpdatingScenes(); + this.showOverlay(); + await this.load(); + + this.create(); + this.showScene(); + } + + showOverlay() { + this.overlay = new Sprite(Texture.WHITE); + this.overlay.name = 'PaytableOverlay'; + this.overlay.width = SETTINGS.renderer.width; + this.overlay.height = SETTINGS.renderer.height; + Locator.viewport.addChildAt(this.overlay, 1); + this.overlay.eventMode = "static"; + this.overlay.tint = 0x000000; + this.overlay.alpha = 0; + this.overlay.zIndex = 11; + gsap.to(this.overlay, { alpha: 0.9, duration: 0.3 }); + } + + async load() { + if (this.isLoaded) return; + + const locale = this._getLocale(); + Assets.add("rules_content", `rules/locales/${locale}.html`); + + await Promise.all([ + Assets.loadBundle("paytable"), + Assets.load("rules_content") + ]); + + if (!Locator.scenes.get("paytable")) { + Locator.scenes.add("paytable", new Paytable()); + } + + this.isLoaded = true; + } + + create() { + const paytableScene = Locator.scenes.get("paytable"); + paytableScene.inputs = new PaytableViewModel(this.model); + + this.scene = Locator.scenes.run("paytable"); + this.scene.on("close_btn/up", this.handleCloseBtnDown, this); + } + + hideViews() { + return gsap.timeline() + .add(this.hideScene(), 0) + .add(this.hideOverlay(), 0); + } + + showScene() { + gsap.to(this.scene, { alpha: 1, duration: 0.3 }); + } + + hideScene() { + return gsap.to(this.scene, { alpha: 0, duration: 0.3 }); + } + + hideOverlay() { + return gsap.to(this.overlay, { alpha: 0, duration: 0.3 }); + } + + handleCloseBtnDown() { + Locator.scenes.get(SCENES.GAME_UI).inputs.isUserInputLocked = false; + this.hideViews() + .add(() => { + this.overlay?.destroy(); + Locator.scenes.stop("paytable"); + Locator.scenes.resumeAllUpdatingScenes(); + this.scene.off("close_btn/up", this.handleCloseBtnDown, this); + super.execute(); + }); + } +} diff --git a/src/game/activities/ShowRespinsGameWonPopup.js b/src/game/activities/ShowRespinsGameWonPopup.js new file mode 100644 index 0000000..96be9de --- /dev/null +++ b/src/game/activities/ShowRespinsGameWonPopup.js @@ -0,0 +1,20 @@ +import { Activity, Locator, SCENES } from "@popiplay/slot-game-kit"; +import { waitForEventOnce } from "../../../utils/utils"; + +export default class ShowRespinsGameWonPopup extends Activity { + constructor(model) { + super('ShowRespinsGameWonPopup'); + this.model = model; + } + + async execute() { + const popupScene = Locator.scenes.get(SCENES.RESPINS_GAME_WON_POPUP); + popupScene.inputs.amount = this.model.currentMode.gameData.bonusSpins.issued; + const UIInputs = Locator.scenes.get(SCENES.GAME_UI).inputs; + const {isAutoGameActive, isBonusWonChecked} = UIInputs; + popupScene.settings.autoClose = isAutoGameActive && !isBonusWonChecked; + Locator.scenes.run(SCENES.RESPINS_GAME_WON_POPUP); + await waitForEventOnce(popupScene, "complete"); + Locator.scenes.stop(SCENES.RESPINS_GAME_WON_POPUP); + } +} diff --git a/src/game/activities/ShowRespinsLeftPopup.js b/src/game/activities/ShowRespinsLeftPopup.js new file mode 100644 index 0000000..a856b61 --- /dev/null +++ b/src/game/activities/ShowRespinsLeftPopup.js @@ -0,0 +1,18 @@ +import { Activity, Locator, SCENES } from "@popiplay/slot-game-kit"; +import { waitForEventOnce } from "../../../utils/utils"; + +export default class ShowRespinsLeftPopup extends Activity { + constructor(model) { + super("ShowRespinsLeftPopup"); + this.model = model; + } + + async execute() { + const popupScene = Locator.scenes.get(SCENES.RESPINS_LEFT_POPUP); + popupScene.inputs.amount = this.model.currentMode.bonusIndicatorData.left + Locator.scenes.run(SCENES.RESPINS_LEFT_POPUP); + await waitForEventOnce(popupScene, "complete"); + Locator.scenes.stop(SCENES.RESPINS_LEFT_POPUP); + this.model.completeRestore(); + } +} diff --git a/src/game/activities/ShowRules.js b/src/game/activities/ShowRules.js new file mode 100644 index 0000000..275fc92 --- /dev/null +++ b/src/game/activities/ShowRules.js @@ -0,0 +1,85 @@ +import {Activity, Locator, SETTINGS, SCENES} from "@popiplay/slot-game-kit"; +import {Assets, Sprite, Texture} from "pixi.js"; +import {gsap} from "gsap"; + +import Rules from "../scene/Rules/Rules.js"; + +export default class ShowRules extends Activity { + constructor() { + super("ShowRules"); + } + + _getLocale() { + return Assets.get("locales_config").includes(Locator.locales.currentLang) ? Locator.locales.currentLang : "en"; + } + + async execute() { + Locator.scenes.get(SCENES.GAME_UI).inputs.isUserInputLocked = true; + Locator.scenes.pauseAllUpdatingScenes(); + this.showOverlay(); + await this.load(); + this.create(); + this.showScene(); + } + + showOverlay() { + this.overlay = new Sprite(Texture.WHITE); + this.overlay.width = SETTINGS.renderer.width; + this.overlay.height = SETTINGS.renderer.height; + Locator.viewport.addChild(this.overlay); + this.overlay.eventMode = "static"; + this.overlay.tint = 0x000000; + this.overlay.alpha = 0.9; + this.overlay.zIndex = 11; + gsap.to(this.overlay, {alpha: 0.9, duration: 0.3}); + } + + async load() { + if (this.isLoaded) return; + const locale = this._getLocale(); + Assets.add("rules_content", `rules/locales/${locale}.html`); + await Promise.all([ + Assets.loadBundle("rules"), + Assets.load("rules_content") + ]); + if (!Locator.scenes.get("rules")) { + Locator.scenes.add("rules", new Rules()); + } + this.isLoaded = true; + } + + create() { + this.scene = Locator.scenes.run("rules"); + this.scene.on("close_btn/up", this.handleCloseBtnDown, this); + } + + hideViews() { + return gsap.timeline() + .add(this.hideScene(), 0) + .add(this.hideOverlay(), 0); + } + + showScene() { + gsap.to(this.scene, {alpha: 1, duration: 0.3}); + } + + hideScene() { + return gsap.to(this.scene, {alpha: 0, duration: 0.3}); + } + + hideOverlay() { + return gsap.to(this.overlay, {alpha: 0, duration: 0.3}); + } + + handleCloseBtnDown() { + Locator.scenes.get(SCENES.GAME_UI).inputs.isUserInputLocked = false; + this.hideViews() + .add(() => { + this.overlay?.destroy(); + Locator.scenes.stop("rules"); + Locator.scenes.resumeAllUpdatingScenes(); + this.scene.off("close_btn/up", this.handleCloseBtnDown, this); + super.execute(); + }); + } +} diff --git a/src/game/activities/ShowStartScene.js b/src/game/activities/ShowStartScene.js new file mode 100644 index 0000000..f2bde4c --- /dev/null +++ b/src/game/activities/ShowStartScene.js @@ -0,0 +1,28 @@ +import { Activity, Locator, SCENES, UIViewModel } from '@popiplay/slot-game-kit'; +import { waitForEventOnce } from '../../../utils/utils'; +import {Assets} from "pixi.js"; + +export default class ShowStartScene extends Activity { + constructor(model) { + super('ShowStartScene'); + this.model = model; + } + + async execute() { + Locator.storage.set('introHasBeenShown', true); + + Locator.scenes.get(SCENES.START_SCENE).inputs.maxMultiplier = this.model.maxMultiplier; + Locator.scenes.run(SCENES.START_SCENE); + Locator.scenes.get(SCENES.START_SCENE).inputs.loaded = true; + + Locator.scenes.get(SCENES.START_SCENE_UI).inputs = new UIViewModel(this.model); + Locator.scenes.run(SCENES.START_SCENE_UI); + + await waitForEventOnce(Locator.events, 'startBtnPressed'); + + Locator.scenes.stop(SCENES.START_SCENE); + Locator.scenes.stop(SCENES.START_SCENE_UI); + + Assets.unloadBundle('intro') + } +} diff --git a/src/game/activities/ShowTotalWinPopup.js b/src/game/activities/ShowTotalWinPopup.js new file mode 100644 index 0000000..d493dac --- /dev/null +++ b/src/game/activities/ShowTotalWinPopup.js @@ -0,0 +1,23 @@ +import {Activity, Locator, SCENES} from "@popiplay/slot-game-kit"; +import {waitForEventOnce} from "../../../utils/utils"; + +export default class ShowTotalWinPopup extends Activity { + constructor(model) { + super("ShowTotalWinPopup"); + this.model = model; + } + + async execute() { + const totalWinScene = Locator.scenes.get(SCENES.TOTAL_WIN_POPUP); + totalWinScene.inputs.win = this.model.currentMode.gameData.gameTotalWin; + totalWinScene.inputs.bet = this.model.bet; + totalWinScene.inputs.currency = this.model.currency; + const UIInputs = Locator.scenes.get(SCENES.GAME_UI).inputs; + const {isAutoGameActive, isBonusWonChecked} = UIInputs; + totalWinScene.settings.autoClose = isAutoGameActive && !isBonusWonChecked; + Locator.scenes.run(SCENES.TOTAL_WIN_POPUP); + await waitForEventOnce(totalWinScene, "complete"); + Locator.scenes.stop(SCENES.TOTAL_WIN_POPUP); + this.model.completeWinProcessing(); + } +} diff --git a/src/game/activities/SwitchToFreespinsGameMode.js b/src/game/activities/SwitchToFreespinsGameMode.js new file mode 100644 index 0000000..70a762a --- /dev/null +++ b/src/game/activities/SwitchToFreespinsGameMode.js @@ -0,0 +1,25 @@ +import {Locator, GameplayViewModel, Activity, SCENES} from "@popiplay/slot-game-kit"; +import {waitForEventOnce} from "../../../utils/utils"; + +export default class SwitchToFreespinsGameMode extends Activity { + constructor(model) { + super("SwitchToFreespinsGameMode"); + this.model = model; + } + + async execute() { + const transition = Locator.scenes.run(SCENES.TRANSITION); + transition.mask(); + await waitForEventOnce(transition, "masked"); + Locator.scenes.stop(SCENES.MAIN_GAME_SCENE); + this.model.enterFreespinsMode(); + Locator.scenes.get(SCENES.FREESPINS_GAME_SCENE).inputs = new GameplayViewModel(this.model); + const scene = Locator.scenes.run(SCENES.FREESPINS_GAME_SCENE); + transition.unmask(); + await Promise.all([ + waitForEventOnce(transition, "unmasked"), + waitForEventOnce(scene, "endRound") + ]) + this.model.completeModeSwitching(); + } +} diff --git a/src/game/activities/SwitchToRespinsGameMode.js b/src/game/activities/SwitchToRespinsGameMode.js new file mode 100644 index 0000000..9028b76 --- /dev/null +++ b/src/game/activities/SwitchToRespinsGameMode.js @@ -0,0 +1,25 @@ +import {Locator, GameplayViewModel, Activity, SCENES} from "@popiplay/slot-game-kit"; +import {waitForEventOnce} from "../../../utils/utils"; + +export default class SwitchToRespinsGameMode extends Activity { + constructor(model) { + super("SwitchToRespinsGameMode"); + this.model = model; + } + + async execute() { + const transition = Locator.scenes.run(SCENES.TRANSITION); + transition.mask(); + await waitForEventOnce(transition, "masked"); + Locator.scenes.stop(SCENES.MAIN_GAME_SCENE); + this.model.enterRespinsMode(); + Locator.scenes.get(SCENES.RESPINS_GAME_SCENE).inputs = new GameplayViewModel(this.model); + const scene = Locator.scenes.run(SCENES.RESPINS_GAME_SCENE); + transition.unmask(); + await Promise.all([ + waitForEventOnce(transition, "unmasked"), + waitForEventOnce(scene, "endRound") + ]); + this.model.completeModeSwitching(); + } +} diff --git a/src/game/components/BitmapTextAttachment.js b/src/game/components/BitmapTextAttachment.js new file mode 100644 index 0000000..6c53e72 --- /dev/null +++ b/src/game/components/BitmapTextAttachment.js @@ -0,0 +1,13 @@ +import TextAttachment from "./TextAttachment.js"; +import {BitmapText} from "pixi.js"; + +export default class BitmapTextAttachment extends TextAttachment { + constructor(size, options) { + super(size, options); + } + + createContent(options) { + this.betValueText = new BitmapText('', options.style); + this.container.addChild(this.betValueText); + } +} diff --git a/src/game/components/Dimmer.js b/src/game/components/Dimmer.js new file mode 100644 index 0000000..3a5a9ca --- /dev/null +++ b/src/game/components/Dimmer.js @@ -0,0 +1,8 @@ +import { Spine } from "pixi-spine"; + +/** + * @description - Dimming layer used to dim the scene behind a certain view. + */ +export default class Dimmer extends Spine { + +} \ No newline at end of file diff --git a/src/game/components/HTMLContainer.js b/src/game/components/HTMLContainer.js new file mode 100644 index 0000000..3203f52 --- /dev/null +++ b/src/game/components/HTMLContainer.js @@ -0,0 +1,79 @@ +import { ObservablePoint } from "@pixi/core"; +import {Locator} from "@popiplay/slot-game-kit"; +import { SETTINGS } from "@popiplay/slot-game-kit"; + +export default class HTMLContainer { + constructor(parent, className = undefined, styles = {}) { + this.element = document.createElement('div'); + this.element.style.position = 'fixed'; + this.element.style.display = 'block'; + Object.assign(this.element.style, styles); + this.anchor = new ObservablePoint(this.updateTransform, this, 0, 0,); + this.scale = new ObservablePoint(this.updateTransform, this, 1, 1,); + parent.appendChild(this.element); + if (className) { + this.element.className = className; + } + } + + updateTransform() { + this.element.style.transformOrigin = `${this.anchor.x * 100}% ${this.anchor.y * 100}%`; + let transform = `translate(-${this.anchor.x * 100}%, -${this.anchor.y * 100}%) scale(${this.scale.x}, ${this.scale.y}` + this.element.style.transform = transform; + } + + set x(value) { + const relatedX = (window.innerWidth - SETTINGS.renderer.width * Locator.viewport.heightRatio) * 0.5 + this.element.style.left = relatedX + value * Locator.viewport.heightRatio + 'px' + } + + get x() { + this.element.style.left + } + + set y(value) { + const relatedY = (window.innerHeight - SETTINGS.renderer.height * Locator.viewport.heightRatio) * 0.5 + this.element.style.top = relatedY + value * Locator.viewport.heightRatio + 'px'; + } + + get y() { + this.element.style.top + } + + set width(value) { + this.element.style.width = value + 'px'; + } + + get width() { + return this.element.style.width + } + + set height(value) { + this.element.style.height = value + 'px'; + } + + get height() { + return this.element.style.height + } + + set alpha(value) { + this.element.style.opacity = value + } + + set visible(value) { + if (!!value) { + this.element.style.display = 'block' + } else { + this.element.style.display = 'none' + } + + } + + addContent(content) { + this.element.innerHTML = content; + } + + destroy() { + this.element.remove(); + } +} diff --git a/src/game/components/HackAttachment.js b/src/game/components/HackAttachment.js new file mode 100644 index 0000000..bf4f81d --- /dev/null +++ b/src/game/components/HackAttachment.js @@ -0,0 +1,101 @@ +import {Container, Graphics, RenderTexture, Texture} from "pixi.js"; +import {Locator} from "@popiplay/slot-game-kit"; +import EventEmitter from "eventemitter3"; +import { Spine } from "pixi-spine"; + +export default class HackAttachment extends EventEmitter { + #boundaries; + + static debugParams = { + counter: 0 + }; + + static initDebug() { + + } + + static increaseCounter() { + this.debugParams.counter += 1; + // console.log("HackAttachment", this.debugParams.counter) + } + + static decreaseCounter() { + this.debugParams.counter -= 1; + // console.log("HackAttachment", this.debugParams.counter) + } + + constructor(size, options = {}) { + super(); + this.size = size; + this.options = options; + this.container = new Container(); + this.createTexture(); + this.createContent(options); + this.createBoundaries(); + } + + createTexture() { + this.texture = RenderTexture.create({ + ...this.size, + resolution: this.options.resolution || Locator.renderer.resolution + }); + // HackAttachment.increaseCounter(); + } + + createContent(options) { + + } + + createBoundaries() { + this.#boundaries = new Graphics(); + this.container.addChild(this.#boundaries); + } + + /** + * + * @param {Spine} spine + * @param {*} slotName + */ + attachTo(spine, slotName) { + this.slotName = slotName; + this.spine = spine; + spine.hackTextureBySlotName(slotName, this.texture, this.size); + } + + detach() { + if (!this.spine?.skeleton) return; + this.spine?.hackTextureBySlotName(this.slotName, Texture.EMPTY, Texture.WHITE); + this.spine = null; + } + + destroy() { + this.size = null; + this.detach(); + this.texture.destroy(true); + // HackAttachment.decreaseCounter(); + this.container.destroy({children: true}); + } + + update() { + Locator.renderer.render(this.container, {renderTexture: this.texture}); + } + + set boundaries(visible) { + this.#boundaries.visible = visible; + if (visible) this.drawBoundaries(); + this.update(); + } + + drawBoundaries() { + this.#boundaries + .clear() + .lineStyle(2, 0xff0000) + .drawRect(0, 0, this.size.width, this.size.height); + } + + resize(size) { + this.size = size; + this.texture.resize(size.width, size.height); + this.drawBoundaries(); + } +} diff --git a/src/game/components/SpineButton.js b/src/game/components/SpineButton.js new file mode 100644 index 0000000..f67b6c2 --- /dev/null +++ b/src/game/components/SpineButton.js @@ -0,0 +1,80 @@ +import { Locator } from '@popiplay/slot-game-kit'; +import { Sprite, Texture } from 'pixi.js'; +import TextAttachment from './TextAttachment'; + +export default class SpineButton extends TextAttachment { + /** + * @typedef {Object} SpineButtonParams + * @property {Object} styles - The styles for the button. + * @property {Spine} container - The container to attach the button to. + * @property {string} slotID - The slot name in spine. + * @property {string} localeID - The locale ID in the translations. + * @property {{ x: number, y: number }} position - Positions for the overlay. + * @property {Function} onClick - Callback to execute on click. + */ + + /** + * @param {SpineButtonParams} config + */ + constructor({ styles, container, slotID, localeID, position, onCLick }) { + super({ + width: styles.normal.width, + height: styles.normal.height, + }); + + this._styles = styles; + this._container = container; + this._slotID = slotID; + this._localeID = localeID; + this._onCLick = onCLick; + + this._init(); + this._createOverlay(position); + } + + _init() { + this.text = Locator.locales.get(this._localeID).toUpperCase(); + this.style = this._styles.normal; + this.attachTo(this._container, this._slotID); + this.update(); + } + + _createOverlay(pos) { + const { width, height } = this.textObject; + const interactiveOverlay = new Sprite(Texture.EMPTY); + + interactiveOverlay.anchor.set(0.5); + interactiveOverlay.position.x = pos.x; + interactiveOverlay.position.y = pos.y; + interactiveOverlay.eventMode = 'static'; + interactiveOverlay.cursor = 'pointer'; + interactiveOverlay.width = width; + interactiveOverlay.height = height; + + this._overlay = interactiveOverlay; + this._attachEvents(); + + const slotIndex = this._container.skeleton.findSlotIndex(this._slotID); + const slotContainer = this._container.slotContainers[slotIndex]; + + slotContainer.addChild(interactiveOverlay); + } + + _attachEvents() { + const { normal, hover } = this._styles; + + this._overlay.on('pointerover', () => { + this.style = hover; + this.y = -0.5 * hover.strokeThickness; + this.update(); + }); + + this._overlay.on('pointerout', () => { + this.style = normal; + this.y = 0; + this.update(); + }); + + this._overlay.on('pointertap', this._onCLick); + } +} diff --git a/src/game/components/TextAttachment.js b/src/game/components/TextAttachment.js new file mode 100644 index 0000000..e4de9ec --- /dev/null +++ b/src/game/components/TextAttachment.js @@ -0,0 +1,112 @@ +import { Text } from "pixi.js"; +import { Locator } from "@popiplay/slot-game-kit"; +import HackAttachment from "./HackAttachment.js"; +import { TextHelper } from "../../../utils/TextHelper.js"; +import { capitalizeFirstLetter } from "utils/utils.js"; + +export default class TextAttachment extends HackAttachment { + static unsupportedFontLangs = ["ru"]; + + constructor(size, options) { + super(size, options); + this.autoScaleToFit = false; + } + + createContent() { + this.textObject = new Text(""); + this.textObject.resolution = this.texture.resolution; + this.container.addChild(this.textObject); + } + + set text(text) { + this.textObject.text = text; + } + + get text() { + return this.textObject.text; + } + + set style(style) { + this.textObject.style = style; + + if (style.align) { + this[`justify${capitalizeFirstLetter(style.align)}`](); + } + } + + get style() { + return this.textObject.style; + } + + set anchor(anchor) { + this.textObject.anchor.set(anchor.x, anchor.y); + } + + get anchor() { + return { ...this.textObject.anchor }; + } + + set x(x) { + this.textObject.x = x; + } + + get x() { + return this.textObject.x; + } + + set y(y) { + this.textObject.y = y; + } + + get y() { + return this.textObject.y; + } + + center() { + this.textObject.anchor.set(0.5); + this.textObject.x = this.size.width * 0.5; + this.textObject.y = this.size.height * 0.5; + } + + alignCenter() { + this.textObject.anchor.set(0, 0.5); + this.textObject.y = this.size.height * 0.5; + } + + alignLeft() { + this.textObject.anchor.y = 0; + this.textObject.y = 0; + } + + justifyCenter() { + this.textObject.anchor.set(0.5, 0); + this.textObject.x = this.size.width * 0.5; + } + + justifyLeft() { + this.textObject.anchor.x = 0; + this.textObject.x = 0; + } + + justifyRight() { + this.textObject.anchor.x = 1; + this.textObject.x = this.size.width; + } + + scaleToFit() { + TextHelper.scaleToFit(this.textObject, this.size); + } + + adjustUnsupportedsFontFamily(fontFamily) { + if (TextAttachment.unsupportedFontLangs.includes(Locator.locales.currentLang)) { + this.textObject.style.fontFamily = fontFamily; + } + } + + update() { + if (this.autoScaleToFit) { + this.scaleToFit(); + } + super.update(); + } +} diff --git a/src/game/machine/BonusGameWonMachine.js b/src/game/machine/BonusGameWonMachine.js new file mode 100644 index 0000000..d0bec0c --- /dev/null +++ b/src/game/machine/BonusGameWonMachine.js @@ -0,0 +1,99 @@ +import { State, StateMachine } from "@popiplay/state-machine"; + +export const WIN_BONUS_GAME_SCENE_STATES = { + ENTRY: 0, + IN: 1, + COUNTDOWN: 2, + OUT: 3 +}; + +export default class BonusGameWonMachine extends StateMachine { + constructor(scene) { + super(scene); + this.provideStates([ + new EntryState(scene), + new InState(scene), + new CountdownState(scene), + new OutState(scene) + ]) + this.setState(WIN_BONUS_GAME_SCENE_STATES.ENTRY); + } +} + +class EntryState extends State { + constructor(scene) { + super("WinBonusGameEntryState"); + this.scene = scene; + } + + skip() { } +} + +class InState extends State { + constructor(scene) { + super("WinBonusGameInState"); + this.scene = scene; + } + + enter() { + this._entry = this.scene.in(); + } + + handleInput(input) { + if (this._entry.trackTime >= this._entry.animation.duration) { + this.scene.stateMachine.setState(WIN_BONUS_GAME_SCENE_STATES.COUNTDOWN); + } + } + + skip() { + this._entry.trackTime = this._entry.animation.duration; + } +} + +class CountdownState extends State { + constructor(scene) { + super("WinBonusGameCountdownState"); + this.scene = scene; + } + + enter() { + this.scene.idle(); + this._time = 0; + this._skip = false; + } + + skip() { + this._skip = true; + } + + update(dt) { + this._time += dt; + } + + handleInput(input) { + const { autoCloseDelay, autoClose } = this.scene.settings; + + if (this._time >= autoCloseDelay && autoClose || this._skip) { + this.scene.stateMachine.setState(WIN_BONUS_GAME_SCENE_STATES.OUT); + } + } +} + +class OutState extends State { + constructor(scene) { + super("WinBonusGameOutState"); + this.scene = scene; + } + + enter() { + this._entry = this.scene.out(); + } + + handleInput(input) { + + } + + skip() { + this._entry.trackTime = this._entry.animation.duration; + } +} diff --git a/src/game/machine/FreespinsMachine.js b/src/game/machine/FreespinsMachine.js new file mode 100644 index 0000000..e2a85d0 --- /dev/null +++ b/src/game/machine/FreespinsMachine.js @@ -0,0 +1,129 @@ +import { + ReelsMachine, + STATES, + InitSpinningExpandedSymbolsSystem, + SpinningExpandedSymbolsSystem, + WinningExpandedSymbolsAnimationSystem, +} from "@popiplay/slot-machines"; +import WinLine from "./entities/WinLine"; +import BasicWin from "./entities/BasicWin"; +import {SpeedModesMachine} from "./states/SpeedModesMachine"; +import StickyValuableReelSymbol from "./entities/StickyValuableReelSymbol"; +import NormalTextValuableExpandedReelSymbol from "./entities/NormalTextValuableExpandedSymbol"; +import {Locator} from "@popiplay/slot-game-kit"; + +export default class FreespinsMachine extends ReelsMachine { + constructor(...args) { + super(...args); + this._machineState = null; + this._reelsStates = Array(this.config.reels).fill('Stopped'); + } + + createMaps() { + super.createMaps(); + } + + createSystems() { + super.createSystems(); + + // this.systems.winLinesAnimations = new MockSystem(this) + + this.systems.winningSymbolsAnim.setSettings({ + zIndex: 2, + }); + this.systems.winLinesAnimations.setSettings({ + zIndex: 20, + lineClass: WinLine, + }); + this.systems.displayTotalLinesWin.setSettings({ + zIndex: 22, + entityClass: BasicWin, + }); + this.systems.displayLineWin.setSettings({ + zIndex: 22, + entityClass: BasicWin, + }); + + this.systems.initSpinningExpandedSymbols = new InitSpinningExpandedSymbolsSystem(this); + this.systems.initSpinningExpandedSymbols.setSettings({ + entityClass: NormalTextValuableExpandedReelSymbol, + }); + + this.systems.spinningExpandedSymbols = new SpinningExpandedSymbolsSystem(this); + this.systems.spinningExpandedSymbols.setSettings({ + entityClass: NormalTextValuableExpandedReelSymbol, + }); + + this.systems.winningExpanded = new WinningExpandedSymbolsAnimationSystem(this); + this.systems.winningExpanded.setSettings({ + entityClass: NormalTextValuableExpandedReelSymbol, + }); + } + + createStateMachine() { + super.createStateMachine(); + this.stateMachine.name = "FreespinsMachine"; + + this.stateMachine.states[STATES.INIT].systems.push( + "initSpinningExpandedSymbols", + ); + + this.stateMachine.states[STATES.SPINNING].systems.push( + "spinningExpandedSymbols", + ); + + // all winning symbols + this.stateMachine.states[3].systems.push( + 'winningExpanded', + ); + + // winning lines loop + this.stateMachine.states[6].systems.push( + 'winningExpanded', + ); + } + + createSymbol(key) { + return new StickyValuableReelSymbol(this.config.symbols[key]); + } + + createSpeedModes() { + this.speedModes = new SpeedModesMachine(this); + } + + update(dt) { + this.events.clearEvents(); + this.speedModes.update(dt); + super.update(dt); + this.events.emitEvents(); + this.checkForSounds(); + } + + checkForSounds() { + // machine state + if (this._machineState !== this.stateMachine.currentState.name) { + Locator.events.emit("machineStateChange", this.stateMachine); + this._machineState = this.stateMachine.currentState.name; + } + // reels start/stop + this.sharedSystemData.reelsStates.forEach((state, reelIndex) => { + if (state === this._reelsStates[reelIndex]) { + return; + } + switch (state) { + case 'Bouncing': + if (reelIndex === this.sharedSystemData.reelsStates.length - 1) { + Locator.events.emit("sfx/stop", "reel_rotation"); + } + Locator.events.emit("sfx/play", "stop"); + break; + case 'Spinning': + if (reelIndex === 0) { + Locator.events.emit("sfx/play", "reel_rotation", {loop: true}); + } + break; + } + this._reelsStates[reelIndex] = state; + }); + } +} diff --git a/src/game/machine/MainGameMachine.js b/src/game/machine/MainGameMachine.js new file mode 100644 index 0000000..5edbb79 --- /dev/null +++ b/src/game/machine/MainGameMachine.js @@ -0,0 +1,175 @@ +import { + AnticipationAnimationsSystem, + AnticipationSymbolsSystem, + AnticipationSystem, + AnticipationTintingSystem, + HighlightLandedSymbolSystem, + ReelsMachine, + STATES, +} from "@popiplay/slot-machines"; +import WinLine from "./entities/WinLine"; +import {SpeedModesMachine} from "./states/SpeedModesMachine"; +import AnticipationBack from "./entities/AnticipationBack"; +import StickyValuableReelSymbol from "./entities/StickyValuableReelSymbol"; +import BasicWin from "./entities/BasicWin"; +import {HighlightAnticipatedSymbolsSystem} from "./systems/HighlightAnticipatedSymbolsSystem"; +import {Locator} from "@popiplay/slot-game-kit"; + +export default class MainGameMachine extends ReelsMachine { + constructor(...args) { + super(...args); + + this.anticipatingReelsCount = 0; + this.sccattersLanded = 0; + + this._machineState = null; + this._anticipatingReels = Array(this.config.reels).fill(false); + this._reelsStates = Array(this.config.reels).fill('Stopped'); + } + createMaps() { + super.createMaps(); + } + + createSystems() { + super.createSystems(); + + this.systems.highlightWildLow = new HighlightLandedSymbolSystem(this); + this.systems.highlightWildLow.settings.key = "L"; + + this.systems.highlightWildMiddle = new HighlightLandedSymbolSystem(this); + this.systems.highlightWildMiddle.settings.key = "M"; + + this.systems.highlightWildHigh = new HighlightLandedSymbolSystem(this); + this.systems.highlightWildHigh.settings.key = "N"; + + this.systems.highlightScatterHigh = new HighlightLandedSymbolSystem(this); + this.systems.highlightScatterHigh.settings.key = "K"; + + this.systems.winningSymbolsAnim.setSettings({ + zIndex: 2, + }); + this.systems.winLinesAnimations.setSettings({ + zIndex: 20, + lineClass: WinLine, + }); + this.systems.displayTotalLinesWin.setSettings({ + zIndex: 22, + entityClass: BasicWin, + }); + this.systems.displayLineWin.setSettings({ + zIndex: 22, + entityClass: BasicWin, + }); + + this.systems.anticipationScatter = new AnticipationSystem(this); + this.systems.anticipationScatter.setSettings({ + enabled: true, + reelStopDelay: 0.5, + duration: 3, + test: /K/, + triggerThreshold: 2, + zIndex: 1000, + }); + + this.systems.anticipationWild = new AnticipationSystem(this); + this.systems.anticipationWild.setSettings({ + enabled: true, + reelStopDelay: 0.5, + duration: 3, + test: /[LMN]/, + triggerThreshold: 2, + zIndex: 1000, + }); + + this.systems.anticipationAnim = new AnticipationAnimationsSystem(this); + this.systems.anticipationAnim.setSettings({ + entityClass: AnticipationBack, + zIndex: 0 + }); + + this.systems.anticipationTinting = new AnticipationTintingSystem(this); + this.systems.anticipationSymbols = new AnticipationSymbolsSystem(this); + + this.systems.highlightAnticipatedSymbols = new HighlightAnticipatedSymbolsSystem(this); + } + + createStateMachine() { + super.createStateMachine(); + this.stateMachine.name = "MainGameMachine"; + this.stateMachine.states[STATES.SPINNING].systems.push( + "highlightWildLow", + "highlightWildMiddle", + "highlightWildHigh", + "highlightScatterHigh", + "anticipationScatter", + "anticipationWild", + "anticipationAnim", + "anticipationSymbols", + "anticipationTinting", + "highlightAnticipatedSymbols", + ); + } + + createSymbol(key) { + return new StickyValuableReelSymbol(this.config.symbols[key]); + } + + createSpeedModes() { + this.speedModes = new SpeedModesMachine(this); + } + + update(dt) { + this.events.clearEvents(); + this.speedModes.update(dt); + super.update(dt); + this.events.emitEvents(); + this.checkForSounds(); + } + + checkForSounds() { + // machine state and stopping anticipation + if (this._machineState !== this.stateMachine.currentState.name) { + Locator.events.emit("machineStateChange", this.stateMachine); + if (this.stateMachine.currentState.name === 'SpinningState') { + this.anticipatingReelsCount = 0; + this.scattersLanded = 0; + } else if (this._machineState === 'SpinningState') { + Locator.events.emit("sfx/stop", "reel_anticipation1"); + Locator.events.emit("sfx/stop", "reel_anticipation2"); + Locator.events.emit("sfx/stop", "reel_anticipation3"); + } + this._machineState = this.stateMachine.currentState.name; + } + // starting anticipation + this.maps.anticipatingReels.forEach((anticipating, reelIndex) => { + if (anticipating === this._anticipatingReels[reelIndex]) { + return; + } + if (anticipating && !this._anticipatingReels[reelIndex]) { + this.anticipatingReelsCount++; + Locator.events.emit("sfx/play", `reel_anticipation${this.anticipatingReelsCount}`); + } + this._anticipatingReels[reelIndex] = anticipating; + }); + // reels start/stop + this.sharedSystemData.reelsStates.forEach((state, reelIndex) => { + if (state === this._reelsStates[reelIndex]) { + return; + } + switch (state) { + case 'Bouncing': + if (reelIndex === this.sharedSystemData.reelsStates.length - 1) { + Locator.events.emit("sfx/stop", "reel_rotation"); + } + Locator.events.emit("sfx/play", "stop"); + break; + case 'Spinning': + if (reelIndex === 0) { + Locator.events.emit("sfx/play", "reel_rotation", {loop: true}); + } + break; + } + this._reelsStates[reelIndex] = state; + }); + } +} diff --git a/src/game/machine/RespinsMachine.js b/src/game/machine/RespinsMachine.js new file mode 100644 index 0000000..45b0f12 --- /dev/null +++ b/src/game/machine/RespinsMachine.js @@ -0,0 +1,143 @@ +import { + HighlightLandedSymbolSystem, + StickySymbolsSystem, + ReelsMachine, + STATES, +} from "@popiplay/slot-machines"; +import WinLine from "./entities/WinLine"; +import BasicWin from "./entities/BasicWin"; +import {SpeedModesMachine} from "./states/SpeedModesMachine"; +import StickyValuableReelSymbol from "./entities/StickyValuableReelSymbol"; +import {InitStickyFramesSystem} from "./systems/InitStickyFramesSystem"; +import {StickyFramesSystem} from "./systems/StickyFramesSystem"; +import {StickyFramesTintingSystem} from "./systems/StickyFramesTintingSystem"; +import {Locator} from "@popiplay/slot-game-kit"; + +export default class RespinsMachine extends ReelsMachine { + constructor(...args) { + super(...args); + this._machineState = null; + this._reelsStates = Array(this.config.reels).fill('Stopped'); + } + + createMaps() { + super.createMaps(); + } + + createSystems() { + super.createSystems(); + + this.systems.highlightWildLow = new HighlightLandedSymbolSystem(this); + this.systems.highlightWildLow.settings.key = "L"; + + this.systems.highlightWildMiddle = new HighlightLandedSymbolSystem(this); + this.systems.highlightWildMiddle.settings.key = "M"; + + this.systems.highlightWildHigh = new HighlightLandedSymbolSystem(this); + this.systems.highlightWildHigh.settings.key = "N"; + + this.systems.stickySymbols = new StickySymbolsSystem(this); + this.systems.stickySymbols.settings.zIndex = 6; + + this.systems.initStickyFrames = new InitStickyFramesSystem(this); + this.systems.initStickyFrames.settings.zIndex = 5; + + this.systems.stickyFrames = new StickyFramesSystem(this); + this.systems.stickyFrames.settings.zIndex = 5; + + this.systems.stickyFramesTinting = new StickyFramesTintingSystem(this); + + this.systems.winningSymbolsAnim.setSettings({ + zIndex: 0, + }); + this.systems.winLinesAnimations.setSettings({ + zIndex: 20, + lineClass: WinLine, + }); + this.systems.displayTotalLinesWin.setSettings({ + zIndex: 22, + entityClass: BasicWin, + }); + this.systems.displayLineWin.setSettings({ + zIndex: 22, + entityClass: BasicWin, + }); + } + + createStateMachine() { + super.createStateMachine(); + this.stateMachine.name = "RespinsMachine"; + + this.stateMachine.states[STATES.INIT].systems.push( + "layering", + "initStickyFrames", + ); + + this.stateMachine.states[STATES.IDLE].systems.push( + 'stickyFramesTinting', + ); + + // all winning symbols + this.stateMachine.states[3].systems.push( + 'stickyFramesTinting', + ); + + // winning lines loop + this.stateMachine.states[6].systems.push( + 'stickyFramesTinting', + ); + + this.stateMachine.states[STATES.SPINNING].systems.push( + "highlightWildLow", + "highlightWildMiddle", + "highlightWildHigh", + "stickySymbols", + "stickyFrames", + 'stickyFramesTinting', + ); + } + + createSymbol(key) { + return new StickyValuableReelSymbol(this.config.symbols[key]); + } + + createSpeedModes() { + this.speedModes = new SpeedModesMachine(this); + } + + update(dt) { + this.events.clearEvents(); + this.speedModes.update(dt); + super.update(dt); + this.events.emitEvents(); + this.checkForSounds(); + } + + checkForSounds() { + // machine state + if (this._machineState !== this.stateMachine.currentState.name) { + Locator.events.emit("machineStateChange", this.stateMachine); + this._machineState = this.stateMachine.currentState.name; + } + // reels start/stop + this.sharedSystemData.reelsStates.forEach((state, reelIndex) => { + if (state === this._reelsStates[reelIndex]) { + return; + } + switch (state) { + case 'Bouncing': + if (reelIndex === this.sharedSystemData.reelsStates.length - 1) { + Locator.events.emit("sfx/stop", "reel_rotation"); + } + Locator.events.emit("sfx/play", "stop"); + break; + case 'Spinning': + if (reelIndex === 0) { + Locator.events.emit("sfx/play", "reel_rotation", {loop: true}); + } + break; + } + this._reelsStates[reelIndex] = state; + }); + } +} diff --git a/src/game/machine/entities/AnticipationBack.js b/src/game/machine/entities/AnticipationBack.js new file mode 100644 index 0000000..7c13624 --- /dev/null +++ b/src/game/machine/entities/AnticipationBack.js @@ -0,0 +1,11 @@ +import {AnticipationFrame} from "@popiplay/slot-machines"; +import {Spine} from "pixi-spine"; +import {Assets} from "pixi.js"; + +export default class AnticipationBack extends AnticipationFrame { + create() { + this.spine = new Spine(Assets.get("anticipation_back").spineData); + this.addChild(this.spine); + this.spine.autoUpdate = false; + } +} diff --git a/src/game/machine/entities/AnticipationFront.js b/src/game/machine/entities/AnticipationFront.js new file mode 100644 index 0000000..64f8a6d --- /dev/null +++ b/src/game/machine/entities/AnticipationFront.js @@ -0,0 +1,11 @@ +import {AnticipationFrame} from "@popiplay/slot-machines"; +import {Spine} from "pixi-spine"; +import {Assets} from "pixi.js"; + +export default class AnticipationFront extends AnticipationFrame { + create() { + this.spine = new Spine(Assets.get("anticipation_front").spineData); + this.addChild(this.spine); + this.spine.autoUpdate = false; + } +} diff --git a/src/game/machine/entities/BasicWin.js b/src/game/machine/entities/BasicWin.js new file mode 100644 index 0000000..459b616 --- /dev/null +++ b/src/game/machine/entities/BasicWin.js @@ -0,0 +1,72 @@ +import {Assets, Container} from "pixi.js"; +import {Spine} from "pixi-spine"; +import TextAttachment from "../../components/TextAttachment"; + +export default class BasicWin extends Container { + constructor() { + super(); + + this._create(); + } + + _create() { + this.spine = new Spine(Assets.get("basic_win").spineData); + this.spine.autoUpdate = false; + this.spine.scale.set(0.4); + this.addChild(this.spine); + + this.betValueText = new TextAttachment({width: 400, height: 100}); + this.betValueText.autoScaleToFit = true; + this.betValueText.boundaries = false; + this.betValueText.text = this._paytableText; + this.betValueText.style = { + dropShadow: true, + dropShadowAlpha: 1, + dropShadowAngle: 89.4, + dropShadowColor: "#6b3822", + dropShadowBlur: 4, + dropShadowDistance: 0, + fill: "#e7d77e", + fontFamily: "KreadonExtraBold", + fontSize: 60, + stroke: "#532c13", + strokeThickness: 2 + }; + this.betValueText.center(); + this.betValueText.attachTo(this.spine, "value"); + + this.value = 0; + this.isShown = false; + } + + set value(value) { + this._value = value; + this.betValueText.text = value; + this.betValueText.update(); + } + + update(dt) { + this.spine.update(dt * 0.001); + } + + show() { + if (this.isShown) return; + this.spine.state.setAnimation(0, "in", false, 0); + this.spine.state.addAnimation(0, "idle", true, 0); + this.isShown = true; + } + + hide() { + if (!this.isShown) return; + this.isShown = false; + this.spine.state.setAnimation(0, "out"); + } + + destroy(_options) { + this.betValueText?.destroy(); + this.spine?.destroy(_options); + this.spine = null; + this.betValueText = null; + super.destroy(_options); + } +} diff --git a/src/game/machine/entities/NormalTextValuableExpandedSymbol.js b/src/game/machine/entities/NormalTextValuableExpandedSymbol.js new file mode 100644 index 0000000..03dec35 --- /dev/null +++ b/src/game/machine/entities/NormalTextValuableExpandedSymbol.js @@ -0,0 +1,101 @@ +import {ValuableExpandedSymbol} from '@popiplay/slot-machines'; +import TextAttachment from "../../components/TextAttachment"; +import {SpineHelper} from '../../../../utils/SpineHelper'; +import {Locator} from '@popiplay/slot-game-kit'; + +const VALUE_STYLE = { + dropShadow: true, + dropShadowAlpha: 1, + dropShadowAngle: 20, + dropShadowBlur: 5, + dropShadowColor: "#7c3400", + dropShadowDistance: 0, + fill: [ + "#ffe760", + "#b67d2c" + ], + fontFamily: "PromptMedium", + fontSize: 29, + stroke: "#ffe858", + strokeThickness: 2, + padding: 10, +}; + +export default class NormalTextValuableExpandedReelSymbol extends ValuableExpandedSymbol { + constructor(config) { + super(config); + this.isHighlighted = false; + this.spine.position.set(-2.5, 4); + + this.spine.state.setAnimation(0, "in", false); + this.spine.state.timeScale = 0; + this.value = config.value; + + delete this.isLanded; + this._isLanded = false; + } + + set value(v) { + if (v <= 0) return; + !this.textObject && this.createValueText(); + this._value = v; + this.textObject.text = `${v}X`; + this.textObject.update(); + } + + get value() { + return this._value; + } + + set isLanded(v) { + if (v && !this._isLanded) { + this.spine.state.setAnimation(0, "in", false); + SpineHelper.skip(this.spine); + } + this._isLanded = v; + } + + get isLanded() { + return this._isLanded; + } + + get soundKey() { + return `wild_${this.key.replace("K", "")}`; + } + + in() { + this.spine.state.timeScale = 1; + Locator.events.emit("sfx/play", `${this.soundKey}_in`); + return super.in(); + } + + win() { + this.spine.state.timeScale = 1; + if (this.parent.stateMachine.currentState.name === 'AllWinningSymbolsState') { + Locator.events.emit("sfx/stop", `${this.soundKey}_win`); + Locator.events.emit("sfx/play", `${this.soundKey}_win`); + } + return super.win(); + } + + createValueText() { + this.textObject = this.createValueTextInstance(); + this.textObject.attachTo(this.spine, "value"); + this.textObject.attachTo(this.spine, "value2"); + } + + createValueTextInstance() { + const textObj = new TextAttachment({width: 60, height: 40}); + textObj.autoScaleToFit = true; + textObj.text = `X${this.config.value}`; + textObj.style = VALUE_STYLE; + textObj.center(); + textObj.update(); + return textObj; + } + + destroy(_options) { + this.textObject?.destroy() + super.destroy(_options); + } +} diff --git a/src/game/machine/entities/StickySymbolFrame.js b/src/game/machine/entities/StickySymbolFrame.js new file mode 100644 index 0000000..004dffa --- /dev/null +++ b/src/game/machine/entities/StickySymbolFrame.js @@ -0,0 +1,23 @@ +import {Assets} from "pixi.js"; +import {Spine} from "pixi-spine"; +import {Locator} from "@popiplay/slot-game-kit"; + +export default class StickySymbolFrame extends Spine { + constructor() { + super(Assets.get("sticky_frame").spineData); + } + + lock() { + Locator.events.emit("sfx/stop", "wild_open"); + Locator.events.emit("sfx/play", "wild_open"); + return this.state.setAnimation(0, "sticky_in", false); + } + + unlock() { + return this.state.setAnimation(0, "sticky_out", false); + } + + update(dt) { + super.update(dt * 0.001); + } +} \ No newline at end of file diff --git a/src/game/machine/entities/StickyValuableReelSymbol.js b/src/game/machine/entities/StickyValuableReelSymbol.js new file mode 100644 index 0000000..664d6fd --- /dev/null +++ b/src/game/machine/entities/StickyValuableReelSymbol.js @@ -0,0 +1,132 @@ +import {ValuableReelSymbol} from "@popiplay/slot-machines"; +import TextAttachment from "../../components/TextAttachment"; +import {Locator} from "@popiplay/slot-game-kit"; +import {Texture} from "pixi.js"; + +const VALUE_STYLE = { + dropShadow: true, + dropShadowAlpha: 1, + dropShadowAngle: 20, + dropShadowBlur: 5, + dropShadowColor: "#7c3400", + dropShadowDistance: 0, + fill: [ + "#ffe760", + "#b67d2c" + ], + fontFamily: "PromptMedium", + fontSize: 29, + stroke: "#ffe858", + strokeThickness: 2, + padding: 10, +}; + +export default class StickyValuableReelSymbol extends ValuableReelSymbol { + constructor(config) { + super(config); + this.isHighlighted = false; + this.value = 0; + } + + set value(v) { + if (v <= 0) { + this.spine.hackTextureBySlotName("value", Texture.EMPTY); + this.spine.hackTextureBySlotName("value2", Texture.EMPTY); + return; + } + if (!this._isValueSlot()) return; + !this.textObject && this.createValueText(); + this._value = v; + this.textObject.text = `${v}X`; + this.textObject.update(); + } + + get value() { + return this._value; + } + + sticky() { + if (!this.spine.state.hasAnimation("sticky")) { + return null; + } + return this.spine.state.setAnimation(0, "sticky", false); + } + + highlight() { + if (!this.spine.state.hasAnimation("highlight")) { + return null; + } + return this.spine.state.setAnimation(1, "highlight", false); + } + + anticipate() { + return super.anticipate(); + } + + idle() { + if (!this.spine.state.hasAnimation("idle")) { + return null; + } + this.spine.update(0); + return super.idle(); + } + + bounce() { + if (!this.spine.state.hasAnimation("bounce")) { + return null; + } + if (this.visible) { + if (['K'].includes(this.key)) { + if (this.parent.scattersLanded !== undefined) { + this.parent.scattersLanded++; + const soundName = `scatter_${Math.min(3, this.parent.scattersLanded)}`; + Locator.events.emit("sfx/stop", soundName); + Locator.events.emit("sfx/play", soundName); + } + } else if (['L', 'M', 'N'].includes(this.key)) { + Locator.events.emit("sfx/stop", "wild_in"); + Locator.events.emit("sfx/play", "wild_in"); + } + } + return super.bounce(); + } + + win() { + if (this.parent.stateMachine.currentState.name === 'CelebrateSymbolsState') { + if (['K'].includes(this.key)) { + Locator.events.emit("sfx/stop", "scatter_win"); + Locator.events.emit("sfx/play", "scatter_win"); + } else if (['L', 'M', 'N'].includes(this.key)) { + Locator.events.emit("sfx/stop", "3_wilds_land"); + Locator.events.emit("sfx/play", "3_wilds_land"); + } + } + return super.win(); + } + + createValueText() { + if (!this._isValueSlot()) {return;}; + this.textObject = this.createValueTextInstance(); + this.textObject.attachTo(this.spine, "value"); + this.textObject.attachTo(this.spine, "value2"); + } + + createValueTextInstance() { + const textObj = new TextAttachment({width: 84, height: 95}); + textObj.autoScaleToFit = true; + textObj.text = this.value ? `${this.value}X` : ''; + textObj.style = VALUE_STYLE; + textObj.center(); + textObj.update(); + return textObj; + } + + destroy(_options) { + this.textObject?.destroy() + super.destroy(_options); + } + + _isValueSlot() { + return this.spine.skeleton.findSlotIndex("value") >= 0; + } +} diff --git a/src/game/machine/entities/WinLine.js b/src/game/machine/entities/WinLine.js new file mode 100644 index 0000000..3b98944 --- /dev/null +++ b/src/game/machine/entities/WinLine.js @@ -0,0 +1,14 @@ +import {WebGLWinLine} from "@popiplay/slot-machines"; +import {Assets} from "pixi.js"; + +export default class WinLine extends WebGLWinLine{ + get texture() { + return Assets.get('win_line'); + } + + get lineThickness() { + return 20 + } + + +} diff --git a/src/game/machine/states/SpeedModesMachine.js b/src/game/machine/states/SpeedModesMachine.js new file mode 100644 index 0000000..0432eb0 --- /dev/null +++ b/src/game/machine/states/SpeedModesMachine.js @@ -0,0 +1,24 @@ +import {ReelsSpinSystem, SpeedModes} from "@popiplay/slot-machines"; + +export class SpeedModesMachine extends SpeedModes { + applyNormalModeSettings() { + console.log("Speed Mode: normal"); + this.target.systems.spin.setSettings({ + ...ReelsSpinSystem.defaultSettings, + maxSpeed: 40, + }); + } + applyTurboModeSettings() { + console.log("Speed Mode: turbo"); + this.target.systems.spin.setSettings({ + accelerationTime: 0.4, + backCoef: 1.3, + maxSpeed: 40, + reelStartDelay: 0, + reelStopDelay: 0, + spinningDuration: 0, + blur: true, + bounce: true, + }); + } +} \ No newline at end of file diff --git a/src/game/machine/systems/HighlightAnticipatedSymbolsSystem.js b/src/game/machine/systems/HighlightAnticipatedSymbolsSystem.js new file mode 100644 index 0000000..f809bb8 --- /dev/null +++ b/src/game/machine/systems/HighlightAnticipatedSymbolsSystem.js @@ -0,0 +1,45 @@ +import {BaseSystem} from "@popiplay/slot-machines"; +import StickyValuableReelSymbol from "../entities/StickyValuableReelSymbol"; + +export class HighlightAnticipatedSymbolsSystem extends BaseSystem { + constructor(machine) { + super(machine); + this.stickyFrames = []; + this.state = 'stopped'; + } + + onEnter() { + this.anticipatingReels = this.machine.maps.anticipatingReels.map(() => false); + this.originalMaxSpeed = this.machine.systems.spin.settings.maxSpeed; + this.active = 'active'; + } + + onLeave() { + } + + update() { + this.handleAnticipatedReelHighlights(); + if (this.machine.sharedSystemData.spinSystemState === 'stopped') { + this.state = 'stopped'; + } + } + + handleAnticipatedReelHighlights() { + this.machine.maps.anticipatingReels.forEach((anticipating, index) => { + if (!anticipating) { + this.machine.systems.spin.reels[index].speed = this.originalMaxSpeed; + return; + } + this.machine.systems.spin.reels[index].speed = 0.33 * this.originalMaxSpeed; + const slotWidth = this.machine.utils.grid.getSlotWidth(); + const halfSlotWidth = slotWidth * 0.5; + const symbolX = halfSlotWidth + (index * slotWidth); + this.machine.children.forEach(entity => { + if (!(entity instanceof StickyValuableReelSymbol)) return; + if (entity.x !== symbolX) return; + if (!this.machine.sharedSystemData.anticipatingSymbolsTests.some(t => t.test(entity.key))) return; + entity.disableBlur(); + }); + }); + } +} \ No newline at end of file diff --git a/src/game/machine/systems/InitStickyFramesSystem.js b/src/game/machine/systems/InitStickyFramesSystem.js new file mode 100644 index 0000000..c413a10 --- /dev/null +++ b/src/game/machine/systems/InitStickyFramesSystem.js @@ -0,0 +1,24 @@ +import {Locator} from "@popiplay/slot-game-kit"; +import {SpineHelper} from "../../../../utils/SpineHelper"; +import {StickyFramesSystem} from "./StickyFramesSystem"; + +export class InitStickyFramesSystem extends StickyFramesSystem { + onEnter() { + this.reelsStates = [...this.machine.sharedSystemData.reelsStates]; + this.state = 'watching'; + } + + update(_dt) { + if (!this.machine.maps.stickyFrames.some(isSticky => isSticky)) return; + this.machine.maps.stickyFrames.forEach((isSticky, i) => { + if (!isSticky) return; + this._addStickyFrame(i); + if (this.machine.flags.isRespinsGameRestored) { + Locator.events.emit("sfx/stop", "wild_open"); + SpineHelper.skip(this.stickyFrames[i]); + } + }); + this._updateZIndex(); + this.state = 'stopped'; + } +} \ No newline at end of file diff --git a/src/game/machine/systems/StickyFramesSystem.js b/src/game/machine/systems/StickyFramesSystem.js new file mode 100644 index 0000000..bf697d2 --- /dev/null +++ b/src/game/machine/systems/StickyFramesSystem.js @@ -0,0 +1,107 @@ +import {AnimationProgressHook, BaseSystem, HooksChain} from "@popiplay/slot-machines"; +import StickySymbolFrame from "../entities/StickySymbolFrame"; + +export class StickyFramesSystem extends BaseSystem { + static defaultSettings = { + zIndex: 4 + }; + + constructor(machine) { + super(machine); + this.hooks = []; + this.stickyFrames = []; + this.setSettings(StickyFramesSystem.defaultSettings); + } + + onEnter() { + this.machine.children.forEach(child => { + if (child instanceof StickySymbolFrame) { + this.stickyFrames[child.symbolIndex] = child; + } + }); + this.reelsStates = [...this.machine.sharedSystemData.reelsStates]; + this.state = 'watching'; + } + + onLeave() { + } + + update(_dt) { + // Track the state of each reel and perform actions based on the state + this.machine.sharedSystemData.reelsStates.forEach((currentState, reelIndex) => { + // Create sticky symbols when a reel starts spinning and remove them when it stops + if (currentState !== this.reelsStates[reelIndex]) { + if (currentState === "Stopped") { + // Reel stops spinning + this._addStickyFramesForReel(reelIndex); + } + this.reelsStates[reelIndex] = currentState; + } + }); + this._updateZIndex(); + this.hooks = this.hooks.filter((hook) => { + hook.update(_dt); + return !hook.isComplete(); + }); + if (this.hooks.length === 0 && !this.machine.flags.isSpinning) this.state = 'stopped'; + } + + _addStickyFramesForReel(reelIndex) { + this.machine.maps.stickyFrames.forEach((isSticky, mapIndex) => { + const stickyFrameReelIndex = this.machine.utils.grid.fromMapIndexToGridCoords(mapIndex).x; + if (!isSticky || stickyFrameReelIndex !== reelIndex) return; + if (!this.stickyFrames[mapIndex]) { + this._addStickyFrame(mapIndex); + } else if (this.stickyFrames[mapIndex].value !== this.machine.getChildByName(this.machine.maps.symbols[mapIndex]).value) { + this._reapplyStickyFrame(mapIndex); + } + }); + } + + _addStickyFrame(i) { + const originalSymbol = this.machine.getChildByName(this.machine.maps.symbols[i]); + const stickyFrame = new StickySymbolFrame(); + const track = stickyFrame.lock(); + stickyFrame.symbolIndex = i; + stickyFrame.autoUpdate = false; + stickyFrame.position.copyFrom(originalSymbol.position); + stickyFrame.value = originalSymbol.value; + this.machine.addChild(stickyFrame); + this.stickyFrames[i] = stickyFrame; + const inHook = new AnimationProgressHook(() => track); + const chain = new HooksChain(); + chain.addHook(inHook); + this.hooks.push(chain); + } + + _reapplyStickyFrame(i) { + const originalSymbol = this.machine.getChildByName(this.machine.maps.symbols[i]); + const stickyFrame = this.stickyFrames[i]; + stickyFrame.value = originalSymbol.value; + this.machine.maps.stickySymbols[i] = false; + const symbolChain = new HooksChain() + .addHook(new AnimationProgressHook(() => originalSymbol.win())); + const frameChain = new HooksChain() + .addHook(new AnimationProgressHook(() => stickyFrame.unlock())) + .addHook(new AnimationProgressHook(() => stickyFrame.lock())); + this.hooks.push(symbolChain, frameChain); + } + + _updateZIndex() { + this.stickyFrames.forEach((stickyFrame, _) => { + if (!stickyFrame) return; + stickyFrame.zIndex = !this.machine.flags.isSpinning ? 2 : this.settings.zIndex; + }); + + this.machine.children.sort((a, b) => { + if (a instanceof StickySymbolFrame && b instanceof StickySymbolFrame) { + if (a.y > b.y) return 1; + if (a.y < b.y) return -1; + if (a.x > b.x) return 1; + if (a.x < b.x) return -1; + } + return 0; + }); + } + +} \ No newline at end of file diff --git a/src/game/machine/systems/StickyFramesTintingSystem.js b/src/game/machine/systems/StickyFramesTintingSystem.js new file mode 100644 index 0000000..45c6ade --- /dev/null +++ b/src/game/machine/systems/StickyFramesTintingSystem.js @@ -0,0 +1,51 @@ +import {BaseSystem} from "@popiplay/slot-machines"; +import StickySymbolFrame from "../entities/StickySymbolFrame"; + +export class StickyFramesTintingSystem extends BaseSystem { + constructor(machine) { + super(machine); + this.stickyFrames = []; + this.state = 'stopped'; + } + + onEnter() { + this.machine.children.forEach(child => { + if (child instanceof StickySymbolFrame) { + this.stickyFrames[child.symbolIndex] = child; + } + }); + this._updateStickyFramesTint(); + this._updateSort(); + } + + onLeave() { + } + + update() { + this._updateStickyFramesTint(); + this._updateSort(); + } + + _updateStickyFramesTint() { + this.stickyFrames.forEach((stickyFrame, mapIndex) => { + if (!stickyFrame) return; + stickyFrame.tint = this.machine.maps.tinting[mapIndex] + ? this.machine.systems.tinting.settings.color + : 0xFFFFFF; + }); + } + + _updateSort() { + this.machine.children.sort((a, b) => { + if (a instanceof StickySymbolFrame && b instanceof StickySymbolFrame) { + if (this.machine.maps.tinting[a.symbolIndex] && !this.machine.maps.tinting[b.symbolIndex]) return -1; + if (!this.machine.maps.tinting[a.symbolIndex] && this.machine.maps.tinting[b.symbolIndex]) return 1; + if (a.y > b.y) return 1; + if (a.y < b.y) return -1; + if (a.x > b.x) return 1; + if (a.x < b.x) return -1; + } + return 0; + }); + } +} \ No newline at end of file diff --git a/src/game/models/GameData.js b/src/game/models/GameData.js new file mode 100644 index 0000000..02f3fb9 --- /dev/null +++ b/src/game/models/GameData.js @@ -0,0 +1,79 @@ +import {Assets} from "pixi.js"; +import {BaseGameData} from "@popiplay/slot-game-kit"; + +export class GameData extends BaseGameData { + constructor(rawData) { + super(rawData); + this._initCelebrateSymbolIndexes(); + this._initExpandingSymbolsData(); + this._initStickySymbolsMap(); + } + + resetDataToIdleState() { + this.wins = null; + this.celebrateSymbolIndexes = null; + } + + _initCelebrateSymbolIndexes() { + if (this.lastActionID > 1) { + return; + } + this.celebrateSymbolIndexes = []; + if (["init", "spin"].includes(this.command)) { + if (this.screenMap.filter(symbol => symbol.key === "K").length >= 3) { + this.screenMap.forEach((symbol, index) => { + if (symbol.key === "K") { + this.celebrateSymbolIndexes.push(index); + } + }); + } + if (this.screenMap.filter(symbol => ["L", "M", "N"].includes(symbol.key)).length >= 3) { + this.screenMap.forEach((symbol, index) => { + if (["L", "M", "N"].includes(symbol.key)) { + this.celebrateSymbolIndexes.push(index); + } + }); + } + } + } + + _initExpandingSymbolsData() { + const {screen} = this.rawData.outcome || this.rawData.options; + this.expandedSymbolsData = Array(screen.length).fill(null); + this.rawData.outcome?.storage?.expanded_wilds?.forEach(([[reel, _slot], value, grade]) => { + const key = ["K1", "K2", "K3"][grade]; + this.expandedSymbolsData[reel] = {key, value}; + }); + } + + _getSymbolsKeyValue(rawSymbolName, x, y) { + const slotMachineConfig = Assets.get("slotMachine"); + const {symbolsKeys} = slotMachineConfig; + if (+rawSymbolName !== 0 || !this.wilds) { + return {key: symbolsKeys[rawSymbolName], value: 0}; + } + const wild = this.wilds.find(wild => wild[0][0] === x && wild[0][1] === y); + const value = wild[1]; + let key; + if (value < 5) { + key = "L"; + } else if (value < 25) { + key = "M"; + } else { + key = "N"; + } + return {key, value}; + } + + _initStickySymbolsMap() { + const config = Assets.get("slotMachine"); + this.stickySymbolsMap = this.screenMap.map(() => false); + if (!this.rawData.features?.sticky_wilds) { + return; + } + this.rawData.features.sticky_wilds.forEach(([[reel, slot]]) => { + this.stickySymbolsMap[reel + slot * config.reels] = true; + }); + } + +} diff --git a/src/game/observers/SafariFullscreenObserver.js b/src/game/observers/SafariFullscreenObserver.js new file mode 100644 index 0000000..363ea4f --- /dev/null +++ b/src/game/observers/SafariFullscreenObserver.js @@ -0,0 +1,65 @@ +import {Locator} from "@popiplay/slot-game-kit"; +import SafariScrollOverlay from "../scene/SafariScrollOverlay.js"; +import {Assets} from "pixi.js"; + +export default class SafariFullscreenObserver { + constructor(game) { + this.game = game; + this.popup = null; + Locator.viewport.on('resize', this.handleResize, this); + this.scrollElement = document.body.querySelector('.spacer'); + this.handleResize(); + } + + handleResize() { + if (!Locator.viewport.isLandscape()) { + this.handlePortraitMode(); + return; + } + + this.handleLandscapeMode(); + } + + handlePortraitMode() { + this.popup && this.popup.destroy(); + this.popup = null; + document.body.style.overflow = 'hidden' + this.scrollElement.style.display = 'none' + Locator.viewport.eventMode = 'auto' + Locator.events.emit('scrollOverlay/hidden') + document.body.querySelector('.content').style.pointerEvents = 'auto'; + } + + handleLandscapeMode() { + if (window.innerHeight >= screen.width * 0.9) { + this.scrollElement.style.display = 'none'; + Locator.viewport.eventMode = 'auto' + document.body.style.touchAction = 'none'; + document.body.querySelector('.content').style.pointerEvents = 'auto'; + Locator.events.emit('scrollOverlay/hidden') + this.popup && this.popup.destroy(); + this.popup = null; + window.scrollTo(0, 0); + return; + } + + if (this.popup) return; + + this.popup = new SafariScrollOverlay(); + Locator.viewport.addChild(this.popup); + Locator.events.emit('scrollOverlay/shown') + this.popup.resize(); + window.scrollTo(0, 0); + Locator.viewport.eventMode = 'none'; + document.body.style.touchAction = "auto" + this.scrollElement.style.display = 'block'; + document.body.querySelector('.content').style.pointerEvents = 'none'; + document.body.style.overflow = 'auto' + } + + destroy() { + this.popup && this.popup.destroy(); + this.popup = null; + Locator.viewport.off('resize', this.handleResize, this); + } +} diff --git a/src/game/scene/Background.js b/src/game/scene/Background.js new file mode 100644 index 0000000..efaca11 --- /dev/null +++ b/src/game/scene/Background.js @@ -0,0 +1,13 @@ +import SpineLayer from "./SpineLayer"; + +export default class Background extends SpineLayer { + constructor(assetName) { + super(assetName); + this.spine.state.setAnimation(0, 'animation', true); + } + + resize(...args) { + super.resize(...args); + this.scale.set(1.05); + } +} diff --git a/src/game/scene/BuyBonus/BuyBonus.js b/src/game/scene/BuyBonus/BuyBonus.js new file mode 100644 index 0000000..594ecba --- /dev/null +++ b/src/game/scene/BuyBonus/BuyBonus.js @@ -0,0 +1,207 @@ +import {gsap} from "gsap"; +import {Sprite, Texture} from "pixi.js"; +import {BuyBonusViewModel, Locator, Scene} from "@popiplay/slot-game-kit"; +import {CloseButton} from "./entities/CloseButton.js"; +import {BetPicker} from "./entities/BetPicker.js"; +import {CardsList} from "./entities/CardsList.js"; +import {Card} from "./entities/Card.js"; + + +export const CARDS_CONFIG = [ + { + featureKey: "bonusBuy", + featureMethod: "buyBonus", + title: "buy_bonus_title", + textureName: "buy_bonus", + description: "buy_bonus_desc", + }, + { + featureKey: "freespinBuy", + featureMethod: "buyFreespins", + title: "buy_freespins_title", + textureName: "buy_freespins", + description: "buy_freespins_desc", + }, + { + featureKey: "bonus_chance", + featureMethod: "toggleBetFeatureActive", + title: "bet_feature_title", + textureName: "bet_feature", + description: "bet_feature_desc", + betFeature: true, + }, +]; + +export default class BuyBonusScene extends Scene { + constructor() { + super("buy_bonus_scene"); + this.zIndex = 100; + this.alpha = 0; + + /** + * + * @type {BuyBonusViewModel} + */ + this.inputs = { + isMinusButtonPressed: false, + isPlusButtonPressed: false, + betFeatureActive: false, + }; + + } + + create() { + this.createBackground(); + this.createCloseButton(); + this.createBetPicker(); + this.createCardsList(); + this.createBetFeaturePopUp(); + this.show(); + } + + createBackground() { + this.background = new Sprite(Texture.WHITE); + this.background.tint = 0x000000; + this.background.alpha = 0.6; + this.background.eventMode = "static"; + this.addChild(this.background); + } + + createCloseButton() { + this.closeButton = new CloseButton(); + this.closeButton.onPress.connect(this.handleCloseButtonPress.bind(this)); + this.addChild(this.closeButton.view); + } + + createBetPicker() { + this.betPicker = new BetPicker(); + this.betPicker.minusButton.onDown.connect(this.handleMinusButtonDown.bind(this)); + this.betPicker.minusButton.onUp.connect(this.handleMinusButtonUp.bind(this)); + this.betPicker.plusButton.onDown.connect(this.handlePlusButtonDown.bind(this)); + this.betPicker.plusButton.onUp.connect(this.handlePlusButtonUp.bind(this)); + this.addChild(this.betPicker); + } + + createCardsList() { + this.cardsList = new CardsList(CARDS_CONFIG); + this.cardsList.on("select", this.handleCardSelect.bind(this)); + this.addChild(this.cardsList); + } + + createBetFeaturePopUp() { + const cardConfig = CARDS_CONFIG.find(c => c.betFeature); + this.betFeaturePopUp = new Card({ + ...cardConfig, + textureName: undefined, + description: "bet_feature_confirmation_desc", + }); + this.betFeaturePopUp.on("select", this.handleConfirmBetFeature.bind(this)); + this.betFeaturePopUp.alpha = 0; + this.betFeaturePopUp.enabled = false; + this.addChild(this.betFeaturePopUp); + } + + run() { + super.run(); + Locator.events.emit("sfx/stop", "bonus_buy_popup"); + Locator.events.emit("sfx/play", "bonus_buy_popup"); + } + + stop() { + this.background.destroy({children: true}); + this.closeButton.view.destroy({children: true}); + this.betPicker.destroy({children: true}); + this.cardsList.destroy({children: true}); + this.betFeaturePopUp?.destroy({children: true}); + } + + show() { + gsap.to(this, {alpha: 1, duration: 0.3}); + } + + hide() { + return gsap.to(this, {alpha: 0, duration: 0.3}); + } + + showBetFeaturePopUp() { + gsap.timeline().to(this.betPicker, {alpha: 0, duration: 0.3}); + gsap.timeline() + .to(this.cardsList, {alpha: 0, duration: 0.3}) + .to(this.betFeaturePopUp, {alpha: 1, duration: 0.3}) + .call(() => { + this.betFeaturePopUp.enabled = true; + }); + } + + update() { + this.betPicker.update(this.inputs); + this.cardsList.update(this.inputs); + } + + handleCloseButtonPress() { + gsap.timeline() + .add(this.hide()) + .call(() => this.emit("complete")); + } + + handleMinusButtonDown() { + this.inputs.isMinusButtonPressed = true; + } + + handleMinusButtonUp() { + this.inputs.isMinusButtonPressed = false; + } + + handlePlusButtonDown() { + this.inputs.isPlusButtonPressed = true; + } + + handlePlusButtonUp() { + this.inputs.isPlusButtonPressed = false; + } + + handleCardSelect(cardConfig) { + if (cardConfig.betFeature) { + if (this.inputs.betFeatureActive) { + this.inputs[cardConfig.featureMethod](); + } else { + this.cardsList.cards.forEach(c => c.enabled = false); + this.showBetFeaturePopUp(cardConfig); + } + } else { + this.cardsList.cards.forEach(c => c.enabled = false); + this.executeAndClose(cardConfig); + } + } + + handleConfirmBetFeature() { + const cardConfig = CARDS_CONFIG.find(c => c.betFeature); + this.betFeaturePopUp.enabled = false; + this.executeAndClose(cardConfig); + } + + executeAndClose(cardConfig) { + gsap.timeline() + .add(this.hide()) + .call(() => { + this.inputs[cardConfig.featureMethod](); + this.emit("complete"); + }); + } + + resize(resizeData) { + const isListPortrait = this.cardsList.isPortrait(resizeData.right - resizeData.left); + // background + this.background.width = resizeData.viewportWidth; + this.background.height = resizeData.viewportHeight; + // close button + this.closeButton.view.position.set(resizeData.right - 22, 22); + // bet picker + this.betPicker.position.set(resizeData.center.x, 0.5 * this.betPicker.height + (isListPortrait ? 15 : 50)); + // options list + this.cardsList.position.set(resizeData.left, this.betPicker.position.y + 0.5 * this.betPicker.height + (isListPortrait ? 30 : 3)); + this.cardsList.resize(resizeData); + // confirm popup + this.betFeaturePopUp.position.set(resizeData.center.x - 0.5 * this.betFeaturePopUp.width, resizeData.center.y - 0.5 * this.betFeaturePopUp.height); + } +} diff --git a/src/game/scene/BuyBonus/entities/BetPicker.js b/src/game/scene/BuyBonus/entities/BetPicker.js new file mode 100644 index 0000000..6dfbdd9 --- /dev/null +++ b/src/game/scene/BuyBonus/entities/BetPicker.js @@ -0,0 +1,145 @@ +import {Container, Graphics, Text} from "pixi.js"; +import {Button} from "@pixi/ui"; +import {Locator} from "@popiplay/slot-game-kit"; +import {TextHelper} from "../../../../../utils/TextHelper"; + +const BUTTON = { + SIZE: 12.5, + STYLE: { + IDLE: {backgroundTint: 0x2b3031, alpha: 1, scale: 1}, + PRESSED: {backgroundTint: 0x6e7572, alpha: 1, scale: 0.9}, + HOVERED: {backgroundTint: 0x6e7572, alpha: 1, scale: 1}, + DISABLED: {backgroundTint: 0x2b3031, alpha: 0.5, scale: 1} + } +}; + +export class BetPicker extends Container { + constructor() { + super(); + this.create(); + } + + create() { + this.createLabel(); + this.createValue(); + this.createButtons(); + } + + createLabel() { + this.labelText = new Text(Locator.locales.get("bet").toLocaleUpperCase(), { + fill: "#ffffff", + fontSize: 10.7, + fontWeight: "bold", + fontFamily: "Oxanium, Opensans", + }); + TextHelper.scaleToFit(this.labelText, {width: 130}); + this.labelText.anchor.set(0.5); + this.labelText.position.set(0, -13.5); + this.addChild(this.labelText); + } + + createValue() { + const valueBackground = new Graphics() + .beginFill(0x2b3031, 0.6) + .drawRoundedRect(-40, -12, 2 * 40, 2 * 12, 4) + .endFill(); + valueBackground.position.set(0, -this.labelText.y); + this.valueText = new Text("", { + fill: "#ffffff", + fontSize: 10, + fontWeight: "bold", + fontFamily: "Oxanium, Opensans", + }); + this.valueText.anchor.set(0.5); + this.valueText.position.copyFrom(valueBackground); + this.addChild(valueBackground, this.valueText); + } + + createButtons() { + this.minusButton = new Button(new Container()); + this.minusButton.view.position.set(-56, 13); + this.plusButton = new Button(new Container()); + this.plusButton.view.position.set(-this.minusButton.view.x, this.minusButton.view.y); + // common buttons setup + const buttons = [this.minusButton, this.plusButton]; + buttons.forEach(button => { + // background + button.background = new Graphics() + .beginFill(0xffffff) + .drawCircle(0, 0, BUTTON.SIZE) + .endFill(); + button.view.addChild(button.background); + // default style + this.setButtonStyle(button, BUTTON.STYLE.IDLE); + // listeners + button.onDown.connect(this.handleButtonEvent.bind(this)); + button.onUpOut.connect(this.handleButtonEvent.bind(this)); + button.onUp.connect(this.handleButtonEvent.bind(this)); + button.onHover.connect(this.handleButtonEvent.bind(this)); + button.onOut.connect(this.handleButtonEvent.bind(this)); + // add + this.addChild(button.view); + }); + // minus button icon + const minusIcon = new Graphics() + .lineStyle(2.2, 0xd2d2d2) + .moveTo(-7.5, 0) + .lineTo(7.5, 0); + this.minusButton.view.addChild(minusIcon); + // plus button icon + const plusIcon = new Graphics() + .lineStyle(2.2, 0xd2d2d2) + .moveTo(-7.5, 0) + .lineTo(7.5, 0) + .moveTo(0, -7.5) + .lineTo(0, -1) + .moveTo(0, 1) + .lineTo(0, 7.5); + this.plusButton.view.addChild(plusIcon); + } + + handleButtonEvent(button, event) { + switch (event.type) { + case "pointerdown": + this.setButtonStyle(button, BUTTON.STYLE.PRESSED); + break; + case "pointerup": + this.setButtonStyle(button, BUTTON.STYLE.HOVERED); + Locator.events.emit("button/click", "buyBonus/betPicker/" + (button === this.minusButton ? "minus" : "plus")); + break; + case "pointerupoutside": + this.setButtonStyle(button, BUTTON.STYLE.IDLE); + break; + case "pointerover": + this.setButtonStyle(button, BUTTON.STYLE.HOVERED); + Locator.events.emit("button/pointerover"); + break; + case "pointerout": + this.setButtonStyle(button, BUTTON.STYLE.IDLE); + break; + } + } + + setButtonStyle(button, style) { + const {backgroundTint, alpha, scale} = style; + button.background.tint = backgroundTint; + button.view.alpha = alpha; + button.view.scale.set(scale); + } + + update(inputs) { + this.valueText.text = inputs.currency.getFormattedValue(inputs.bet); + TextHelper.scaleToFit(this.valueText, {width: 70}); + const buttonEnabledData = [ + [this.minusButton, !inputs.isMinBet], + [this.plusButton, !inputs.isMaxBet], + ]; + buttonEnabledData.forEach(([button, enabled]) => { + if (button.enabled === enabled) { + return; + } + button.enabled = enabled; + this.setButtonStyle(button, enabled ? BUTTON.STYLE.IDLE : BUTTON.STYLE.DISABLED); + }); + } +} \ No newline at end of file diff --git a/src/game/scene/BuyBonus/entities/Card.js b/src/game/scene/BuyBonus/entities/Card.js new file mode 100644 index 0000000..17cc307 --- /dev/null +++ b/src/game/scene/BuyBonus/entities/Card.js @@ -0,0 +1,337 @@ +import {Assets, Container, Graphics, Sprite, Text, Texture} from "pixi.js"; +import {Button} from "@pixi/ui"; +import {Locator} from "@popiplay/slot-game-kit"; +import {capitalizeFirstLetter} from "../../../../../utils/utils"; +import {TextHelper} from "../../../../../utils/TextHelper"; + +const IDLE = "IDLE"; +const PRESSED = "PRESSED"; +const HOVERED = "HOVERED"; +const DISABLED = "DISABLED"; + +const CARD = { + WIDTH: 200, + HEIGHT: 260, + MAX_TEXT_WIDTH: 170, + COLOR: { + BACKGROUND: 0x2b3031, + ACTIVE: 0xff8618, + }, + TEXT_STYLE: { + TITLE: {fill: 0xffffff, fontSize: 13, align: "center", fontWeight: 600, fontFamily: "Oxanium, Opensans", wordWrap: true, wordWrapWidth: 160}, + DESCRIPTION: {fill: 0xffffff, fontSize: 10.5, align: "center", fontFamily: "Oxanium, Opensans", wordWrap: true, wordWrapWidth: 160}, + DESCRIPTION_WITHOUT_IMAGE: {fill: 0xffffff, fontSize: 12, align: "center", fontFamily: "Oxanium, Opensans", wordWrap: true, wordWrapWidth: 160}, + LOCK: {fill: 0xffffff, fontSize: 17, align: "center", fontWeight: "bold", fontFamily: "Oxanium, Opensans", wordWrap: false}, + LOCK_DESCRIPTION: {fill: 0xffffff, fontSize: 12, align: "center", fontWeight: "bold", fontFamily: "Oxanium, Opensans", wordWrap: false}, + }, +}; + +const BUTTON = { + WIDTH: 116, + HEIGHT: 38, + MAX_TEXT_WIDTH: 100, + STYLE: { + [IDLE]: { + NORMAL: {backgroundTint: 0xffc103, alpha: 1, scale: 1}, + ACTIVE: {backgroundTint: 0xff8512, alpha: 1, scale: 1}, + }, + [PRESSED]: { + NORMAL: {backgroundTint: 0xffff05, alpha: 1, scale: 0.95}, + ACTIVE: {backgroundTint: 0xfed722, alpha: 1, scale: 0.95}, + }, + [HOVERED]: { + NORMAL: {backgroundTint: 0xffff05, alpha: 1, scale: 1}, + ACTIVE: {backgroundTint: 0xfed722, alpha: 1, scale: 1}, + }, + [DISABLED]: { + NORMAL: {backgroundTint: 0xffc103, alpha: 0.5, scale: 1}, + ACTIVE: {backgroundTint: 0xff8512, alpha: 0.5, scale: 1}, + }, + }, + TEXT_STYLE: { + ACTION: { + NORMAL: {fill: 0x000000, fontSize: 12, fontWeight: "bold", fontFamily: "Oxanium, Opensans"}, + ACTIVE: {fill: 0xffffff, fontSize: 12, fontWeight: "bold", fontFamily: "Oxanium, Opensans"}, + }, + COST: { + NORMAL: {fill: 0x795120, fontSize: 12, fontWeight: "bold", fontFamily: "Oxanium, Opensans"}, + ACTIVE: {fill: 0x795120, fontSize: 12, fontWeight: "bold", fontFamily: "Oxanium, Opensans"}, + }, + }, +}; + +export class Card extends Container { + constructor(props) { + super(); + const {betFeature} = props; + // private properties + this._cost = ""; + this._locked = false; + this._enabled = true; + this._buttonEnabled = true; + this._active = false; + this._width = CARD.WIDTH; + this._height = CARD.HEIGHT; + // public properties + this.betFeature = betFeature; + // create + this.create(props); + } + + set cost(v) { + if (this._cost === v) return; + this._cost = v; + this.button.costText.text = v; + TextHelper.scaleToFit(this.button.costText, {width: BUTTON.MAX_TEXT_WIDTH}); + } + + get cost() { + return this._cost; + } + + set locked(v) { + if (this._locked === v) return; + this._locked = v; + this.lockOverlay.visible = v; + } + + get locked() { + return this._locked; + } + + set active(v) { + if (this._active === v) return; + this._active = v; + this._styleKey = v ? 'ACTIVE' : 'NORMAL'; + this.activeOutline.visible = v; + this.updateButtonTextsStyles(); + this.setButtonStyle(this.button.style); + TextHelper.scaleToFit(this.button.actionText, {width: BUTTON.MAX_TEXT_WIDTH}); + } + + get active() { + return this._active; + } + + set enabled(v) { + if (this._enabled === v) return; + this._enabled = v; + this.button.enabled = v; + } + + get enabled() { + return this._enabled; + } + + set buttonEnabled(v) { + if (this._buttonEnabled === v) return; + this._buttonEnabled = v; + if (v) { + this.setButtonStyle(IDLE); + } else { + this.setButtonStyle(DISABLED); + } + this.button.enabled = v; + } + + get buttonEnabled() { + return this._buttonEnabled; + } + + get width() { + return this._width; + } + + set width(v) { + this._width = v; + } + + get height() { + return this._height; + } + + set height(v) { + this._height = v; + } + + get originalWidth() { + return CARD.WIDTH; + } + + get originalHeight() { + return CARD.HEIGHT; + } + + create(props) { + this.createBackground(props); + this.createActiveOutline(props); + this.createTitle(props); + this.createPreviewSprite(props); + this.createDescription(props); + this.createButton(props); + this.createLockOverlay(props); + } + + createBackground() { + this.background = new Graphics() + .beginFill(CARD.COLOR.BACKGROUND) + .drawRoundedRect(0, 0, this.width, this.height, 4) + .endFill(); + this.addChild(this.background); + } + + createActiveOutline() { + this.activeOutline = new Graphics() + .lineStyle(2, CARD.COLOR.ACTIVE, 1, 1) + .drawRoundedRect(0, 0, this.width, this.height, 4); + this.activeOutline.visible = false; + this.addChild(this.activeOutline); + } + + createTitle({title}) { + this.titleText = new Text(Locator.locales.get(title).toUpperCase(), CARD.TEXT_STYLE.TITLE); + TextHelper.scaleToFit(this.titleText, {width: CARD.MAX_TEXT_WIDTH, height: 25}); + this.titleText.anchor.set(0.5); + this.titleText.position.set(0.5 * this.width, 23); + this.addChild(this.titleText); + } + + createPreviewSprite({textureName}) { + if (!textureName) { + return; + } + this.previewSprite = new Sprite(Assets.get(textureName)); + this.previewSprite.scale.set(0.5); + this.previewSprite.anchor.set(0.5); + this.previewSprite.position.set(0.5 * this.width, 95); + this.addChild(this.previewSprite); + } + + createDescription({description}) { + const [style, maxHeight, position] = this.previewSprite + ? [CARD.TEXT_STYLE.DESCRIPTION, 45, 177] + : [CARD.TEXT_STYLE.DESCRIPTION_WITHOUT_IMAGE, 140, 115]; + this.descriptionText = new Text(Locator.locales.get(description), style); + TextHelper.scaleToFit(this.descriptionText, {width: CARD.MAX_TEXT_WIDTH, height: maxHeight}); + this.descriptionText.anchor.set(0.5); + this.descriptionText.position.set(0.5 * this.width, position); + this.addChild(this.descriptionText); + } + + createButton() { + this.button = new Button(new Container()); + this.button.view.position.set(0.5 * this.width, this.height - 35); + // background + this.button.background = new Graphics() + .beginFill(0xffffff) + .drawRoundedRect( + -0.5 * BUTTON.WIDTH, + -0.5 * BUTTON.HEIGHT, + BUTTON.WIDTH, + BUTTON.HEIGHT, + 4, + ) + .endFill(); + this.button.view.addChild(this.button.background); + // texts + if (this.betFeature) { + this.button.actionText = new Text(Locator.locales.get("activate").toUpperCase()); + this.button.view.addChild(this.button.actionText); + } else { + this.button.actionText = new Text(Locator.locales.get("buy").toUpperCase()); + this.button.actionText.position.set(0, -6.2); + this.button.costText = new Text(""); + this.button.costText.position.set(this.button.actionText.x, -this.button.actionText.y); + this.button.view.addChild(this.button.actionText, this.button.costText); + } + this.updateButtonTextsStyles(); + // default style + this.setButtonStyle(IDLE); + // listeners + this.button.onDown.connect(this.handleButtonEvent.bind(this)); + this.button.onUpOut.connect(this.handleButtonEvent.bind(this)); + this.button.onUp.connect(this.handleButtonEvent.bind(this)); + this.button.onHover.connect(this.handleButtonEvent.bind(this)); + this.button.onOut.connect(this.handleButtonEvent.bind(this)); + this.button.onPress.connect(() => this.emit("select")); + // add + this.addChild(this.button.view); + } + + createLockOverlay() { + this.lockOverlay = new Container(); + this.lockOverlay.visible = false; + // background + const lockOverlayBackground = new Graphics() + .beginFill(0x141817, 0.9) + .drawRoundedRect(0, 0, this.width, this.height, 4) + .endFill(); + lockOverlayBackground.eventMode = 'static'; + this.lockOverlay.addChild(lockOverlayBackground); + // texts + this.lockedTextsContainer = new Container(); + this.lockedText = new Text(capitalizeFirstLetter(Locator.locales.get("locked")), CARD.TEXT_STYLE.LOCK); + TextHelper.scaleToFit(this.lockedText, {width: CARD.MAX_TEXT_WIDTH}); + this.lockedText.anchor.set(0.5); + this.lockedText.position.set(0.5 * this.width, 0.52 * this.height - 15); + this.lockedByText = new Text(Locator.locales.get("by_wild_spin"), CARD.TEXT_STYLE.LOCK_DESCRIPTION); + TextHelper.scaleToFit(this.lockedByText, {width: CARD.MAX_TEXT_WIDTH}); + this.lockedByText.anchor.set(0.5); + this.lockedByText.position.set(0.5 * this.width, 0.52 * this.height + 15); + this.lockedTextsContainer.addChild(this.lockedText, this.lockedByText); + this.lockOverlay.addChild(this.lockedTextsContainer); + this.addChild(this.lockOverlay); + } + + handleButtonEvent(_, event) { + if (!event) { + return; + }; + switch (event.type) { + case "pointerdown": + this.setButtonStyle(PRESSED); + break; + case "pointerup": + this.setButtonStyle(HOVERED); + Locator.events.emit("button/click", "buyBonus/card"); + break; + case "pointerupoutside": + this.setButtonStyle(IDLE); + break; + case "pointerover": + this.setButtonStyle(HOVERED); + Locator.events.emit("button/pointerover"); + break; + case "pointerout": + this.setButtonStyle(IDLE); + break; + } + } + + updateButtonTextsStyles() { + const status = this._active + ? 'ACTIVE' + : 'NORMAL'; + const translation = this.betFeature + ? this._active ? 'deactivate' : 'activate' + : 'buy'; + this.button.actionText.text = Locator.locales.get(translation).toUpperCase(); + this.button.actionText.anchor.set(0.5); + this.button.actionText.style = BUTTON.TEXT_STYLE.ACTION[status]; + TextHelper.scaleToFit(this.button.actionText, {width: BUTTON.MAX_TEXT_WIDTH}); + if (this.button.costText) { + this.button.costText.anchor.set(0.5); + this.button.costText.style = BUTTON.TEXT_STYLE.COST[status]; + TextHelper.scaleToFit(this.button.costText, {width: BUTTON.MAX_TEXT_WIDTH}); + } + } + + setButtonStyle(style) { + this.button.style = style; + const status = this._active ? 'ACTIVE' : 'NORMAL'; + const {backgroundTint, alpha, scale} = BUTTON.STYLE[style][status]; + this.button.background.tint = backgroundTint; + this.button.view.alpha = alpha; + this.button.view.scale.set(scale); + } +} \ No newline at end of file diff --git a/src/game/scene/BuyBonus/entities/CardsList.js b/src/game/scene/BuyBonus/entities/CardsList.js new file mode 100644 index 0000000..2bf8692 --- /dev/null +++ b/src/game/scene/BuyBonus/entities/CardsList.js @@ -0,0 +1,94 @@ +import {ScrollBox} from "@pixi/ui"; +import {BuyBonusViewModel} from "@popiplay/slot-game-kit"; +import {Card} from "./Card"; + +export class CardsList extends ScrollBox { + constructor(cardsConfig) { + super({ + width: 1, + height: 1, + elementsMargin: 20, + }); + this.cardsConfig = cardsConfig; + this.create(); + } + + create() { + this.cards = this.cardsConfig.map(cardConfig => { + const card = new Card(cardConfig); + card.on("select", () => this.emit("select", cardConfig)); + return card; + }); + this.addItems(this.cards); + } + + update(inputs) { + if (!(inputs instanceof BuyBonusViewModel)) { + super.update(inputs); + return; + } + this.cards.forEach((card, i) => { + if (card.betFeature) { + card.active = inputs.betFeatureActive; + } else { + const totalCost = inputs.bet * inputs.featureMultipliers[this.cardsConfig[i].featureKey]; + card.cost = inputs.currency.getFormattedValue(totalCost); + card.locked = inputs.betFeatureActive; + card.buttonEnabled = card.locked || inputs.balance >= totalCost; + } + }); + } + + resize(resizeData) { + super.resize(true); + if (!resizeData) { + return; + } + const width = resizeData.right - resizeData.left; + const height = resizeData.viewportHeight - this.position.y; + if (this.width !== width || this.height !== height) { + this.width = width; + this.height = height; + const {originalWidth: cardWidth, originalHeight: cardHeight} = this.cards[0]; + const portrait = this.isPortrait(width); + if (portrait) { + const scaleFactor = Math.min(1, 0.8 * this.width / cardWidth); + this.cards.forEach(card => { + card.width = cardWidth * scaleFactor; + card.height = cardHeight * scaleFactor; + card.scale.set(scaleFactor)} + ); + this.init({ + ...this.options, + type: 'vertical', + topPadding: 0, + bottomPadding: height - cardHeight * scaleFactor, + leftPadding: 0.5 * (this.width - cardWidth * scaleFactor), + elementsMargin: 20 * scaleFactor, + }); + } else { + const horizontalCardsWidth = this.getHorizontalCardsWidth(); + this.init({ + ...this.options, + type: 'horizontal', + topPadding: 0.3 * (this.height - cardHeight), + bottomPadding: 0, + leftPadding: 0.5 * (this.width - horizontalCardsWidth) + 20, + }); + } + this.list.position.set(0); + } + } + + isPortrait(width) { + return width < this.getHorizontalCardsWidth(); + } + + getHorizontalCardsWidth() { + return this.cards.reduce((acc, card) => acc + card.width + this.options.elementsMargin, this.options.elementsMargin); + } + + isItemVisible() { + return true; + } +} \ No newline at end of file diff --git a/src/game/scene/BuyBonus/entities/CloseButton.js b/src/game/scene/BuyBonus/entities/CloseButton.js new file mode 100644 index 0000000..83601df --- /dev/null +++ b/src/game/scene/BuyBonus/entities/CloseButton.js @@ -0,0 +1,80 @@ +import {Container, Graphics, Text} from "pixi.js"; +import {Button} from "@pixi/ui"; +import {Locator} from "@popiplay/slot-game-kit"; + +const BUTTON = { + SIZE: 13, + STYLE: { + IDLE: {backgroundTint: 0x2b3031, scale: 1}, + PRESSED: {backgroundTint: 0x6e7572, scale: 0.9}, + HOVERED: {backgroundTint: 0x6e7572, scale: 1}, + } +}; + +export class CloseButton extends Button { + constructor() { + super(new Container()); + this.create(); + this.setButtonStyle(BUTTON.STYLE.IDLE); + this.setupListeners(); + } + + create() { + this.createBackground(); + this.createIcon(); + } + + createBackground() { + this.background = new Graphics() + .beginFill(0xd2d2d2) + .drawCircle(0, 0, BUTTON.SIZE) + .endFill(); + this.view.addChild(this.background); + } + + createIcon() { + this.icon = new Graphics() + .lineStyle(2.2, 0xd2d2d2) + .moveTo(-6, -6) + .lineTo(6, 6) + .moveTo(6, -6) + .lineTo(-6, 6); + this.view.addChild(this.icon); + } + + setButtonStyle(style) { + const {backgroundTint, scale} = style; + this.background.tint = backgroundTint; + this.view.scale.set(scale); + } + + setupListeners() { + this.onDown.connect(this.handleButtonEvent.bind(this)); + this.onUpOut.connect(this.handleButtonEvent.bind(this)); + this.onUp.connect(this.handleButtonEvent.bind(this)); + this.onHover.connect(this.handleButtonEvent.bind(this)); + this.onOut.connect(this.handleButtonEvent.bind(this)); + } + + handleButtonEvent(_, event) { + switch (event.type) { + case "pointerdown": + this.setButtonStyle(BUTTON.STYLE.PRESSED); + break; + case "pointerup": + this.setButtonStyle(BUTTON.STYLE.HOVERED); + Locator.events.emit("button/click", "buyBonus/close"); + break; + case "pointerupoutside": + this.setButtonStyle(BUTTON.STYLE.IDLE); + break; + case "pointerover": + this.setButtonStyle(BUTTON.STYLE.HOVERED); + Locator.events.emit("button/pointerover"); + break; + case "pointerout": + this.setButtonStyle(BUTTON.STYLE.IDLE); + break; + } + } +} \ No newline at end of file diff --git a/src/game/scene/Character.js b/src/game/scene/Character.js new file mode 100644 index 0000000..525ae6b --- /dev/null +++ b/src/game/scene/Character.js @@ -0,0 +1,20 @@ +import {Assets, Container} from "pixi.js"; +import {Spine} from "pixi-spine"; + +export default class Character extends Container { + constructor(assetName) { + super(); + this.createSpine(assetName); + this.spine.state.setAnimation(0, 'animation', true); + } + + createSpine(assetName) { + this.spine = new Spine(Assets.get(assetName).spineData); + this.spine.autoUpdate = false; + this.addChild(this.spine); + } + + update(dt) { + this.spine.update(dt * 0.001); + } +} diff --git a/src/game/scene/FreespinsScene/FreespinsScene.js b/src/game/scene/FreespinsScene/FreespinsScene.js new file mode 100644 index 0000000..01c6bbf --- /dev/null +++ b/src/game/scene/FreespinsScene/FreespinsScene.js @@ -0,0 +1,179 @@ +import {Locator, Scene, SCENES} from "@popiplay/slot-game-kit"; +import {Assets} from "pixi.js"; +import FreespinsMachine from "../../machine/FreespinsMachine"; +import {parseWinsData} from "../../../../utils/parseWinsData"; +import Background from "../Background"; +import Reels from "../Reels"; +import SpineLayer from "../SpineLayer"; +import Character from "../Character"; +import FrontLayer from "../FrontLayer"; + +export const STATES = { + IDLE: 0, + WAIT_GAME_DATA: 1, + WAIT_END_ROUND: 2 +}; + +export default class FreespinsScene extends Scene { + + get resizeSkinPrefix() { + return "resize/>"; + } + + get resizeSkin() { + return this.resizeSkinPrefix + Math.floor(Locator.viewport.cropWidthRatio * 10) * 10; + } + + constructor() { + super("freespins_scene"); + + this.inputs = {}; + + this._winIsTakenIntoAccount = false; + } + + create(data) { + this._createMachine(); + this.background = new Background('freespins_game_background'); + this.reels = new Reels('freespins'); + this.reels.addToSlotByName('slot_placeholder', this.machine); + this.reels.hidePlaceholder('bonus_indicator_placeholder'); + this.charactersPlaceholder = new SpineLayer('freespins_character_placeholder'); + this.characterLeft = new Character('freespins_character_left'); + this.characterLeft.scale.y = -1; + this.charactersPlaceholder.addToSlotByName('placeholder_left', this.characterLeft); + this.characterRight = new Character('freespins_character_right'); + this.characterRight.scale.y = -1; + this.charactersPlaceholder.addToSlotByName('placeholder_right', this.characterRight); + this.front = new FrontLayer('freespins_game_front'); + this.addChild(this.background, + this.reels, + this.charactersPlaceholder, + this.front + ); + super.create(); + } + + run() { + this.machine.inputs.initMap = this.inputs.gameData.screenMap; + this.machine.inputs.wins = parseWinsData(this.inputs.gameData.wins, this.inputs.currency); + this.machine.inputs.expandedSymbolsData = this.inputs.gameData.expandedSymbolsData; + this.setState(STATES.WAIT_END_ROUND); + super.run(); + Locator.events.emit("music/setScene", SCENES.FREESPINS_GAME_SCENE); + } + + stop() { + this.characterLeft.destroy(); + this.characterRight.destroy(); + this.background.destroy({children: true}); + this.reels.destroy({children: true}); + this.front.destroy({children: true}); + this.charactersPlaceholder.destroy({children: true}); + this.machine.destroy({children: true}); + super.stop(); + } + + update(dt) { + if (this.state === STATES.IDLE) { + this.handleIdleState(); + } + + if (this.state === STATES.WAIT_GAME_DATA) { + this.handleWaitSceneDataState(); + } + + if (this.state === STATES.WAIT_END_ROUND) { + this.handleRoundWin(); + this.handleWaitEndRoundState(); + } + + + this.updateMachine(dt); + this.background.update(dt); + this.reels.update(dt); + this.charactersPlaceholder.update(dt); + this.front.update(dt); + this.characterLeft.update(dt); + this.characterRight.update(dt); + } + + updateMachine(dt) { + this.machine.inputs.spin = this.inputs.isRoundStarted; + this.machine.inputs.turbo = this.inputs.isTurboModeActive; + this.machine.inputs.fastStop = this.inputs.isFastStopActive; + this.machine.inputs.turboForced = this.inputs.isTurboModeForced; + this.machine.inputs.blockExitState = this.inputs.isRoundEndProcessing; + this.machine.update(dt); + } + + resize(resizeData) { + this.background.position.set(resizeData.center.x, resizeData.center.y); + this.background.resize(this.resizeSkin); + this.reels.position.set(resizeData.center.x, resizeData.center.y); + this.reels.resize(this.resizeSkin); + this.charactersPlaceholder.position.set(resizeData.center.x, resizeData.center.y); + this.charactersPlaceholder.resize(this.resizeSkin); + this.front.position.set(resizeData.center.x, resizeData.center.y); + this.front.resize(this.resizeSkin); + } + + setState(state) { + this.state = state; + this.inputs.model.emit("enterToState", {state}); + } + + _createMachineInstance(config) { + return new FreespinsMachine(config); + } + + _createMachine() { + const config = Assets.get("slotMachine"); + this.machine = this._createMachineInstance({ + ...config, lines: this.inputs.lines, + }); + this.machine.x = - config.width * 0.5; + this.machine.y = config.height * 0.5; + this.machine.scale.y = -1; + } + + handleIdleState() { + if (this.machine.stateMachine.currentState.name === "SpinningState") { + this._winIsTakenIntoAccount = false; + this.machine.inputs.screenMap = null; + this.machine.inputs.wins = null; + this.machine.inputs.blockExitState = true; + this.setState(STATES.WAIT_GAME_DATA); + } + } + + handleWaitSceneDataState() { + if (!this.inputs.gameData) return; + this.machine.inputs.screenMap = this.inputs.gameData.screenMap; + this.machine.inputs.wins = parseWinsData(this.inputs.gameData.wins, this.inputs.currency); + this.machine.inputs.expandedSymbolsData = this.inputs.gameData.expandedSymbolsData; + this.setState(STATES.WAIT_END_ROUND); + } + + handleRoundWin() { + if (!this.inputs.gameData) return; + const stateName = this.machine.stateMachine.currentState.name; + if (stateName === "AllWinningSymbolsState" && !this._winIsTakenIntoAccount) { + this.reels.playWin(); + this.inputs.win = this.inputs.gameData.winInRound; + this.inputs.bonusIndicatorData.left = this.inputs.gameData.bonusSpins.left; + this._winIsTakenIntoAccount = true; + } + } + + handleWaitEndRoundState() { + if (!this.inputs.gameData) return; + const stateName = this.machine.stateMachine.currentState.name; + if (stateName === "EndingRoundState") { + this.machine.inputs.screenMap = null; + this.inputs.isRoundEnded = true; + this.setState(STATES.IDLE); + this.emit('endRound'); + } + } +} diff --git a/src/game/scene/FrontLayer.js b/src/game/scene/FrontLayer.js new file mode 100644 index 0000000..1713f30 --- /dev/null +++ b/src/game/scene/FrontLayer.js @@ -0,0 +1,15 @@ +import SpineLayer from "./SpineLayer"; +import {Locator, SETTINGS} from "@popiplay/slot-game-kit"; + +export default class FrontLayer extends SpineLayer { + constructor(assetName) { + super(assetName); + this.spine.state.setAnimation(0, 'animation', true); + } + + resize(resizeSkin) { + super.resize(resizeSkin); + this.spine.skeleton.findBone('right').x = SETTINGS.viewport.width * Locator.viewport.cropWidthRatio * 0.5 + this.spine.skeleton.findBone('left').x = -SETTINGS.viewport.width * Locator.viewport.cropWidthRatio * 0.5 + } +} diff --git a/src/game/scene/MainGameReels.js b/src/game/scene/MainGameReels.js new file mode 100644 index 0000000..22d0b0d --- /dev/null +++ b/src/game/scene/MainGameReels.js @@ -0,0 +1,43 @@ +import TextAttachment from "../components/TextAttachment"; +import Reels from "./Reels"; + +export default class MainGameReels extends Reels { + constructor() { + super('main'); + this.hidePlaceholder('bonus_indicator_placeholder'); + this.createWinAmountTexts(); + } + + createWinAmountTexts() { + this.winAmountText = new TextAttachment({width: 100, height: 20}); + this.winAmountText.style = { + dropShadow: true, + dropShadowAlpha: 1, + dropShadowAngle: 89.4, + dropShadowColor: "#4f2810", + dropShadowDistance: 2, + fill: "#e7d77e", + fontFamily: "KreadonExtraBold", + fontSize: 20, + stroke: "#ffef85" + }; + this.winAmountText.autoScaleToFit = true; + } + + playWinAmount(amountText) { + this.spine.state.setAnimation(1, 'counter/in'); + this.spine.state.addAnimation(1, 'counter/calculation'); + this.spine.state.addAnimation(1, 'counter/out'); + this.spine.update(0); + this.winAmountText.text = amountText; + this.winAmountText.center(); + this.winAmountText.update(); + this.winAmountText.attachTo(this.spine, 'counter_value'); + this.winAmountText.attachTo(this.spine, 'counter_value2'); + } + + destroy(_options) { + this.winAmountText.destroy(); + super.destroy(_options); + } +} diff --git a/src/game/scene/MainGameScene/MainGameScene.js b/src/game/scene/MainGameScene/MainGameScene.js new file mode 100644 index 0000000..7cfa464 --- /dev/null +++ b/src/game/scene/MainGameScene/MainGameScene.js @@ -0,0 +1,233 @@ +import {Locator, SCENES, Scene} from "@popiplay/slot-game-kit"; +import {AnticipationAnimationsSystem} from "@popiplay/slot-machines"; +import {Assets, Container} from "pixi.js"; +import MainGameMachine from "../../machine/MainGameMachine.js"; +import AnticipationFront from "../../machine/entities/AnticipationFront"; +import {parseWinsData} from "../../../../utils/parseWinsData"; +import Background from "../Background"; +import MainGameReels from "../MainGameReels.js"; +import FrontLayer from "../FrontLayer"; +import SpineLayer from "../SpineLayer"; +import Character from "../Character"; + +export const STATES = { + IDLE: 0, + WAIT_GAME_DATA: 1, + WAIT_END_ROUND: 2 +}; + +export default class MainGameScene extends Scene { + + get resizeSkinPrefix() { + return "resize/>"; + } + + get resizeSkin() { + return this.resizeSkinPrefix + Math.floor(Locator.viewport.cropWidthRatio * 10) * 10; + } + + constructor() { + super("main_game_scene"); + + this.inputs = {}; + + this._roundWinTakenIntoAccount = false; + this._bonusWinTakenIntoAccount = false; + } + + create(data) { + this._createMachine(); + this.machine.x -= 2; + this.background = new Background('main_game_background'); + this.reels = new MainGameReels(); + this.reels.addToSlotByName('slot_placeholder', this.machine); + this.charactersPlaceholder = new SpineLayer('main_character_placeholder'); + this.character = new Character('main_game_character'); + this.character.scale.y = -1; + this.charactersPlaceholder.addToSlotByName('placeholder', this.character); + this.front = new FrontLayer('main_game_front'); + this.addChild(this.background, + this.reels, + this.machineFrontContainter, + this.charactersPlaceholder, + this.front + ); + super.create(); + } + + run() { + this._machineState = this.machine.stateMachine.currentState.name; + this.machine.inputs.initMap = this.inputs.gameData.screenMap; + this.machine.inputs.screenMap = this.inputs.gameData.screenMap; + this.machine.inputs.wins = parseWinsData(this.inputs.gameData.wins, this.inputs.currency); + this.machine.inputs.celebrateSymbolIndexes = this.inputs.gameData.celebrateSymbolIndexes; + this.setState(STATES.WAIT_END_ROUND); + super.run(); + Locator.events.emit("music/setScene", SCENES.MAIN_GAME_SCENE); + } + + stop() { + this.character.destroy(); + this.background.destroy({children: true}); + this.reels.destroy({children: true}); + this.front.destroy({children: true}); + this.charactersPlaceholder.destroy({children: true}); + this.machine.destroy({children: true}); + this.machineFrontContainter.destroy({children: true}); + super.stop(); + } + + update(dt) { + if (this.state === STATES.IDLE) { + this.handleIdleState(); + } + + if (this.state === STATES.WAIT_GAME_DATA) { + this.handleWaitGameDataState(); + } + + if (this.state === STATES.WAIT_END_ROUND) { + this.handleRoundWin(); + this.handleBonusWin(); + this.handleWaitEndRoundState(); + } + + this.updateMachine(dt); + this.updateChildrenInMachineFrontContainer(dt); + this.updateMachineFrontContaiterTransforms(); + + this.background.update(dt); + this.reels.update(dt); + this.charactersPlaceholder.update(dt); + this.front.update(dt); + this.character.update(dt); + } + + updateMachine(dt) { + this.machine.inputs.spin = this.inputs.isRoundStarted; + this.machine.inputs.turbo = this.inputs.isTurboModeActive; + this.machine.inputs.fastStop = this.inputs.isFastStopActive; + this.machine.inputs.turboForced = this.inputs.isTurboModeForced; + this.machine.inputs.blockExitState = this.inputs.isRoundEndProcessing; + this.machine.update(dt); + this.frontAnticipationSystem.update(dt); + } + + updateChildrenInMachineFrontContainer(dt) { + this.machineFrontContainter.children.forEach((child) => { + child.update(dt); + }); + } + + updateMachineFrontContaiterTransforms() { + const containerWT = this.machine.worldTransform; + const sceneWT = this.worldTransform.clone(); + sceneWT.invert(); + this.machineFrontContainter.transform.setFromMatrix(sceneWT.append(containerWT)); + } + + resize(resizeData) { + this.background.position.set(resizeData.center.x, resizeData.center.y); + this.background.resize(this.resizeSkin); + this.reels.position.set(resizeData.center.x, resizeData.center.y); + this.reels.resize(this.resizeSkin); + this.charactersPlaceholder.position.set(resizeData.center.x, resizeData.center.y); + this.charactersPlaceholder.resize(this.resizeSkin); + this.front.position.set(resizeData.center.x, resizeData.center.y); + this.front.resize(this.resizeSkin); + } + + setState(state) { + this.state = state; + } + + _createMachineInstance(config) { + return new MainGameMachine(config); + } + + _createMachine() { + const config = Assets.get("slotMachine"); + this.machine = this._createMachineInstance({ + ...config, lines: this.inputs.lines, + }); + this.machine.x = - config.width * 0.5; + this.machine.y = config.height * 0.5; + this.machine.scale.y = -1; + this.machine.events.addListener("slotReleased", this.handleSlotRelease, this); + this.machineFrontContainter = new Container(); + this.addChild(this.machineFrontContainter); + + this.frontAnticipationSystem = new AnticipationAnimationsSystem(this.machine); + this.frontAnticipationSystem.setSettings({ + entityClass: AnticipationFront, + parent: this.machineFrontContainter, + zIndex: 0 + }); + this.frontAnticipationSystem.onEnter(); + } + + handleSlotRelease(e) { + const symbolID = this.machine.maps.symbols[e.mapIndex]; + const symbol = this.machine.getChildByName(symbolID); + Locator.scenes.pause(SCENES.MAIN_GAME_SCENE); + Locator.scenes.run(SCENES.MINI_PAYTABLES, { + symbolConfig: symbol.config, + machine: this.machine, + callback: () => { + Locator.scenes.resume(SCENES.MAIN_GAME_SCENE); + } + }); + } + + handleIdleState() { + if (this.machine.stateMachine.currentState.name === "SpinningState") { + this._roundWinTakenIntoAccount = false; + this._bonusWinTakenIntoAccount = false; + this.machine.inputs.screenMap = null; + this.machine.inputs.wins = null; + this.machine.inputs.celebrateSymbolIndexes = null; + this.setState(STATES.WAIT_GAME_DATA); + } + } + + handleWaitGameDataState() { + if (!this.inputs.gameData) return; + this.machine.inputs.screenMap = this.inputs.gameData.screenMap; + this.machine.inputs.wins = parseWinsData(this.inputs.gameData.wins, this.inputs.currency); + this.machine.inputs.celebrateSymbolIndexes = this.inputs.gameData.celebrateSymbolIndexes; + this.machine.inputs.expandedSymbolsData = this.inputs.gameData.expandedSymbolsData; + this.setState(STATES.WAIT_END_ROUND); + } + + handleRoundWin() { + if (!this.inputs.gameData) return; + const stateName = this.machine.stateMachine.currentState.name; + if (stateName === "AllWinningSymbolsState" && !this._roundWinTakenIntoAccount) { + this.reels.playWin(); + this.inputs.win = this.inputs.gameData.winInRound; + if (!this.inputs.isBigWinAchieved) { + this.reels.playWinAmount(this.inputs.currency.getFormattedValue(this.inputs.gameData.winInRound)); + } + this._roundWinTakenIntoAccount = true; + } + } + + handleBonusWin() { + if (!this.inputs.gameData) return; + const stateName = this.machine.stateMachine.currentState.name; + if (stateName === "CelebrateSymbolsState" && !this._bonusWinTakenIntoAccount) { + this.reels.playWin(); + this._bonusWinTakenIntoAccount = true; + } + } + + handleWaitEndRoundState() { + if (!this.inputs.gameData) return; + const stateName = this.machine.stateMachine.currentState.name; + if (stateName === "EndingRoundState") { + this.inputs.isRoundEnded = true; + this.setState(STATES.IDLE); + this.emit("endRound"); + } + } +} diff --git a/src/game/scene/MiniPaytableScene/MiniPaytableCard.js b/src/game/scene/MiniPaytableScene/MiniPaytableCard.js new file mode 100644 index 0000000..a6c271b --- /dev/null +++ b/src/game/scene/MiniPaytableScene/MiniPaytableCard.js @@ -0,0 +1,52 @@ +import { Assets, Container, Texture, Text } from "pixi.js"; +import { Spine } from "pixi-spine"; +import { TextHelper } from "../../../../utils/TextHelper"; +import StickyValuableReelSymbol from "../../machine/entities/StickyValuableReelSymbol"; + +export default class MiniPaytableCard extends Container { + constructor(assetName, symbolConfig, paytable) { + super(); + this.spine = new Spine(Assets.get(assetName).spineData); + this.paytable = paytable; + this.addChild(this.spine); + + const symbolSlotIndex = this.spine.skeleton.findSlotIndex("symbol"); + const symbolSlotContainer = this.spine.slotContainers[symbolSlotIndex]; + + this.spine.hackTextureBySlotName("symbol", Texture.EMPTY); + + this.symbol = new StickyValuableReelSymbol(symbolConfig); + this.symbol.scale.y = -1; + this.symbol.spine.hackTextureBySlotName("value", Texture.EMPTY); + this.symbol.spine.hackTextureBySlotName("value2", Texture.EMPTY) + symbolSlotContainer.addChild(this.symbol); + + this.spine.hackTextureBySlotName("text", Texture.EMPTY); + const textSlotIndex = this.spine.skeleton.findSlotIndex("text"); + const textSlotContainer = this.spine.slotContainers[textSlotIndex]; + + this.text = new Text(paytable, { + fill: [ + "#e4bb39", + "#e4872c" + ], + fontFamily: "SouthbankLT", + stroke: 0x650e25, + strokeThickness: 2, + fontWeight: "bold" + }); + + this.text.anchor.set(0.5); + TextHelper.scaleToFit(this.text, { width: 100, height: 80 }); + this.text.scale.y = -this.text.scale.y; + textSlotContainer.addChild(this.text); + } + + update(dt) { + this.symbol.update(dt); + } + + in() { + this.symbol.bounce(); + } +} diff --git a/src/game/scene/MiniPaytableScene/MiniPaytableScene.js b/src/game/scene/MiniPaytableScene/MiniPaytableScene.js new file mode 100644 index 0000000..c908c78 --- /dev/null +++ b/src/game/scene/MiniPaytableScene/MiniPaytableScene.js @@ -0,0 +1,93 @@ +import {Locator, Scene, SCENES, SETTINGS} from "@popiplay/slot-game-kit"; +import {Assets, Sprite, Texture} from "pixi.js"; +import gsap from "gsap"; +import MiniPaytableCard from "./MiniPaytableCard"; + +const OVERLAY_ALPHA = 0.7; + +export default class MiniPaytableScene extends Scene { + constructor() { + super(SCENES.MINI_PAYTABLES); + this.zIndex = 100000; + this.inputs = {}; + this._isRoundStarted = false; + } + + create(data) { + this._isRoundStarted = false; + this.overlay = new Sprite(Texture.WHITE); + this.overlay.width = SETTINGS.viewport.width; + this.overlay.height = SETTINGS.viewport.height; + this.overlay.alpha = OVERLAY_ALPHA; + this.overlay.tint = 0; + this.overlay.eventMode = 'static'; + this.addChild(this.overlay); + + this.card = new MiniPaytableCard("mini_paytable", data.symbolConfig, this.inputs[data.symbolConfig.key]); + this.card.eventMode = "static"; + this.addChild(this.card); + this.data = data; + super.create(data); + } + + run() { + super.create(); + this.in(); + } + + update(dt) { + this.card.update(dt); + + // handle spin + if (this.inputs.isRoundStarted && !this._isRoundStarted) { + this.handlePointerOut(); + } + + this.resize(); + + this._isRoundStarted = this.inputs.isRoundStarted; + } + + stop() { + this.card.destroy({children: true}); + this.overlay.destroy({children: true}); + super.stop(); + } + + resize() { + const config = Assets.get("slotMachine"); + const containerWT = this.data.machine.worldTransform.clone(); + const sceneWT = this.worldTransform.clone(); + sceneWT.invert(); + this.card.transform.setFromMatrix(sceneWT.append(containerWT)); + this.card.position.x += 0.5 * config.width * this.card.scale.x; + this.card.position.y += 0.5 * config.height * this.card.scale.y; + } + + in() { + gsap.timeline() + .fromTo(this.overlay, {alpha: 0}, {alpha: OVERLAY_ALPHA, duration: 0.3}) + .fromTo(this.card, {alpha: 0, y: '-=50'}, {alpha: 1, y: '+=50', duration: 0.3}, '<') + .eventCallback("onComplete", () => { + this.overlay.on("pointerdown", this.handlePointerOut, this); + this.card.on("pointerout", this.handlePointerOut, this); + }); + this.card.in(); + } + + out() { + gsap.timeline() + .fromTo(this.overlay, {alpha: OVERLAY_ALPHA}, {alpha: 0, duration: 0.3}) + .fromTo(this.card, {alpha: 1, }, {alpha: 0, y: '+=50', duration: 0.3}, '<') + .then(() => { + Locator.scenes.stop(this.name); + this.data.callback(); + }); + } + + handlePointerOut() { + this.card.off("pointerout", this.handlePointerOut, this); + this.overlay.off("pointerdown", this.handlePointerOut, this); + this.out(); + } +} diff --git a/src/game/scene/Paytable/PayoutsPage.js b/src/game/scene/Paytable/PayoutsPage.js new file mode 100644 index 0000000..a6fb818 --- /dev/null +++ b/src/game/scene/Paytable/PayoutsPage.js @@ -0,0 +1,45 @@ +import PaytablePage from "./PaytablePage"; +import TextAttachment from "../../components/TextAttachment"; +import { PAYOUT_STYLE, PAYOUTS_CONFIG } from "./constants"; +import { getStyle } from "utils/utils"; + +export default class PayoutsPage extends PaytablePage { + constructor({ model, assetName, pageNumber }) { + super({ model, assetName, pageNumber }); + + this._tables = []; + this._createTables(model); + } + + _createTables(inputs) { + PAYOUTS_CONFIG.forEach(key => { + const { width, height, ...style } = getStyle(PAYOUT_STYLE); + const payValue = new TextAttachment({ width, height }); + const text = inputs[key]; + + payValue.style = style; + payValue.text = text; + payValue.justifyCenter(); + payValue.autoScaleToFit = true; + payValue.attachTo(this, `table_${key}`); + payValue.update(); + this._tables.push(); + }); + } + + resize(resizeData) { + const { width, height } = getStyle(PAYOUT_STYLE); + super.resize(resizeData); + + this._tables.forEach(table => { + table.resize({ width, height }); + table.justifyCenter(); + table.update(); + }); + } + + destroy(options) { + this._tables.forEach(table => table.destroy()); + super.destroy(options); + } +} diff --git a/src/game/scene/Paytable/Paytable.js b/src/game/scene/Paytable/Paytable.js new file mode 100644 index 0000000..45799db --- /dev/null +++ b/src/game/scene/Paytable/Paytable.js @@ -0,0 +1,213 @@ +import { Scene, Locator, SETTINGS, EmbeddedSpineButton } from "@popiplay/slot-game-kit"; +import { Assets } from "pixi.js"; +import { Spine } from "pixi-spine"; +import TextAttachment from "../../components/TextAttachment.js"; +import { PAGES_CONFIG } from "./constants.js"; + +export default class Paytable extends Scene { + constructor() { + super("paytable"); + this.zIndex = 12 + + this.inputs = {}; + } + + create() { + this.spine = new Spine(Assets.get("paytable_slider").spineData); + this.spine.autoUpdate = false; + this.addChild(this.spine); + this.currentPage = 0; + this.rightClickCounter = 0; + this.leftClickCounter = 0; + this.autoUpdate = false; + this.spine.state.timeScale = 1.2; + + this.pagesAnimations = this.spine.spineData.animations + .map((animation) => animation.name) + .filter((animationName) => animationName.includes("pages/")) + .sort(); + + this.spine.state.setAnimation(0, this.currentPageAnimationName, false); + + this.centerSlot = this.spine.skeleton.findSlot("center_anchor"); + this.centerSlotIndex = this.spine.skeleton.findSlotIndex("center_anchor"); + this.centerSlotContainer = this.spine.slotContainers[this.centerSlotIndex]; + + this.leftSlot = this.spine.skeleton.findSlot("left_anchor"); + this.leftSlotIndex = this.spine.skeleton.findSlotIndex("left_anchor"); + this.leftSlotContainer = this.spine.slotContainers[this.leftSlotIndex]; + + this.rightSlot = this.spine.skeleton.findSlot("right_anchor"); + this.rightSlotIndex = this.spine.skeleton.findSlotIndex("right_anchor"); + this.rightSlotContainer = this.spine.slotContainers[this.rightSlotIndex]; + + let track = 10; + this.rightBtn = new EmbeddedSpineButton(this.spine, "arrow_r_button", track, ++track); + this.leftBtn = new EmbeddedSpineButton(this.spine, "arrow_l_button", ++track, ++track); + this.closeBtn = new EmbeddedSpineButton(this.spine, "close_btn", ++track, ++track); + + this.spine.state.addListener({ + event: (entry, event) => { + if (event.data.name === "arrow_r_button/up") { + this.handleRightBtnClick(); + } else if (event.data.name === "arrow_l_button/up") { + this.handleLeftBtnClick(); + } else if (event.data.name === "slider/startRightSlide") { + this.handleSlideLeft(); + } else if (event.data.name === "slider/startLeftSlide") { + this.handleSlideRight(); + } + else if (event.data.name === "slider/end") { + this.updateSlider(); + } + this.emit(event.data.name, event); + } + }); + this.pages = Object.entries(PAGES_CONFIG).map(this._createPage.bind(this)); + + this.updateSlider(); + + this.title = new TextAttachment({ width: 200, height: 40 }); + this.title.text = Locator.locales.get("paytable_title"); + this.title.center(); + this.title.autoScaleToFit = true; + this.title.style = { + fill: 0xffffff, + fontSize: 24, + fontFamily: "Oxanium, Opensans", + fontWeight: "bold", + }; + this.title.update(); + this.title.attachTo(this.spine, "header_title"); + } + + stop() { + this.spine.destroy({ children: true }); + this.title.destroy({ children: true }); + } + + get currentPageAnimationName() { + return this.pagesAnimations[this.currentPage]; + } + + handleRightBtnClick() { + if (this.rightClickCounter > 0) { + this.rightClickCounter++; + return; + } + this.rightClickCounter++; + this.spine.state.setAnimation(1, "slider/left_slide", false); + } + + handleLeftBtnClick() { + if (this.leftClickCounter > 0) { + this.leftClickCounter++; + return; + } + this.leftClickCounter++; + this.spine.state.setAnimation(1, "slider/right_slide", false); + } + + handleSlideRight() { + this.currentPage++; + if (this.currentPage >= this.pagesAnimations.length) { + this.currentPage = 0; + } + this.spine.state.setAnimation(0, this.currentPageAnimationName, false); + } + + handleSlideLeft() { + this.currentPage--; + if (this.currentPage < 0) { + this.currentPage = this.pagesAnimations.length - 1; + } + this.spine.state.setAnimation(0, this.currentPageAnimationName, false); + } + + updateSlider() { + this.leftSlotContainer.removeChildren(); + this.centerSlotContainer.removeChildren(); + this.rightSlotContainer.removeChildren(); + + if (this.currentPage - 1 < 0) { + this.leftSlotContainer.addChild(this.pages[this.pages.length - 1]); + } else { + this.leftSlotContainer.addChild(this.pages[this.currentPage - 1]); + } + + this.centerSlotContainer.addChild(this.pages[this.currentPage]); + + if (this.currentPage + 1 >= this.pages.length) { + this.rightSlotContainer.addChild(this.pages[0]); + } else { + this.rightSlotContainer.addChild(this.pages[this.currentPage + 1]); + } + + if (this.rightClickCounter > 1) { + this.spine.state.setAnimation(1, "slider/left_slide", false); + this.rightClickCounter--; + } else { + this.rightClickCounter = 0; + } + + if (this.leftClickCounter > 1) { + this.spine.state.setAnimation(1, "slider/right_slide", false); + this.leftClickCounter--; + } else { + this.leftClickCounter = 0; + } + } + + get resizeSkinPrefix() { + return "resize/>"; + } + + resizeSkin(resizeData) { + return this.resizeSkinPrefix + Math.floor(resizeData.cropWidthRatio * 10) * 10; + } + + resize(resizeData) { + this.position.set(SETTINGS.viewport.width * 0.5, SETTINGS.viewport.height * 0.5); + const skinName = this.resizeSkin(resizeData); + this.spine.skeleton.setSkin(null); + this.spine.skeleton.setSkinByName(skinName); + + this.pages.forEach((page) => { + page.resize(resizeData); + }); + + const slotBoneScale = Math.min(Locator.viewport.cropWidthRatio * SETTINGS.viewport.width / 270, 1); + const centerAnchorBone = this.spine.skeleton.findBone("center_scale_control"); + const leftAnchorBone = this.spine.skeleton.findBone("left_scale_control"); + const rightAnchorBone = this.spine.skeleton.findBone("right_scale_control"); + + centerAnchorBone.scaleX = centerAnchorBone.scaleY = slotBoneScale; + leftAnchorBone.scaleX = leftAnchorBone.scaleY = slotBoneScale; + rightAnchorBone.scaleX = rightAnchorBone.scaleY = slotBoneScale; + this.spine.skeleton.findBone("right").x = SETTINGS.viewport.width * 0.5 - Locator.viewport.left; + this.spine.skeleton.findBone("left").x = -SETTINGS.viewport.width * 0.5 + Locator.viewport.left; + + if (skinName === "resize/>30") { + this.spine.skeleton.findBone("close_btn/>30").x = SETTINGS.viewport.width * 0.49 - Locator.viewport.left; + } + } + + update(dt) { + this.spine.update(dt * 0.001); + this.centerSlotContainer.visible = true; + this.centerSlotContainer.transform.setFromMatrix(this.centerSlot.bone.matrix); + this.centerSlotContainer.alpha = this.centerSlot.color.a; + + this.leftSlotContainer.visible = true; + this.leftSlotContainer.transform.setFromMatrix(this.leftSlot.bone.matrix); + this.leftSlotContainer.alpha = this.leftSlot.color.a; + + this.rightSlotContainer.visible = true; + this.rightSlotContainer.transform.setFromMatrix(this.rightSlot.bone.matrix); + this.rightSlotContainer.alpha = this.rightSlot.color.a; + } + + _createPage([pageNumber, { assetName, classSrc }]) { + return new classSrc({ model: this.inputs, assetName, pageNumber }); + } +} diff --git a/src/game/scene/Paytable/PaytablePage.js b/src/game/scene/Paytable/PaytablePage.js new file mode 100644 index 0000000..9b66437 --- /dev/null +++ b/src/game/scene/Paytable/PaytablePage.js @@ -0,0 +1,77 @@ +import { Locator } from "@popiplay/slot-game-kit"; +import { Spine } from "pixi-spine"; +import { Assets } from "pixi.js"; +import { TEXTS_CONFIG } from "./constants"; +import TextAttachment from "../../components/TextAttachment"; +import { getStyle } from "utils/utils"; + +export default class PaytablePage extends Spine { + constructor({ model, assetName, pageNumber }) { + super(Assets.get(assetName).spineData); + + this.name = `PaytablePage_${pageNumber}`; + + this._pageNumber = pageNumber; + this._model = model; + this._texts = []; + + this._addTextAttachments(); + } + + get resizeSkinPrefix() { + return "resize/>"; + } + + get resizeSkin() { + return this.resizeSkinPrefix + Math.floor(Locator.viewport.cropWidthRatio * 10) * 10; + } + + resize(resizeData) { + this.skeleton.setSkinByName(this.resizeSkin); + const factor = this.getScale(resizeData); + this.scale.set(factor, -factor); + + this._texts.forEach(attachment => { + const name = attachment.container.name; + const textConfig = TEXTS_CONFIG[this._pageNumber].find(config => config.attachmentID === name); + const { styleTempl, dynamicStyle } = textConfig + const { width, height, ...style } = getStyle(styleTempl, dynamicStyle, 0.7); + + attachment.resize({ width, height }); + attachment.style = style; + attachment.update(); + }); + } + + destroy(options) { + this._texts.forEach(attachment => attachment.destroy(options)); + this._texts = []; + super.destroy(options); + } + + _addTextAttachments() { + TEXTS_CONFIG[this._pageNumber].forEach(textConfig => { + const { localeID, attachmentID, styleTempl, dynamicStyle = {} } = textConfig; + const { width, height, ...style } = getStyle(styleTempl, dynamicStyle, 0.7); + const textAttachment = new TextAttachment({ width, height }); + + textAttachment.container.name = attachmentID; + textAttachment.boundaries = false; + textAttachment.style = style; + textAttachment.text = Locator.locales.get(localeID); + textAttachment.autoScaleToFit = true; + textAttachment.attachTo(this, attachmentID); + textAttachment.update(); + + this._texts.push(textAttachment); + }); + } + + getScale(resizeData) { + const { cropWidthRatio, visibleWidth, viewportWidth } = resizeData; + + return cropWidthRatio < 0.7 + ? 1 + : Math.min(visibleWidth / (viewportWidth - 200), 1); + } +} diff --git a/src/game/scene/Paytable/constants.js b/src/game/scene/Paytable/constants.js new file mode 100644 index 0000000..8c34a72 --- /dev/null +++ b/src/game/scene/Paytable/constants.js @@ -0,0 +1,189 @@ +import PaytablePage from './PaytablePage'; +import PayoutsPage from './PayoutsPage'; +import { SKIN_TYPES } from '../../../config'; + +export const HEADER_STYLE = { + fill: '#feff00', + fontSize: 17, + fontFamily: 'Oxanium, Opensans', + fontWeight: 'bold', + align: 'center', + width: 300, + height: 20, +}; + +export const TITLE_DYNAMIC_STYLE = { + [SKIN_TYPES.PORT]: { + align: 'center', + }, + [SKIN_TYPES.LAND]: { + align: 'left', + }, +}; + +export const TITLE_STYLE = { + fill: '#fff', + fontFamily: 'Oxanium, Opensans', + fontSize: 15, + fontWeight: 'bold', + width: 200, + height: 20, +}; + +export const TEXT_DYNAMIC_STYLE = { + [SKIN_TYPES.PORT]: { + align: 'center', + }, + [SKIN_TYPES.LAND]: { + align: 'left', + }, +}; + +export const TEXT_STYLE = { + fill: '#fff', + fontFamily: 'Oxanium, Opensans', + wordWrap: true, + wordWrapWidth: 200, + fontSize: 11, + width: 200, + height: 160, +}; + +export const PAYOUT_STYLE = { + fill: '#fff', + fontFamily: 'Oxanium, Opensans', + wordWrap: true, + wordWrapWidth: 100, + fontSize: 12, + align: 'center', + width: 70, + height: 50, +}; + +export const PAYOUTS_CONFIG = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J']; + +export const PAGES_CONFIG = { + 1: { assetName: 'paytable_page_1', classSrc: PaytablePage }, + 2: { assetName: 'paytable_page_2', classSrc: PayoutsPage }, + 3: { assetName: 'paytable_page_3', classSrc: PaytablePage }, + 4: { assetName: 'paytable_page_4', classSrc: PaytablePage }, + 5: { assetName: 'paytable_page_5', classSrc: PaytablePage }, + 6: { assetName: 'paytable_page_6', classSrc: PaytablePage }, +}; + +export const TEXTS_CONFIG = { + 1: [ + { + localeID: 'paytable_symbols_title', + attachmentID: 'header', + dynamicStyle: {}, + styleTempl: HEADER_STYLE, + }, + { + localeID: 'paytable_page_1_title_1', + attachmentID: 'title_1', + dynamicStyle: { + ...TITLE_DYNAMIC_STYLE, + ...{ [SKIN_TYPES.LAND]: { align: 'center' } }, + }, + styleTempl: TITLE_STYLE, + }, + { + localeID: 'paytable_page_1_str_1', + attachmentID: 'description_1', + dynamicStyle: { ...TEXT_DYNAMIC_STYLE, [SKIN_TYPES.LAND]: { align: 'center' } }, + styleTempl: TEXT_STYLE, + }, + { + localeID: 'paytable_page_1_title_2', + attachmentID: 'title_2', + dynamicStyle: { + ...TITLE_DYNAMIC_STYLE, + ...{ [SKIN_TYPES.LAND]: { align: 'center' } }, + }, + styleTempl: TITLE_STYLE, + }, + { + localeID: 'paytable_page_1_str_2', + attachmentID: 'description_2', + dynamicStyle: { ...TEXT_DYNAMIC_STYLE, [SKIN_TYPES.LAND]: { align: 'center' } }, + styleTempl: TEXT_STYLE, + }, + ], + 2: [ + { + localeID: 'paytable_symbols_title', + attachmentID: 'header', + dynamicStyle: {}, + styleTempl: HEADER_STYLE, + }, + ], + 3: [ + { + localeID: 'paytable_feature_title', + attachmentID: 'header', + dynamicStyle: {}, + styleTempl: HEADER_STYLE, + }, + { + localeID: 'paytable_page_3_title_1', + attachmentID: 'title', + dynamicStyle: { ...TITLE_DYNAMIC_STYLE }, + styleTempl: TITLE_STYLE, + }, + { + localeID: 'paytable_page_3_str_1', + attachmentID: 'description', + dynamicStyle: { ...TEXT_DYNAMIC_STYLE }, + styleTempl: TEXT_STYLE, + }, + ], + 4: [ + { + localeID: 'paytable_feature_title', + attachmentID: 'header', + dynamicStyle: {}, + styleTempl: HEADER_STYLE, + }, + { + localeID: 'paytable_page_4_title_1', + attachmentID: 'title', + dynamicStyle: { ...TITLE_DYNAMIC_STYLE }, + styleTempl: TITLE_STYLE, + }, + { + localeID: 'paytable_page_4_str_1', + attachmentID: 'description', + dynamicStyle: { ...TEXT_DYNAMIC_STYLE }, + styleTempl: TEXT_STYLE, + }, + ], + 5: [ + { + localeID: 'paytable_feature_title', + attachmentID: 'header', + dynamicStyle: {}, + styleTempl: HEADER_STYLE, + }, + { + localeID: 'paytable_page_5_title_1', + attachmentID: 'title', + dynamicStyle: { ...TITLE_DYNAMIC_STYLE }, + styleTempl: TITLE_STYLE, + }, + { + localeID: 'paytable_page_5_str_1', + attachmentID: 'description', + dynamicStyle: { ...TEXT_DYNAMIC_STYLE }, + styleTempl: TEXT_STYLE, + }, + ], + 6: [ + { + localeID: 'paytable_paylines_title', + attachmentID: 'header', + dynamicStyle: {}, + styleTempl: HEADER_STYLE, + }, + ], +}; diff --git a/src/game/scene/Popups/BonusGamePopup.js b/src/game/scene/Popups/BonusGamePopup.js new file mode 100644 index 0000000..fe08f8b --- /dev/null +++ b/src/game/scene/Popups/BonusGamePopup.js @@ -0,0 +1,141 @@ +import { Scene, Locator, SETTINGS } from "@popiplay/slot-game-kit"; +import { Spine } from "pixi-spine"; +import { Assets, Sprite, Texture } from "pixi.js"; +import TextAttachment from "../../components/TextAttachment"; +import { DEFAULT_AUTO_CLOSE, TEXTS_CONFIG } from "./constants"; +import BonusGameWonMachine, { WIN_BONUS_GAME_SCENE_STATES } from "../../machine/BonusGameWonMachine"; +import { gsap } from "gsap"; +import { getStyle } from "utils/utils"; + +export default class BonusGamePopup extends Scene { + + constructor({ sceneName, spineAsset, spineSkin, sfx }) { + super(sceneName); + this.zIndex = 5; + this.inputs = { + amount: 0, + }; + + this.settings = { + autoClose: true, + autoCloseDelay: DEFAULT_AUTO_CLOSE * 1000, + }; + + this._texts = []; + this._spineAsset = spineAsset; + this._spineSkin = spineSkin; + this._sfx = sfx; + } + + create() { + this._createSpines(); + this._addTextAttachments(); + this._createStateMachine(); + } + + run() { + this.stateMachine.setState(WIN_BONUS_GAME_SCENE_STATES.IN); + Locator.events.emit("sfx/play", this._sfx); + } + + stop() { + this._texts.forEach(attachment => attachment.destroy()); + this._texts = []; + this.back.destroy({ children: true }); + this.spine.destroy({ children: true }); + } + + update(dt) { + this.stateMachine.handleInput(this.inputs); + this.stateMachine.update(dt); + + this.spine.update(dt * 0.001); + } + + resize(resizeData) { + let { x, y } = resizeData.center; + let scale = 0.9; + + y -= 10; + if (Locator.viewport.cropWidthRatio < 0.6) { + scale = resizeData.cropWidthRatio * 1.6; + y -= 25; + } + + this.spine.scale.set(scale); + this.spine.position.set(x, y); + } + + in() { + gsap.to(this.back, { alpha: 0.75, duration: 0.3 }); + gsap.to(this.spine, { alpha: 1, duration: 0.3 }); + return this.spine.state.setAnimation(0, "in", false); + } + + idle() { + this.spine.state.setAnimation(0, "idle", true); + } + + out() { + gsap.to(this.back, { alpha: 0, duration: 0.3 }); + return this.spine.state.setAnimation(0, "out", false); + } + + _createSpines() { + // Background + this.back = new Sprite(Texture.WHITE); + this.back.name = 'winsback'; + this.back.width = SETTINGS.renderer.width; + this.back.height = SETTINGS.renderer.height; + this.addChild(this.back); + this.back.eventMode = "static"; + this.back.tint = 0x000000; + this.back.alpha = 0; + + // Popup + this.spine = new Spine(Assets.get(this._spineAsset).spineData); + this.spine.autoUpdate = false; + this.spine.skeleton.setSkinByName(this._spineSkin); + this.addChild(this.spine); + this.spine.update(); + this.spine.alpha = 0; + this.spine.state.addListener({ + event: (entry, event) => { + if (event.data.name === "endOut") { + this.emit("complete"); + } + } + }); + } + + _addTextAttachments() { + + TEXTS_CONFIG[this.name].forEach(textConfig => { + const { localeID, attachmentID, styleTempl, dynamicStyle = {} } = textConfig; + const { width, height, ...style } = getStyle(styleTempl, dynamicStyle); + const textAttachment = new TextAttachment({ width, height }); + const text = localeID ? Locator.locales.get(localeID) : this.inputs.amount; + textAttachment.container.name = attachmentID; + textAttachment.autoScaleToFit = true; + textAttachment.style = style; + textAttachment.text = text; + textAttachment.attachTo(this.spine, attachmentID); + textAttachment.center(); + textAttachment.update(); + + this._texts.push(textAttachment); + }); + } + + _createStateMachine() { + this.stateMachine = new BonusGameWonMachine(this); + + this.eventMode = "static"; + + this.on("pointerdown", this.handleTapToContinue, this); + } + + handleTapToContinue() { + this.stateMachine.currentState.skip(); + } +} diff --git a/src/game/scene/Popups/FreespinsLeftPopup.js b/src/game/scene/Popups/FreespinsLeftPopup.js new file mode 100644 index 0000000..b832d82 --- /dev/null +++ b/src/game/scene/Popups/FreespinsLeftPopup.js @@ -0,0 +1,14 @@ +import { SCENES } from "@popiplay/slot-game-kit"; +import BonusGamePopup from "./BonusGamePopup"; + +export default class FreespinsLeftPopup extends BonusGamePopup { + constructor() { + super({ + sceneName: SCENES.FREESPINS_LEFT_POPUP, + spineAsset: 'fs_restore', + spineSkin: 'left', + sfx: 'add_spin_popup', + }); + this.settings.autoClose = false; + } +} \ No newline at end of file diff --git a/src/game/scene/Popups/FreespinsWonPopup.js b/src/game/scene/Popups/FreespinsWonPopup.js new file mode 100644 index 0000000..8b7acd7 --- /dev/null +++ b/src/game/scene/Popups/FreespinsWonPopup.js @@ -0,0 +1,13 @@ +import {SCENES} from "@popiplay/slot-game-kit"; +import BonusGamePopup from "./BonusGamePopup"; + +export default class FreespinsWonPopup extends BonusGamePopup { + constructor() { + super({ + sceneName: SCENES.FREESPINS_GAME_WON_POPUP, + spineAsset: 'fs_start', + spineSkin: 'default', + sfx: 'bonus_intro_popup', + }); + } +} diff --git a/src/game/scene/Popups/RespinsLeftPopup.js b/src/game/scene/Popups/RespinsLeftPopup.js new file mode 100644 index 0000000..442034f --- /dev/null +++ b/src/game/scene/Popups/RespinsLeftPopup.js @@ -0,0 +1,14 @@ +import {SCENES} from "@popiplay/slot-game-kit"; +import BonusGamePopup from "./BonusGamePopup"; + +export default class RespinsLeftPopup extends BonusGamePopup { + constructor() { + super({ + sceneName: SCENES.RESPINS_LEFT_POPUP, + spineAsset: 'fs_restore', + spineSkin: 'left', + sfx: 'add_spin_popup', + }); + this.settings.autoClose = false; + } +} diff --git a/src/game/scene/Popups/RespinsWonPopup.js b/src/game/scene/Popups/RespinsWonPopup.js new file mode 100644 index 0000000..d2669e1 --- /dev/null +++ b/src/game/scene/Popups/RespinsWonPopup.js @@ -0,0 +1,13 @@ +import {SCENES} from "@popiplay/slot-game-kit"; +import BonusGamePopup from "./BonusGamePopup"; + +export default class RespinsWonPopup extends BonusGamePopup { + constructor() { + super({ + sceneName: SCENES.RESPINS_GAME_WON_POPUP, + spineAsset: 'respin_start', + spineSkin: 'default', + sfx: 'bonus_intro_popup', + }); + } +} diff --git a/src/game/scene/Popups/constants.js b/src/game/scene/Popups/constants.js new file mode 100644 index 0000000..8c653b2 --- /dev/null +++ b/src/game/scene/Popups/constants.js @@ -0,0 +1,191 @@ +import { SCENES } from "@popiplay/slot-game-kit"; + +export const DEFAULT_AUTO_CLOSE = 10; // in seconds + +export const FS_TEXT_SIZE = { + width: 110, + height: 35, + fontSize: 30, + lineHeight: 35, +}; + +export const RESPIN_TEXT_SIZE = { + width: 320, + height: 25, + fontSize: 25, +}; + +export const RESTORE_TEXT_SIZE = { + width: 320, + height: 40, + fontSize: 40, +}; + +export const FS_VALUE_SIZE = { + width: 45, + height: 50, + fontSize: 55, +}; + +export const RESTORE_VALUE_SIZE = { + width: 40, + height: 70, + fontSize: 68, +}; + +export const TAP_TO_CONTINUE_SIZE = { + width: 320, + height: 30, + fontSize: 20, +}; + +export const BONUS_GAME_WON_STYLE = { + "dropShadow": true, + "dropShadowAlpha": 1, + "dropShadowAngle": 0, + "dropShadowBlur": 5, + "dropShadowColor": "#ff1200", + "dropShadowDistance": 0, + "fill": [ + "#f6a621", + "#df6e24" + ], + "fontFamily": "SouthbankLT", + "lineJoin": "round", + "miterLimit": 0, + "stroke": "#ff1200", +}; + +export const RESTORE_TEXT_STYLE = { + "dropShadow": true, + "dropShadowAlpha": 60, + "dropShadowAngle": 0, + "dropShadowBlur": 10, + "dropShadowColor": "#0021ff", + "dropShadowDistance": 0, + "fill": [ + "#00c0fa", + "#015eea" + ], + "fontFamily": "SouthbankLT", + "fontSize": 68, + "lineJoin": "round", + "miterLimit": 0, + "stroke": "#070fc5" +}; + +export const RESTORE_VALUE_STYLE = { + "dropShadow": true, + "dropShadowAlpha": 60, + "dropShadowAngle": 0, + "dropShadowBlur": 10, + "dropShadowColor": "#0021ff", + "dropShadowDistance": 0, + "fill": [ + "#22dcfd", + "#1d91e2", + "#5865b9" + ], + "fontFamily": "SouthbankLT", + "fontSize": 68, + "lineJoin": "round", + "miterLimit": 0, + "stroke": "#0084ff", + "strokeThickness": 1 +}; + +export const TAP_TO_CONTINUE_STYLE = { + "fill": "#ffecda", + "fontFamily": "UniSansThin", + "fontSize": 20, + "lineJoin": "round", + "miterLimit": 0, + "stroke": "#ffecda", + "strokeThickness": 2 +}; + +export const TEXTS_CONFIG = { + [SCENES.FREESPINS_GAME_WON_POPUP]: [ + { + localeID: "freespins_left_str_1", + attachmentID: "free_spins", + dynamicStyle: { ...FS_TEXT_SIZE }, + styleTempl: BONUS_GAME_WON_STYLE, + }, + { + attachmentID: "value", + dynamicStyle: { ...FS_VALUE_SIZE }, + styleTempl: BONUS_GAME_WON_STYLE, + }, + { + localeID: "tap_to_continue", + attachmentID: "tap_to_start", + dynamicStyle: { ...TAP_TO_CONTINUE_SIZE }, + styleTempl: TAP_TO_CONTINUE_STYLE, + } + ], + [SCENES.RESPINS_GAME_WON_POPUP]: [ + { + localeID: "respins_left_str_1", + attachmentID: "respins_start", + dynamicStyle: { ...RESPIN_TEXT_SIZE }, + styleTempl: BONUS_GAME_WON_STYLE, + }, + { + localeID: "tap_to_continue", + attachmentID: "tap_to_start", + dynamicStyle: { ...TAP_TO_CONTINUE_SIZE }, + styleTempl: TAP_TO_CONTINUE_STYLE, + } + ], + [SCENES.FREESPINS_LEFT_POPUP]: [ + { + localeID: "freespins_left_str_1", + attachmentID: "free_spins", + dynamicStyle: { ...RESTORE_TEXT_SIZE }, + styleTempl: RESTORE_TEXT_STYLE, + }, + { + attachmentID: "value", + dynamicStyle: { ...RESTORE_VALUE_SIZE }, + styleTempl: RESTORE_VALUE_STYLE, + }, + { + localeID: "freespins_left_str_2", + attachmentID: "left", + dynamicStyle: { ...RESTORE_TEXT_SIZE }, + styleTempl: RESTORE_TEXT_STYLE, + }, + { + localeID: "tap_to_continue", + attachmentID: "tap_to_start", + dynamicStyle: { ...TAP_TO_CONTINUE_SIZE }, + styleTempl: TAP_TO_CONTINUE_STYLE, + } + ], + [SCENES.RESPINS_LEFT_POPUP]: [ + { + localeID: "respins_left_str_1", + attachmentID: "free_spins", + dynamicStyle: { ...RESTORE_TEXT_SIZE }, + styleTempl: RESTORE_TEXT_STYLE, + }, + { + attachmentID: "value", + dynamicStyle: { ...RESTORE_VALUE_SIZE }, + styleTempl: RESTORE_VALUE_STYLE, + }, + { + localeID: "freespins_left_str_2", + attachmentID: "left", + dynamicStyle: { ...RESTORE_TEXT_SIZE }, + styleTempl: RESTORE_TEXT_STYLE, + }, + { + localeID: "tap_to_continue", + attachmentID: "tap_to_start", + dynamicStyle: { ...TAP_TO_CONTINUE_SIZE }, + styleTempl: TAP_TO_CONTINUE_STYLE, + } + ], +} \ No newline at end of file diff --git a/src/game/scene/PreloadScene/PreloadScene.js b/src/game/scene/PreloadScene/PreloadScene.js new file mode 100644 index 0000000..ce972cc --- /dev/null +++ b/src/game/scene/PreloadScene/PreloadScene.js @@ -0,0 +1,40 @@ +import {Scene}from "@popiplay/slot-game-kit"; +import {Spine} from "pixi-spine"; +import {Assets} from "pixi.js"; +import {Locator} from "@popiplay/slot-game-kit"; + +export default class PreloadScene extends Scene { + constructor() { + super("PreloadScene"); + } + + create() { + this.spine = new Spine(Assets.get("preloader").spineData); + this.spine.autoUpdate = false; + this.addChild(this.spine); + } + + run() { + this.spine.state.setAnimation(0, "popiplay_logo", true); + } + + stop() { + this.spine.destroy({ children: true }); + super.stop(); + } + + update(dt) { + this.spine.update(dt * 0.001); + } + + get resizeSkinPrefix() { + return ">"; + } + + resize(resizeData) { + this.spine.skeleton.setSkinByName(this.resizeSkinPrefix + Math.floor(Locator.viewport.cropWidthRatio * 10) * 10); + this.spine.position.set(resizeData.center.x, resizeData.center.y); + } +} + + diff --git a/src/game/scene/Reels.js b/src/game/scene/Reels.js new file mode 100644 index 0000000..aa9a17d --- /dev/null +++ b/src/game/scene/Reels.js @@ -0,0 +1,24 @@ +import {Skin} from "@pixi-spine/runtime-4.1"; +import SpineLayer from "./SpineLayer"; + +export default class Reels extends SpineLayer { + constructor(skinName) { + super('reels'); + this.skinName = skinName; + this.skin = new Skin('mixed_skin'); + } + + playWin() { + this.spine.state.setAnimation(0, 'win_frame_animation', false); + } + + resize(resizeSkin) { + this.spine.skeleton.setSkin(null); + this.skin.clear(); + this.spine.skeleton.setToSetupPose(); + this.skin.addSkin(this.spine.spineData.findSkin(resizeSkin)); + this.skin.addSkin(this.spine.spineData.findSkin(this.skinName)); + this.spine.skeleton.setSkin(this.skin); + this.spine.update(0); + } +} diff --git a/src/game/scene/RespinsIndicator.js b/src/game/scene/RespinsIndicator.js new file mode 100644 index 0000000..51484f6 --- /dev/null +++ b/src/game/scene/RespinsIndicator.js @@ -0,0 +1,41 @@ +import {Assets} from "pixi.js"; +import {Spine} from "pixi-spine"; +import {SpineHelper} from "../../../utils/SpineHelper"; +import {Locator} from "@popiplay/slot-game-kit"; + +export default class RespinsIndicator extends Spine { + constructor() { + super(Assets.get('bonus_indicator').spineData); + this.autoUpdate = false; + this._count = undefined; + } + + set count(value) { + if (value === this._count) { + return; + } + for (let trackIndex = 0; trackIndex < 3; trackIndex++) { + const currentAnimationName = this.state.getCurrent(trackIndex) ? this.state.getCurrent(trackIndex).animation.name : ''; + const animationName = `indicator/gem_0${trackIndex + 1}/${value > trackIndex ? 'on' : 'off'}`; + if (currentAnimationName !== animationName) { + this.state.setAnimation(trackIndex, animationName); + if (this._count === undefined) { + SpineHelper.skip(this, trackIndex); + } else { + Locator.events.emit("sfx/stop", "respin_progress"); + Locator.events.emit("sfx/play", "respin_progress"); + } + } + } + this._count = value; + } + + update(dt) { + super.update(dt * 0.001); + } + + resize(resizeData) { + this.skeleton.setSkinByName(resizeData.cropWidthRatio > 0.4 ? 'landscape' : 'portrait'); + this.update(0); + } +} diff --git a/src/game/scene/RespinsScene/RespinsScene.js b/src/game/scene/RespinsScene/RespinsScene.js new file mode 100644 index 0000000..b97da73 --- /dev/null +++ b/src/game/scene/RespinsScene/RespinsScene.js @@ -0,0 +1,184 @@ +import {Locator, Scene, SCENES} from "@popiplay/slot-game-kit"; +import {Assets} from "pixi.js"; +import RespinsMachine from "../../machine/RespinsMachine"; +import {parseWinsData} from "../../../../utils/parseWinsData"; +import Background from "../Background"; +import Reels from "../Reels"; +import SpineLayer from "../SpineLayer"; +import Character from "../Character"; +import FrontLayer from "../FrontLayer"; +import RespinsIndicator from "../RespinsIndicator"; + +export const STATES = { + IDLE: 0, + WAIT_SCENE_DATA: 1, + WAIT_END_ROUND: 2 +}; + +export default class RespinsScene extends Scene { + + get resizeSkinPrefix() { + return "resize/>"; + } + + get resizeSkin() { + return this.resizeSkinPrefix + Math.floor(Locator.viewport.cropWidthRatio * 10) * 10; + } + + constructor() { + super("respins_scene"); + + this.inputs = {}; + + this._winIsTakenIntoAccount = false; + } + + create(data) { + this._createMachine(); + this.machine.x += -3; + this.background = new Background('respins_game_background'); + this.reels = new Reels('respins'); + this.reels.addToSlotByName('slot_placeholder', this.machine); + this.charactersPlaceholder = new SpineLayer('respins_character_placeholder'); + this.character = new Character('respins_character'); + this.character.scale.y = -1; + this.charactersPlaceholder.addToSlotByName('placeholder', this.character); + this.respinsIndicator = new RespinsIndicator(); + this.reels.addToSlotByName('bonus_indicator_placeholder', this.respinsIndicator); + this.front = new FrontLayer('respins_game_front'); + this.addChild( + this.background, + this.reels, + this.charactersPlaceholder, + this.front, + ); + super.create(); + } + + run() { + this.machine.inputs.initMap = this.inputs.gameData.screenMap; + this.machine.inputs.wins = parseWinsData(this.inputs.gameData.wins, this.inputs.currency); + this.machine.maps.stickySymbols = this.inputs.gameData.stickySymbolsMap; + this.machine.maps.stickyFrames = this.inputs.gameData.stickySymbolsMap; + this.machine.flags.isRespinsGameRestored = this.inputs.gameData.isRespinsGameRestored; + this.respinsIndicator.count = this.inputs.bonusIndicatorData.left; + this.setState(STATES.WAIT_END_ROUND); + super.run(); + Locator.events.emit("music/setScene", SCENES.RESPINS_GAME_SCENE); + } + + stop() { + this.character.destroy(); + this.respinsIndicator.destroy(); + this.background.destroy({children: true}); + this.reels.destroy({children: true}); + this.front.destroy({children: true}); + this.charactersPlaceholder.destroy({children: true}); + this.machine.destroy({children: true}); + super.stop(); + } + + update(dt) { + if (this.state === STATES.IDLE) { + this.handleIdleState(); + } + + if (this.state === STATES.WAIT_SCENE_DATA) { + this.handleWaitSceneDataState(); + } + + if (this.state === STATES.WAIT_END_ROUND) { + this.handleRoundWin(); + this.handleWaitEndRoundState(); + } + + this.updateMachine(dt); + this.background.update(dt); + this.reels.update(dt); + this.charactersPlaceholder.update(dt); + this.front.update(dt); + this.character.update(dt); + this.respinsIndicator.count = this.inputs.bonusIndicatorData.left; + this.respinsIndicator.update(dt); + } + + updateMachine(dt) { + this.machine.inputs.spin = this.inputs.isRoundStarted; + this.machine.inputs.turbo = this.inputs.isTurboModeActive; + this.machine.inputs.fastStop = this.inputs.isFastStopActive; + this.machine.inputs.turboForced = this.inputs.isTurboModeForced; + this.machine.inputs.blockExitState = this.inputs.isRoundEndProcessing; + this.machine.update(dt); + } + + resize(resizeData) { + this.background.position.set(resizeData.center.x, resizeData.center.y); + this.background.resize(this.resizeSkin); + this.reels.position.set(resizeData.center.x, resizeData.center.y); + this.reels.resize(this.resizeSkin); + this.charactersPlaceholder.position.set(resizeData.center.x, resizeData.center.y); + this.charactersPlaceholder.resize(this.resizeSkin); + this.front.position.set(resizeData.center.x, resizeData.center.y); + this.front.resize(this.resizeSkin); + this.respinsIndicator.resize(resizeData); + } + + setState(state) { + this.state = state; + this.inputs.model.emit("enterToState", {state}); + } + + _createMachineInstance(config) { + return new RespinsMachine(config); + } + + _createMachine() { + const config = Assets.get("slotMachine"); + this.machine = this._createMachineInstance({ + ...config, lines: this.inputs.lines, + }); + this.machine.x = - config.width * 0.5; + this.machine.y = config.height * 0.5; + this.machine.scale.y = -1; + } + + handleIdleState() { + this.machine.inputs.blockExitState = this.inputs.isRoundEndProcessing; + if (this.machine.stateMachine.currentState.name === "SpinningState") { + this._winIsTakenIntoAccount = false; + this.machine.inputs.screenMap = null; + this.machine.inputs.wins = null; + this.setState(STATES.WAIT_SCENE_DATA); + } + } + + handleWaitSceneDataState() { + if (!this.inputs.gameData) return; + this.machine.inputs.screenMap = this.inputs.gameData.screenMap; + this.machine.inputs.wins = parseWinsData(this.inputs.gameData.wins, this.inputs.currency); + this.machine.maps.stickyFrames = this.inputs.gameData.stickySymbolsMap; + this.setState(STATES.WAIT_END_ROUND); + } + + handleRoundWin() { + if (!this.inputs.gameData) return; + const stateName = this.machine.stateMachine.currentState.name; + if (stateName === "AllWinningSymbolsState" && !this._winIsTakenIntoAccount) { + this.reels.playWin(); + this.inputs.win = this.inputs.gameData.winInRound; + this.inputs.bonusIndicatorData.left = this.inputs.gameData.bonusSpins.left; + this._winIsTakenIntoAccount = true; + } + } + + handleWaitEndRoundState() { + if (!this.inputs.gameData) return; + const stateName = this.machine.stateMachine.currentState.name; + if (stateName === 'EndingRoundState') { + this.machine.maps.stickySymbols = this.inputs.gameData.stickySymbolsMap; + this.inputs.isRoundEnded = true; + this.setState(STATES.IDLE); + this.emit('endRound'); + } + } +} diff --git a/src/game/scene/Rules/Rules.js b/src/game/scene/Rules/Rules.js new file mode 100644 index 0000000..cb31d78 --- /dev/null +++ b/src/game/scene/Rules/Rules.js @@ -0,0 +1,103 @@ +/* eslint-disable no-undef */ +import { Assets } from "pixi.js"; +import { Locator, EmbeddedSpineButton } from "@popiplay/slot-game-kit"; +import { SETTINGS } from "@popiplay/slot-game-kit"; +import HTMLContainer from "../../components/HTMLContainer.js"; +import TextAttachment from "../../components/TextAttachment.js"; +import { Scene } from "@popiplay/slot-game-kit"; +import { Spine } from "pixi-spine"; +import Numbers from "../../../../utils/Numbers.js"; + +export default class Rules extends Scene { + constructor() { + super("rules"); + } + + handleScrollOverlayHidden() { + this.htmlContainer.visible = true; + } + + handleScrollOverlayShown() { + this.htmlContainer.visible = false; + } + + get resizeSkinPrefix() { + return "resize/>"; + } + + resize(resizeData) { + this.position.set(resizeData.center.x, resizeData.center.y); + this.spine.skeleton.setSkinByName(this.resizeSkinPrefix + Math.floor(resizeData.cropWidthRatio * 10) * 10); + + this.htmlContainer.x = resizeData.center.x; + this.htmlContainer.y = resizeData.center.y; + this.htmlContainer.scale.set(resizeData.heightRatio); + this.htmlContainer.width = Math.min(SETTINGS.viewport.width * Locator.viewport.cropWidthRatio - 50, 500); + this.htmlContainer.height = 300; + } + + create() { + this.spine = new Spine(Assets.get("rules_slider").spineData); + this.spine.autoUpdate = false; + this.addChild(this.spine); + + this.zIndex = 12; + + let track = 10; + this.closeBtn = new EmbeddedSpineButton(this.spine, "close_btn", ++track, ++track); + + this.htmlContainer = new HTMLContainer(document.body.querySelector(".content"), undefined, { backgroundColor: "transparent" }); + this.htmlContainer.width = 100; + this.htmlContainer.height = 300; + this.htmlContainer.x = 300; + this.htmlContainer.y = 300; + this.htmlContainer.anchor.set(0.5, 0.4); + + let content = Assets.get("rules_content"); + const maxMultiplier = __OPTIONS__.math.max_multiplier.toLocaleString(); + const rtp = __OPTIONS__.math.rtp.main; + + content = content.replace("{MAX_MULTIPLIER}", Numbers.addThousandSeparators(maxMultiplier, '.')); + content = content.replace("{RTP_PLACEHOLDER}", rtp); + + this.htmlContainer.addContent(content); + + this.spine.state.addListener({ + event: (entry, event) => { + this.emit(event.data.name, event); + } + }); + + Locator.events.on("scrollOverlay/hidden", this.handleScrollOverlayHidden, this); + Locator.events.on("scrollOverlay/shown", this.handleScrollOverlayShown, this); + + this.title = new TextAttachment({ width: 250, height: 30 }); + this.title.text = Locator.locales.get("rules_title"); + this.title.autoScaleToFit = true; + this.title.boundaries = false; + this.title.style = { + fill: 0xfeff00, + fontFamily: "Oxanium, Opensans", + fontSize: 24, + align: "center", + fontWeight: "bold", + }; + this.title.update(); + this.title.attachTo(this.spine, "title"); + } + + run() { + + } + + stop() { + this.htmlContainer.destroy(); + this.title.destroy({ children: true }); + this.spine.destroy({ children: true }); + } + + update(dt) { + this.spine.update(dt * 0.001); + this.htmlContainer.alpha = this.alpha; + } +} diff --git a/src/game/scene/SafariScrollOverlay.js b/src/game/scene/SafariScrollOverlay.js new file mode 100644 index 0000000..2e608f9 --- /dev/null +++ b/src/game/scene/SafariScrollOverlay.js @@ -0,0 +1,14 @@ +import SpineScene from "./SpineScene.js"; + +export default class SafariScrollOverlay extends SpineScene { + constructor() { + super('ios_scroll'); + this.zIndex = 1000000; + this.state.setAnimation(0, 'animation', true); + this.resize(); + } + + get resizeSkin() { + return 'default' + } +} diff --git a/src/game/scene/SpineLayer.js b/src/game/scene/SpineLayer.js new file mode 100644 index 0000000..fd59f12 --- /dev/null +++ b/src/game/scene/SpineLayer.js @@ -0,0 +1,39 @@ +import {Assets, Container, Texture} from "pixi.js"; +import {Spine} from "pixi-spine"; + +export default class SpineLayer extends Container { + constructor(assetName) { + super(); + this.createSpine(assetName); + } + + createSpine(assetName) { + this.spine = new Spine(Assets.get(assetName).spineData); + this.spine.autoUpdate = false; + this.addChild(this.spine); + } + + update(dt) { + this.spine.update(dt * 0.001); + } + + resize(resizeSkin) { + this.spine.skeleton.setSkinByName(resizeSkin); + this.spine.update(0); + } + + addToSlotByName(slotName, ...children) { + const slot = this.spine.skeleton.findSlot(slotName); + if (!slot) return; + this.spine.hackTextureBySlotName(slotName, Texture.EMPTY); + const slotIndex = this.spine.skeleton.findSlotIndex(slotName); + const container = this.spine.slotContainers[slotIndex]; + container.addChild(...children); + } + + hidePlaceholder(slotName) { + const slot = this.spine.skeleton.findSlot(slotName); + if (!slot) return; + this.spine.hackTextureBySlotName(slotName, Texture.EMPTY); + } +} diff --git a/src/game/scene/SpineScene.js b/src/game/scene/SpineScene.js new file mode 100644 index 0000000..07d2cab --- /dev/null +++ b/src/game/scene/SpineScene.js @@ -0,0 +1,27 @@ +import {Assets} from "pixi.js"; +import {SETTINGS} from "@popiplay/slot-game-kit"; +import {Locator} from "@popiplay/slot-game-kit"; +import {Spine} from "pixi-spine"; + +export default class SpineScene extends Spine { + constructor(assetName) { + super(Assets.get(assetName).spineData); + } + + get resizeSkinPrefix() { + return '' + } + + get resizeSkin() { + return this.resizeSkinPrefix + Math.floor(Locator.viewport.cropWidthRatio * 10) * 10; + } + + resize() { + this.position.set( + SETTINGS.viewport.width * 0.5, + SETTINGS.viewport.height * 0.5 + ) + this.skeleton.setSkinByName(this.resizeSkin); + this.update(0); + } +} diff --git a/src/game/scene/StartScene/StartScene.js b/src/game/scene/StartScene/StartScene.js new file mode 100644 index 0000000..071b54f --- /dev/null +++ b/src/game/scene/StartScene/StartScene.js @@ -0,0 +1,130 @@ +import {Scene, Locator} from "@popiplay/slot-game-kit"; +import {Spine} from "pixi-spine"; +import {Assets, Sprite, Texture} from "pixi.js"; +import TextAttachment from "../../components/TextAttachment.js"; +import {TAP_TO_START_HOVER_STYLE, TAP_TO_START_STYLE, TEXTS_CONFIG} from "./constants.js"; +import {getStyle} from "utils/utils.js"; +import Numbers from "../../../../utils/Numbers.js"; + +export default class StartScene extends Scene { + constructor() { + super("start_page"); + this.inputs = { + loaded: false, + maxMultiplier: undefined, + }; + + this._texts = []; + + this.eventMode = "static"; + this.on("pointerdown", () => { + if (this.inputs.loaded) { + Locator.events.emit("startBtnPressed"); + } + }); + } + + get resizeSkinPrefix() { + return ">"; + } + + // eslint-disable-next-line no-unused-vars + create(data) { + this.inputs.loaded = false; + + this.scene = new Spine(Assets.get("start_page").spineData); + this.addChild(this.scene); + this.scene.autoUpdate = false; + + this._addButton(); + + super.create(); + } + + run() { + this.scene.state.setAnimation(0, "animation", true); + this._addTextAttachments(); + super.run(); + } + + update(dt) { + this.scene.update(dt * 0.001); + } + + stop() { + this._texts.forEach((text) => {text.destroy()}) + this.tapToStartText.destroy(); + this.scene.destroy({children: true}); + super.stop(); + } + + resize(resizeData) { + const {cropWidthRatio, center: {x, y}} = resizeData; + this.scene.skeleton.setSkinByName(this.resizeSkinPrefix + Math.floor(cropWidthRatio * 10) * 10); + this.scene.position.set(x, y); + + this._texts.forEach(attachment => { + const name = attachment.container.name; + const textConfig = TEXTS_CONFIG.find(config => config.attachmentID === name); + const {styleTempl, dynamicStyle} = textConfig; + const {width, height, ...style} = getStyle(styleTempl, dynamicStyle, 0.3); + + attachment.resize({width, height}); + attachment.style = style; + attachment.update(); + }); + } + + _addButton() { + const {width, height} = TAP_TO_START_STYLE; + const textAttachment = new TextAttachment({width, height}); + textAttachment.text = Locator.locales.get('tap_to_start').toUpperCase(); + textAttachment.style = TAP_TO_START_STYLE; + textAttachment.attachTo(this.scene, "start_btn"); + textAttachment.update(); + this.tapToStartText = textAttachment; + + const interactiveOverlay = new Sprite(Texture.EMPTY); + interactiveOverlay.anchor.set(0.5); + interactiveOverlay.eventMode = 'static'; + interactiveOverlay.cursor = 'pointer'; + interactiveOverlay.width = textAttachment.textObject.width; + interactiveOverlay.height = textAttachment.textObject.height; + interactiveOverlay.on("pointerover", () => { + textAttachment.style = TAP_TO_START_HOVER_STYLE; + textAttachment.y = -0.5 * TAP_TO_START_HOVER_STYLE.strokeThickness; + textAttachment.update(); + }); + interactiveOverlay.on("pointerout", () => { + textAttachment.style = TAP_TO_START_STYLE; + textAttachment.y = 0; + textAttachment.update(); + }); + interactiveOverlay.on("pointertap", () => Locator.events.emit("startBtnPressed")); + const slotIndex = this.scene.skeleton.findSlotIndex("start_btn"); + const slotContainer = this.scene.slotContainers[slotIndex]; + slotContainer.addChild(interactiveOverlay); + } + + _addTextAttachments() { + TEXTS_CONFIG.forEach(textConfig => { + const {localeID, attachmentID, styleTempl, dynamicStyle = {}, variable} = textConfig; + const {width, height, ...style} = getStyle(styleTempl, dynamicStyle, 0.3); + + const textAttachment = new TextAttachment({width, height}); + + textAttachment.container.name = attachmentID; + textAttachment.boundaries = false; + const text = Locator.locales.get(localeID) + textAttachment.text = text; + if (variable) { + textAttachment.text = text.replace(variable.source, Numbers.addThousandSeparators(this.inputs[variable.input], '.')); + } + textAttachment.style = style; + textAttachment.attachTo(this.scene, attachmentID); + textAttachment.update(); + + this._texts.push(textAttachment); + }); + } +} diff --git a/src/game/scene/StartScene/constants.js b/src/game/scene/StartScene/constants.js new file mode 100644 index 0000000..81b24ca --- /dev/null +++ b/src/game/scene/StartScene/constants.js @@ -0,0 +1,101 @@ +import {SKIN_TYPES} from "../../../config"; + +export const DESC_DYNAMIC_STYLE = { + [SKIN_TYPES.PORT]: { + fontSize: 14, + }, + [SKIN_TYPES.LAND]: { + fontSize: 16, + } +}; + +export const DESC_STYLE = { + dropShadowAngle: 1.6, + dropShadowBlur: 3, + dropShadowColor: "#e46e17", + fill: [ + "#ffe852", + "#f9cf47", + "#cd8521" + ], + fontFamily: "PromptBold, Arial", + fontWeight: 600, + miterLimit: 0, + stroke: "#ffe858", + align: "center", + width: 240, + height: 60, + wordWrap: true, + wordWrapWidth: 240 +}; + +export const MAX_WIN_STYLE = { + dropShadow: true, + dropShadowAngle: 0, + dropShadowBlur: 10, + dropShadowColor: "#9f5015", + dropShadowDistance: 0, + fill: "#fffbe2", + fontFamily: "PromptMedium, Arial", + fontWeight: 600, + stroke: "#e6aa2d", + strokeThickness: 2, + // wordWrap: true, + align: "center", + fontSize: 18, + width: 1000, + height: 40, + // wordWrapWidth: 400 +}; + +export const TAP_TO_START_STYLE = { + dropShadow: true, + dropShadowAngle: 0.5 * Math.PI, + dropShadowBlur: 5, + dropShadowColor: "#b55e00", + dropShadowDistance: 2, + fill: ["#fff4eb", "#ffc7a1"], + fontFamily: "PromptLight, Arial", + fontWeight: 300, + stroke: "#ffedda", + strokeThickness: 0.75, + align: "center", + fontSize: 19, + padding: 10, + width: 300, + height: 40, + wordWrap: true, + wordWrapWidth: 300 +}; + +export const TAP_TO_START_HOVER_STYLE = { + ...TAP_TO_START_STYLE, + dropShadowColor: "#cea77e", + fill: "#ffffff", + strokeThickness: 1.5, +}; + +export const TEXTS_CONFIG = [ + { + localeID: "start_page_1_desc", + attachmentID: "max_win_desc", + dynamicStyle: {}, + styleTempl: MAX_WIN_STYLE, + variable: { + source: '{MAX_MULTIPLIER}', + input: 'maxMultiplier', + }, + }, + { + localeID: "start_page_2_desc", + attachmentID: "wilds_desc", + dynamicStyle: {...DESC_DYNAMIC_STYLE}, + styleTempl: DESC_STYLE, + }, + { + localeID: "start_page_3_desc", + attachmentID: "reels_desc", + dynamicStyle: {...DESC_DYNAMIC_STYLE}, + styleTempl: DESC_STYLE, + }, +]; diff --git a/src/game/scene/TransitionScene/TransitionScene.js b/src/game/scene/TransitionScene/TransitionScene.js new file mode 100644 index 0000000..a7e2c61 --- /dev/null +++ b/src/game/scene/TransitionScene/TransitionScene.js @@ -0,0 +1,76 @@ +import {Locator, Scene, SCENES} from "@popiplay/slot-game-kit"; +import {Assets} from "pixi.js"; +import {Spine} from "pixi-spine"; + +const STATES = { + UNMASKED: 0, + MASKING: 1, + MASKED: 2, + UNMASKING: 3, +}; + +const EVENTS = { + MASKED: "masked", + UNMASKED: "unmasked", +}; + +const ANIMATION_MASKED_POINT = 0.5; + +export default class TransitionScene extends Scene { + constructor() { + super(SCENES.TRANSITION); + this.zIndex = 1000; + } + + create(data) { + this.spine = new Spine(Assets.get('transition').spineData); + this.spine.autoUpdate = false; + this.addChild(this.spine); + super.create(data); + } + + run() { + super.run(); + this.spine.state.setAnimation(0, 'animation'); + Locator.events.emit("sfx/play", 'transition'); + this.state = STATES.UNMASKED; + } + + stop() { + this.spine.destroy() + } + + update(dt) { + const track = this.spine.state.getCurrent(0); + switch (this.state) { + case STATES.MASKING: + this.spine.update(dt * 0.001); + if (track.trackTime >= ANIMATION_MASKED_POINT * track.animation.duration) { + track.trackTime = ANIMATION_MASKED_POINT * track.animation.duration; + this.state = STATES.MASKED; + this.emit(EVENTS.MASKED); + } + break; + case STATES.UNMASKING: + this.spine.update(dt * 0.001); + if (track.trackTime >= track.animation.duration) { + track.trackTime = track.animation.duration; + this.state = STATES.UNMASKED; + this.emit(EVENTS.UNMASKED); + } + break; + } + } + + mask() { + this.state = STATES.MASKING; + } + + unmask() { + this.state = STATES.UNMASKING; + } + + resize(resizeData) { + this.position.set(resizeData.center.x, resizeData.center.y); + } +} diff --git a/src/game/scene/WinScenes/BigWinScene.js b/src/game/scene/WinScenes/BigWinScene.js new file mode 100644 index 0000000..345f9db --- /dev/null +++ b/src/game/scene/WinScenes/BigWinScene.js @@ -0,0 +1,295 @@ +import {Scene} from "@popiplay/slot-game-kit"; +import {Spine} from "pixi-spine"; +import {Assets} from "pixi.js"; +import TextAttachment from "../../components/TextAttachment.js"; +import Numbers from "utils/Numbers.js"; +import {Locator} from "@popiplay/slot-game-kit"; +import {WinPopupStateMachine} from "./WinPopupStateMachine.js"; +import {BET_X_STYLE, TAP_TO_CONTINUE_STYLE, WIN_POPUP_STATES, WIN_TEXT_STYLE} from "./constants.js"; + + +export default class BigWinScene extends Scene { + + get bundles() { + return ["win_popups"]; + } + + get initialState() { + return WIN_POPUP_STATES.BIG; + } + + constructor() { + super("BigWinScene"); + this.zIndex = 5; + + this.isShown = false; + + this.inputs = { + win: 15000, + bet: 100, + currency: undefined, + }; + + this.settings = { + autoClose: true, + autoCloseDelay: 3000, + bigThreshold: 20, + megaThreshold: 40, + superThreshold: 60 + }; + + this.tempData = { + win: 0, + winCounter: 0, + betXCounter: 0, + isSpinButtonPressed: false, + }; + + this.eventMode = "static"; + + this.on("pointerdown", this.handleTapToContinue, this); + } + + + handleTapToContinue() { + this.stateMachine.currentState.handleTapToContinue(); + } + + create(data) { + this.tempData = { + win: 0, + winCounter: 0, + betXCounter: 0 + }; + + this.isShown = false; + this.hasPeaked = false; + this.startingSoundPrefix = ""; + this.currentSoundPrefix = ""; + this._createSpines(); + this._createListeners(); + this._createTexts(); + this.stateMachine = new WinPopupStateMachine(this); + + super.create(data); + } + + run() { + this.back.state.setAnimation(0, "idle", true); + this.back.state.setAnimation(1, "in", false); + + this.xBetValue.state.setAnimation(0, "xbet_value/idle", true); + this.xBetValue.state.setAnimation(1, "xbet_value/in", false); + + this.amountValue.state.setAnimation(0, "value/idle", true); + this.amountValue.state.setAnimation(1, "value/in", false); + + this.tapToContinue.state.setAnimation(0, "tap_to_continue/idle", true); + this.tapToContinue.state.setAnimation(1, "tap_to_continue/in", false); + + this.popup.state.setAnimation(0, "idle", true); + this.popup.state.setAnimation(1, "in", false); + + this.stateMachine.setState(this.initialState); + + this.startingSoundPrefix = this.getSoundPrefix(this.stateMachine.currentState.name); + this.currentSoundPrefix = this.startingSoundPrefix; + Locator.events.emit("sfx/stop", "intro_1"); + Locator.events.emit("sfx/stop", "intro_2"); + Locator.events.emit("sfx/stop", "intro_3"); + Locator.events.emit("sfx/play", `${this.startingSoundPrefix}_intro`); + Locator.events.emit("sfx/play", `${this.startingSoundPrefix}_loop`, {loop: true}); + Locator.events.emit("sfx/play", 'calculation', {loop: true}); + Locator.events.emit("music/fadeOut", 1); + } + + getSoundPrefix(stateName) { + switch (this.stateMachine.states.findIndex(s => s.name === stateName)) { + case WIN_POPUP_STATES.BIG: + return "bigwin"; + case WIN_POPUP_STATES.MEGA: + return "megawin"; + case WIN_POPUP_STATES.SUPER: + return "supermegawin"; + case WIN_POPUP_STATES.MAX: + return "maxwin"; + case WIN_POPUP_STATES.TOTAL: + return "total_win"; + } + } + + resize(resizeData) { + let {x, y} = resizeData.center; + let scale = 0.9; + + y -= 10; + if (Locator.viewport.cropWidthRatio < 0.6) { + scale = resizeData.cropWidthRatio * 1.6; + y -= 25; + } + + this.popup.scale.set(scale); + this.amountValue.scale.set(scale); + this.xBetValue.scale.set(scale); + this.tapToContinue.scale.set(scale); + this.popup.position.set(x, y); + this.amountValue.position.set(x, y); + this.xBetValue.position.set(x, y); + this.tapToContinue.position.set(x, y); + this.back.position.set(resizeData.center.x, resizeData.center.y); + } + + update(dt) { + this.stateMachine.handleInput(this.tempData.winCounter); + this.stateMachine.update(dt); + + const winCounterTextString = this.inputs.currency.getFormattedValue(this.tempData.winCounter); + this.amountValueText.text = winCounterTextString; + this.amountValueText.update(); + + const multiplier = Numbers.format(this.tempData.winCounter / this.inputs.bet); + const bet = Locator.locales.get("bet").toLocaleUpperCase(); + const betXCounterTextString = `${multiplier} x ${bet}`; + this.xBetValueText.text = betXCounterTextString; + this.xBetValueText.update(); + + this.popup.update(dt * 0.001); + this.amountValue.update(dt * 0.001); + this.xBetValue.update(dt * 0.001); + this.tapToContinue.update(dt * 0.001); + this.back.update(dt * 0.001); + + this.handleCountupPeak(); + } + + handleCountupPeak() { + if (!this.hasPeaked && this.tempData.winCounter === this.inputs.win) { + this.hasPeaked = true; + Locator.events.emit("sfx/stop", 'calculation'); + Locator.events.emit("sfx/play", 'sum'); + } + } + + stop() { + this.amountValueText.destroy(); + this.xBetValueText.destroy() + this.tapToContinueText.destroy(); + this.back.destroy({children: true}); + this.popup.destroy({children: true}); + this.amountValue.destroy({children: true}); + this.xBetValue.destroy({children: true}); + this.tapToContinue.destroy({children: true}); + super.stop(); + } + + switch() { + if (!this.isShown) { + this.popup.skeleton.setSkin(null); + this.popup.skeleton.setSkinByName(this.stateMachine.currentState.skin); + this.popup.skeleton.setSlotsToSetupPose(); + this.isShown = true; + return; + } + this.isSwitching = true; + this.back.state.setAnimation(1, "switch", false); + this.popup.state.setAnimation(1, "out", false); + } + + out() { + this.back.state.setAnimation(1, "out", false); + this.amountValue.state.setEmptyAnimation(0); + this.amountValue.state.setAnimation(1, "value/out", false); + this.xBetValue.state.setEmptyAnimation(0); + this.xBetValue.state.setAnimation(1, "xbet_value/out", false); + this.tapToContinue.state.setEmptyAnimation(0); + this.tapToContinue.state.setAnimation(1, "tap_to_continue/out", false); + const track = this.popup.state.setAnimation(1, "out", false); + track.listener = { + complete: () => this.emit("complete") + }; + Locator.events.emit("sfx/stop", `${this.startingSoundPrefix}_loop`, 1); + Locator.events.emit("sfx/play", `${this.currentSoundPrefix}_end`); + Locator.events.emit("music/fadeIn", 1); + } + + _handleEndOutEvent() { + this.popup.skeleton.setSkin(null); + this.stateMachine.currentState.skin && this.popup.skeleton.setSkinByName(this.stateMachine.currentState.skin); + this.popup.state.addAnimation(1, "in", false); + this.isSwitching = false; + this.currentSoundPrefix = this.getSoundPrefix(this.stateMachine.currentState.name); + switch (this.currentSoundPrefix) { + case "megawin": + Locator.events.emit("sfx/play", "megawin_shot"); + break; + case "supermegawin": + Locator.events.emit("sfx/stop", "megawin_shot"); + Locator.events.emit("sfx/play", "supermegawin_shot"); + break; + } + } + + _createSpines() { + this.back = new Spine(Assets.get("wins_back").spineData); + this.back.autoUpdate = false; + this.back.update(0); + this.addChild(this.back); + + this.popup = new Spine(Assets.get("win_popups").spineData); + this.popup.autoUpdate = false; + this.popup.skeleton.setSkinByName("big_win"); + this.popup.update(0); + this.addChild(this.popup); + + this.xBetValue = new Spine(Assets.get("win_popups_xbet_value").spineData); + this.xBetValue.autoUpdate = false; + this.addChild(this.xBetValue); + + this.amountValue = new Spine(Assets.get("win_popups_value").spineData); + this.amountValue.autoUpdate = false; + this.addChild(this.amountValue); + + this.tapToContinue = new Spine(Assets.get("win_popups_tap_to_continue").spineData); + this.tapToContinue.autoUpdate = false; + this.addChild(this.tapToContinue); + } + + _createListeners() { + this.popup.state.addListener({ + event: (entry, event) => { + switch (event.data.name) { + case "endOut": + this._handleEndOutEvent(); + break; + } + } + }); + } + + _createTexts() { + this.amountValueText = new TextAttachment({width: 500, height: 80}); + this.amountValueText.boundaries = false; + this.amountValueText.text = 0; + this.amountValueText.center(); + this.amountValueText.style = WIN_TEXT_STYLE; + this.amountValueText.attachTo(this.amountValue, "value"); + this.amountValueText.attachTo(this.amountValue, "value2"); + this.amountValueText.update(); + + this.xBetValueText = new TextAttachment({width: 300, height: 30}); + this.xBetValueText.boundaries = false; + this.xBetValueText.text = `${Numbers.format(100000)} x ${Locator.locales.get("bet")}`; + this.xBetValueText.center(); + this.xBetValueText.style = BET_X_STYLE; + this.xBetValueText.attachTo(this.xBetValue, "xbet_value"); + this.xBetValueText.attachTo(this.xBetValue, "xbet_value2"); + + this.tapToContinueText = new TextAttachment({width: 400, height: 30}); + this.tapToContinueText.boundaries = false; + this.tapToContinueText.text = ""; + this.tapToContinueText.center(); + this.tapToContinueText.style = TAP_TO_CONTINUE_STYLE; + this.tapToContinueText.attachTo(this.tapToContinue, "tap_to_continue"); + this.tapToContinueText.attachTo(this.tapToContinue, "tap_to_continue2"); + } +} diff --git a/src/game/scene/WinScenes/MaxWinScene.js b/src/game/scene/WinScenes/MaxWinScene.js new file mode 100644 index 0000000..25d5b27 --- /dev/null +++ b/src/game/scene/WinScenes/MaxWinScene.js @@ -0,0 +1,21 @@ +import {Locator} from "@popiplay/slot-game-kit"; +import BigWinScene from "./BigWinScene"; +import {WIN_POPUP_STATES} from "./constants"; + + +export default class MaxWinScene extends BigWinScene { + + get initialState() { + return WIN_POPUP_STATES.MAX; + } + + constructor() { + super("MaxWinScene"); + this.settings.autoClose = false; + } + + showTapToContinue() { + this.tapToContinueText.text = Locator.locales.get("tap_to_continue").toUpperCase(); + this.tapToContinueText.update(); + } +} diff --git a/src/game/scene/WinScenes/TotalWinScene.js b/src/game/scene/WinScenes/TotalWinScene.js new file mode 100644 index 0000000..022bd54 --- /dev/null +++ b/src/game/scene/WinScenes/TotalWinScene.js @@ -0,0 +1,21 @@ +import {Locator} from "@popiplay/slot-game-kit"; +import BigWinScene from "./BigWinScene"; +import {WIN_POPUP_STATES} from "./constants"; + + +export default class TotalWinScene extends BigWinScene { + + get initialState() { + return WIN_POPUP_STATES.TOTAL; + } + + constructor() { + super("TotalWinScene"); + this.settings.autoCloseDelay = 30000; + } + + showTapToContinue() { + this.tapToContinueText.text = Locator.locales.get("tap_to_continue").toUpperCase(); + this.tapToContinueText.update(); + } +} diff --git a/src/game/scene/WinScenes/WinPopupStateMachine.js b/src/game/scene/WinScenes/WinPopupStateMachine.js new file mode 100644 index 0000000..c532454 --- /dev/null +++ b/src/game/scene/WinScenes/WinPopupStateMachine.js @@ -0,0 +1,266 @@ +import { StateMachine, State } from "@popiplay/state-machine"; +import { STATE_DURATION, WIN_POPUP_STATES } from "./constants"; + +export class WinPopupStateMachine extends StateMachine { + constructor(scene) { + super(scene); + + this.provideStates([ + new State("WinPopupEntry"), + new BigWinState(scene), + new MegaWinState(scene), + new SuperWinState(scene), + new TotalWinState(scene), + new MaxWinState(scene), + new CompleteState(scene), + new OutState(scene) + ]); + + this.setState(WIN_POPUP_STATES.ENTRY); + } +} + +class BigWinState extends State { + constructor(scene) { + super("BigWinState"); + this.scene = scene; + this.skin = "big_win"; + } + + handleTapToContinue() { + this.scene.tempData.winCounter = this.scene.inputs.win; + } + + enter() { + super.enter(); + this.scene.switch(this.skin); + + const startValue = 0; + const endValue = this.scene.inputs.bet * this.scene.settings.megaThreshold; + const betBangup = this.scene.inputs.bet * 20 / STATE_DURATION; + const winBangup = (endValue - startValue) / STATE_DURATION; + + this.delta = Math.max(betBangup, winBangup); + this.scene.tempData.winCounter = startValue; + } + + update(dt) { + this.scene.tempData.winCounter = Math.min( + this.scene.tempData.winCounter + this.delta * dt, + this.scene.inputs.win + ); + } + + handleInput(input) { + if (input / this.scene.inputs.bet >= this.scene.settings.superThreshold) { + this.scene.stateMachine.setState(WIN_POPUP_STATES.SUPER); + } else if (input / this.scene.inputs.bet >= this.scene.settings.megaThreshold) { + this.scene.stateMachine.setState(WIN_POPUP_STATES.MEGA); + } else if (input >= this.scene.inputs.win) { + this.scene.stateMachine.setState(WIN_POPUP_STATES.COMPLETE); + } + } +} + +class MegaWinState extends State { + constructor(scene) { + super("MegaWinState"); + this.scene = scene; + this.skin = "mega_win"; + } + + handleTapToContinue() { + this.scene.tempData.winCounter = this.scene.inputs.win; + } + + enter() { + super.enter(); + this.scene.switch(this.skin); + + const startValue = this.scene.tempData.winCounter; + const endValue = this.scene.inputs.bet * this.scene.settings.superThreshold; + const betBangup = this.scene.inputs.bet * 20 / STATE_DURATION; + const winBangup = (endValue - startValue) / STATE_DURATION; + + this.delta = Math.max(betBangup, winBangup); + this.scene.tempData.winCounter = startValue; + } + + update(dt) { + this.scene.tempData.winCounter = Math.min( + this.scene.tempData.winCounter + this.delta * dt, + this.scene.inputs.win + ); + } + + handleInput(input) { + if (this.scene.isSwitching) return; + if (input / this.scene.inputs.bet >= this.scene.settings.superThreshold) { + this.scene.stateMachine.setState(WIN_POPUP_STATES.SUPER); + } else if (input >= this.scene.inputs.win) { + this.scene.stateMachine.setState(WIN_POPUP_STATES.COMPLETE); + } + } +} + +class SuperWinState extends State { + constructor(scene) { + super("SuperWinState"); + this.scene = scene; + this.skin = "super_mega_win"; + } + + handleTapToContinue() { + this.scene.tempData.winCounter = this.scene.inputs.win; + } + + enter() { + super.enter(); + this.scene.switch(this.skin); + + const startValue = this.scene.tempData.winCounter; + const endValue = this.scene.inputs.win; + const betBangup = this.scene.inputs.bet * 20 / STATE_DURATION; + const winBangup = (endValue - startValue) / STATE_DURATION; + + this.delta = Math.max(betBangup, winBangup); + this.scene.tempData.winCounter = startValue; + } + + update(dt) { + this.scene.tempData.winCounter = Math.min( + this.scene.tempData.winCounter + this.delta * dt, + this.scene.inputs.win + ); + } + + handleInput(input) { + if (this.scene.isSwitching) return; + if (input >= this.scene.inputs.win) { + this.scene.stateMachine.setState(WIN_POPUP_STATES.COMPLETE); + } + } +} + +class TotalWinState extends State { + constructor(scene) { + super("TotalWinState"); + this.scene = scene; + this.skin = "total_win"; + } + + handleTapToContinue() { + this.scene.tempData.winCounter = this.scene.inputs.win; + } + + enter() { + super.enter(); + this.scene.switch(this.skin); + this.scene.showTapToContinue(); + + const startValue = 0; + const endValue = this.scene.inputs.win; + const betBangup = this.scene.inputs.bet * 20 / STATE_DURATION; + const winBangup = (endValue - startValue) / STATE_DURATION; + + this.delta = Math.max(betBangup, winBangup); + this.scene.tempData.winCounter = startValue; + } + + update(dt) { + this.scene.tempData.winCounter = Math.min( + this.scene.tempData.winCounter + this.delta * dt, + this.scene.inputs.win + ); + } + + handleInput(input) { + if (this.scene.isSwitching) return; + if (input >= this.scene.inputs.win) { + this.scene.stateMachine.setState(WIN_POPUP_STATES.COMPLETE); + } + } +} + +class MaxWinState extends State { + constructor(scene) { + super("MaxWinState"); + this.scene = scene; + this.skin = "max_win"; + } + + handleTapToContinue() { + this.scene.tempData.winCounter = this.scene.inputs.win; + } + + enter() { + super.enter(); + this.scene.switch(this.skin); + this.scene.showTapToContinue(); + const startValue = 0; + const endValue = this.scene.inputs.win; + this.delta = Math.max( + this.scene.inputs.bet * 20 / STATE_DURATION, + (endValue - startValue) / STATE_DURATION + ); + this.scene.tempData.winCounter = startValue; + } + + update(dt) { + this.scene.tempData.winCounter = Math.min( + this.scene.tempData.winCounter + this.delta * dt, + this.scene.inputs.win + ); + } + + handleInput(input) { + if (this.scene.isSwitching) return; + if (input >= this.scene.inputs.win) { + this.scene.stateMachine.setState(WIN_POPUP_STATES.COMPLETE); + } + } +} + +class CompleteState extends State { + constructor(scene) { + super("CompleteState"); + this.scene = scene; + } + + handleTapToContinue() { + this.scene.stateMachine.setState(WIN_POPUP_STATES.OUT); + } + + enter() { + super.enter(); + this.time = 0; + } + + update(dt) { + this.scene.tempData.winCounter = this.scene.inputs.win; + this.time += dt; + + } + + handleInput(input) { + if (this.scene.settings.autoClose && this.time >= this.scene.settings.autoCloseDelay) { + this.scene.stateMachine.setState(WIN_POPUP_STATES.OUT); + } + } +} + +class OutState extends State { + constructor(scene) { + super("OutState"); + this.scene = scene; + } + + handleTapToContinue() { + + } + + enter() { + super.enter(); + this.scene.out(); + } +} diff --git a/src/game/scene/WinScenes/constants.js b/src/game/scene/WinScenes/constants.js new file mode 100644 index 0000000..4677d4a --- /dev/null +++ b/src/game/scene/WinScenes/constants.js @@ -0,0 +1,62 @@ +export const WIN_POPUP_STATES = { + ENTRY: 0, + BIG: 1, + MEGA: 2, + SUPER: 3, + TOTAL: 4, + MAX: 5, + COMPLETE: 6, + OUT: 7, +}; + +export const STATE_DURATION = 4000; + +export const BET_X_STYLE = { + dropShadow: true, + dropShadowAlpha: 1, + dropShadowAngle: 1.6, + dropShadowBlur: 5, + padding: 5, + dropShadowColor: "#ff6400", + dropShadowDistance: 0, + fill: [ + "#ffffff", + "#ffda75", + "#ff9d4d" + ], + fontFamily: "UniSansHeavyCapsItalic", + fontSize: 17, + stroke: "#ffffff", + strokeThickness: 0, + lineJoin: "round" +}; + +export const WIN_TEXT_STYLE = { + dropShadow: true, + dropShadowAlpha: 1, + dropShadowAngle: 1.6, + dropShadowBlur: 5, + padding: 5, + dropShadowColor: "#ff6400", + dropShadowDistance: 0, + fill: [ + "#ffffff", + "#ffda75", + "#ff9d4d" + ], + fontFamily: "UniSansHeavyCapsItalic", + fontSize: 34, + stroke: "#ffffff", + strokeThickness: 0, + lineJoin: "round" +}; + +export const TAP_TO_CONTINUE_STYLE = { + "fill": "#ffecda", + "fontFamily": "UniSansThin", + "fontSize": 20, + "lineJoin": "round", + "miterLimit": 0, + "stroke": "#ffecda", + "strokeThickness": 2 +}; diff --git a/src/game/systems/MusicSystem.js b/src/game/systems/MusicSystem.js new file mode 100644 index 0000000..a924493 --- /dev/null +++ b/src/game/systems/MusicSystem.js @@ -0,0 +1,185 @@ +import {Locator, SCENES} from "@popiplay/slot-game-kit"; +import {gsap} from "gsap"; +import {State} from "@popiplay/state-machine"; + +export const MUSIC_OBSERVER_STATES = { + AMBIENT: 0, + MUSIC: 1, + WAIT_FADE_OUT: 2 +}; + +export const AMBIENTS = { + MAIN: 'ambient_sfx' +}; + +export const MUSICS = { + MAIN: 'main_bgr', + RESPINS: 'respin_bgr', + FREESPINS: 'freespins_bgr', +}; + +export default class MusicSystem { + constructor(model) { + this.model = model; + this.states = [ + new AmbientState(this), + new MusicState(this), + new WaitCountdownState(this) + ]; + this.ambientFade = 0; + this.ambientTween = null; + this.musicFade = 1; + this.musicTween = null; + } + + start() { + Locator.audio.connectToAmbientNode(AMBIENTS.MAIN); + Locator.audio.connectToMusicNode(MUSICS.MAIN); + Locator.audio.connectToMusicNode(MUSICS.RESPINS); + Locator.audio.connectToMusicNode(MUSICS.FREESPINS); + this.setState(MUSIC_OBSERVER_STATES.MUSIC); + this.setupListeners(); + } + + setupListeners() { + Locator.events.on("machineStateChange", this.handleMachineStateChange, this); + + Locator.events.on("ambient/fadeIn", this.fadeInAmbient, this); + Locator.events.on("ambient/fadeOut", this.fadeOutAmbient, this); + + Locator.events.on("music/setScene", this.setSceneMusic, this); + Locator.events.on("music/fadeIn", this.fadeInMusic, this); + Locator.events.on("music/fadeOut", this.fadeOutMusic, this); + } + + handleMachineStateChange(stateMachine) { + if (stateMachine.constructor.name !== 'MainGameMachine') return; + switch (stateMachine.currentState.name) { + case 'IdleState': + case 'WinningLinesLoopState': + this.setState(MUSIC_OBSERVER_STATES.WAIT_FADE_OUT); + break; + case 'SpinningState': + this.setState(MUSIC_OBSERVER_STATES.MUSIC); + break; + } + } + + update(delta) { + this.currentState.handleInput(); + this.currentState.update(delta); + } + + setState(state) { + if (this.currentState === this.states[state]) return; + this.currentState = this.states[state]; + this.currentState.enter(); + } + + setSceneMusic(scene) { + Object.values(MUSICS).forEach((track) => Locator.audio.stop(track)); + switch (scene) { + case SCENES.MAIN_GAME_SCENE: + Locator.audio.play(AMBIENTS.MAIN); + Locator.audio.play(MUSICS.MAIN, {loop: true}); + Locator.audio.stop(MUSICS.RESPINS); + Locator.audio.stop(MUSICS.FREESPINS); + break; + case SCENES.RESPINS_GAME_SCENE: + Locator.audio.stop(AMBIENTS.MAIN); + Locator.audio.stop(MUSICS.MAIN); + Locator.audio.play(MUSICS.RESPINS, {loop: true}); + break; + case SCENES.FREESPINS_GAME_SCENE: + Locator.audio.stop(AMBIENTS.MAIN); + Locator.audio.stop(MUSICS.MAIN); + Locator.audio.play(MUSICS.FREESPINS, {loop: true}); + break; + } + } + + fadeToMusic(duration = 0.8) { + this.fadeInMusic(duration); + this.fadeOutAmbient(duration); + } + + fadeToAmbient(duration = 5) { + this.fadeOutMusic(duration); + this.fadeInAmbient(duration); + } + + fadeInMusic(duration = 0) { + this.musicTween && this.musicTween.kill(); + if (this.musicFade === 0) { + Locator.audio.stop(MUSICS.MAIN); + Locator.audio.play(MUSICS.MAIN, {loop: true}); + } + this.musicTween = gsap.to(this, {musicFade: 1, duration}) + .eventCallback("onUpdate", () => Locator.audio.musicFade = this.musicFade); + } + + fadeOutMusic(duration = 0) { + this.musicTween && this.musicTween.kill(); + this.musicTween = gsap.to(this, {musicFade: 0, duration}) + .eventCallback("onUpdate", () => Locator.audio.musicFade = this.musicFade); + } + + fadeInAmbient(duration = 0) { + this.ambientTween && this.ambientTween.kill(); + this.ambient = gsap.to(this, {ambientFade: 1, duration}) + .eventCallback("onUpdate", () => Locator.audio.ambientFade = this.ambientFade); + } + + fadeOutAmbient(duration = 0) { + this.ambientTween && this.ambientTween.kill(); + this.ambient = gsap.to(this, {ambientFade: 0, duration}) + .eventCallback("onUpdate", () => Locator.audio.ambientFade = this.ambientFade); + } +} + +class AmbientState extends State { + constructor(system) { + super("AmbientState"); + this.system = system; + } + + enter() { + this.system.fadeToAmbient(); + } +} + +class MusicState extends State { + constructor(system) { + super("MusicState"); + this.system = system; + } + + enter() { + this.system.fadeToMusic(); + } +} + +class WaitCountdownState extends State { + constructor(system) { + super("TransitionToAmbientState"); + this.system = system; + this.countdown = 0; + this.delay = 15 * 1000; + } + + enter() { + this.countdown = 0; + } + + update(delta) { + this.countdown += delta; + } + + handleInput() { + if (this.countdown >= this.delay) { + this.system.setState(MUSIC_OBSERVER_STATES.AMBIENT); + } + } +} + + diff --git a/src/game/systems/SFXSystem.js b/src/game/systems/SFXSystem.js new file mode 100644 index 0000000..617cb71 --- /dev/null +++ b/src/game/systems/SFXSystem.js @@ -0,0 +1,92 @@ +import {gsap} from "gsap"; +import {Locator} from "@popiplay/slot-game-kit"; +import {Assets} from "pixi.js"; +import {AMBIENTS, MUSICS} from "./MusicSystem"; +import {getRandomInt} from "../../../utils/utils"; + +export default class SFXSystem { + constructor(model) { + this.model = model; + this.elapsedTime = 0; + } + + start() { + this.sounds = [...this.getSFXSounds('monoAudioSprite'), ...this.getSFXSounds('stereoAudioSprite')]; + for (let trackName of this.sounds) { + Locator.audio.connectToSFXNode(trackName); + } + this.setupListeners(); + } + + setupListeners() { + Locator.events.on('machineStateChange', this.handleMachineStateChange, this); + + Locator.events.addListener('startBtnPressed', () => this.play(`intro ${getRandomInt(1, 3)}`), this); + Locator.events.addListener('introStarted', () => this.play(`intro ${getRandomInt(1, 3)}`), this); + Locator.events.addListener( + 'introSkipped', + () => { + this.stop(`intro 1`); + this.stop(`intro 2`); + this.stop(`intro 3`); + }, + this + ); + Locator.events.addListener('button/click', this.playButtonClick, this); + Locator.events.addListener('button/pointerover', this.playButtonHover, this); + + Locator.events.addListener('sfx/play', this.play); + Locator.events.addListener('sfx/stop', this.stop); + } + + getSFXSounds(assetName) { + return Object.keys(Assets.get(assetName).spritemap).filter( + soundName => ![...Object.values(AMBIENTS), ...Object.values(MUSICS)].includes(soundName) + ); + } + + handleMachineStateChange(stateMachine) { + switch (stateMachine.currentState.name) { + case 'AllWinningSymbolsState': + this.play('win_line_new'); + break; + } + } + + playButtonClick(buttonName) { + switch (buttonName) { + case 'spin_btn': + this.play(this.model.currentMode._isRoundStarted ? 'quick_stop' : 'spin'); + break; + default: + this.play('click'); + break; + } + } + + playButtonHover(buttonName) { + this.play('over'); + } + + play(soundName, options = {}) { + Locator.audio.play(soundName, options); + } + + stop(soundName, duration) { + if (!duration) { + Locator.audio.stop(soundName); + return; + } + const sound = Locator.audio.findSoundSpriteByName(soundName); + const originalSoundVolume = sound.volume; + gsap.to(sound, {volume: 0, duration}) + .eventCallback("onComplete", () => { + Locator.audio.stop(soundName); + sound.volume = originalSoundVolume; + }); + } + + update(dt) { + this.elapsedTime += dt; + } +} diff --git a/src/index.js b/src/index.js new file mode 100644 index 0000000..b43b08c --- /dev/null +++ b/src/index.js @@ -0,0 +1,55 @@ +import "@popiplay/slot-game-kit"; // Apply side effects +// import pool from "../dataPresets/data_1.json"; +// import pool from "../dataPresets/data_2.json"; +// import pool from "../dataPresets/data_3.json"; +// import pool from "../dataPresets/respins.json"; +// import pool from "../dataPresets/respins_2.json"; +// import pool from "../dataPresets/wild_init.json"; +// import pool from "../dataPresets/freespins.json"; +import pool from "../dataPresets/casino_raunds_issued.json"; +import {SETTINGS, GRoot, AudioSprites, LogAnalytics} from "@popiplay/slot-game-kit"; +import setupDom from "utils/setupDom.js"; +import "./styles/main.css"; +import "./styles/casinoFreespinsPopup.css"; +import Game from "./game/Game.js"; + +import { + Locator, Viewport, Scenes, DevLocales, StorageService, + MixerAudioSprites, LocalNetwork, Renderer2D, DevClock, + MockNetwork, + DevUser +} from "@popiplay/slot-game-kit"; +import handleShowRTPInRulesOption from "../utils/handleShowRTPInRulesOption"; +// import {BackPanel} from "slotgamekit"; + +console.log("version: " + __VERSION); + +// const backPanel = new BackPanel(Locator); +// backPanel.addUserControls(); + +Locator.provide(new DevUser()); +Locator.provide(new DevClock()); +Locator.provide(new Renderer2D(SETTINGS.renderer)); +Locator.provide(new Viewport(SETTINGS.viewport, Locator.renderer)); +Locator.provide(new GRoot()); +Locator.provide(new LocalNetwork()); +// Locator.provide(new MockNetwork(pool)); +// Locator.provide(new AudioSprites()); +Locator.provide(new MixerAudioSprites()); +Locator.provide(new StorageService()); +Locator.provide(new DevLocales("en", "en-SOCIAL")); +Locator.provide(new Scenes(Locator.viewport)); +Locator.provide(new LogAnalytics()); + +// backPanel.addOtherControls(); + +globalThis.__PIXI_RENDERER__ = Locator.renderer; + +setupDom(Locator.renderer.view, Locator.groot.root.element); +handleShowRTPInRulesOption(); + +const game = new Game(); +game.start(); + +window.Locator = Locator; +window.Game = game; diff --git a/src/prod.js b/src/prod.js new file mode 100644 index 0000000..ecd71f6 --- /dev/null +++ b/src/prod.js @@ -0,0 +1,34 @@ +import "@popiplay/slot-game-kit"; // Apply side effects + +import "./styles/main.css"; +import "./styles/casinoFreespinsPopup.css"; + +import { + Locator, SETTINGS, Clock, Renderer2D, + Viewport, Network, Events, StorageService, Locales, Scenes, GRoot, + AudioSprites +} from "@popiplay/slot-game-kit"; +import Game from "./game/Game.js"; +import { initSentry } from "utils/sentry.js"; +import setupDom from "utils/setupDom.js"; +import handleShowRTPInRulesOption from "../utils/handleShowRTPInRulesOption"; + + +initSentry(); +console.log("version: " + __VERSION); +Locator.provide(new Clock()); +Locator.provide(new Renderer2D(SETTINGS.renderer)); +Locator.provide(new Viewport(SETTINGS.viewport, Locator.renderer)); +Locator.provide(new GRoot()); +Locator.provide(new Network()); +Locator.provide(new Events()); +Locator.provide(new AudioSprites()); +Locator.provide(new StorageService()); +Locator.provide(new Locales(__OPTIONS__.locale, __OPTIONS__.default_locale)); +Locator.provide(new Scenes(Locator.viewport)); + +setupDom(Locator.renderer.view, Locator.groot.root.element); +handleShowRTPInRulesOption(); + +const game = new Game(); +game.start(); diff --git a/src/staging.js b/src/staging.js new file mode 100644 index 0000000..9604ba2 --- /dev/null +++ b/src/staging.js @@ -0,0 +1,42 @@ +import "@popiplay/slot-game-kit"; // Apply side effects + +import "./styles/main.css"; +import "./styles/casinoFreespinsPopup.css"; + + +import { + Locator, DevClock, Renderer2D, Viewport, Network, + Events, MixerAudioSprites, StorageService, Locales, Scenes, GRoot +} from "@popiplay/slot-game-kit"; +import {SETTINGS} from "@popiplay/slot-game-kit"; +import Game from "./game/Game.js"; + +import { initSentry } from "utils/sentry.js"; +import setupDom from "utils/setupDom.js"; +import handleShowRTPInRulesOption from "../utils/handleShowRTPInRulesOption"; +// import {BackPanel} from "slotgamekit"; + +initSentry(); +console.log("version: " + __VERSION); + +// const backPanel = new BackPanel(Locator); +// backPanel.addUserControls(); + +Locator.provide(new DevClock()); +Locator.provide(new Renderer2D(SETTINGS.renderer)); +Locator.provide(new Viewport(SETTINGS.viewport, Locator.renderer)); +Locator.provide(new GRoot()); +Locator.provide(new Network()); +Locator.provide(new Events()); +Locator.provide(new MixerAudioSprites()); +Locator.provide(new StorageService()); +Locator.provide(new Locales(__OPTIONS__.locale, __OPTIONS__.default_locale)); +Locator.provide(new Scenes(Locator.viewport)); + +// backPanel.addOtherControls(); + +setupDom(Locator.renderer.view, Locator.groot.root.element); +handleShowRTPInRulesOption(); + +const game = new Game(); +game.start(); diff --git a/src/styles/casinoFreespinsPopup.css b/src/styles/casinoFreespinsPopup.css new file mode 100644 index 0000000..a905dff --- /dev/null +++ b/src/styles/casinoFreespinsPopup.css @@ -0,0 +1,42 @@ +.cfs-popup { + transition: all ease-in-out 0.2s; + + .cfs-popup__overlay { + position: fixed; + left: 0; + right: 0; + top: 0; + bottom: 0; + background-color: #26262680; + } + + .cfs-popup__body { + position: fixed; + left: 50%; + top: 50%; + transform: translate(-50%, -50%); + transform-origin: top left; + display: flex; + flex-direction: column; + row-gap: 8px; + width: 600px; + text-transform: uppercase; + height: 250px; + justify-content: center; + border-radius: 10px; + text-align: center; + transition: all ease-in-out 0.2s; + background-color: #161719d5; + color: white; + font-family: Oxanium, Arial, Helvetica, sans-serif; + h1 { + font-size: 32px; + font-weight: normal; + } + + span { + font-size: 40px; + font-weight: bold; + } + } +} diff --git a/src/styles/main.css b/src/styles/main.css new file mode 100644 index 0000000..a9088d4 --- /dev/null +++ b/src/styles/main.css @@ -0,0 +1,265 @@ +* { + margin: 0; + padding: 0; + -webkit-touch-callout: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; +} + +@font-face { + font-family: Oxanium; /* Гарнитура шрифта */ + src: url(../assets/fonts/Oxanium.ttf); /* Путь к файлу со шрифтом */ +} + +html, +body { + height: 100vh; + width: 100vw; + margin: 0; + padding: 0; + background-color: black; + /*touch-action: none;*/ + -webkit-touch-callout: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + outline: none; +} + +.fgui-stage { + position: fixed!important; +} + +div.content { + width: 100%; + height: 100%; + position: relative; + overflow: hidden; + -webkit-touch-callout: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + outline: none; +} + +div.spacer { + width: 100%; + height: 90px; +} + +@supports not (-webkit-touch-callout: none) { + /* CSS for other than iOS devices */ + div.spacer { + display: none; + } + div.content { + overflow: hidden; + } +} + +@supports (-webkit-touch-callout: none) { + /* CSS specific to iOS devices */ + div.spacer { + display: block; + } + div.content { + overflow: visible; + } +} + +@media screen and (orientation: portrait) { + div.spacer { + display: none; + } + div.content { + overflow: hidden; + } + body { + overflow: hidden; + } +} + +.canvas-wrapper { + height: 100%; + width: 100%; + display: flex; + justify-content: center; + -webkit-touch-callout: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + outline: none; +} + +canvas { + height: 100%; + user-select: none; + outline: none; + touch-action: auto; +} + +.rules { + color: white; + font-family: Oxanium, Arial, Helvetica, sans-serif; + width: 100%; + height: 100%; + overflow-x: hidden; + overflow-y: scroll; + font-size: 9pt; +} + +.rules section { + margin-bottom: 2em; +} + +.rules h3 { + color: #feff00; + margin-bottom: 1.5em; +} + +.rules p { + margin-bottom: 1em; + box-sizing: border-box; +} + +.rules a { + color: #feff00; +} + +/* Style the scrollbar itself */ +.rules::-webkit-scrollbar { + width: 6px; /* Change width of the scrollbar */ +} + +/* Style the scrollbar track */ +.rules::-webkit-scrollbar-track { + background: #262626; /* Change track color */ +} + +/* Style the scrollbar handle */ +.rules::-webkit-scrollbar-thumb { + background: #888; /* Change handle color */ + border-radius: 3px; /* Make handle corners rounded */ + + /* Add a transition for a smoother drag */ + transition: background 0.3s ease; +} + +/* Style the scrollbar handle on hover */ +.rules::-webkit-scrollbar-thumb:hover { + background: #555; /* Change handle color on hover */ +} + +.rules ul { + list-style-type: none; /* Убираем стандартные точки */ +} + +.rules li { + margin-left: 16px; +} + +.rules li::before { + content: "•"; /* Добавляем точку */ + color: white; /* Задаем цвет точки */ + display: inline-block; + width: 1em; + margin-left: -1em; /* Сдвигаем точку немного влево */ +} + +.error-popup { + position: fixed; + left: 0px; + right: 0px; + top: 0px; + bottom: 0px; + background-color: #26262680; + + font-family: Oxanium, Arial, Helvetica, sans-serif; + + transition: all ease-in-out 0.2s; + opacity: 0; + font-size: 12px; + display: flex; + flex-grow: 0; + flex-direction: column; + flex-wrap: nowrap; + justify-content: center; + align-items: center; + + .error-popup__icon { + height: 1em; + width: auto; + } + + .error-popup__body { + display: flex; + flex-direction: column; + width: 200px; + min-height: 100px; + max-height: 90vw; + padding: 1em 1.5em 2em 1.5em; + border-radius: 0.8em; + scale: 0; + justify-content: space-between; + transition: all ease-in-out 0.2s; + background-color: #161719ee; + color: #b8b7b8; + } + + .error-popup__header { + margin-left: -0.5em; + font-weight: bold; + font-size: 120%; + } + + .error-popup__content { + overflow-x: hidden; + overflow-y: auto; + text-align: center; + word-wrap: normal; + } + + .error-popup__buttons { + text-align: center; + margin-top: 1em; + display: flex; + align-content: center; + justify-content: space-around; + + button { + -webkit-appearance: button; + appearance: button; + font-size: 100%; + padding: 0.5em 0em 0.5em 0em; + min-width: 80px; + background-color: #2a2a2a; + color: white; + border: none; + text-transform: none; + outline: none; + border-radius: 0.4em; + font-family: Oxanium, Arial, Helvetica, sans-serif; + cursor: pointer; + user-select: none; + } + + button:focus { + border: 0.1rem solid #866c02; + /* border: none; */ + outline: none; + background-color: #2a2a2a; + color: white; + } + + button:active { + border: none; + outline: none; + background-color: #2a2a2a; + color: white; + } + } +} diff --git a/utils/GameErrors.js b/utils/GameErrors.js new file mode 100644 index 0000000..60dea15 --- /dev/null +++ b/utils/GameErrors.js @@ -0,0 +1,62 @@ +import {Locator} from "@popiplay/slot-game-kit"; + +function getErrorDescriptionByCode(code) { + switch (code) { + case 101: + case 102: + case 103: + case 104: + case 105: + case 201: + case 202: + case 203: + case 204: + case 205: + return Locator.locales.get("the_bet_has_not_been_accepted"); + case 206: + return Locator.locales.get("your_freespins_are_ended"); + case 301: + return Locator.locales.get('you_have_insufficient_funds'); + case 302: + case 303: + case 401: + case 402: + case "301nodep": + case "206i": + case "some_error": + case "many_tabs_error": + return Locator.locales.get(code); + case "default": + default: { + const textLocale = Locator.locales.get("default").split("{code}"); + return `${textLocale[0]} ${code} ${textLocale[1]}`; + } + } +} + +export function checkForErrors(response, showPreloader) { + switch (true) { + case (response instanceof NetworkError): + throw response; + case ("errors" in response): + throw new ResponseResultError(response.errors[0].code, showPreloader); + } +} + +export class ResponseResultError extends Error { + /** + * + * @param {number} code the response error code + */ + constructor(code, showPreloader) { + super(getErrorDescriptionByCode(code)); + this.code = code; + this.showPreloader = showPreloader; + } +} + +export class NetworkError extends Error { + constructor() { + super("The client can't connect to the server"); + } +} diff --git a/utils/Numbers.js b/utils/Numbers.js new file mode 100644 index 0000000..916c9b9 --- /dev/null +++ b/utils/Numbers.js @@ -0,0 +1,20 @@ +export default class Numbers { + static format(number, exponent = 2) { + if (typeof number !== 'number') return number; + if (number === 0) { + return '0'; + } + return number.toFixed(exponent) + } + + static getInfinityInsteadOfNegative(number) { + if (number < 0) { + return '∞'; + } + return number; + } + + static addThousandSeparators(number, delimiter = ',') { + return number.toString().replace(/\B(?=(\d{3})+(?!\d))/g, delimiter); + } +} diff --git a/utils/PixiHtmlContainer.js b/utils/PixiHtmlContainer.js new file mode 100644 index 0000000..3905f45 --- /dev/null +++ b/utils/PixiHtmlContainer.js @@ -0,0 +1,28 @@ +import { Container, Transform } from 'pixi.js'; +import { div } from './htmlUtils.js'; +import {Locator} from "@popiplay/slot-game-kit"; + +export class PixiHtmlContainer extends Container { + constructor(parentDom, className, style = {}) { + super(); + this.element = div(className); + this.domTransform = new Transform(); + Object.assign(this.element.style, style); + parentDom?.append(this.element); + + Locator.viewport.on('resize', this.updateTransform, this); + } + + updateTransform() { + super.updateTransform(); + const globalTransform = this.parent.transform.worldTransform; + const decomposition = globalTransform.decompose(this.domTransform); + let transform = `scale(${decomposition.scale.x}, ${decomposition.scale.y}) translate(-50%, -50%)` + this.element.style.transform = transform; + } + + destroy(...args) { + Locator.viewport.off('resize', this.updateTransform, this); + super.destroy(...args); + } +} diff --git a/utils/SeededRandom.js b/utils/SeededRandom.js new file mode 100644 index 0000000..51242c7 --- /dev/null +++ b/utils/SeededRandom.js @@ -0,0 +1,16 @@ +export class SeededRandom { + constructor(seed) { + this.seed = seed; + } + + // Generates a random number + next() { + this.seed = (this.seed * 9301 + 49297) % 233280; + return this.seed / 233280; + } + + // Generates a random integer within a range + nextInt(min, max) { + return Math.floor(this.next() * (max - min + 1)) + min; + } +} diff --git a/utils/SpineHelper.js b/utils/SpineHelper.js new file mode 100644 index 0000000..675e2a5 --- /dev/null +++ b/utils/SpineHelper.js @@ -0,0 +1,8 @@ +export class SpineHelper { + static skip(spine, trackIndex = 0) { + const track = spine.state.tracks[trackIndex]; + track.trackTime = track.animation.duration; + track.loop = false; + spine.update(0); + } +} \ No newline at end of file diff --git a/utils/TextHelper.js b/utils/TextHelper.js new file mode 100644 index 0000000..8768bf6 --- /dev/null +++ b/utils/TextHelper.js @@ -0,0 +1,30 @@ +export class TextHelper { + static scaleToFit(textObject, size) { + if (!size.width) size.width = Infinity; + if (!size.height) size.height = Infinity; + if (textObject.style.wordWrap) { + wordWrapScaleToFit(textObject, size); + } else { + nonWordWrapScaleToFit(textObject, size); + } + } +} + +function wordWrapScaleToFit(textObject, size) { + textObject.scale.set(1); + if (!textObject.style.defaultWordWrapWidth) { + textObject.style.defaultWordWrapWidth = textObject.style.wordWrapWidth; + } + textObject.style.wordWrapWidth = textObject.style.defaultWordWrapWidth; + const scaleStep = 0.99; + while (size.width < textObject.width || size.height < textObject.height) { + textObject.scale.set(textObject.scale.x * scaleStep, textObject.scale.y * scaleStep); + textObject.style.wordWrapWidth = textObject.style.wordWrapWidth / scaleStep; + } +} + +function nonWordWrapScaleToFit(textObject, size) { + textObject.scale.set(1); + const factor = Math.min(1, size.width / textObject.width, size.height / textObject.height); + textObject.scale.set(factor); +} diff --git a/utils/create.js b/utils/create.js new file mode 100644 index 0000000..a4124a7 --- /dev/null +++ b/utils/create.js @@ -0,0 +1,88 @@ +import * as PIXI from "pixi.js"; +import {Assets} from "pixi.js"; + +export const createElement = (displayObject, props, ...children) => { + if (!props) props = {}; + if (!props.args) props.args = []; + + const obj = new displayObject(...props.args) + + if (props && props.ref) props.ref(obj); + + children.forEach(child => addChild(obj, child)); + + obj.once('added', () => { + if (props) setProps(obj, props); + }) + + return obj +} + +export const addChild = (parent, children) => { + if (Array.isArray(children)) + children.forEach(nestedChild => { + addChild(parent, nestedChild) + }); + + else { + parent.addChild(children) + } +}; + +export function setProps(object, props) { + Object.keys(props).forEach(property => { + if (property === 'texture') { + object.texture = getTexture(props.texture); + return; + } + if (property === 'textures') { + object.textures = getTextures(props.textures) + return; + } + if (property === 'styles') { + applyStyles(object, props) + return; + } + if (property === 'position') { + object.position.set(...props.position) + return; + } + object[property] = props[property] + }) +} + +export function getTexture(texture) { + if (typeof texture === 'string') { + return Assets.get(texture) + } + if (texture instanceof PIXI.Texture) { + return texture; + } + return PIXI.Texture.WHITE +} + +function getTextures(textures) { + return textures.map((texture) => getTexture(texture)) +} + +export function applyStyles(object, props) { + if (!object.styles) { + Object.defineProperty(object, 'styles', { + get: () => object._styles, + set: (value) => { + if (!object._styles) object._styles = {}; + Object.assign(object._styles, value); + const styles = {} + for (const key in object._styles) { + if (typeof object._styles[key] === 'function') { + styles[key] = object._styles[key](); + } else { + styles[key] = object._styles[key]; + } + } + setProps(object, styles) + } + }) + } + object.styles = props.styles +} diff --git a/utils/delayedPromise.js b/utils/delayedPromise.js new file mode 100644 index 0000000..d753c87 --- /dev/null +++ b/utils/delayedPromise.js @@ -0,0 +1,20 @@ +/** + * + * @returns {(Promise & {resolve: (r?: any)=>void; reject: (reason)=>void;})} + */ +export function delayedPromise() { + let res = null; + let rej = null; + + const deferredPromise = new Promise((resolve, reject) => { + res = resolve; + rej = reject; + }); + + Object.assign(deferredPromise, { + resolve: res, + reject: rej, + }); + + return deferredPromise; +} \ No newline at end of file diff --git a/utils/handleShowRTPInRulesOption.js b/utils/handleShowRTPInRulesOption.js new file mode 100644 index 0000000..b6284c0 --- /dev/null +++ b/utils/handleShowRTPInRulesOption.js @@ -0,0 +1,11 @@ +export default function handleShowRTPInRulesOption() { + if (!__OPTIONS__.ui.show_rtp_in_rules) { + const styleEl = document.createElement('style'); + styleEl.textContent = ` + #section_rtp { + display: none !important; + } + `; + document.head.appendChild(styleEl); + } +} diff --git a/utils/htmlUtils.js b/utils/htmlUtils.js new file mode 100644 index 0000000..7d7b5b9 --- /dev/null +++ b/utils/htmlUtils.js @@ -0,0 +1,12 @@ +export function div(className) { + const view = document.createElement('div'); + view.className = className; + return view; +} +export function button(name, callback, className = '') { + const view = document.createElement('button'); + view.className = className; + view.addEventListener('pointerdown', callback); + view.innerHTML = name; + return view; +} diff --git a/utils/isIframe.js b/utils/isIframe.js new file mode 100644 index 0000000..e1f481c --- /dev/null +++ b/utils/isIframe.js @@ -0,0 +1,7 @@ +export function isInIframe() { + try { + return window.self !== window.top; + } catch (e) { + return true; + } +} diff --git a/utils/isSafariOnIOS.js b/utils/isSafariOnIOS.js new file mode 100644 index 0000000..9afd78f --- /dev/null +++ b/utils/isSafariOnIOS.js @@ -0,0 +1,11 @@ +export function isSafariOnIphone() { + var userAgent = window.navigator.userAgent; + var isIOS = /iPad|iPhone|iPod/.test(userAgent) && !window.MSStream; + var isChrome = /CriOS/.test(userAgent); + var isOpera = /OPiOS/.test(userAgent); + var isSafari = /Safari/.test(userAgent) && !isChrome && !isOpera; + + if (isIOS && isChrome && !isOpera) { + return false; + } else return isIOS && isSafari; +} diff --git a/utils/parseWinsData.js b/utils/parseWinsData.js new file mode 100644 index 0000000..fd163b0 --- /dev/null +++ b/utils/parseWinsData.js @@ -0,0 +1,22 @@ +export const parseWinsData = (winsArray, currency) => { + if (!winsArray || winsArray.length === 0) return ; + const totalWin = winsArray.reduce((total, [_, win]) => { + return total + win; + }, 0); + const totalWinString = currency.getFormattedValue(totalWin); + const wins = winsArray.map(([type, amount, map, lineIndex]) => { + return { + type, + amount, + amountString: currency.getFormattedValue(amount), + lineSlotsIndexMap: map, + lineIndex + } + }) + const result = { + totalWin, + totalWinString, + wins + } + return result +} diff --git a/utils/sentry.js b/utils/sentry.js new file mode 100644 index 0000000..a9357a7 --- /dev/null +++ b/utils/sentry.js @@ -0,0 +1,21 @@ +import * as Sentry from '@sentry/browser'; + +const isSentryAvailable = !!__SENTRY_DSN && !!__SENTRY_RELEASE; + +export function initSentry() { + if(!isSentryAvailable) return undefined; + + const sentry = Sentry.init({ + environment: window.__OPTIONS__.environment, + dsn: __SENTRY_DSN, + release: __SENTRY_RELEASE, + attachStacktrace: true, + ignoreErrors: [], + }); + + console.log({ __SENTRY_RELEASE, __SENTRY_DSN }); + + if (window.user_id) Sentry.setUser({id: window.user_id}); + + return sentry; +} diff --git a/utils/setupDom.js b/utils/setupDom.js new file mode 100644 index 0000000..a63f9e6 --- /dev/null +++ b/utils/setupDom.js @@ -0,0 +1,54 @@ +/** + * Sets up the DOM structure for the canvas. + * + * @param {HTMLElement} canvas - The canvas element to be inserted into the DOM. + */ +export default function setupDom(canvas, groot) { + document.body.addEventListener('contextmenu', (e) => e.preventDefault()); + + const content = document.createElement('div'); + content.classList.add('content'); + document.body.appendChild(content); + const container = document.createElement('div'); + container.classList.add('canvas-wrapper'); + content.appendChild(container); + canvas.classList.add('webgl'); + container.appendChild(canvas); + + groot && groot.appendChild(container); + groot && content.appendChild(groot); + + const spacer = document.createElement('div'); + spacer.classList.add('spacer'); + document.body.appendChild(spacer); + + // trick FairyGUI Stage styles + enableTouchScroll(); +} + +export function enableTouchScroll(selector = 'body') { + const el = document.querySelector(selector); + if (el) { + el.style.setProperty('touch-action', 'auto', 'important'); + } + + // Delete global * { touch-action: none } + [...document.styleSheets].forEach((sheet) => { + try { + [...sheet.cssRules].forEach((rule, index) => { + if (rule.selectorText === '*' && rule.cssText.includes('touch-action')) { + sheet.deleteRule(index); + } + }); + } catch (e) { + // Ignore errors if CORS + } + }); +} + +export function disableTouchScroll(selector = 'body') { + const el = document.querySelector(selector); + if (el) { + el.style.setProperty('touch-action', 'none', 'important'); + } +} diff --git a/utils/styles.js b/utils/styles.js new file mode 100644 index 0000000..3334872 --- /dev/null +++ b/utils/styles.js @@ -0,0 +1,19 @@ + +export const createStyles = (sheet) => { + return new Proxy(sheet, { + get: (target, property, receiver) => { + const medias = getMedia(target).filter((media) => { + if (!target[media].hasOwnProperty(property)) return false; + return matchMedia(media).matches; + }); + if (medias.length === 0) return target[property]; + return target[medias[medias.length-1]][property]; + } + }) +} + +function getMedia(target) { + const properties = Object.keys(target); + const regex = new RegExp(/\(.*\)/); + return properties.filter((property) => regex.test(property)) +} diff --git a/utils/utils.js b/utils/utils.js new file mode 100644 index 0000000..3dd812d --- /dev/null +++ b/utils/utils.js @@ -0,0 +1,151 @@ +import { Locator } from "@popiplay/slot-game-kit"; +import { SKIN_TYPES } from "../src/config"; + +/** + * Creates a callback function that executes a specific callback after a defined count of invocations. + * + * @param {number} n - The count threshold that triggers the callback execution. + * @param {Function} callback - The function to execute after `n` invocations. Defaults to an empty function. + * @param {Function} eachCallback - The function to execute on each invocation. Defaults to an empty function. + * @return {Function} A new function that increments a count each time it's called, executes `eachCallback`, + * and if the count equals `n`, executes `callback` and resets the count. + * + * @example + * // Logs 'Hello, third time!' every third invocation + * const logEveryTime = (...args) => console.log('Called with', args); + * const sayHelloEveryThirdTime = () => console.log('Hello, third time!'); + * const thresholdCallback = createThresholdCallback(3, sayHelloEveryThirdTime, logEveryTime); + * + * thresholdCallback('test'); // Logs 'Called with ["test"]' + * thresholdCallback('again'); // Logs 'Called with ["again"]' + * thresholdCallback('and again'); // Logs 'Called with ["and again"]' and 'Hello, third time!' + * thresholdCallback('another one'); // Logs 'Called with ["another one"]' + * + */ +export function createThresholdCallback( + n, + callback = () => { }, + eachCallback = () => { } +) { + let counter = 0; + return function (...args) { + counter++; + eachCallback(...args); + if (n === counter) { + counter = 0; + callback(...args); + } + } +} + +/** + * Asynchronously waits for a specified event to be emitted once on the target object. + * + * @async + * @param {EventEmitter} target - The EventEmitter object on which to listen for the event. + * @param {string} event - The name of the event to listen for. + * @return {Promise} A promise that resolves when the specified event is emitted on the target. + * + * Usage: + * ```javascript + * await waitForEventOnce(someObject, 'eventName'); + * // Following code won't execute until 'eventName' is emitted on 'someObject' for the first time. + * ``` + */ +export async function waitForEventOnce(target, event) { + return new Promise((resolve) => { + target.once(event, () => { + resolve() + }); + }) +} + +/** + * Asynchronously waits for the first event from a list of events to be emitted. + * + * @async + * @param {Array<{ target: EventEmitter, event: string }>} events - An array of objects, each containing an EventEmitter object and the event to listen for. + * @return {Promise} A Promise that resolves as soon as one of the specified events is emitted on its respective EventEmitter. + * + * Usage: + * ```javascript + * const events = [ + * { target: someObject1, event: 'eventName1'}, + * { target: someObject2, event: 'eventName2'} + * ]; + * + * await waitForFirstEmittedEvent(events); + * // Following code won't execute until either 'eventName1' is emitted on 'someObject1' or 'eventName2' is emitted on 'someObject2' for the first time. + * ``` + */ +export async function waitForFirstEmittedEvent(events) { + const promises = events.map(({ target, event }) => { + return waitForEventOnce(target, event); + }) + return Promise.race(promises) +} + +export function capitalizeFirstLetter(str) { + return str.charAt(0).toUpperCase() + str.slice(1).toLowerCase(); +} + +export const transpose = (matrix) => matrix[0].map((_, i) => matrix.map(row => row[i])); + +export const isObject = (obj) => obj && typeof obj === 'object' && !Array.isArray(obj); + +/** + * @description - Deeply merges two objects. + * + * @param {Object} target - The target object to merge properties into. + * @param {Object} source - The source object from which to copy properties. + * @return {Object} The merged object. + * + * @example + * const obj1 = { a: 1, b: { c: 2 } }; + * const obj2 = { b: { d: 3 }, e: 4 }; + * const result = deepMerge(obj1, obj2); + * // result is { a: 1, b: { c: 2, d: 3 }, e: 4 } + */ +export function deepMerge(target, source) { + if (!isObject(target) || !isObject(source)) { + return source; + } + + const merged = { ...target }; + + Object.keys(source).forEach(key => { + if (isObject(source[key])) { + if (!target[key]) { + merged[key] = source[key]; + } else { + merged[key] = deepMerge(target[key], source[key]); + } + } else { + merged[key] = source[key]; + } + }); + + return merged; +} + +export const getSkinType = (threshhold) => { + return Locator.viewport.cropWidthRatio < threshhold + ? SKIN_TYPES.PORT + : SKIN_TYPES.LAND; +} + +export const getStyle = (styleTempl, dynamicStyle, threshhold) => { + const skinType = getSkinType(threshhold); + const hasDynamicStyle = !!dynamicStyle + && typeof dynamicStyle === 'object' + && !!Object.entries(dynamicStyle).length; + const additionalStyles = dynamicStyle?.[skinType] || dynamicStyle; + + return hasDynamicStyle ? deepMerge(styleTempl, additionalStyles) : styleTempl; +} + +export const getRandomInt = (min, max) => { + min = Math.ceil(min); + max = Math.floor(max); + return Math.floor(Math.random() * (max - min + 1)) + min; +}