diff --git a/src/js/game/hud/parts/watermark.js b/src/js/game/hud/parts/watermark.js index 149e48cc..a76d0211 100644 --- a/src/js/game/hud/parts/watermark.js +++ b/src/js/game/hud/parts/watermark.js @@ -5,21 +5,24 @@ import { BaseHUDPart } from "../base_hud_part"; export class HUDWatermark extends BaseHUDPart { createElements(parent) { - let linkText = ""; - switch (this.root.app.gameAnalytics.abtVariant) { - case "0": { - linkText = "Get on Steam"; - break; - } - case "1": { - linkText = "Play on Steam"; - break; - } - case "2": { - linkText = T.ingame.watermark.get_on_steam; - break; - } - } + // To be continued later + // let linkText = ""; + // switch (this.root.app.gameAnalytics.abtVariant) { + // case "0": { + // linkText = "Get on Steam"; + // break; + // } + // case "1": { + // linkText = "Play on Steam"; + // break; + // } + // case "2": { + // linkText = T.ingame.watermark.get_on_steam; + // break; + // } + // } + + let linkText = T.ingame.watermark.get_on_steam; this.linkElement = makeDiv( parent, diff --git a/src/js/game/modes/regular.js b/src/js/game/modes/regular.js index 022d2d16..6a276e4f 100644 --- a/src/js/game/modes/regular.js +++ b/src/js/game/modes/regular.js @@ -72,7 +72,7 @@ const upgradesCache = {}; /** * Generates all upgrades * @returns {Object} */ -function generateUpgrades(limitedVersion = false) { +function generateUpgrades(limitedVersion = false, difficulty = 1) { if (upgradesCache[limitedVersion]) { return upgradesCache[limitedVersion]; } @@ -246,6 +246,10 @@ function generateUpgrades(limitedVersion = false) { for (let i = 0; i < upgradeTiers.length; ++i) { const tierHandle = upgradeTiers[i]; tierHandle.improvement = fixedImprovements[i]; + + tierHandle.required.forEach(required => { + required.amount = Math.round(required.amount * difficulty); + }); const originalRequired = tierHandle.required.slice(); for (let k = currentTierRequirements.length - 1; k >= 0; --k) { @@ -296,7 +300,7 @@ const levelDefinitionsCache = {}; * Generates the level definitions * @param {boolean} limitedVersion */ -export function generateLevelDefinitions(limitedVersion = false) { +export function generateLevelDefinitions(limitedVersion = false, difficulty = 1) { if (levelDefinitionsCache[limitedVersion]) { return levelDefinitionsCache[limitedVersion]; } @@ -536,6 +540,10 @@ export function generateLevelDefinitions(limitedVersion = false) { }); } + levelDefinitions.forEach(definition => { + definition.required = Math.round(definition.required * difficulty); + }); + levelDefinitionsCache[limitedVersion] = levelDefinitions; return levelDefinitions; @@ -601,12 +609,32 @@ export class RegularGameMode extends GameMode { ]; } + get difficultyMultiplicator() { + switch (this.root.app.gameAnalytics.abtVariant) { + case "0": + return 0.2; + case "1": + return 0.5; + case "2": + return 0.75; + case "3": + return 1; + case "4": + return 1.25; + case "5": + return 2; + } + } + /** * Should return all available upgrades * @returns {Object} */ getUpgrades() { - return generateUpgrades(!this.root.app.restrictionMgr.getHasExtendedUpgrades()); + return generateUpgrades( + !this.root.app.restrictionMgr.getHasExtendedUpgrades(), + this.difficultyMultiplicator + ); } /** @@ -614,7 +642,10 @@ export class RegularGameMode extends GameMode { * @returns {Array} */ getLevelDefinitions() { - return generateLevelDefinitions(!this.root.app.restrictionMgr.getHasExtendedLevelsAndFreeplay()); + return generateLevelDefinitions( + !this.root.app.restrictionMgr.getHasExtendedLevelsAndFreeplay(), + this.difficultyMultiplicator + ); } /** diff --git a/src/js/platform/browser/game_analytics.js b/src/js/platform/browser/game_analytics.js index ef37bfde..06971815 100644 --- a/src/js/platform/browser/game_analytics.js +++ b/src/js/platform/browser/game_analytics.js @@ -18,8 +18,8 @@ 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_wmlt"; -const CURRENT_ABT_COUNT = 3; +const CURRENT_ABT = "abt_dif"; +const CURRENT_ABT_COUNT = 5; export class ShapezGameAnalytics extends GameAnalyticsInterface { constructor(app) {