Hid Crawlways of Kithgard. A/B testing Haunted Kithmaze vs. The First Kithmaze. Renamed New Sight to Dread Door and awarded its glasses later.

This commit is contained in:
Nick Winter 2014-11-05 10:40:37 -08:00
parent a2554570b0
commit 6efcbc5ead
7 changed files with 74 additions and 43 deletions

View file

@ -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

View file

@ -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

View file

@ -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'}

View file

@ -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 gemat 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 gemat 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'

View file

@ -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'

View file

@ -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')

View file

@ -871,4 +871,5 @@ requiredCodePerLevel =
'dungeons-of-kithgard': ['moveRight']
'true-names': ['Brak']
'the-first-kithmaze': ['loop']
'haunted-kithmaze': ['loop']
'lowly-kithmen': ['findNearestEnemy']