Update demo to try out timed demo

pull/1415/merge
tobspr 2 years ago
parent abd26182f5
commit d39ae528f0

@ -0,0 +1,28 @@
#ingame_HUD_DemoTimer {
position: absolute;
@include S(top, 10px);
left: 50%;
text-align: center;
color: #fff;
transform: translateX(-50%);
color: rgb(248, 40, 106);
.timer {
@include Heading;
@include S(font-size, 40px);
}
&.expired .timer {
@include InlineAnimation(1s ease-in-out infinite) {
50% {
transform: scale(1.05);
}
}
}
.description {
@include SuperSmallText;
@include S(margin-top, 10px);
text-transform: uppercase;
}
}

@ -50,6 +50,7 @@
@import "ingame_hud/entity_debugger";
@import "ingame_hud/tutorial_hints";
@import "ingame_hud/watermark";
@import "ingame_hud/demo_timer";
@import "ingame_hud/blueprint_placer";
@import "ingame_hud/waypoints";
@import "ingame_hud/interactive_tutorial";
@ -119,6 +120,7 @@ ingame_HUD_StandaloneAdvantages,
ingame_HUD_UnlockNotification,
ingame_HUD_PuzzleCompleteNotification,
ingame_HUD_SettingsMenu,
ingame_HUD_DemoTimer,
ingame_HUD_ModalDialogs;
$zindex: 100;

