diff --git a/app/lib/world/world.coffee b/app/lib/world/world.coffee index 8a52db01d..1e47e5414 100644 --- a/app/lib/world/world.coffee +++ b/app/lib/world/world.coffee @@ -99,7 +99,7 @@ module.exports = class World continueLaterFn = => @loadFrames(loadedCallback, errorCallback, loadProgressCallback, preloadedCallback, skipDeferredLoading, loadUntilFrame) unless @destroyed if @realTime and not @countdownFinished - if @levelID in ['the-first-kithmaze', 'the-second-kithmaze', 'the-final-kithmaze', 'the-gauntlet', 'winding-trail', 'thornbush-farm'] + if @levelID in ['the-first-kithmaze', 'haunted-kithmaze', 'the-second-kithmaze', 'the-final-kithmaze', 'the-gauntlet', 'winding-trail', 'thornbush-farm'] @realTimeSpeedFactor = 5 else if @levelID in ['forgotten-gemsmith', 'descending-further', 'tactical-strike', 'kithgard-gates'] @realTimeSpeedFactor = 3 diff --git a/app/models/User.coffee b/app/models/User.coffee index 4dae57c6a..9fa59cb0f 100644 --- a/app/models/User.coffee +++ b/app/models/User.coffee @@ -88,7 +88,7 @@ module.exports = class User extends CocoModel when 2 then 'choice-explicit' when 3 then 'choice-implicit' @branchingGroup = 'choice-explicit' if me.isAdmin() - application.tracker.identify branchingGroup: @branchingGroup + application.tracker.identify branchingGroup: @branchingGroup unless me.isAdmin() @branchingGroup getHighlightArrowSoundGroup: -> @@ -98,5 +98,15 @@ module.exports = class User extends CocoModel when 0, 1, 2, 3 then 'sound-off' when 4, 5, 6, 7 then 'sound-on' @highlightArrowGroup = 'sound-off' if me.isAdmin() - application.tracker.identify highlightArrowGroup: @highlightArrowGroup + application.tracker.identify highlightArrowGroup: @highlightArrowGroup unless me.isAdmin() @highlightArrowGroup + + getKithmazeGroup: -> + return @kithmazeGroup if @kithmazeGroup + group = me.get('testGroupNumber') % 16 + @kithmazeGroup = switch group + when 0, 1, 2, 3, 4, 5, 6, 7 then 'the-first-kithmaze' + when 8, 9, 10, 11, 12, 13, 14, 15 then 'haunted-kithmaze' + @kithmazeGroup = 'haunted-kithmaze' if me.isAdmin() + application.tracker.identify kithmazeGroup: @kithmazeGroup unless me.isAdmin() + @kithmazeGroup diff --git a/app/views/game-menu/InventoryView.coffee b/app/views/game-menu/InventoryView.coffee index e8c5d1624..85de15b85 100644 --- a/app/views/game-menu/InventoryView.coffee +++ b/app/views/game-menu/InventoryView.coffee @@ -340,23 +340,25 @@ module.exports = class InventoryView extends CocoView 'simple-sword': '53e218d853457600003e3ebe' 'leather-tunic': '53e22eac53457600003e3efc' 'leather-boots': '53e2384453457600003e3f07' + 'leather-belt': '5437002a7beba4a82024a97d' 'programmaticon-i': '53e4108204c00d4607a89f78' 'crude-glasses': '53e238df53457600003e3f0b' 'builders-hammer': '53f4e6e3d822c23505b74f42' gearByLevel = 'dungeons-of-kithgard': {feet: 'simple-boots'} 'gems-in-the-deep': {feet: 'simple-boots'} - 'forgetful-gemsmith': {feet: 'simple-boots'} 'shadow-guard': {feet: 'simple-boots'} 'kounter-kithwise': {feet: 'simple-boots'} 'crawlways-of-kithgard': {feet: 'simple-boots'} - 'true-names': {feet: 'simple-boots', 'right-hand': 'simple-sword'} + 'forgetful-gemsmith': {feet: 'simple-boots'} + 'true-names': {feet: 'simple-boots', 'right-hand': 'simple-sword', waist: 'leather-belt'} 'favorable-odds': {feet: 'simple-boots', 'right-hand': 'simple-sword'} 'the-raised-sword': {feet: 'simple-boots', 'right-hand': 'simple-sword', torso: 'leather-tunic'} 'the-first-kithmaze': {feet: 'simple-boots', 'programming-book': 'programmaticon-i'} + 'haunted-kithmaze': {feet: 'simple-boots', 'programming-book': 'programmaticon-i'} 'descending-further': {feet: 'simple-boots', 'programming-book': 'programmaticon-i'} 'the-second-kithmaze': {feet: 'simple-boots', 'programming-book': 'programmaticon-i'} - 'new-sight': {'right-hand': 'simple-sword', 'programming-book': 'programmaticon-i'} + 'dread-door': {'right-hand': 'simple-sword', 'programming-book': 'programmaticon-i'} 'known-enemy': {'right-hand': 'simple-sword', 'programming-book': 'programmaticon-i'} 'master-of-names': {feet: 'simple-boots', 'right-hand': 'simple-sword', 'programming-book': 'programmaticon-i', eyes: 'crude-glasses'} 'lowly-kithmen': {feet: 'simple-boots', 'right-hand': 'simple-sword', 'programming-book': 'programmaticon-i', eyes: 'crude-glasses'} diff --git a/app/views/play/WorldMapView.coffee b/app/views/play/WorldMapView.coffee index d1751f5db..79d87188a 100644 --- a/app/views/play/WorldMapView.coffee +++ b/app/views/play/WorldMapView.coffee @@ -630,22 +630,8 @@ dungeon = [ x: 29 y: 12 nextLevels: - more_practice: 'forgetful-gemsmith' continue: 'shadow-guard' - skip_ahead: 'true-names' - } - { - name: 'Forgetful Gemsmith' - type: 'hero' - difficulty: 1 - id: 'forgetful-gemsmith' - original: '544a98f62d002f0000fe331a' - description: 'Grab even more gems as you practice moving.' - x: 38 - y: 12 - nextLevels: - continue: 'shadow-guard' - practice: true + skip_ahead: 'forgetful-gemsmith' } { name: 'Shadow Guard' @@ -654,11 +640,11 @@ dungeon = [ id: 'shadow-guard' original: '54174347844506ae0195a0b8' description: 'Evade the Kithgard minion.' - x: 50 - y: 11 + x: 41 + y: 13 nextLevels: more_practice: 'kounter-kithwise' - continue: 'true-names' + continue: 'forgetful-gemsmith' } { name: 'Kounter Kithwise' @@ -667,25 +653,37 @@ dungeon = [ id: 'kounter-kithwise' original: '54527a6257e83800009730c7' description: 'Practice your evasion skills with more guards.' - x: 58 - y: 10 + x: 50 + y: 14 nextLevels: - more_practice: 'crawlways-of-kithgard' + #more_practice: 'crawlways-of-kithgard' continue: 'true-names' practice: true } + #{ + # name: 'Crawlways of Kithgard' + # type: 'hero' + # difficulty: 1 + # id: 'crawlways-of-kithgard' + # original: '545287ef57e83800009730d5' + # description: 'Dart in and grab the gem–at the right moment.' + # x: 57 + # y: 12 + # nextLevels: + # continue: 'true-names' + # practice: true + #} { - name: 'Crawlways of Kithgard' + name: 'Forgetful Gemsmith' type: 'hero' difficulty: 1 - id: 'crawlways-of-kithgard' - original: '545287ef57e83800009730d5' - description: 'Dart in and grab the gem–at the right moment.' - x: 67 - y: 10 + id: 'forgetful-gemsmith' + original: '544a98f62d002f0000fe331a' + description: 'Grab even more gems as you practice moving.' + x: 63 + y: 13 nextLevels: - continue: 'true-names' - practice: true + continue: 'shadow-guard' } { name: 'True Names' @@ -695,7 +693,7 @@ dungeon = [ original: '541875da4c16460000ab990f' description: 'Learn an enemy\'s true name to defeat it.' x: 74 - y: 12 + y: 14 nextLevels: more_practice: 'favorable-odds' continue: 'the-raised-sword' @@ -737,7 +735,21 @@ dungeon = [ nextLevels: more_practice: 'descending-further' continue: 'the-second-kithmaze' - skip_ahead: 'new-sight' + skip_ahead: 'dread-door' + } + { + name: 'Haunted Kithmaze' + type: 'hero' + difficulty: 1 + id: 'haunted-kithmaze' + original: '545a5914d820eb0000f6dc0a' + description: 'The builders of Kithgard constructed many mazes to confuse travelers.' + x: 78 + y: 29 + nextLevels: + more_practice: 'descending-further' + continue: 'the-second-kithmaze' + skip_ahead: 'dread-door' } { name: 'Descending Further' @@ -762,15 +774,15 @@ dungeon = [ x: 59 y: 25 nextLevels: - continue: 'new-sight' + continue: 'dread-door' } { - name: 'New Sight' + name: 'Dread Door' type: 'hero' difficulty: 1 - id: 'new-sight' + id: 'dread-door' original: '5418d40f4c16460000ab9ac2' - description: 'A true name can only be seen with the correct lenses.' + description: 'Behind a dread door lies a chest full of riches.' x: 60 y: 34 nextLevels: @@ -1006,3 +1018,9 @@ WorldMapView.campaigns = campaigns = [ {id: 'dungeon', name: 'Dungeon Campaign', levels: dungeon } {id: 'forest', name: 'Forest Campaign', levels: forest } ] + +# A/B testing first kithmaze level: The First Kithmaze vs. Haunted Kithmaze +if me.getKithmazeGroup() is 'the-first-kithmaze' + _.remove dungeon, id: 'haunted-kithmaze' +else + _.remove dungeon, id: 'the-first-kithmaze' diff --git a/app/views/play/level/LevelHUDView.coffee b/app/views/play/level/LevelHUDView.coffee index 4e135e093..7265ef1e0 100644 --- a/app/views/play/level/LevelHUDView.coffee +++ b/app/views/play/level/LevelHUDView.coffee @@ -30,7 +30,7 @@ module.exports = class LevelHUDView extends CocoView afterRender: -> super() @$el.addClass 'no-selection' - if @options.level.get('slug') in ['dungeons-of-kithgard', 'gems-in-the-deep', 'forgetful-gemsmith', 'shadow-guard', 'kounter-kithwise', 'crawlways-of-kithgard', 'true-names', 'favorable-odds', 'the-raised-sword', 'the-first-kithmaze', 'descending-further', 'the-second-kithmaze', 'new-sight', 'known-enemy', 'master-of-names', 'lowly-kithmen', 'closing-the-distance', 'tactical-strike', 'the-final-kithmaze', 'the-gauntlet'] + if @options.level.get('slug') in ['dungeons-of-kithgard', 'gems-in-the-deep', 'forgetful-gemsmith', 'shadow-guard', 'kounter-kithwise', 'crawlways-of-kithgard', 'true-names', 'favorable-odds', 'the-raised-sword', 'the-first-kithmaze', 'haunted-kithmaze', 'descending-further', 'the-second-kithmaze', 'dread-door', 'known-enemy', 'master-of-names', 'lowly-kithmen', 'closing-the-distance', 'tactical-strike', 'the-final-kithmaze', 'the-gauntlet'] @hidesHUD = true @$el.addClass 'hide-hud-properties' diff --git a/app/views/play/level/tome/CastButtonView.coffee b/app/views/play/level/tome/CastButtonView.coffee index da3898669..6b868e202 100644 --- a/app/views/play/level/tome/CastButtonView.coffee +++ b/app/views/play/level/tome/CastButtonView.coffee @@ -108,7 +108,7 @@ module.exports = class CastButtonView extends CocoView else if castable s = $.i18n.t('play_level.tome_cast_button_run') s = $.i18n.t('play_level.tome_cast_button_casting') if s is 'Run' and me.get('preferredLanguage').split('-')[0] isnt 'en' # Temporary, if tome_cast_button_running isn't translated. - unless @options.levelID in ['dungeons-of-kithgard', 'gems-in-the-deep', 'shadow-guard', 'true-names', 'the-raised-sword', 'the-first-kithmaze'] # Hide for first few. + unless @options.levelID in ['dungeons-of-kithgard', 'gems-in-the-deep', 'shadow-guard', 'forgetful-gemsmith', 'kounter-kithwise', 'true-names', 'the-raised-sword', 'favorable-odds', 'the-first-kithmaze', 'haunted-kithmaze'] # Hide for first few. s += ' ' + @castShortcut else s = $.i18n.t('play_level.tome_cast_button_ran') diff --git a/app/views/play/level/tome/SpellView.coffee b/app/views/play/level/tome/SpellView.coffee index d71f201fb..c63afedc5 100644 --- a/app/views/play/level/tome/SpellView.coffee +++ b/app/views/play/level/tome/SpellView.coffee @@ -871,4 +871,5 @@ requiredCodePerLevel = 'dungeons-of-kithgard': ['moveRight'] 'true-names': ['Brak'] 'the-first-kithmaze': ['loop'] + 'haunted-kithmaze': ['loop'] 'lowly-kithmen': ['findNearestEnemy']