diff --git a/res/ui/get_on_steam_with_price.png b/res/ui/get_on_steam_with_price.png new file mode 100644 index 00000000..e935acdc Binary files /dev/null and b/res/ui/get_on_steam_with_price.png differ diff --git a/src/css/ingame_hud/standalone_advantages.scss b/src/css/ingame_hud/standalone_advantages.scss index 02c0f5e2..065ad6ac 100644 --- a/src/css/ingame_hud/standalone_advantages.scss +++ b/src/css/ingame_hud/standalone_advantages.scss @@ -16,6 +16,7 @@ grid-template-rows: #{D(40px)}; align-items: center; } + .lowerBar { width: 100%; display: flex; @@ -57,10 +58,7 @@ @include S(margin, 0); @include S(width, 180px); @include S(height, 40px); - & { - /* @load-async */ - background: #171a23 uiResource("get_on_steam.png") center center / contain no-repeat; - } + background: #171a23 center center / contain no-repeat; @include S(border-radius, $globalBorderRadius); } diff --git a/src/css/resources.scss b/src/css/resources.scss index 15f94d04..08bfa43f 100644 --- a/src/css/resources.scss +++ b/src/css/resources.scss @@ -75,3 +75,17 @@ $languages: en, de, cs, da, et, es-419, fr, it, pt-BR, sv, tr, el, ru, uk, zh-TW background-image: uiResource("languages/#{$language}.svg") !important; } } + +/* +PRICE +*/ + +.steam_1_pr { + /* @load-async */ + background-image: uiResource("get_on_steam_with_price.png") !important; +} + +.steam_2_npr { + /* @load-async */ + background-image: uiResource("get_on_steam.png") !important; +} diff --git a/src/css/states/main_menu.scss b/src/css/states/main_menu.scss index 455bcf6c..cf0ab718 100644 --- a/src/css/states/main_menu.scss +++ b/src/css/states/main_menu.scss @@ -133,10 +133,7 @@ width: 100%; @include S(height, 40px); @include S(width, 180px); - & { - /* @load-async */ - background: #171a23 uiResource("get_on_steam.png") center center / contain no-repeat; - } + background: #171a23 center center / contain no-repeat; overflow: hidden; display: block; text-indent: -999em; diff --git a/src/js/core/config.js b/src/js/core/config.js index 4d49c50e..c01f7c76 100644 --- a/src/js/core/config.js +++ b/src/js/core/config.js @@ -25,6 +25,8 @@ export const THIRDPARTY_URLS = { standaloneStorePage: "https://store.steampowered.com/app/1318690/shapezio/", }; +export const A_B_TESTING_LINK_TYPE = Math.random() > 0.5 ? "steam_1_pr" : "steam_2_npr"; + export const globalConfig = { // Size of a single tile in Pixels. // NOTICE: Update webpack.production.config too! diff --git a/src/js/game/hud/parts/standalone_advantages.js b/src/js/game/hud/parts/standalone_advantages.js index 8eb3d478..4e39e005 100644 --- a/src/js/game/hud/parts/standalone_advantages.js +++ b/src/js/game/hud/parts/standalone_advantages.js @@ -1,4 +1,4 @@ -import { THIRDPARTY_URLS } from "../../../core/config"; +import { A_B_TESTING_LINK_TYPE, THIRDPARTY_URLS } from "../../../core/config"; import { InputReceiver } from "../../../core/input_receiver"; import { makeDiv } from "../../../core/utils"; import { T } from "../../../translations"; @@ -33,16 +33,17 @@ export class HUDStandaloneAdvantages extends BaseHUDPart {
- -
` ); this.trackClicks(this.contentDiv.querySelector("button.steamLinkButton"), () => { this.root.app.analytics.trackUiClick("standalone_advantage_visit_steam"); - this.root.app.platformWrapper.openExternalLink(THIRDPARTY_URLS.standaloneStorePage + "?ref=savs"); + this.root.app.platformWrapper.openExternalLink( + THIRDPARTY_URLS.standaloneStorePage + "?ref=savs&prc=" + A_B_TESTING_LINK_TYPE + ); this.close(); }); this.trackClicks(this.contentDiv.querySelector("button.otherCloseButton"), () => { diff --git a/src/js/states/main_menu.js b/src/js/states/main_menu.js index b8191306..0d186ffd 100644 --- a/src/js/states/main_menu.js +++ b/src/js/states/main_menu.js @@ -1,6 +1,6 @@ import { GameState } from "../core/game_state"; import { cachebust } from "../core/cachebust"; -import { globalConfig, IS_DEMO, THIRDPARTY_URLS } from "../core/config"; +import { A_B_TESTING_LINK_TYPE, globalConfig, IS_DEMO, THIRDPARTY_URLS } from "../core/config"; import { makeDiv, makeButtonElement, @@ -52,7 +52,7 @@ export class MainMenuState extends GameState {

${T.demoBanners.intro}

- Get the shapez.io standalone! + Get the shapez.io standalone! `; return ` @@ -311,8 +311,11 @@ export class MainMenuState extends GameState { } onSteamLinkClicked() { - this.app.analytics.trackUiClick("main_menu_steam_link_2"); - this.app.platformWrapper.openExternalLink(THIRDPARTY_URLS.standaloneStorePage + "?ref=mmsl2"); + this.app.analytics.trackUiClick("main_menu_steam_link_" + A_B_TESTING_LINK_TYPE); + this.app.platformWrapper.openExternalLink( + THIRDPARTY_URLS.standaloneStorePage + "?ref=mmsl2&prc=" + A_B_TESTING_LINK_TYPE + ); + return false; } diff --git a/translations/base-en.yaml b/translations/base-en.yaml index d69c4c45..5e9870b9 100644 --- a/translations/base-en.yaml +++ b/translations/base-en.yaml @@ -137,7 +137,7 @@ demoBanners: # This is the "advertisement" shown in the main menu and other various places title: Demo Version intro: >- - Get the standalone to unlock all features! + Get the full game to unlock all features and content! mainMenu: play: Play