mirror of
https://github.com/codeninjasllc/codecombat.git
synced 2024-12-01 11:27:14 -05:00
Merge branch 'master' into production
This commit is contained in:
commit
7dfc2e2130
17 changed files with 133 additions and 32 deletions
|
@ -39,7 +39,7 @@ module.exports = class Tracker
|
||||||
for integration in includeIntegrations
|
for integration in includeIntegrations
|
||||||
options.integrations[integration] = true
|
options.integrations[integration] = true
|
||||||
|
|
||||||
console.log "Would track analytics pageview: '/#{name}'", properties, options if debugAnalytics
|
console.log "Would track analytics pageview: '/#{name}'", properties, options, includeIntegrations if debugAnalytics
|
||||||
return unless @isProduction and analytics? and not me.isAdmin()
|
return unless @isProduction and analytics? and not me.isAdmin()
|
||||||
|
|
||||||
# Ok to pass empty properties, but maybe not options
|
# Ok to pass empty properties, but maybe not options
|
||||||
|
@ -58,7 +58,7 @@ module.exports = class Tracker
|
||||||
# https://developers.google.com/analytics/devguides/collection/gajs/eventTrackerGuide#Anatomy
|
# https://developers.google.com/analytics/devguides/collection/gajs/eventTrackerGuide#Anatomy
|
||||||
# Mixpanel properties format: whatever you want unlike GA
|
# Mixpanel properties format: whatever you want unlike GA
|
||||||
# https://segment.com/docs/integrations/mixpanel/
|
# https://segment.com/docs/integrations/mixpanel/
|
||||||
console.log 'Would track analytics event:', action, properties if debugAnalytics
|
console.log 'Would track analytics event:', action, properties, includeIntegrations if debugAnalytics
|
||||||
return unless me and @isProduction and analytics? and not me.isAdmin()
|
return unless me and @isProduction and analytics? and not me.isAdmin()
|
||||||
properties = properties or {}
|
properties = properties or {}
|
||||||
context = {}
|
context = {}
|
||||||
|
|
|
@ -42,12 +42,16 @@ module.exports = FacebookHandler = class FacebookHandler extends CocoClass
|
||||||
me.set('facebookID', r.id) if r.id
|
me.set('facebookID', r.id) if r.id
|
||||||
|
|
||||||
Backbone.Mediator.publish 'auth:logging-in-with-facebook', {}
|
Backbone.Mediator.publish 'auth:logging-in-with-facebook', {}
|
||||||
window.tracker?.trackEvent 'Facebook Login'
|
|
||||||
window.tracker?.identify()
|
window.tracker?.identify()
|
||||||
|
beforeID = me.id
|
||||||
me.patch({
|
me.patch({
|
||||||
error: backboneFailure,
|
error: backboneFailure,
|
||||||
url: "/db/user/#{me.id}?facebookID=#{r.id}&facebookAccessToken=#{@authResponse.accessToken}"
|
url: "/db/user/#{me.id}?facebookID=#{r.id}&facebookAccessToken=#{@authResponse.accessToken}"
|
||||||
success: (model) ->
|
success: (model) ->
|
||||||
|
window.tracker?.trackEvent 'Facebook Login', category: "Signup", ['Google Analytics']
|
||||||
|
if model.id is beforeID
|
||||||
|
window.tracker?.trackEvent 'Finished Signup', category: "Signup", label: 'Facebook'
|
||||||
|
window.tracker?.trackPageView "signup/finished", ['Google Analytics']
|
||||||
window.location.reload() if model.get('email') isnt oldEmail
|
window.location.reload() if model.get('email') isnt oldEmail
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
|
@ -98,11 +98,10 @@ module.exports = GPlusHandler = class GPlusHandler extends CocoClass
|
||||||
|
|
||||||
Backbone.Mediator.publish 'auth:logging-in-with-gplus', {}
|
Backbone.Mediator.publish 'auth:logging-in-with-gplus', {}
|
||||||
gplusID = me.get('gplusID')
|
gplusID = me.get('gplusID')
|
||||||
window.tracker?.trackEvent 'Google Login'
|
|
||||||
window.tracker?.identify()
|
window.tracker?.identify()
|
||||||
patch = {}
|
patch = {}
|
||||||
patch[key] = me.get(key) for gplusKey, key of userPropsToSave
|
patch[key] = me.get(key) for gplusKey, key of userPropsToSave
|
||||||
patch._id = me.id
|
patch._id = beforeID = me.id
|
||||||
patch.email = me.get('email')
|
patch.email = me.get('email')
|
||||||
wasAnonymous = me.get('anonymous')
|
wasAnonymous = me.get('anonymous')
|
||||||
@trigger 'logging-into-codecombat'
|
@trigger 'logging-into-codecombat'
|
||||||
|
@ -111,11 +110,15 @@ module.exports = GPlusHandler = class GPlusHandler extends CocoClass
|
||||||
patch: true
|
patch: true
|
||||||
type: 'PUT'
|
type: 'PUT'
|
||||||
error: ->
|
error: ->
|
||||||
console.debug('Logging into GPlus fail.', arguments)
|
console.warn('Logging into GPlus fail.', arguments)
|
||||||
backboneFailure(arguments...)
|
backboneFailure(arguments...)
|
||||||
url: "/db/user?gplusID=#{gplusID}&gplusAccessToken=#{@accessToken.access_token}"
|
url: "/db/user?gplusID=#{gplusID}&gplusAccessToken=#{@accessToken.access_token}"
|
||||||
success: (model) ->
|
success: (model) ->
|
||||||
console.debug('GPLus login success!')
|
console.info('GPLus login success!')
|
||||||
|
window.tracker?.trackEvent 'Google Login', category: "Signup", ['Google Analytics']
|
||||||
|
if model.id is beforeID
|
||||||
|
window.tracker?.trackEvent 'Finished Signup', label: 'GPlus'
|
||||||
|
window.tracker?.trackPageView "signup/finished", ['Google Analytics']
|
||||||
window.location.reload() if wasAnonymous and not model.get('anonymous')
|
window.location.reload() if wasAnonymous and not model.get('anonymous')
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
|
@ -295,3 +295,14 @@ module.exports = LevelOptions =
|
||||||
'siege-of-stonehold':
|
'siege-of-stonehold':
|
||||||
requiredGear: {}
|
requiredGear: {}
|
||||||
restrictedGear: {}
|
restrictedGear: {}
|
||||||
|
|
||||||
|
# Desert
|
||||||
|
'the-dunes':
|
||||||
|
requiredGear: {}
|
||||||
|
restrictedGear: {}
|
||||||
|
'the-mighty-sand-yak':
|
||||||
|
requiredGear: {}
|
||||||
|
restrictedGear: {}
|
||||||
|
'oasis':
|
||||||
|
requiredGear: {}
|
||||||
|
restrictedGear: {}
|
||||||
|
|
|
@ -372,6 +372,7 @@
|
||||||
regeneration: "Regeneration"
|
regeneration: "Regeneration"
|
||||||
range: "Range" # As in "attack or visual range"
|
range: "Range" # As in "attack or visual range"
|
||||||
blocks: "Blocks" # As in "this shield blocks this much damage"
|
blocks: "Blocks" # As in "this shield blocks this much damage"
|
||||||
|
backstab: "Backstab" # As in "this dagger does this much backstab damage"
|
||||||
skills: "Skills"
|
skills: "Skills"
|
||||||
available_for_purchase: "Available for Purchase"
|
available_for_purchase: "Available for Purchase"
|
||||||
level_to_unlock: "Level to unlock:"
|
level_to_unlock: "Level to unlock:"
|
||||||
|
|
|
@ -7,7 +7,7 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t
|
||||||
try_it: "Tegyél próbát!" # Alternate wording for Play button
|
try_it: "Tegyél próbát!" # Alternate wording for Play button
|
||||||
old_browser: "Hohó, a böngésződ már túl régi ahhoz, hogy a CodeCombat futhasson rajta. Bocsi!" # Warning that shows up on really old Firefox/Chrome/Safari
|
old_browser: "Hohó, a böngésződ már túl régi ahhoz, hogy a CodeCombat futhasson rajta. Bocsi!" # Warning that shows up on really old Firefox/Chrome/Safari
|
||||||
old_browser_suffix: "Megpróbálhatod éppen, da valószínűleg nem fog működni.."
|
old_browser_suffix: "Megpróbálhatod éppen, da valószínűleg nem fog működni.."
|
||||||
ipad_browser: "Rossy hír. CodeCombat nem fut iPadon böngészőben. Jó hír: a hivatalos iPad applikációnk csak az Apple jóváhagyására vár."
|
ipad_browser: "Rossz hír. CodeCombat nem fut iPadon böngészőben. Jó hír: a hivatalos iPad applikációnk csak az Apple jóváhagyására vár."
|
||||||
campaign: "Kampány"
|
campaign: "Kampány"
|
||||||
for_beginners: "Kezdőknek"
|
for_beginners: "Kezdőknek"
|
||||||
multiplayer: "Többjátékos" # Not currently shown on home page
|
multiplayer: "Többjátékos" # Not currently shown on home page
|
||||||
|
@ -101,14 +101,14 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t
|
||||||
log_in: "Bejelentkezés"
|
log_in: "Bejelentkezés"
|
||||||
logging_in: "Bejelentkezés"
|
logging_in: "Bejelentkezés"
|
||||||
log_out: "Kijelentkezés"
|
log_out: "Kijelentkezés"
|
||||||
# forgot_password: "Forgot your password?"
|
forgot_password: "Elfelejtetted a jelszavad?"
|
||||||
authenticate_gplus: "Csatlakozz G+ profillal"
|
authenticate_gplus: "Csatlakozz G+ profillal"
|
||||||
load_profile: "Töltsd be G+ Profilod"
|
load_profile: "Töltsd be G+ Profilod"
|
||||||
load_email: "Töltsd be G+ Emaileket"
|
load_email: "Töltsd be G+ Emaileket"
|
||||||
finishing: "Befejezés"
|
finishing: "Befejezés"
|
||||||
# sign_in_with_facebook: "Sign in with Facebook"
|
sign_in_with_facebook: "Jelentkezz be Facebook-kal"
|
||||||
# sign_in_with_gplus: "Sign in with G+"
|
sign_in_with_gplus: "Jelentkezz be G+-szal"
|
||||||
# signup_switch: "Want to create an account?"
|
signup_switch: "Hozz létre egy fiókot!"
|
||||||
|
|
||||||
signup:
|
signup:
|
||||||
email_announcements: "Szeretnél kapni hírlevelet?"
|
email_announcements: "Szeretnél kapni hírlevelet?"
|
||||||
|
@ -117,7 +117,7 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t
|
||||||
log_in: "Belépés meglévő fiókkal"
|
log_in: "Belépés meglévő fiókkal"
|
||||||
social_signup: "De regisztrálhatsz a Facebook-on vagy a G+:-on keresztül is."
|
social_signup: "De regisztrálhatsz a Facebook-on vagy a G+:-on keresztül is."
|
||||||
required: "Csak akkor mehetsz arra, ha már bejelentkeztél."
|
required: "Csak akkor mehetsz arra, ha már bejelentkeztél."
|
||||||
# login_switch: "Already have an account?"
|
login_switch: "Már van fiókod?"
|
||||||
|
|
||||||
recover:
|
recover:
|
||||||
recover_account_title: "Meglévő fiók visszaállítása"
|
recover_account_title: "Meglévő fiók visszaállítása"
|
||||||
|
@ -157,7 +157,7 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t
|
||||||
version: "Verzió"
|
version: "Verzió"
|
||||||
# commit_msg: "Commit Message"
|
# commit_msg: "Commit Message"
|
||||||
version_history: "Verzió történet"
|
version_history: "Verzió történet"
|
||||||
# version_history_for: "Version History for: "
|
version_history_for: "Verzió története ennek: "
|
||||||
result: "Eredmény"
|
result: "Eredmény"
|
||||||
results: "Eredmények"
|
results: "Eredmények"
|
||||||
description: "Leírás"
|
description: "Leírás"
|
||||||
|
@ -216,11 +216,11 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t
|
||||||
click_to_select: "Kattints egy egységre, hogy kijelöld!"
|
click_to_select: "Kattints egy egységre, hogy kijelöld!"
|
||||||
control_bar_multiplayer: "Többjátékos"
|
control_bar_multiplayer: "Többjátékos"
|
||||||
control_bar_join_game: "Csatlakozz"
|
control_bar_join_game: "Csatlakozz"
|
||||||
# reload: "Reload"
|
reload: "Újratöltés"
|
||||||
reload_title: "Újra kezded mindet?"
|
reload_title: "Újra kezded mindet?"
|
||||||
reload_really: "Biztos vagy benne, hogy előlről szeretnéd kezdeni az egész pályát?"
|
reload_really: "Biztos vagy benne, hogy előlről szeretnéd kezdeni az egész pályát?"
|
||||||
reload_confirm: "Előlről az egészet"
|
reload_confirm: "Előlről az egészet"
|
||||||
# victory: "Victory"
|
victory: "Győzelem"
|
||||||
# victory_title_prefix: ""
|
# victory_title_prefix: ""
|
||||||
victory_title_suffix: "Kész"
|
victory_title_suffix: "Kész"
|
||||||
victory_sign_up: "Regisztrálj a friss infókért"
|
victory_sign_up: "Regisztrálj a friss infókért"
|
||||||
|
@ -233,8 +233,8 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t
|
||||||
victory_review: "Mondd el a véleményedet!" # Only in old-style levels.
|
victory_review: "Mondd el a véleményedet!" # Only in old-style levels.
|
||||||
victory_hour_of_code_done: "Készen vagy?"
|
victory_hour_of_code_done: "Készen vagy?"
|
||||||
victory_hour_of_code_done_yes: "Igen, ez volt életem kódja!"
|
victory_hour_of_code_done_yes: "Igen, ez volt életem kódja!"
|
||||||
# victory_experience_gained: "XP Gained"
|
victory_experience_gained: "Szerzett tapasztalat"
|
||||||
# victory_gems_gained: "Gems Gained"
|
victory_gems_gained: "Szerzett Drágakövek"
|
||||||
guide_title: "Útmutató"
|
guide_title: "Útmutató"
|
||||||
tome_minion_spells: "Egységeid varázslatai" # Only in old-style levels.
|
tome_minion_spells: "Egységeid varázslatai" # Only in old-style levels.
|
||||||
tome_read_only_spells: "Csak olvasható varázslatok" # Only in old-style levels.
|
tome_read_only_spells: "Csak olvasható varázslatok" # Only in old-style levels.
|
||||||
|
@ -274,11 +274,11 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t
|
||||||
tip_error_free: "Két módon lehet hibátlan programot írni. De csak a harmadik működik. - Alan Perlis"
|
tip_error_free: "Két módon lehet hibátlan programot írni. De csak a harmadik működik. - Alan Perlis"
|
||||||
# tip_debugging_program: "If debugging is the process of removing bugs, then programming must be the process of putting them in. - Edsger W. Dijkstra"
|
# tip_debugging_program: "If debugging is the process of removing bugs, then programming must be the process of putting them in. - Edsger W. Dijkstra"
|
||||||
tip_forums: "Irány a fórumok, és mondd el mit gondolsz!!"
|
tip_forums: "Irány a fórumok, és mondd el mit gondolsz!!"
|
||||||
# tip_baby_coders: "In the future, even babies will be Archmages."
|
tip_baby_coders: "A jövőben még a bébik is Főmágusok lesznek."
|
||||||
# tip_morale_improves: "Loading will continue until morale improves."
|
tip_morale_improves: "A töltés addig folytatódik, amíg a morál javul."
|
||||||
tip_all_species: "Hisszük, hogy minden fajnak egyenlő lehetőségekkel kell bírnia a programozás megtanulására."
|
tip_all_species: "Hisszük, hogy minden fajnak egyenlő lehetőségekkel kell bírnia a programozás megtanulására."
|
||||||
# tip_reticulating: "Reticulating spines."
|
# tip_reticulating: "Reticulating spines."
|
||||||
# tip_harry: "Yer a Wizard, "
|
tip_harry: "Te, Mágus, "
|
||||||
tip_great_responsibility: "Nagy kódolási képességgel nagy hibaelhárítási felelősség jár."
|
tip_great_responsibility: "Nagy kódolási képességgel nagy hibaelhárítási felelősség jár."
|
||||||
# tip_munchkin: "If you don't eat your vegetables, a munchkin will come after you while you're asleep."
|
# tip_munchkin: "If you don't eat your vegetables, a munchkin will come after you while you're asleep."
|
||||||
tip_binary: "A világon csak 10 féle ember van: azok, akik értik a kettes számrendszert és azok, akik nem.."
|
tip_binary: "A világon csak 10 féle ember van: azok, akik értik a kettes számrendszert és azok, akik nem.."
|
||||||
|
|
|
@ -412,6 +412,7 @@ module.exports = class ThangType extends CocoModel
|
||||||
throwDamage: 'attack'
|
throwDamage: 'attack'
|
||||||
throwRange: 'range'
|
throwRange: 'range'
|
||||||
bashDamage: 'attack'
|
bashDamage: 'attack'
|
||||||
|
backstabDamage: 'backstab'
|
||||||
}[name]
|
}[name]
|
||||||
|
|
||||||
if i18nKey
|
if i18nKey
|
||||||
|
|
|
@ -115,6 +115,17 @@ module.exports = class User extends CocoModel
|
||||||
application.tracker.identify announcesActionAudioGroup: @announcesActionAudioGroup unless me.isAdmin()
|
application.tracker.identify announcesActionAudioGroup: @announcesActionAudioGroup unless me.isAdmin()
|
||||||
@announcesActionAudioGroup
|
@announcesActionAudioGroup
|
||||||
|
|
||||||
|
getFastVictoryModalGroup: ->
|
||||||
|
# A/B Testing no delay showing the signup and continue buttons in hero victory modal
|
||||||
|
return @fastVictoryModalGroup if @fastVictoryModalGroup
|
||||||
|
group = me.get('testGroupNumber') % 2
|
||||||
|
@fastVictoryModalGroup = switch group
|
||||||
|
when 0 then 'normal'
|
||||||
|
when 1 then 'fast'
|
||||||
|
@fastVictoryModalGroup = 'fast' if me.isAdmin()
|
||||||
|
application.tracker.identify fastVictoryModalGroup: @fastVictoryModalGroup unless me.isAdmin()
|
||||||
|
@fastVictoryModalGroup
|
||||||
|
|
||||||
getGemPromptGroup: ->
|
getGemPromptGroup: ->
|
||||||
return @gemPromptGroup if @gemPromptGroup
|
return @gemPromptGroup if @gemPromptGroup
|
||||||
group = me.get('testGroupNumber') % 8
|
group = me.get('testGroupNumber') % 8
|
||||||
|
|
|
@ -65,7 +65,7 @@ block modal-footer-content
|
||||||
if me.get('anonymous')
|
if me.get('anonymous')
|
||||||
.sign-up-poke.hide
|
.sign-up-poke.hide
|
||||||
.sign-up-blurb(data-i18n="play_level.victory_sign_up_poke") Want to save your code? Create a free account!
|
.sign-up-blurb(data-i18n="play_level.victory_sign_up_poke") Want to save your code? Create a free account!
|
||||||
button.btn.btn-illustrated.btn-warning.sign-up-button.btn-lg(data-toggle="coco-modal", data-target="core/AuthModal", data-i18n="play_level.victory_sign_up") Sign Up to Save Progress
|
button.btn.btn-illustrated.btn-warning.sign-up-button.btn-lg(data-dismiss="modal", data-i18n="play_level.victory_sign_up") Sign Up to Save Progress
|
||||||
|
|
||||||
button.btn.btn-illustrated.btn-lg.btn-warning.hide#saving-progress-label(disabled, data-i18n="play_level.victory_saving_progress") Saving Progress
|
button.btn.btn-illustrated.btn-lg.btn-warning.hide#saving-progress-label(disabled, data-i18n="play_level.victory_saving_progress") Saving Progress
|
||||||
|
|
||||||
|
|
|
@ -23,7 +23,7 @@ block modal-footer-content
|
||||||
a.btn.btn-primary(href="/", data-dismiss="modal", data-i18n="play_level.victory_go_home") Go Home
|
a.btn.btn-primary(href="/", data-dismiss="modal", data-i18n="play_level.victory_go_home") Go Home
|
||||||
if me.get('anonymous')
|
if me.get('anonymous')
|
||||||
p.sign-up-poke
|
p.sign-up-poke
|
||||||
button.btn.btn-success.sign-up-button.btn-large(data-toggle="coco-modal", data-target="core/AuthModal", data-i18n="play_level.victory_sign_up") Sign Up to Save Progress
|
button.btn.btn-success.sign-up-button.btn-large(data-dismiss="modal", data-i18n="play_level.victory_sign_up") Sign Up to Save Progress
|
||||||
span(data-i18n="play_level.victory_sign_up_poke") Want to save your code? Create a free account!
|
span(data-i18n="play_level.victory_sign_up_poke") Want to save your code? Create a free account!
|
||||||
p.clearfix
|
p.clearfix
|
||||||
else
|
else
|
||||||
|
|
|
@ -90,7 +90,7 @@ module.exports = class AuthModal extends ModalView
|
||||||
res = tv4.validateMultiple userObject, User.schema
|
res = tv4.validateMultiple userObject, User.schema
|
||||||
return forms.applyErrorsToForm(@$el, res.errors) unless res.valid
|
return forms.applyErrorsToForm(@$el, res.errors) unless res.valid
|
||||||
Backbone.Mediator.publish "auth:signed-up", {}
|
Backbone.Mediator.publish "auth:signed-up", {}
|
||||||
window.tracker?.trackEvent 'Finished Signup'
|
window.tracker?.trackEvent 'Finished Signup', label: 'CodeCombat'
|
||||||
window.tracker?.trackPageView "signup/finished", ['Google Analytics']
|
window.tracker?.trackPageView "signup/finished", ['Google Analytics']
|
||||||
@enableModalInProgress(@$el)
|
@enableModalInProgress(@$el)
|
||||||
createUser userObject, null, window.nextLevelURL
|
createUser userObject, null, window.nextLevelURL
|
||||||
|
|
|
@ -55,14 +55,14 @@ module.exports = class RootView extends CocoView
|
||||||
switch @id
|
switch @id
|
||||||
when 'home-view'
|
when 'home-view'
|
||||||
window.tracker?.trackEvent 'Started Signup', category: 'Homepage', label: 'Homepage'
|
window.tracker?.trackEvent 'Started Signup', category: 'Homepage', label: 'Homepage'
|
||||||
window.tracker?.trackPageView "signup/homepage", ['Google Analytics']
|
window.tracker?.trackPageView "signup/start", ['Google Analytics']
|
||||||
when 'world-map-view'
|
when 'world-map-view'
|
||||||
# TODO: add campaign data
|
# TODO: add campaign data
|
||||||
window.tracker?.trackEvent 'Started Signup', category: 'World Map', label: 'World Map'
|
window.tracker?.trackEvent 'Started Signup', category: 'World Map', label: 'World Map'
|
||||||
window.tracker?.trackPageView "signup/world-map", ['Google Analytics']
|
window.tracker?.trackPageView "signup/start", ['Google Analytics']
|
||||||
else
|
else
|
||||||
window.tracker?.trackEvent 'Started Signup', label: 'unknown'
|
window.tracker?.trackEvent 'Started Signup', label: @id
|
||||||
window.tracker?.trackPageView "signup/unknown", ['Google Analytics']
|
window.tracker?.trackPageView "signup/start", ['Google Analytics']
|
||||||
@openModalView new AuthModal {mode: 'signup'}
|
@openModalView new AuthModal {mode: 'signup'}
|
||||||
|
|
||||||
onClickLoginButton: ->
|
onClickLoginButton: ->
|
||||||
|
|
|
@ -895,8 +895,8 @@ forest = [
|
||||||
id: 'siege-of-stonehold'
|
id: 'siege-of-stonehold'
|
||||||
original: '54712072eb739dbc9d24034b'
|
original: '54712072eb739dbc9d24034b'
|
||||||
description: 'Unlock the desert world, if you are strong enough to win this epic battle!'
|
description: 'Unlock the desert world, if you are strong enough to win this epic battle!'
|
||||||
#nextLevels:
|
nextLevels:
|
||||||
# continue: ''
|
continue: 'the-dunes'
|
||||||
disabled: not me.isAdmin()
|
disabled: not me.isAdmin()
|
||||||
x: 85.5
|
x: 85.5
|
||||||
y: 83.5
|
y: 83.5
|
||||||
|
@ -923,6 +923,50 @@ forest = [
|
||||||
y: 23
|
y: 23
|
||||||
adventurer: true
|
adventurer: true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
name: 'The Dunes'
|
||||||
|
type: 'hero'
|
||||||
|
id: 'the-dunes'
|
||||||
|
original: '5480b62e1bf0b10000711c59'
|
||||||
|
description: 'Behold, the desert, full of glory, danger, and sand. Lots of sand.'
|
||||||
|
nextLevels:
|
||||||
|
continue: 'the-mighty-sand-yak'
|
||||||
|
disabled: not me.isAdmin()
|
||||||
|
x: 88.66
|
||||||
|
y: 62.61
|
||||||
|
adventurer: true
|
||||||
|
requiresSubscription: true
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: 'The Mighty Sand Yak'
|
||||||
|
type: 'hero'
|
||||||
|
id: 'the-mighty-sand-yak'
|
||||||
|
original: '5480b9d01bf0b10000711c5f'
|
||||||
|
description: 'In addition to sand, there are also yaks. Sandy yaks. Yak attack, back to back, man that\'s whack.'
|
||||||
|
nextLevels:
|
||||||
|
continue: 'oasis'
|
||||||
|
disabled: not me.isAdmin()
|
||||||
|
x: 81.00
|
||||||
|
y: 55.37
|
||||||
|
adventurer: true
|
||||||
|
requiresSubscription: true
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: 'Oasis'
|
||||||
|
type: 'hero'
|
||||||
|
id: 'oasis'
|
||||||
|
original: '5480ba761bf0b10000711c64'
|
||||||
|
description: 'There is a bit of water in the desert, too. Probably.'
|
||||||
|
#nextLevels:
|
||||||
|
# continue: ''
|
||||||
|
disabled: not me.isAdmin()
|
||||||
|
x: 92.56
|
||||||
|
y: 40.88
|
||||||
|
adventurer: true
|
||||||
|
requiresSubscription: true
|
||||||
|
}
|
||||||
|
|
||||||
]
|
]
|
||||||
|
|
||||||
WorldMapView.campaigns = campaigns = [
|
WorldMapView.campaigns = campaigns = [
|
||||||
|
|
|
@ -98,7 +98,7 @@ module.exports = class ControlBarView extends CocoView
|
||||||
|
|
||||||
onClickSignupButton: ->
|
onClickSignupButton: ->
|
||||||
window.tracker?.trackEvent 'Started Signup', category: 'Play Level', label: 'Control Bar', level: @levelID
|
window.tracker?.trackEvent 'Started Signup', category: 'Play Level', label: 'Control Bar', level: @levelID
|
||||||
window.tracker?.trackPageView "signup/play-level", ['Google Analytics']
|
window.tracker?.trackPageView "signup/start", ['Google Analytics']
|
||||||
|
|
||||||
onDisableControls: (e) -> @toggleControls e, false
|
onDisableControls: (e) -> @toggleControls e, false
|
||||||
onEnableControls: (e) -> @toggleControls e, true
|
onEnableControls: (e) -> @toggleControls e, true
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
ModalView = require 'views/core/ModalView'
|
ModalView = require 'views/core/ModalView'
|
||||||
|
AuthModal = require 'views/core/AuthModal'
|
||||||
template = require 'templates/play/level/modal/hero-victory-modal'
|
template = require 'templates/play/level/modal/hero-victory-modal'
|
||||||
Achievement = require 'models/Achievement'
|
Achievement = require 'models/Achievement'
|
||||||
EarnedAchievement = require 'models/EarnedAchievement'
|
EarnedAchievement = require 'models/EarnedAchievement'
|
||||||
|
@ -24,6 +25,7 @@ module.exports = class HeroVictoryModal extends ModalView
|
||||||
events:
|
events:
|
||||||
'click #continue-button': 'onClickContinue'
|
'click #continue-button': 'onClickContinue'
|
||||||
'click .return-to-ladder-button': 'onClickReturnToLadder'
|
'click .return-to-ladder-button': 'onClickReturnToLadder'
|
||||||
|
'click .sign-up-button': 'onClickSignupButton'
|
||||||
|
|
||||||
constructor: (options) ->
|
constructor: (options) ->
|
||||||
super(options)
|
super(options)
|
||||||
|
@ -281,7 +283,8 @@ module.exports = class HeroVictoryModal extends ModalView
|
||||||
Backbone.Mediator.publish 'music-player:enter-menu', terrain: @level.get('terrain', true)
|
Backbone.Mediator.publish 'music-player:enter-menu', terrain: @level.get('terrain', true)
|
||||||
|
|
||||||
updateSavingProgressStatus: ->
|
updateSavingProgressStatus: ->
|
||||||
return unless @animationComplete
|
# A/B Testing no delay showing the signup and continue buttons in hero victory modal
|
||||||
|
return unless @animationComplete or me.getFastVictoryModalGroup() is 'fast'
|
||||||
@$el.find('#saving-progress-label').toggleClass('hide', @readyToContinue)
|
@$el.find('#saving-progress-label').toggleClass('hide', @readyToContinue)
|
||||||
@$el.find('.next-level-button').toggleClass('hide', not @readyToContinue)
|
@$el.find('.next-level-button').toggleClass('hide', not @readyToContinue)
|
||||||
@$el.find('.sign-up-poke').toggleClass('hide', not @readyToContinue)
|
@$el.find('.sign-up-poke').toggleClass('hide', not @readyToContinue)
|
||||||
|
@ -335,3 +338,9 @@ module.exports = class HeroVictoryModal extends ModalView
|
||||||
route = $(e.target).data('href')
|
route = $(e.target).data('href')
|
||||||
# Preserve the supermodel as we navigate back to the ladder.
|
# Preserve the supermodel as we navigate back to the ladder.
|
||||||
Backbone.Mediator.publish 'router:navigate', route: route, viewClass: 'views/ladder/LadderView', viewArgs: [{supermodel: if @options.hasReceivedMemoryWarning then null else @supermodel}, @level.get('slug')]
|
Backbone.Mediator.publish 'router:navigate', route: route, viewClass: 'views/ladder/LadderView', viewArgs: [{supermodel: if @options.hasReceivedMemoryWarning then null else @supermodel}, @level.get('slug')]
|
||||||
|
|
||||||
|
onClickSignupButton: (e) ->
|
||||||
|
e.preventDefault()
|
||||||
|
window.tracker?.trackEvent 'Started Signup', category: 'Play Level', label: 'Hero Victory Modal', level: @level.get('slug')
|
||||||
|
window.tracker?.trackPageView "signup/start", ['Google Analytics']
|
||||||
|
@openModalView new AuthModal {mode: 'signup'}
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
ModalView = require 'views/core/ModalView'
|
ModalView = require 'views/core/ModalView'
|
||||||
|
AuthModal = require 'views/core/AuthModal'
|
||||||
template = require 'templates/play/level/modal/victory'
|
template = require 'templates/play/level/modal/victory'
|
||||||
{me} = require 'core/auth'
|
{me} = require 'core/auth'
|
||||||
LadderSubmissionView = require 'views/play/common/LadderSubmissionView'
|
LadderSubmissionView = require 'views/play/common/LadderSubmissionView'
|
||||||
|
@ -15,6 +16,7 @@ module.exports = class VictoryModal extends ModalView
|
||||||
events:
|
events:
|
||||||
'click .next-level-button': 'onPlayNextLevel'
|
'click .next-level-button': 'onPlayNextLevel'
|
||||||
'click .world-map-button': 'onClickWorldMap'
|
'click .world-map-button': 'onClickWorldMap'
|
||||||
|
'click .sign-up-button': 'onClickSignupButton'
|
||||||
|
|
||||||
# review events
|
# review events
|
||||||
'mouseover .rating i': (e) -> @showStars(@starNum($(e.target)))
|
'mouseover .rating i': (e) -> @showStars(@starNum($(e.target)))
|
||||||
|
@ -68,6 +70,12 @@ module.exports = class VictoryModal extends ModalView
|
||||||
e.stopImmediatePropagation()
|
e.stopImmediatePropagation()
|
||||||
Backbone.Mediator.publish 'router:navigate', route: '/play', viewClass: require('views/play/WorldMapView'), viewArgs: [{supermodel: @supermodel}]
|
Backbone.Mediator.publish 'router:navigate', route: '/play', viewClass: require('views/play/WorldMapView'), viewArgs: [{supermodel: @supermodel}]
|
||||||
|
|
||||||
|
onClickSignupButton: (e) ->
|
||||||
|
e.preventDefault()
|
||||||
|
window.tracker?.trackEvent 'Started Signup', category: 'Play Level', label: 'Victory Modal', level: @level.get('slug')
|
||||||
|
window.tracker?.trackPageView "signup/start", ['Google Analytics']
|
||||||
|
@openModalView new AuthModal {mode: 'signup'}
|
||||||
|
|
||||||
onGameSubmitted: (e) ->
|
onGameSubmitted: (e) ->
|
||||||
ladderURL = "/play/ladder/#{@level.get('slug')}#my-matches"
|
ladderURL = "/play/ladder/#{@level.get('slug')}#my-matches"
|
||||||
Backbone.Mediator.publish 'router:navigate', route: ladderURL
|
Backbone.Mediator.publish 'router:navigate', route: ladderURL
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
ModalView = require 'views/core/ModalView'
|
ModalView = require 'views/core/ModalView'
|
||||||
|
AuthModal = require 'views/core/AuthModal'
|
||||||
template = require 'templates/play/menu/game-menu-modal'
|
template = require 'templates/play/menu/game-menu-modal'
|
||||||
submenuViews = [
|
submenuViews = [
|
||||||
require 'views/play/menu/SaveLoadView'
|
require 'views/play/menu/SaveLoadView'
|
||||||
|
@ -18,6 +19,7 @@ module.exports = class GameMenuModal extends ModalView
|
||||||
'shown.bs.tab #game-menu-nav a': 'onTabShown'
|
'shown.bs.tab #game-menu-nav a': 'onTabShown'
|
||||||
'click #change-hero-tab': -> @trigger 'change-hero'
|
'click #change-hero-tab': -> @trigger 'change-hero'
|
||||||
'click #close-modal': 'hide'
|
'click #close-modal': 'hide'
|
||||||
|
'click .auth-tab': 'onClickSignupButton'
|
||||||
|
|
||||||
constructor: (options) ->
|
constructor: (options) ->
|
||||||
super options
|
super options
|
||||||
|
@ -63,3 +65,10 @@ module.exports = class GameMenuModal extends ModalView
|
||||||
subview.onHidden?() for subviewKey, subview of @subviews
|
subview.onHidden?() for subviewKey, subview of @subviews
|
||||||
@playSound 'game-menu-close'
|
@playSound 'game-menu-close'
|
||||||
Backbone.Mediator.publish 'music-player:exit-menu', {}
|
Backbone.Mediator.publish 'music-player:exit-menu', {}
|
||||||
|
|
||||||
|
onClickSignupButton: (e) ->
|
||||||
|
window.tracker?.trackEvent 'Started Signup', category: 'Play Level', label: 'Game Menu', level: @options.levelID
|
||||||
|
window.tracker?.trackPageView "signup/start", ['Google Analytics']
|
||||||
|
# TODO: Default already seems to be prevented. Need to be explicit?
|
||||||
|
e.preventDefault()
|
||||||
|
@openModalView new AuthModal {mode: 'signup'}
|
||||||
|
|
Loading…
Reference in a new issue