@ -13,6 +13,7 @@ import { HUDBuildingPlacer } from "./parts/building_placer";
import { HUDColorBlindHelper } from "./parts/color_blind_helper";
import { HUDChangesDebugger } from "./parts/debug_changes";
import { HUDDebugInfo } from "./parts/debug_info";
import { HUDDemoTimer } from "./parts/demo_timer";
import { HUDEntityDebugger } from "./parts/entity_debugger";
import { HUDModalDialogs } from "./parts/modal_dialogs";
import { enumNotificationType } from "./parts/notifications";
@ -85,6 +86,12 @@ export class GameHUD {
this.parts.betaOverlay = new HUDBetaOverlay(this.root);
}
if (this.root.app.restrictionMgr.getIsStandaloneMarketingActive()) {
if (["1", "2"].includes(this.root.app.gameAnalytics.abtVariant)) {
this.parts.demoTimer = new HUDDemoTimer(this.root);
}
}
const additionalParts = this.root.gameMode.additionalHudParts;
for (const [partId, part] of Object.entries(additionalParts)) {
this.parts[partId] = new part(this.root);

@ -0,0 +1,42 @@
import { makeDiv } from "../../../core/utils";
import { BaseHUDPart } from "../base_hud_part";
export class HUDDemoTimer extends BaseHUDPart {
createElements(parent) {
this.mainElement = makeDiv(parent, "ingame_HUD_DemoTimer", [], "");
this.timerElement = makeDiv(this.mainElement, null, ["timer"], "12:00");
this.descElement = makeDiv(this.mainElement, null, ["description"], "Until end of demo");
this.currentValue = "";
}
get totalTime() {
return this.root.app.gameAnalytics.abtVariant === "1" ? 15 : 30;
}
initialize() {}
update() {
const time = Math.max(0, this.totalTime * 60 - this.root.time.now());
let minutes = Math.floor(time / 60);
let seconds = Math.floor(time % 60);
let displayString = String(minutes).padStart(2, "0") + ":" + String(seconds).padStart(2, "0");
if (displayString !== this.currentValue) {
this.currentValue = displayString;
this.timerElement.innerText = displayString;
if (time === 0) {
this.mainElement.classList.add("expired");
}
}
if (time === 0) {
const advantages = this.root.hud.parts.standaloneAdvantages;
if (advantages && !advantages.visible) {
advantages.show(true);
}
}
}
}

@ -80,21 +80,30 @@ export class HUDStandaloneAdvantages extends BaseHUDPart {
}
}
show() {
show(final = false) {
this.lastShown = this.root.time.now();
this.visible = true;
this.final = final;
this.root.app.inputMgr.makeSureAttachedAndOnTop(this.inputReciever);
}
close() {
this.visible = false;
this.root.app.inputMgr.makeSureDetached(this.inputReciever);
this.update();
if (this.final) {
this.root.gameState.goBackToMenu();
} else {
this.visible = false;
this.root.app.inputMgr.makeSureDetached(this.inputReciever);
this.update();
}
}
update() {
if (!this.visible && this.root.time.now() - this.lastShown > this.showIntervalSeconds) {
this.show();
if (this.root.app.gameAnalytics.abtVariant === "0") {
// only show in original variant
if (!this.visible && this.root.time.now() - this.lastShown > this.showIntervalSeconds) {
this.show();
}
}
this.domAttach.update(this.visible);

@ -19,6 +19,9 @@ export class HUDSteamCapsule extends BaseHUDPart {
}
update() {
this.domAttach.update(this.root.time.now() > showCapsuleAfter);
if (this.root.app.gameAnalytics.abtVariant === "0") {
// only show in original variant
this.domAttach.update(this.root.time.now() > showCapsuleAfter);
}
}
}

@ -47,6 +47,9 @@ export class HUDWatermark extends BaseHUDPart {
* @param {import("../../../core/draw_utils").DrawParameters} parameters
*/
drawOverlays(parameters) {
if (this.root.app.gameAnalytics.abtVariant !== "0") {
return;
}
const w = this.root.gameWidth;
parameters.context.fillStyle = "rgba(20, 30, 40, 0.25)";

@ -18,7 +18,7 @@ const analyticsUrl = G_IS_DEV ? "http://localhost:8001" : "https://analytics.sha
// Be sure to increment the ID whenever it changes
const analyticsLocalFile = G_IS_STEAM_DEMO ? "shapez_token_steamdemo.bin" : "shapez_token_123.bin";
const CURRENT_ABT = "abt_mmat";
const CURRENT_ABT = "abt_dmtm";
const CURRENT_ABT_COUNT = 3;
export class ShapezGameAnalytics extends GameAnalyticsInterface {

@ -74,12 +74,11 @@ export class MainMenuState extends GameState {
!G_IS_STEAM_DEMO &&
/** @type { PlatformWrapperImplElectron}*/ (this.app.platformWrapper).dlcs.puzzle);
let abtVariant = this.app.gameAnalytics.abtVariant;
const bannerHtml = `
<h3>${T.demoBanners.title}</h3>
<p>${T.demoBanners.intro}</p>
${
abtVariant === "0"
G_IS_STEAM_DEMO
? `<span class="playtimeDisclaimer">${T.demoBanners.playtimeDisclaimer}</span>`
: ""
}
@ -91,7 +90,7 @@ export class MainMenuState extends GameState {
}
</a>
${abtVariant === "2" ? `<div class="onlinePlayerCount"></div>` : ""}
${!G_IS_STEAM_DEMO ? `<div class="onlinePlayerCount"></div>` : ""}
`;

@ -65,7 +65,7 @@ demoBanners:
<li>Dark Mode</li>
<li>... and a lot more!</li>
</ul>
playtimeDisclaimer: The full version contains more than <strong>24 hours of content</strong>.
playtimeDisclaimer: The full version contains more than <strong>20 hours of content</strong>.
playerCount: <playerCount> players like you are currently playing shapez on Steam
mainMenu:
play: Jugar

@ -61,7 +61,7 @@ demoBanners:
<li>Tmavý režim</li>
<li>... a mnoho dalšího!</li>
</ul>
playtimeDisclaimer: Plná verze obsahuje více než <strong>24 hodin obsahu</strong>.
playtimeDisclaimer: Plná verze obsahuje více než <strong>20 hodin obsahu</strong>.
playerCount: <playerCount> hráči jako vy právě hrají shapez ve službě Steam
mainMenu:
play: Hrát

@ -63,7 +63,7 @@ demoBanners:
<li>Mørk tilstand</li>
<li>... og meget mere!</li>
</ul>
playtimeDisclaimer: Den fulde version indeholder mere end <strong>24 timers indhold</strong>.
playtimeDisclaimer: Den fulde version indeholder mere end <strong>20 timers indhold</strong>.
playerCount: <playerCount> spillere som dig spiller lige nu shapez på Steam
mainMenu:
play: Spil

@ -65,7 +65,7 @@ demoBanners:
<li>Dunkler-Modus</li>
<li>... und noch viel mehr!</li>
</ul>
playtimeDisclaimer: Die Vollversion bietet mehr als <strong>24 Stunden Spielspaß</strong>.
playtimeDisclaimer: Die Vollversion bietet mehr als <strong>20 Stunden Spielspaß</strong>.
playerCount: <playerCount> Spieler wie du spielen shapez gerade auf Steam
mainMenu:
play: Spielen

@ -65,7 +65,7 @@ demoBanners:
<li>Dark Mode</li>
<li>... and a lot more!</li>
</ul>
playtimeDisclaimer: The full version contains more than <strong>24 hours of content</strong>.
playtimeDisclaimer: The full version contains more than <strong>20 hours of content</strong>.
playerCount: <playerCount> players like you are currently playing shapez on Steam
mainMenu:
play: Παίξε

@ -105,7 +105,7 @@ demoBanners:
<li>... and a lot more!</li>
</ul>
playtimeDisclaimer: >-
The full version contains more than <strong>24 hours of content</strong>.
The full version contains more than <strong>20 hours of content</strong>.
playerCount: >-
<playerCount> players like you are playing shapez on Steam right now

@ -65,7 +65,7 @@ demoBanners:
<li>Modo oscuro</li>
<li>... ¡y mucho más!</li>
</ul>
playtimeDisclaimer: La versión completa contiene más de <strong>24 horas de contenido</strong>.
playtimeDisclaimer: La versión completa contiene más de <strong>20 horas de contenido</strong>.
playerCount: <playerCount> jugadores como tú están jugando actualmente a shapez en Steam
mainMenu:
play: Jugar

@ -65,7 +65,7 @@ demoBanners:
<li>Tumma tila</li>
<li>... ja paljon muuta!</li>
</ul>
playtimeDisclaimer: Täysversio sisältää yli <strong>24 tuntia sisältöä</strong>.
playtimeDisclaimer: Täysversio sisältää yli <strong>20 tuntia sisältöä</strong>.
playerCount: <playerCount> kaltaisesi pelaajat pelaavat parhaillaan shapezia Steamissa.
mainMenu:
play: Pelaa

@ -63,7 +63,7 @@ demoBanners:
<li>Mode sombre</li>
<li>... et bien plus encore !</li>
</ul>
playtimeDisclaimer: La version complète offre plus de <strong>24 heures de contenu</strong>.
playtimeDisclaimer: La version complète offre plus de <strong>20 heures de contenu</strong>.
playerCount: <playerCount> joueurs comme vous jouent actuellement à shapez sur Steam
mainMenu:
play: Jouer

@ -61,7 +61,7 @@ demoBanners:
<li>Dark Mode</li>
<li>... and a lot more!</li>
</ul>
playtimeDisclaimer: The full version contains more than <strong>24 hours of content</strong>.
playtimeDisclaimer: The full version contains more than <strong>20 hours of content</strong>.
playerCount: <playerCount> players like you are currently playing shapez on Steam
mainMenu:
play: שחק

@ -64,7 +64,7 @@ demoBanners:
<li>Dark Mode</li>
<li>... and a lot more!</li>
</ul>
playtimeDisclaimer: The full version contains more than <strong>24 hours of content</strong>.
playtimeDisclaimer: The full version contains more than <strong>20 hours of content</strong>.
playerCount: <playerCount> players like you are currently playing shapez on Steam
mainMenu:
play: Igraj

@ -62,7 +62,7 @@ demoBanners:
<li>Sötét üzemmód</li>
<li>... és még sok más!</li>
</ul>
playtimeDisclaimer: A teljes verzió több mint <strong>24 órányi tartalmat</strong> tartalmaz.
playtimeDisclaimer: A teljes verzió több mint <strong>20 órányi tartalmat</strong> tartalmaz.
playerCount: <playerCount> hozzád hasonló játékosok jelenleg shapez-t játszanak a Steamen
mainMenu:
play: Játék

@ -62,7 +62,7 @@ demoBanners:
<li>Dark Mode</li>
<li>... and a lot more!</li>
</ul>
playtimeDisclaimer: The full version contains more than <strong>24 hours of content</strong>.
playtimeDisclaimer: The full version contains more than <strong>20 hours of content</strong>.
playerCount: <playerCount> players like you are currently playing shapez on Steam
mainMenu:
play: Mulai Permainan

@ -65,7 +65,7 @@ demoBanners:
<li>Modalità scura</li>
<li>... e molto altro ancora!</li>
</ul>
playtimeDisclaimer: La versione completa contiene oltre <strong>24 ore di contenuti</strong>.
playtimeDisclaimer: La versione completa contiene oltre <strong>20 ore di contenuti</strong>.
playerCount: <playerCount> giocatori come te stanno attualmente giocando a shapez su Steam
mainMenu:
play: Gioca

@ -57,7 +57,7 @@ demoBanners:
<li>ダークモード</li>
<li>...などなど、盛りだくさんです</li>
</ul>
playtimeDisclaimer: フルバージョンには、<strong>24時間以上のコンテンツ</strong>が含まれています。
playtimeDisclaimer: フルバージョンには、<strong>20時間以上のコンテンツ</strong>が含まれています。
playerCount: <playerCount> あなたと同じようなプレイヤーがSteamでshapezをプレイしています。
mainMenu:
play: プレイ

@ -59,7 +59,7 @@ demoBanners:
<li>다크 모드</li>
<li>... 그리고 더 많이!</li>
</ul>
playtimeDisclaimer: 정식 버전에는 <strong>24시간 이상의 콘텐츠</strong>가 포함되어 있습니다.
playtimeDisclaimer: 정식 버전에는 <strong>20시간 이상의 콘텐츠</strong>가 포함되어 있습니다.
playerCount: <playerCount>명의 플레이어가 현재 Steam에서 shapez를 플레이하고 있습니다.
mainMenu:
play: 시작

@ -64,7 +64,7 @@ demoBanners:
<li>Dark Mode</li>
<li>... ir daug daugiau!</li>
</ul>
playtimeDisclaimer: Pilnoje žaidimo versijoje yra daugiau nei <strong>24 turinio
playtimeDisclaimer: Pilnoje žaidimo versijoje yra daugiau nei <strong>20 turinio
valandos</strong>.
playerCount: <playerCount> players like you are currently playing shapez on Steam
mainMenu:

@ -65,7 +65,7 @@ demoBanners:
<li>Donkere modus</li>
<li>... en nog veel meer!</li>
</ul>
playtimeDisclaimer: De volledige versie bevat meer dan <strong>24 uur aan inhoud</strong>.
playtimeDisclaimer: De volledige versie bevat meer dan <strong>20 uur aan inhoud</strong>.
playerCount: <playerCount> spelers zoals jij spelen op dit moment shapez op Steam
mainMenu:
play: Spelen

@ -65,7 +65,7 @@ demoBanners:
<li>Mørk modus</li>
<li>... og mye mer!</li>
</ul>
playtimeDisclaimer: Fullversjonen inneholder mer enn <strong>24 timer med innhold</strong>.
playtimeDisclaimer: Fullversjonen inneholder mer enn <strong>20 timer med innhold</strong>.
playerCount: <playerCount> spillere som deg spiller for øyeblikket shapez på Steam
mainMenu:
play: Spill

@ -65,7 +65,7 @@ demoBanners:
<li>Tryb ciemny</li>
<li>... i wiele innych!</li>
</ul>
playtimeDisclaimer: Pełna wersja zawiera ponad <strong>24 godziny treści</strong>.
playtimeDisclaimer: Pełna wersja zawiera ponad <strong>20 godziny treści</strong>.
playerCount: <playerCount> gracze tacy jak Ty grają obecnie w shapez na Steamie
mainMenu:
play: Rozpocznij

@ -64,7 +64,7 @@ demoBanners:
<li>Dark Mod</li>
<li>...e muito mais!</li>
</ul>
playtimeDisclaimer: A versão completa contém mais de <24 horas de conteúdo</strong>.
playtimeDisclaimer: A versão completa contém mais de <20 horas de conteúdo</strong>.
playerCount: <playerCount> Jogadores como você está jogando shapez on Steam agora mesmo.
mainMenu:
play: Jogar

@ -65,7 +65,7 @@ demoBanners:
<li>Modo escuro</li>
<li>... e muito mais!</li>
</ul>
playtimeDisclaimer: A versão completa contém mais de <strong>24 horas de conteúdo</strong>.
playtimeDisclaimer: A versão completa contém mais de <strong>20 horas de conteúdo</strong>.
playerCount: <playerCount> jogadores como você estão jogando shapez no Steam
mainMenu:
play: Jogar

@ -65,7 +65,7 @@ demoBanners:
<li>Modul întunecat</li>
<li>...și multe altele!</li>
</ul>
playtimeDisclaimer: Versiunea completă conține mai mult de <strong>24 de ore de conținut</strong>.
playtimeDisclaimer: Versiunea completă conține mai mult de <strong>20 de ore de conținut</strong>.
playerCount: <playerCount> jucători ca tine se joacă în prezent shapez pe Steam
mainMenu:
play: Joacă

@ -62,7 +62,7 @@ demoBanners:
<li>Темный Режим</li>
<li>... и многое другое!</li>
</ul>
playtimeDisclaimer: Полная версия содержит более <strong>24 часов контента</strong>.
playtimeDisclaimer: Полная версия содержит более <strong>20 часов контента</strong>.
playerCount: <playerCount> игроки, подобные вам, в настоящее время играют в shapez на Steam
mainMenu:
play: Играть

@ -65,7 +65,7 @@ demoBanners:
<li>Dark Mode</li>
<li>... and a lot more!</li>
</ul>
playtimeDisclaimer: The full version contains more than <strong>24 hours of content</strong>.
playtimeDisclaimer: The full version contains more than <strong>20 hours of content</strong>.
playerCount: <playerCount> players like you are currently playing shapez on Steam
mainMenu:
play: Play

@ -63,7 +63,7 @@ demoBanners:
<li>Dark Mode</li>
<li>... and a lot more!</li>
</ul>
playtimeDisclaimer: The full version contains more than <strong>24 hours of content</strong>.
playtimeDisclaimer: The full version contains more than <strong>20 hours of content</strong>.
playerCount: <playerCount> players like you are currently playing shapez on Steam
mainMenu:
play: Igraj

@ -64,7 +64,7 @@ demoBanners:
<li>Mörkt läge</li>
<li>... och mycket mer!</li>
</ul>
playtimeDisclaimer: Den fullständiga versionen innehåller mer än <strong>24 timmars innehåll</strong>.
playtimeDisclaimer: Den fullständiga versionen innehåller mer än <strong>20 timmars innehåll</strong>.
playerCount: <playerCount> spelare som du spelar just nu shapez på Steam
mainMenu:
play: Spela

@ -63,7 +63,7 @@ demoBanners:
<li>Karanlık Mod</li>
<li>... ve çok daha fazlası!</li>
</ul>
playtimeDisclaimer: Tam sürüm <strong>24 saatten fazla içerik</strong> içerir.
playtimeDisclaimer: Tam sürüm <strong>20 saatten fazla içerik</strong> içerir.
playerCount: <playerCount> sizin gibi oyuncular şu anda Steam'de shapez oynuyor
mainMenu:
play: Oyna

@ -64,7 +64,7 @@ demoBanners:
<li>Темний режим</li>
<li>... та багато іншого!</li>
</ul>
playtimeDisclaimer: Повна версія містить понад <strong>24 години вмісту</strong>.
playtimeDisclaimer: Повна версія містить понад <strong>20 години вмісту</strong>.
playerCount: <playerCount> гравців як ви зараз грають у shapez на Steam
mainMenu:

@ -53,7 +53,7 @@ global:
demoBanners:
title: 试玩版
intro: 购买完整版以解锁所有游戏内容!
playtimeDisclaimer: The full version contains more than <strong>24 hours of content</strong>.
playtimeDisclaimer: The full version contains more than <strong>20 hours of content</strong>.
playerCount: <playerCount> players like you are currently playing shapez on Steam
mainMenu:
play: 开始游戏

@ -61,7 +61,7 @@ demoBanners:
<li>暗色模式</li>
<li>……以及更多!</li>
</ul>
playtimeDisclaimer: 完整版包括多达 <strong>24 小时的新内容</strong>
playtimeDisclaimer: 完整版包括多达 <strong>20 小时的新内容</strong>
playerCount: <playerCount> 个像你一样的玩家目前正在 Steam 上玩 shapez
mainMenu:
play: 开始游戏

@ -59,7 +59,7 @@ demoBanners:
<li>黑暗模式</li>
<li>……還有更多!</li>
</ul>
playtimeDisclaimer: 完整版包含超過 <strong>24 小時的內容</strong>。
playtimeDisclaimer: 完整版包含超過 <strong>20 小時的內容</strong>。
playerCount: <playerCount> 個像你一樣的玩家目前正在 Steam 上玩 shapez
mainMenu:
play: 開始遊戲

Loading…
Cancel
Save