Merge branch 'master' of https://github.com/codecombat/codecombat
Conflicts: server/routes/mail.coffee
BIN
app/assets/images/common/code_languages/c_icon.png
Executable file
After Width: | Height: | Size: 3 KiB |
BIN
app/assets/images/common/code_languages/clojure_icon.png
Executable file
After Width: | Height: | Size: 3 KiB |
Before Width: | Height: | Size: 6.1 KiB After Width: | Height: | Size: 6.1 KiB |
BIN
app/assets/images/common/code_languages/coffeescript_icon.png
Executable file
After Width: | Height: | Size: 2.9 KiB |
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 16 KiB |
BIN
app/assets/images/common/code_languages/cpp_icon.png
Executable file
After Width: | Height: | Size: 3 KiB |
BIN
app/assets/images/common/code_languages/csharp_icon.png
Executable file
After Width: | Height: | Size: 3 KiB |
BIN
app/assets/images/common/code_languages/go_icon.png
Executable file
After Width: | Height: | Size: 2.9 KiB |
BIN
app/assets/images/common/code_languages/io_icon.png
Normal file
After Width: | Height: | Size: 4 KiB |
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 15 KiB |
BIN
app/assets/images/common/code_languages/java_icon.png
Executable file
After Width: | Height: | Size: 3 KiB |
BIN
app/assets/images/common/code_languages/javascript_icon.png
Normal file
After Width: | Height: | Size: 3.9 KiB |
Before Width: | Height: | Size: 3.7 KiB After Width: | Height: | Size: 3.7 KiB |
BIN
app/assets/images/common/code_languages/lua_icon.png
Executable file
After Width: | Height: | Size: 2.8 KiB |
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
BIN
app/assets/images/common/code_languages/php_icon.png
Executable file
After Width: | Height: | Size: 2.9 KiB |
BIN
app/assets/images/common/code_languages/python_icon.png
Executable file
After Width: | Height: | Size: 2.9 KiB |
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 17 KiB |
BIN
app/assets/images/common/code_languages/ruby_icon.png
Executable file
After Width: | Height: | Size: 3 KiB |
BIN
app/assets/images/common/code_languages/swift_icon.png
Executable file
After Width: | Height: | Size: 2.9 KiB |
|
@ -82,7 +82,7 @@ module.exports = CocoSprite = class CocoSprite extends CocoClass
|
|||
if @thangType.isFullyLoaded()
|
||||
@setupSprite()
|
||||
else
|
||||
@thangType.fetch()
|
||||
@thangType.fetch() unless @thangType.loading
|
||||
@listenToOnce(@thangType, 'sync', @setupSprite)
|
||||
|
||||
setupSprite: ->
|
||||
|
@ -442,7 +442,7 @@ module.exports = CocoSprite = class CocoSprite extends CocoClass
|
|||
console.warn 'Cannot show action', action, 'for', @thangType.get('name'), 'because it DNE' unless @warnedFor[action]
|
||||
@warnedFor[action] = true
|
||||
return if @action is 'idle' then null else 'idle'
|
||||
action = 'break' if @actions.break? and @thang?.erroredOut
|
||||
#action = 'break' if @actions.break? and @thang?.erroredOut # This makes it looks like it's dead when it's not: bad in Brawlwood.
|
||||
action = 'die' if @actions.die? and thang?.health? and thang.health <= 0
|
||||
@actions[action]
|
||||
|
||||
|
|
|
@ -115,7 +115,8 @@ module.exports = Surface = class Surface extends CocoClass
|
|||
|
||||
setWorld: (@world) ->
|
||||
@worldLoaded = true
|
||||
@world.getFrame(Math.min(@getCurrentFrame(), @world.totalFrames - 1)).restoreState() unless @options.choosing
|
||||
lastFrame = Math.min(@getCurrentFrame(), @world.totalFrames - 1)
|
||||
@world.getFrame(lastFrame).restoreState() unless @options.choosing
|
||||
@spriteBoss.world = @world
|
||||
|
||||
@showLevel()
|
||||
|
@ -241,7 +242,7 @@ module.exports = Surface = class Surface extends CocoClass
|
|||
@onFrameChanged()
|
||||
|
||||
getCurrentFrame: ->
|
||||
return Math.max(0, Math.min(Math.floor(@currentFrame), @world.totalFrames - 1))
|
||||
return Math.max(0, Math.min(Math.floor(@currentFrame), @world.frames.length - 1))
|
||||
|
||||
getProgress: -> @currentFrame / @world.totalFrames
|
||||
|
||||
|
|
|
@ -100,6 +100,12 @@ module.exports = nativeDescription: "العربية", englishDescription: "Arabi
|
|||
# for_beginners: "For Beginners"
|
||||
# multiplayer: "Multiplayer"
|
||||
# for_developers: "For Developers"
|
||||
# javascript_blurb: "The language of the web. Great for writing websites, web apps, HTML5 games, and servers."
|
||||
# python_blurb: "Simple yet powerful, Python is a great general purpose programming language."
|
||||
# coffeescript_blurb: "Nicer JavaScript syntax."
|
||||
# clojure_blurb: "A modern Lisp."
|
||||
# lua_blurb: "Game scripting language."
|
||||
# io_blurb: "Simple but obscure."
|
||||
|
||||
# play:
|
||||
# choose_your_level: "Choose Your Level"
|
||||
|
|
|
@ -100,6 +100,12 @@ module.exports = nativeDescription: "български език", englishDescri
|
|||
# for_beginners: "For Beginners"
|
||||
# multiplayer: "Multiplayer"
|
||||
# for_developers: "For Developers"
|
||||
# javascript_blurb: "The language of the web. Great for writing websites, web apps, HTML5 games, and servers."
|
||||
# python_blurb: "Simple yet powerful, Python is a great general purpose programming language."
|
||||
# coffeescript_blurb: "Nicer JavaScript syntax."
|
||||
# clojure_blurb: "A modern Lisp."
|
||||
# lua_blurb: "Game scripting language."
|
||||
# io_blurb: "Simple but obscure."
|
||||
|
||||
play:
|
||||
choose_your_level: "Избери своето ниво"
|
||||
|
|
|
@ -100,6 +100,12 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr
|
|||
for_beginners: "Per a principiants"
|
||||
multiplayer: "Multijugador"
|
||||
for_developers: "Per a Desenvolupadors"
|
||||
# javascript_blurb: "The language of the web. Great for writing websites, web apps, HTML5 games, and servers."
|
||||
# python_blurb: "Simple yet powerful, Python is a great general purpose programming language."
|
||||
# coffeescript_blurb: "Nicer JavaScript syntax."
|
||||
# clojure_blurb: "A modern Lisp."
|
||||
# lua_blurb: "Game scripting language."
|
||||
# io_blurb: "Simple but obscure."
|
||||
|
||||
play:
|
||||
choose_your_level: "Escull el teu nivell"
|
||||
|
|
|
@ -100,6 +100,12 @@ module.exports = nativeDescription: "čeština", englishDescription: "Czech", tr
|
|||
# for_beginners: "For Beginners"
|
||||
# multiplayer: "Multiplayer"
|
||||
# for_developers: "For Developers"
|
||||
# javascript_blurb: "The language of the web. Great for writing websites, web apps, HTML5 games, and servers."
|
||||
# python_blurb: "Simple yet powerful, Python is a great general purpose programming language."
|
||||
# coffeescript_blurb: "Nicer JavaScript syntax."
|
||||
# clojure_blurb: "A modern Lisp."
|
||||
# lua_blurb: "Game scripting language."
|
||||
# io_blurb: "Simple but obscure."
|
||||
|
||||
play:
|
||||
choose_your_level: "Zvolte si úroveň"
|
||||
|
|
|
@ -100,6 +100,12 @@ module.exports = nativeDescription: "dansk", englishDescription: "Danish", trans
|
|||
for_beginners: "For Begyndere"
|
||||
multiplayer: "Multiplayer"
|
||||
for_developers: "For Udviklere"
|
||||
# javascript_blurb: "The language of the web. Great for writing websites, web apps, HTML5 games, and servers."
|
||||
# python_blurb: "Simple yet powerful, Python is a great general purpose programming language."
|
||||
# coffeescript_blurb: "Nicer JavaScript syntax."
|
||||
# clojure_blurb: "A modern Lisp."
|
||||
# lua_blurb: "Game scripting language."
|
||||
# io_blurb: "Simple but obscure."
|
||||
|
||||
play:
|
||||
choose_your_level: "Vælg Dit Level"
|
||||
|
|
|
@ -100,6 +100,12 @@ module.exports = nativeDescription: "Deutsch (Österreich)", englishDescription:
|
|||
# for_beginners: "For Beginners"
|
||||
# multiplayer: "Multiplayer"
|
||||
# for_developers: "For Developers"
|
||||
# javascript_blurb: "The language of the web. Great for writing websites, web apps, HTML5 games, and servers."
|
||||
# python_blurb: "Simple yet powerful, Python is a great general purpose programming language."
|
||||
# coffeescript_blurb: "Nicer JavaScript syntax."
|
||||
# clojure_blurb: "A modern Lisp."
|
||||
# lua_blurb: "Game scripting language."
|
||||
# io_blurb: "Simple but obscure."
|
||||
|
||||
# play:
|
||||
# choose_your_level: "Choose Your Level"
|
||||
|
|
|
@ -100,6 +100,12 @@ module.exports = nativeDescription: "Deutsch (Schweiz)", englishDescription: "Ge
|
|||
for_beginners: "Für Afänger"
|
||||
multiplayer: "Multiplayer"
|
||||
for_developers: "Für Entwickler"
|
||||
# javascript_blurb: "The language of the web. Great for writing websites, web apps, HTML5 games, and servers."
|
||||
# python_blurb: "Simple yet powerful, Python is a great general purpose programming language."
|
||||
# coffeescript_blurb: "Nicer JavaScript syntax."
|
||||
# clojure_blurb: "A modern Lisp."
|
||||
# lua_blurb: "Game scripting language."
|
||||
# io_blurb: "Simple but obscure."
|
||||
|
||||
play:
|
||||
choose_your_level: "Wähl dis Level us"
|
||||
|
|
|
@ -100,6 +100,12 @@ module.exports = nativeDescription: "Deutsch (Deutschland)", englishDescription:
|
|||
for_beginners: "Für Anfänger"
|
||||
multiplayer: "Mehrspieler"
|
||||
for_developers: "Für Entwickler"
|
||||
# javascript_blurb: "The language of the web. Great for writing websites, web apps, HTML5 games, and servers."
|
||||
# python_blurb: "Simple yet powerful, Python is a great general purpose programming language."
|
||||
# coffeescript_blurb: "Nicer JavaScript syntax."
|
||||
# clojure_blurb: "A modern Lisp."
|
||||
# lua_blurb: "Game scripting language."
|
||||
# io_blurb: "Simple but obscure."
|
||||
|
||||
play:
|
||||
choose_your_level: "Wähle dein Level"
|
||||
|
|
|
@ -100,6 +100,12 @@ module.exports = nativeDescription: "Deutsch", englishDescription: "German", tra
|
|||
for_beginners: "Für Anfänger"
|
||||
multiplayer: "Mehrspieler"
|
||||
for_developers: "Für Entwickler"
|
||||
# javascript_blurb: "The language of the web. Great for writing websites, web apps, HTML5 games, and servers."
|
||||
# python_blurb: "Simple yet powerful, Python is a great general purpose programming language."
|
||||
# coffeescript_blurb: "Nicer JavaScript syntax."
|
||||
# clojure_blurb: "A modern Lisp."
|
||||
# lua_blurb: "Game scripting language."
|
||||
# io_blurb: "Simple but obscure."
|
||||
|
||||
play:
|
||||
choose_your_level: "Wähle dein Level"
|
||||
|
|
|
@ -100,6 +100,12 @@ module.exports = nativeDescription: "ελληνικά", englishDescription: "Gre
|
|||
for_beginners: "Για αρχάριους"
|
||||
# multiplayer: "Multiplayer"
|
||||
for_developers: "Για προγραμματιστές"
|
||||
# javascript_blurb: "The language of the web. Great for writing websites, web apps, HTML5 games, and servers."
|
||||
# python_blurb: "Simple yet powerful, Python is a great general purpose programming language."
|
||||
# coffeescript_blurb: "Nicer JavaScript syntax."
|
||||
# clojure_blurb: "A modern Lisp."
|
||||
# lua_blurb: "Game scripting language."
|
||||
# io_blurb: "Simple but obscure."
|
||||
|
||||
play:
|
||||
choose_your_level: "Διάλεξε την πίστα σου"
|
||||
|
|
|
@ -100,6 +100,12 @@ module.exports = nativeDescription: "English (AU)", englishDescription: "English
|
|||
# for_beginners: "For Beginners"
|
||||
# multiplayer: "Multiplayer"
|
||||
# for_developers: "For Developers"
|
||||
# javascript_blurb: "The language of the web. Great for writing websites, web apps, HTML5 games, and servers."
|
||||
# python_blurb: "Simple yet powerful, Python is a great general purpose programming language."
|
||||
# coffeescript_blurb: "Nicer JavaScript syntax."
|
||||
# clojure_blurb: "A modern Lisp."
|
||||
# lua_blurb: "Game scripting language."
|
||||
# io_blurb: "Simple but obscure."
|
||||
|
||||
# play:
|
||||
# choose_your_level: "Choose Your Level"
|
||||
|
|
|
@ -100,6 +100,12 @@ module.exports = nativeDescription: "English (UK)", englishDescription: "English
|
|||
# for_beginners: "For Beginners"
|
||||
# multiplayer: "Multiplayer"
|
||||
# for_developers: "For Developers"
|
||||
# javascript_blurb: "The language of the web. Great for writing websites, web apps, HTML5 games, and servers."
|
||||
# python_blurb: "Simple yet powerful, Python is a great general purpose programming language."
|
||||
# coffeescript_blurb: "Nicer JavaScript syntax."
|
||||
# clojure_blurb: "A modern Lisp."
|
||||
# lua_blurb: "Game scripting language."
|
||||
# io_blurb: "Simple but obscure."
|
||||
|
||||
# play:
|
||||
# choose_your_level: "Choose Your Level"
|
||||
|
|
|
@ -100,6 +100,12 @@ module.exports = nativeDescription: "English (US)", englishDescription: "English
|
|||
# for_beginners: "For Beginners"
|
||||
# multiplayer: "Multiplayer"
|
||||
# for_developers: "For Developers"
|
||||
# javascript_blurb: "The language of the web. Great for writing websites, web apps, HTML5 games, and servers."
|
||||
# python_blurb: "Simple yet powerful, Python is a great general purpose programming language."
|
||||
# coffeescript_blurb: "Nicer JavaScript syntax."
|
||||
# clojure_blurb: "A modern Lisp."
|
||||
# lua_blurb: "Game scripting language."
|
||||
# io_blurb: "Simple but obscure."
|
||||
|
||||
# play:
|
||||
# choose_your_level: "Choose Your Level"
|
||||
|
|
|
@ -100,6 +100,12 @@
|
|||
for_beginners: "For Beginners"
|
||||
multiplayer: "Multiplayer"
|
||||
for_developers: "For Developers"
|
||||
javascript_blurb: "The language of the web. Great for writing websites, web apps, HTML5 games, and servers."
|
||||
python_blurb: "Simple yet powerful, Python is a great general purpose programming language."
|
||||
coffeescript_blurb: "Nicer JavaScript syntax."
|
||||
clojure_blurb: "A modern Lisp."
|
||||
lua_blurb: "Game scripting language."
|
||||
io_blurb: "Simple but obscure."
|
||||
|
||||
play:
|
||||
choose_your_level: "Choose Your Level"
|
||||
|
|
|
@ -100,6 +100,12 @@ module.exports = nativeDescription: "español (América Latina)", englishDescrip
|
|||
for_beginners: "Para Principiantes"
|
||||
multiplayer: "Multijugador"
|
||||
for_developers: "Para Desarrolladores"
|
||||
# javascript_blurb: "The language of the web. Great for writing websites, web apps, HTML5 games, and servers."
|
||||
# python_blurb: "Simple yet powerful, Python is a great general purpose programming language."
|
||||
# coffeescript_blurb: "Nicer JavaScript syntax."
|
||||
# clojure_blurb: "A modern Lisp."
|
||||
# lua_blurb: "Game scripting language."
|
||||
# io_blurb: "Simple but obscure."
|
||||
|
||||
play:
|
||||
choose_your_level: "Elige tu nivel"
|
||||
|
|
|
@ -100,6 +100,12 @@ module.exports = nativeDescription: "español (ES)", englishDescription: "Spanis
|
|||
for_beginners: "Para principiantes"
|
||||
multiplayer: "Multijugador"
|
||||
for_developers: "Para programadores"
|
||||
# javascript_blurb: "The language of the web. Great for writing websites, web apps, HTML5 games, and servers."
|
||||
# python_blurb: "Simple yet powerful, Python is a great general purpose programming language."
|
||||
# coffeescript_blurb: "Nicer JavaScript syntax."
|
||||
# clojure_blurb: "A modern Lisp."
|
||||
# lua_blurb: "Game scripting language."
|
||||
# io_blurb: "Simple but obscure."
|
||||
|
||||
play:
|
||||
choose_your_level: "Elige tu nivel"
|
||||
|
|
|
@ -100,6 +100,12 @@ module.exports = nativeDescription: "español", englishDescription: "Spanish", t
|
|||
for_beginners: "Para principiantes"
|
||||
multiplayer: "Multijugador"
|
||||
for_developers: "Para desarrolladores"
|
||||
# javascript_blurb: "The language of the web. Great for writing websites, web apps, HTML5 games, and servers."
|
||||
# python_blurb: "Simple yet powerful, Python is a great general purpose programming language."
|
||||
# coffeescript_blurb: "Nicer JavaScript syntax."
|
||||
# clojure_blurb: "A modern Lisp."
|
||||
# lua_blurb: "Game scripting language."
|
||||
# io_blurb: "Simple but obscure."
|
||||
|
||||
play:
|
||||
choose_your_level: "Elige tu nivel"
|
||||
|
|
|
@ -100,6 +100,12 @@ module.exports = nativeDescription: "فارسی", englishDescription: "Persian",
|
|||
# for_beginners: "For Beginners"
|
||||
# multiplayer: "Multiplayer"
|
||||
# for_developers: "For Developers"
|
||||
# javascript_blurb: "The language of the web. Great for writing websites, web apps, HTML5 games, and servers."
|
||||
# python_blurb: "Simple yet powerful, Python is a great general purpose programming language."
|
||||
# coffeescript_blurb: "Nicer JavaScript syntax."
|
||||
# clojure_blurb: "A modern Lisp."
|
||||
# lua_blurb: "Game scripting language."
|
||||
# io_blurb: "Simple but obscure."
|
||||
|
||||
play:
|
||||
choose_your_level: "مرحله خود را انتخاب کنید"
|
||||
|
|
|
@ -100,6 +100,12 @@ module.exports = nativeDescription: "suomi", englishDescription: "Finnish", tran
|
|||
# for_beginners: "For Beginners"
|
||||
# multiplayer: "Multiplayer"
|
||||
# for_developers: "For Developers"
|
||||
# javascript_blurb: "The language of the web. Great for writing websites, web apps, HTML5 games, and servers."
|
||||
# python_blurb: "Simple yet powerful, Python is a great general purpose programming language."
|
||||
# coffeescript_blurb: "Nicer JavaScript syntax."
|
||||
# clojure_blurb: "A modern Lisp."
|
||||
# lua_blurb: "Game scripting language."
|
||||
# io_blurb: "Simple but obscure."
|
||||
|
||||
# play:
|
||||
# choose_your_level: "Choose Your Level"
|
||||
|
|
|
@ -100,6 +100,12 @@ module.exports = nativeDescription: "français", englishDescription: "French", t
|
|||
for_beginners: "Pour débutants"
|
||||
multiplayer: "Multijoueurs"
|
||||
for_developers: "Pour développeurs"
|
||||
# javascript_blurb: "The language of the web. Great for writing websites, web apps, HTML5 games, and servers."
|
||||
# python_blurb: "Simple yet powerful, Python is a great general purpose programming language."
|
||||
# coffeescript_blurb: "Nicer JavaScript syntax."
|
||||
# clojure_blurb: "A modern Lisp."
|
||||
# lua_blurb: "Game scripting language."
|
||||
# io_blurb: "Simple but obscure."
|
||||
|
||||
play:
|
||||
choose_your_level: "Choisissez votre niveau"
|
||||
|
|
|
@ -100,6 +100,12 @@ module.exports = nativeDescription: "עברית", englishDescription: "Hebrew",
|
|||
for_beginners: "למתחילים"
|
||||
multiplayer: "רב-משתתפים"
|
||||
for_developers: "למומחים"
|
||||
# javascript_blurb: "The language of the web. Great for writing websites, web apps, HTML5 games, and servers."
|
||||
# python_blurb: "Simple yet powerful, Python is a great general purpose programming language."
|
||||
# coffeescript_blurb: "Nicer JavaScript syntax."
|
||||
# clojure_blurb: "A modern Lisp."
|
||||
# lua_blurb: "Game scripting language."
|
||||
# io_blurb: "Simple but obscure."
|
||||
|
||||
play:
|
||||
choose_your_level: "בחר את השלב"
|
||||
|
|
|
@ -100,6 +100,12 @@ module.exports = nativeDescription: "मानक हिन्दी", englishDe
|
|||
# for_beginners: "For Beginners"
|
||||
# multiplayer: "Multiplayer"
|
||||
# for_developers: "For Developers"
|
||||
# javascript_blurb: "The language of the web. Great for writing websites, web apps, HTML5 games, and servers."
|
||||
# python_blurb: "Simple yet powerful, Python is a great general purpose programming language."
|
||||
# coffeescript_blurb: "Nicer JavaScript syntax."
|
||||
# clojure_blurb: "A modern Lisp."
|
||||
# lua_blurb: "Game scripting language."
|
||||
# io_blurb: "Simple but obscure."
|
||||
|
||||
# play:
|
||||
# choose_your_level: "Choose Your Level"
|
||||
|
|
|
@ -100,6 +100,12 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t
|
|||
for_beginners: "Kezdőknek"
|
||||
# multiplayer: "Multiplayer"
|
||||
for_developers: "Fejlesztőknek"
|
||||
# javascript_blurb: "The language of the web. Great for writing websites, web apps, HTML5 games, and servers."
|
||||
# python_blurb: "Simple yet powerful, Python is a great general purpose programming language."
|
||||
# coffeescript_blurb: "Nicer JavaScript syntax."
|
||||
# clojure_blurb: "A modern Lisp."
|
||||
# lua_blurb: "Game scripting language."
|
||||
# io_blurb: "Simple but obscure."
|
||||
|
||||
play:
|
||||
choose_your_level: "Válaszd ki a pályát!"
|
||||
|
|
|
@ -100,6 +100,12 @@ module.exports = nativeDescription: "Bahasa Indonesia", englishDescription: "Ind
|
|||
# for_beginners: "For Beginners"
|
||||
# multiplayer: "Multiplayer"
|
||||
# for_developers: "For Developers"
|
||||
# javascript_blurb: "The language of the web. Great for writing websites, web apps, HTML5 games, and servers."
|
||||
# python_blurb: "Simple yet powerful, Python is a great general purpose programming language."
|
||||
# coffeescript_blurb: "Nicer JavaScript syntax."
|
||||
# clojure_blurb: "A modern Lisp."
|
||||
# lua_blurb: "Game scripting language."
|
||||
# io_blurb: "Simple but obscure."
|
||||
|
||||
# play:
|
||||
# choose_your_level: "Choose Your Level"
|
||||
|
|
|
@ -100,6 +100,12 @@ module.exports = nativeDescription: "Italiano", englishDescription: "Italian", t
|
|||
for_beginners: "Per Principianti"
|
||||
# multiplayer: "Multiplayer"
|
||||
for_developers: "Per Sviluppatori"
|
||||
# javascript_blurb: "The language of the web. Great for writing websites, web apps, HTML5 games, and servers."
|
||||
# python_blurb: "Simple yet powerful, Python is a great general purpose programming language."
|
||||
# coffeescript_blurb: "Nicer JavaScript syntax."
|
||||
# clojure_blurb: "A modern Lisp."
|
||||
# lua_blurb: "Game scripting language."
|
||||
# io_blurb: "Simple but obscure."
|
||||
|
||||
play:
|
||||
choose_your_level: "Scegli il tuo livello"
|
||||
|
|
|
@ -100,6 +100,12 @@ module.exports = nativeDescription: "日本語", englishDescription: "Japanese",
|
|||
for_beginners: "初心者向け"
|
||||
multiplayer: "マルチプレイヤー"
|
||||
for_developers: "開発者向け"
|
||||
# javascript_blurb: "The language of the web. Great for writing websites, web apps, HTML5 games, and servers."
|
||||
# python_blurb: "Simple yet powerful, Python is a great general purpose programming language."
|
||||
# coffeescript_blurb: "Nicer JavaScript syntax."
|
||||
# clojure_blurb: "A modern Lisp."
|
||||
# lua_blurb: "Game scripting language."
|
||||
# io_blurb: "Simple but obscure."
|
||||
|
||||
play:
|
||||
choose_your_level: "レベル選択"
|
||||
|
|
|
@ -100,6 +100,12 @@ module.exports = nativeDescription: "한국어", englishDescription: "Korean", t
|
|||
for_beginners: "초보자용"
|
||||
multiplayer: "멀티플레이어"
|
||||
for_developers: "개발자용"
|
||||
# javascript_blurb: "The language of the web. Great for writing websites, web apps, HTML5 games, and servers."
|
||||
# python_blurb: "Simple yet powerful, Python is a great general purpose programming language."
|
||||
# coffeescript_blurb: "Nicer JavaScript syntax."
|
||||
# clojure_blurb: "A modern Lisp."
|
||||
# lua_blurb: "Game scripting language."
|
||||
# io_blurb: "Simple but obscure."
|
||||
|
||||
play:
|
||||
choose_your_level: "레벨을 선택하세요."
|
||||
|
|
|
@ -100,6 +100,12 @@ module.exports = nativeDescription: "lietuvių kalba", englishDescription: "Lith
|
|||
# for_beginners: "For Beginners"
|
||||
# multiplayer: "Multiplayer"
|
||||
# for_developers: "For Developers"
|
||||
# javascript_blurb: "The language of the web. Great for writing websites, web apps, HTML5 games, and servers."
|
||||
# python_blurb: "Simple yet powerful, Python is a great general purpose programming language."
|
||||
# coffeescript_blurb: "Nicer JavaScript syntax."
|
||||
# clojure_blurb: "A modern Lisp."
|
||||
# lua_blurb: "Game scripting language."
|
||||
# io_blurb: "Simple but obscure."
|
||||
|
||||
# play:
|
||||
# choose_your_level: "Choose Your Level"
|
||||
|
|
|
@ -100,6 +100,12 @@ module.exports = nativeDescription: "Bahasa Melayu", englishDescription: "Bahasa
|
|||
# for_beginners: "For Beginners"
|
||||
# multiplayer: "Multiplayer"
|
||||
# for_developers: "For Developers"
|
||||
# javascript_blurb: "The language of the web. Great for writing websites, web apps, HTML5 games, and servers."
|
||||
# python_blurb: "Simple yet powerful, Python is a great general purpose programming language."
|
||||
# coffeescript_blurb: "Nicer JavaScript syntax."
|
||||
# clojure_blurb: "A modern Lisp."
|
||||
# lua_blurb: "Game scripting language."
|
||||
# io_blurb: "Simple but obscure."
|
||||
|
||||
# play:
|
||||
# choose_your_level: "Choose Your Level"
|
||||
|
|
|
@ -100,6 +100,12 @@ module.exports = nativeDescription: "Norsk Bokmål", englishDescription: "Norweg
|
|||
# for_beginners: "For Beginners"
|
||||
# multiplayer: "Multiplayer"
|
||||
# for_developers: "For Developers"
|
||||
# javascript_blurb: "The language of the web. Great for writing websites, web apps, HTML5 games, and servers."
|
||||
# python_blurb: "Simple yet powerful, Python is a great general purpose programming language."
|
||||
# coffeescript_blurb: "Nicer JavaScript syntax."
|
||||
# clojure_blurb: "A modern Lisp."
|
||||
# lua_blurb: "Game scripting language."
|
||||
# io_blurb: "Simple but obscure."
|
||||
|
||||
play:
|
||||
choose_your_level: "Velg Ditt Nivå"
|
||||
|
|
|
@ -100,6 +100,12 @@ module.exports = nativeDescription: "Nederlands (België)", englishDescription:
|
|||
for_beginners: "Voor Beginners"
|
||||
multiplayer: "Multiplayer"
|
||||
for_developers: "Voor ontwikkelaars"
|
||||
# javascript_blurb: "The language of the web. Great for writing websites, web apps, HTML5 games, and servers."
|
||||
# python_blurb: "Simple yet powerful, Python is a great general purpose programming language."
|
||||
# coffeescript_blurb: "Nicer JavaScript syntax."
|
||||
# clojure_blurb: "A modern Lisp."
|
||||
# lua_blurb: "Game scripting language."
|
||||
# io_blurb: "Simple but obscure."
|
||||
|
||||
play:
|
||||
choose_your_level: "Kies Je Level"
|
||||
|
|
|
@ -100,6 +100,12 @@ module.exports = nativeDescription: "Nederlands (Nederland)", englishDescription
|
|||
for_beginners: "Voor Beginners"
|
||||
multiplayer: "Multiplayer"
|
||||
for_developers: "Voor ontwikkelaars"
|
||||
# javascript_blurb: "The language of the web. Great for writing websites, web apps, HTML5 games, and servers."
|
||||
# python_blurb: "Simple yet powerful, Python is a great general purpose programming language."
|
||||
# coffeescript_blurb: "Nicer JavaScript syntax."
|
||||
# clojure_blurb: "A modern Lisp."
|
||||
# lua_blurb: "Game scripting language."
|
||||
# io_blurb: "Simple but obscure."
|
||||
|
||||
play:
|
||||
choose_your_level: "Kies Je Level"
|
||||
|
|
|
@ -100,6 +100,12 @@ module.exports = nativeDescription: "Nederlands", englishDescription: "Dutch", t
|
|||
for_beginners: "Voor Beginners"
|
||||
multiplayer: "Multiplayer"
|
||||
for_developers: "Voor ontwikkelaars"
|
||||
# javascript_blurb: "The language of the web. Great for writing websites, web apps, HTML5 games, and servers."
|
||||
# python_blurb: "Simple yet powerful, Python is a great general purpose programming language."
|
||||
# coffeescript_blurb: "Nicer JavaScript syntax."
|
||||
# clojure_blurb: "A modern Lisp."
|
||||
# lua_blurb: "Game scripting language."
|
||||
# io_blurb: "Simple but obscure."
|
||||
|
||||
play:
|
||||
choose_your_level: "Kies Je Level"
|
||||
|
|
|
@ -100,6 +100,12 @@ module.exports = nativeDescription: "Norwegian Nynorsk", englishDescription: "No
|
|||
# for_beginners: "For Beginners"
|
||||
# multiplayer: "Multiplayer"
|
||||
# for_developers: "For Developers"
|
||||
# javascript_blurb: "The language of the web. Great for writing websites, web apps, HTML5 games, and servers."
|
||||
# python_blurb: "Simple yet powerful, Python is a great general purpose programming language."
|
||||
# coffeescript_blurb: "Nicer JavaScript syntax."
|
||||
# clojure_blurb: "A modern Lisp."
|
||||
# lua_blurb: "Game scripting language."
|
||||
# io_blurb: "Simple but obscure."
|
||||
|
||||
# play:
|
||||
# choose_your_level: "Choose Your Level"
|
||||
|
|
|
@ -100,6 +100,12 @@ module.exports = nativeDescription: "Norsk", englishDescription: "Norwegian", tr
|
|||
# for_beginners: "For Beginners"
|
||||
# multiplayer: "Multiplayer"
|
||||
# for_developers: "For Developers"
|
||||
# javascript_blurb: "The language of the web. Great for writing websites, web apps, HTML5 games, and servers."
|
||||
# python_blurb: "Simple yet powerful, Python is a great general purpose programming language."
|
||||
# coffeescript_blurb: "Nicer JavaScript syntax."
|
||||
# clojure_blurb: "A modern Lisp."
|
||||
# lua_blurb: "Game scripting language."
|
||||
# io_blurb: "Simple but obscure."
|
||||
|
||||
play:
|
||||
choose_your_level: "Velg Ditt Nivå"
|
||||
|
|
|
@ -100,6 +100,12 @@ module.exports = nativeDescription: "język polski", englishDescription: "Polish
|
|||
for_beginners: "Dla początkujących"
|
||||
# multiplayer: "Multiplayer"
|
||||
for_developers: "Dla developerów"
|
||||
# javascript_blurb: "The language of the web. Great for writing websites, web apps, HTML5 games, and servers."
|
||||
# python_blurb: "Simple yet powerful, Python is a great general purpose programming language."
|
||||
# coffeescript_blurb: "Nicer JavaScript syntax."
|
||||
# clojure_blurb: "A modern Lisp."
|
||||
# lua_blurb: "Game scripting language."
|
||||
# io_blurb: "Simple but obscure."
|
||||
|
||||
play:
|
||||
choose_your_level: "Wybierz poziom"
|
||||
|
|
|
@ -100,6 +100,12 @@ module.exports = nativeDescription: "português do Brasil", englishDescription:
|
|||
for_beginners: "Para Iniciantes"
|
||||
multiplayer: "Multijogador"
|
||||
for_developers: "Para Desenvolvedores"
|
||||
# javascript_blurb: "The language of the web. Great for writing websites, web apps, HTML5 games, and servers."
|
||||
# python_blurb: "Simple yet powerful, Python is a great general purpose programming language."
|
||||
# coffeescript_blurb: "Nicer JavaScript syntax."
|
||||
# clojure_blurb: "A modern Lisp."
|
||||
# lua_blurb: "Game scripting language."
|
||||
# io_blurb: "Simple but obscure."
|
||||
|
||||
play:
|
||||
choose_your_level: "Escolha seu estágio"
|
||||
|
|
|
@ -100,6 +100,12 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription:
|
|||
for_beginners: "Para Iniciantes"
|
||||
multiplayer: "Multijogador"
|
||||
for_developers: "Para Programadores"
|
||||
# javascript_blurb: "A linguagem da web. Ótima para escrever websites, aplicações da web, jogos HTML5 e servidores."
|
||||
# python_blurb: "Simples mas poderoso, o Python é uma linguagem de programação ótima para propósitos gerais."
|
||||
# coffeescript_blurb: "Sintaxe do Javascript mais agradável."
|
||||
# clojure_blurb: "Um Lisp moderno"
|
||||
# lua_blurb: "Linguagem para scripts de jogos"
|
||||
# io_blurb: "Simples mas obscuro"
|
||||
|
||||
play:
|
||||
choose_your_level: "Escolha o Seu Nível"
|
||||
|
@ -186,7 +192,7 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription:
|
|||
error_saving: "Erro ao Guardar"
|
||||
saved: "Alterações Guardadas"
|
||||
password_mismatch: "As palavras-passe não coincidem."
|
||||
# password_repeat: "Please repeat your password."
|
||||
password_repeat: "Por favor repita a sua palavra-passe."
|
||||
job_profile: "Perfil de Emprego"
|
||||
job_profile_approved: "O seu perfil de emprego foi aprovado pelo CodeCombat. Os empregadores poderão vê-lo até que o defina como inativo ou não o tenha alterado à 4 semanas."
|
||||
job_profile_explanation: "Olá! Preencha isto e entraremos em contacto consigo sobre encontrar um emprego de desenvolvedor de software para si."
|
||||
|
@ -327,7 +333,7 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription:
|
|||
# pass_screen_blurb: "Review each candidate's code before reaching out. One employer found that 5x as many of our devs passed their technical screen than hiring from Hacker News."
|
||||
# make_hiring_easier: "Make my hiring easier, please."
|
||||
what: "O que é o CodeCombat?"
|
||||
what_blurb: "O CodeCombat é um jogo de programação, no navegador e multijogador. Os jogadores escrevem código para controlar as forças deles em batalha contra outros desenvolvedores. Nós suportamos JavaScript, Python, Lua, Clojure, CoffeeScript e Io."
|
||||
what_blurb: "O CodeCombat é um jogo de programação, no navegador e multijogador. Os jogadores escrevem código para controlar as forças deles em batalha contra outros desenvolvedores. Os nossos jogadores têm experiência com todos os conceitos tecnológicos principais."
|
||||
cost: "Quanto é que cobramos?"
|
||||
cost_blurb: "Cobramos 15% do salário do primeiro ano e ofereçemos uma garantia de devolução de 100% do dinheiro durante 90 dias. Não cobramos por candidatos que já estejam a ser ativamente entrevistados na sua companhia."
|
||||
candidate_name: "Nome"
|
||||
|
@ -503,13 +509,13 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription:
|
|||
pick_a_terrain: "Escolha Um Terreno"
|
||||
small: "Pequeno"
|
||||
grassy: "Com Relva"
|
||||
# fork_title: "Fork New Version"
|
||||
# fork_creating: "Creating Fork..."
|
||||
fork_title: "Bifurcar Nova Versão"
|
||||
fork_creating: "A Criar Bifurcação..."
|
||||
# randomize: "Randomize"
|
||||
# more: "More"
|
||||
# wiki: "Wiki"
|
||||
# live_chat: "Live Chat"
|
||||
level_some_options: "Algumas opções?"
|
||||
more: "Mais"
|
||||
wiki: "Wiki"
|
||||
live_chat: "Chat Ao Vivo"
|
||||
level_some_options: "Algumas Opções?"
|
||||
level_tab_thangs: "Thangs"
|
||||
level_tab_scripts: "Scripts"
|
||||
level_tab_settings: "Configurações"
|
||||
|
@ -522,19 +528,19 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription:
|
|||
# delete: "Delete"
|
||||
# duplicate: "Duplicate"
|
||||
level_settings_title: "Configurações"
|
||||
level_component_tab_title: "Componentes atuais"
|
||||
level_component_btn_new: "Cria um novo Componente"
|
||||
level_systems_tab_title: "Sistemas atuais"
|
||||
level_systems_btn_new: "Cria um novo Sistema"
|
||||
level_systems_btn_add: "Adiciona um Sistema"
|
||||
level_component_tab_title: "Componentes Atuais"
|
||||
level_component_btn_new: "Criar Novo Componente"
|
||||
level_systems_tab_title: "Sistemas Atuais"
|
||||
level_systems_btn_new: "Cria Novo Sistema"
|
||||
level_systems_btn_add: "Adicionar Sistema"
|
||||
level_components_title: "Voltar para Todos os Thangs"
|
||||
level_components_type: "Tipo"
|
||||
level_component_edit_title: "Editar Componente"
|
||||
# level_component_config_schema: "Config Schema"
|
||||
level_component_settings: "Configurações"
|
||||
level_system_edit_title: "Editar Sistema"
|
||||
create_system_title: "Criar novo Sistema"
|
||||
new_component_title: "Criar novo Componente"
|
||||
create_system_title: "Criar Novo Sistema"
|
||||
new_component_title: "Criar Novo Componente"
|
||||
new_component_field_system: "Sistema"
|
||||
new_article_title: "Criar um Novo Artigo"
|
||||
new_thang_title: "Criar um Novo Tipo de Thang"
|
||||
|
@ -559,20 +565,20 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription:
|
|||
name: "Nome"
|
||||
body: "Corpo"
|
||||
version: "Versão"
|
||||
commit_msg: "Mensagem de Commit"
|
||||
# version_history: "Version History"
|
||||
version_history_for: "Histórico de versões por: "
|
||||
commit_msg: "Enviar Mensagem"
|
||||
version_history: "Histórico de Versões"
|
||||
version_history_for: "Histórico de Versões para: "
|
||||
result: "Resultado"
|
||||
results: "Resultados"
|
||||
description: "Descrição"
|
||||
or: "ou"
|
||||
# subject: "Subject"
|
||||
subject: "Assunto"
|
||||
email: "E-mail"
|
||||
password: "Palavra-passe"
|
||||
message: "Mensagem"
|
||||
code: "Código"
|
||||
ladder: "Classificação"
|
||||
when: "quando"
|
||||
when: "Quando"
|
||||
opponent: "Adversário"
|
||||
rank: "Classificação"
|
||||
score: "Resultado"
|
||||
|
@ -768,17 +774,17 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription:
|
|||
ambassador_title_description: "(Suporte)"
|
||||
|
||||
ladder:
|
||||
please_login: "Por favor, faz log in antes de jogar um jogo para o campeonato."
|
||||
my_matches: "Os meus jogos"
|
||||
please_login: "Por favor inicie sessão antes de jogar um jogo do campeonato."
|
||||
my_matches: "Os Meus Jogos"
|
||||
simulate: "Simular"
|
||||
simulation_explanation: "Simulando jogos podes fazer com que o teu jogo seja classificado mais rapidamente!"
|
||||
simulation_explanation: "Ao simular jogos pode ter o seu jogo classificado mais rapidamente!"
|
||||
simulate_games: "Simular Jogos!"
|
||||
# simulate_all: "RESET AND SIMULATE GAMES"
|
||||
# games_simulated_by: "Games simulated by you:"
|
||||
# games_simulated_for: "Games simulated for you:"
|
||||
# games_simulated: "Games simulated"
|
||||
# games_played: "Games played"
|
||||
# ratio: "Ratio"
|
||||
games_simulated_by: "Jogos simulados por si:"
|
||||
games_simulated_for: "Jogos simulados para si:"
|
||||
games_simulated: "Jogos simulados"
|
||||
games_played: "Jogos jogados"
|
||||
ratio: "Rácio"
|
||||
leaderboard: "Tabela de Classificação"
|
||||
battle_as: "Lutar como "
|
||||
summary_your: "As tuas "
|
||||
|
@ -868,29 +874,29 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription:
|
|||
# server_error: "Server error."
|
||||
# unknown: "Unknown error."
|
||||
|
||||
# resources:
|
||||
# your_sessions: "Your Sessions"
|
||||
# level: "Level"
|
||||
resources:
|
||||
your_sessions: "As Suas Sessões"
|
||||
level: "Nível"
|
||||
# social_network_apis: "Social Network APIs"
|
||||
# facebook_status: "Facebook Status"
|
||||
# facebook_friends: "Facebook Friends"
|
||||
facebook_friends: "Amigos do Facebook"
|
||||
# facebook_friend_sessions: "Facebook Friend Sessions"
|
||||
# gplus_friends: "G+ Friends"
|
||||
gplus_friends: "Amigos do Google+"
|
||||
# gplus_friend_sessions: "G+ Friend Sessions"
|
||||
# leaderboard: "Leaderboard"
|
||||
leaderboard: "Tabela de Classificação"
|
||||
# user_schema: "User Schema"
|
||||
# user_profile: "User Profile"
|
||||
# patches: "Patches"
|
||||
# patched_model: "Source Document"
|
||||
# model: "Model"
|
||||
# system: "System"
|
||||
# component: "Component"
|
||||
# components: "Components"
|
||||
# thang: "Thang"
|
||||
# thangs: "Thangs"
|
||||
# level_session: "Your Session"
|
||||
# opponent_session: "Opponent Session"
|
||||
# article: "Article"
|
||||
system: "Sistema"
|
||||
component: "Componente"
|
||||
components: "Componentes"
|
||||
thang: "Thang"
|
||||
thangs: "Thangs"
|
||||
level_session: "A Sua Sessão"
|
||||
opponent_session: "Sessão Do Oponente"
|
||||
article: "Artigo"
|
||||
# user_names: "User Names"
|
||||
# thang_names: "Thang Names"
|
||||
# files: "Files"
|
||||
|
@ -900,7 +906,7 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription:
|
|||
# sprite_sheet: "Sprite Sheet"
|
||||
# candidate_sessions: "Candidate Sessions"
|
||||
# user_remark: "User Remark"
|
||||
# versions: "Versions"
|
||||
versions: "Versões"
|
||||
|
||||
# delta:
|
||||
# added: "Added"
|
||||
|
|
|
@ -100,6 +100,12 @@ module.exports = nativeDescription: "português", englishDescription: "Portugues
|
|||
# for_beginners: "For Beginners"
|
||||
# multiplayer: "Multiplayer"
|
||||
# for_developers: "For Developers"
|
||||
# javascript_blurb: "The language of the web. Great for writing websites, web apps, HTML5 games, and servers."
|
||||
# python_blurb: "Simple yet powerful, Python is a great general purpose programming language."
|
||||
# coffeescript_blurb: "Nicer JavaScript syntax."
|
||||
# clojure_blurb: "A modern Lisp."
|
||||
# lua_blurb: "Game scripting language."
|
||||
# io_blurb: "Simple but obscure."
|
||||
|
||||
play:
|
||||
choose_your_level: "Escolha seu estágio"
|
||||
|
|
|
@ -100,6 +100,12 @@ module.exports = nativeDescription: "limba română", englishDescription: "Roman
|
|||
for_beginners: "Pentru Începători"
|
||||
multiplayer: "Multiplayer"
|
||||
for_developers: "Pentru dezvoltatori"
|
||||
# javascript_blurb: "The language of the web. Great for writing websites, web apps, HTML5 games, and servers."
|
||||
# python_blurb: "Simple yet powerful, Python is a great general purpose programming language."
|
||||
# coffeescript_blurb: "Nicer JavaScript syntax."
|
||||
# clojure_blurb: "A modern Lisp."
|
||||
# lua_blurb: "Game scripting language."
|
||||
# io_blurb: "Simple but obscure."
|
||||
|
||||
play:
|
||||
choose_your_level: "Alege nivelul"
|
||||
|
|
|
@ -100,6 +100,12 @@ module.exports = nativeDescription: "русский", englishDescription: "Russi
|
|||
for_beginners: "Новичкам"
|
||||
multiplayer: "Мультиплеер"
|
||||
for_developers: "Разработчикам"
|
||||
# javascript_blurb: "The language of the web. Great for writing websites, web apps, HTML5 games, and servers."
|
||||
# python_blurb: "Simple yet powerful, Python is a great general purpose programming language."
|
||||
# coffeescript_blurb: "Nicer JavaScript syntax."
|
||||
# clojure_blurb: "A modern Lisp."
|
||||
# lua_blurb: "Game scripting language."
|
||||
# io_blurb: "Simple but obscure."
|
||||
|
||||
play:
|
||||
choose_your_level: "Выберите ваш уровень"
|
||||
|
|
|
@ -100,6 +100,12 @@ module.exports = nativeDescription: "slovenčina", englishDescription: "Slovak",
|
|||
for_beginners: "Pre začiatočníkov"
|
||||
# multiplayer: "Multiplayer"
|
||||
for_developers: "Pre vývojárov"
|
||||
# javascript_blurb: "The language of the web. Great for writing websites, web apps, HTML5 games, and servers."
|
||||
# python_blurb: "Simple yet powerful, Python is a great general purpose programming language."
|
||||
# coffeescript_blurb: "Nicer JavaScript syntax."
|
||||
# clojure_blurb: "A modern Lisp."
|
||||
# lua_blurb: "Game scripting language."
|
||||
# io_blurb: "Simple but obscure."
|
||||
|
||||
play:
|
||||
choose_your_level: "Vyber si úroveň"
|
||||
|
|
|
@ -100,6 +100,12 @@ module.exports = nativeDescription: "slovenščina", englishDescription: "Sloven
|
|||
# for_beginners: "For Beginners"
|
||||
# multiplayer: "Multiplayer"
|
||||
# for_developers: "For Developers"
|
||||
# javascript_blurb: "The language of the web. Great for writing websites, web apps, HTML5 games, and servers."
|
||||
# python_blurb: "Simple yet powerful, Python is a great general purpose programming language."
|
||||
# coffeescript_blurb: "Nicer JavaScript syntax."
|
||||
# clojure_blurb: "A modern Lisp."
|
||||
# lua_blurb: "Game scripting language."
|
||||
# io_blurb: "Simple but obscure."
|
||||
|
||||
# play:
|
||||
# choose_your_level: "Choose Your Level"
|
||||
|
|
|
@ -100,6 +100,12 @@ module.exports = nativeDescription: "српски", englishDescription: "Serbian
|
|||
# for_beginners: "For Beginners"
|
||||
# multiplayer: "Multiplayer"
|
||||
# for_developers: "For Developers"
|
||||
# javascript_blurb: "The language of the web. Great for writing websites, web apps, HTML5 games, and servers."
|
||||
# python_blurb: "Simple yet powerful, Python is a great general purpose programming language."
|
||||
# coffeescript_blurb: "Nicer JavaScript syntax."
|
||||
# clojure_blurb: "A modern Lisp."
|
||||
# lua_blurb: "Game scripting language."
|
||||
# io_blurb: "Simple but obscure."
|
||||
|
||||
play:
|
||||
choose_your_level: "Изабери ниво"
|
||||
|
|
|
@ -100,6 +100,12 @@ module.exports = nativeDescription: "Svenska", englishDescription: "Swedish", tr
|
|||
for_beginners: "För nybörjare"
|
||||
multiplayer: "Flera spelare"
|
||||
for_developers: "För utvecklare"
|
||||
# javascript_blurb: "The language of the web. Great for writing websites, web apps, HTML5 games, and servers."
|
||||
# python_blurb: "Simple yet powerful, Python is a great general purpose programming language."
|
||||
# coffeescript_blurb: "Nicer JavaScript syntax."
|
||||
# clojure_blurb: "A modern Lisp."
|
||||
# lua_blurb: "Game scripting language."
|
||||
# io_blurb: "Simple but obscure."
|
||||
|
||||
play:
|
||||
choose_your_level: "Välj din nivå"
|
||||
|
|
|
@ -100,6 +100,12 @@ module.exports = nativeDescription: "ไทย", englishDescription: "Thai", tra
|
|||
# for_beginners: "For Beginners"
|
||||
# multiplayer: "Multiplayer"
|
||||
# for_developers: "For Developers"
|
||||
# javascript_blurb: "The language of the web. Great for writing websites, web apps, HTML5 games, and servers."
|
||||
# python_blurb: "Simple yet powerful, Python is a great general purpose programming language."
|
||||
# coffeescript_blurb: "Nicer JavaScript syntax."
|
||||
# clojure_blurb: "A modern Lisp."
|
||||
# lua_blurb: "Game scripting language."
|
||||
# io_blurb: "Simple but obscure."
|
||||
|
||||
# play:
|
||||
# choose_your_level: "Choose Your Level"
|
||||
|
|
|
@ -100,6 +100,12 @@ module.exports = nativeDescription: "Türkçe", englishDescription: "Turkish", t
|
|||
for_beginners: "Yeni Başlayanlar için"
|
||||
multiplayer: "Çoklu-oyuncu Modu"
|
||||
for_developers: "Geliştiriciler için"
|
||||
# javascript_blurb: "The language of the web. Great for writing websites, web apps, HTML5 games, and servers."
|
||||
# python_blurb: "Simple yet powerful, Python is a great general purpose programming language."
|
||||
# coffeescript_blurb: "Nicer JavaScript syntax."
|
||||
# clojure_blurb: "A modern Lisp."
|
||||
# lua_blurb: "Game scripting language."
|
||||
# io_blurb: "Simple but obscure."
|
||||
|
||||
play:
|
||||
choose_your_level: "Seviye Seçimi"
|
||||
|
|
|
@ -100,6 +100,12 @@ module.exports = nativeDescription: "українська мова", englishDesc
|
|||
for_beginners: "Для новачків"
|
||||
multiplayer: "Командна гра"
|
||||
for_developers: "Для розробників"
|
||||
# javascript_blurb: "The language of the web. Great for writing websites, web apps, HTML5 games, and servers."
|
||||
# python_blurb: "Simple yet powerful, Python is a great general purpose programming language."
|
||||
# coffeescript_blurb: "Nicer JavaScript syntax."
|
||||
# clojure_blurb: "A modern Lisp."
|
||||
# lua_blurb: "Game scripting language."
|
||||
# io_blurb: "Simple but obscure."
|
||||
|
||||
play:
|
||||
choose_your_level: "Оберіть свій рівень"
|
||||
|
|
|
@ -100,6 +100,12 @@ module.exports = nativeDescription: "اُردُو", englishDescription: "Urdu",
|
|||
# for_beginners: "For Beginners"
|
||||
# multiplayer: "Multiplayer"
|
||||
# for_developers: "For Developers"
|
||||
# javascript_blurb: "The language of the web. Great for writing websites, web apps, HTML5 games, and servers."
|
||||
# python_blurb: "Simple yet powerful, Python is a great general purpose programming language."
|
||||
# coffeescript_blurb: "Nicer JavaScript syntax."
|
||||
# clojure_blurb: "A modern Lisp."
|
||||
# lua_blurb: "Game scripting language."
|
||||
# io_blurb: "Simple but obscure."
|
||||
|
||||
# play:
|
||||
# choose_your_level: "Choose Your Level"
|
||||
|
|
|
@ -100,6 +100,12 @@ module.exports = nativeDescription: "Tiếng Việt", englishDescription: "Vietn
|
|||
# for_beginners: "For Beginners"
|
||||
# multiplayer: "Multiplayer"
|
||||
# for_developers: "For Developers"
|
||||
# javascript_blurb: "The language of the web. Great for writing websites, web apps, HTML5 games, and servers."
|
||||
# python_blurb: "Simple yet powerful, Python is a great general purpose programming language."
|
||||
# coffeescript_blurb: "Nicer JavaScript syntax."
|
||||
# clojure_blurb: "A modern Lisp."
|
||||
# lua_blurb: "Game scripting language."
|
||||
# io_blurb: "Simple but obscure."
|
||||
|
||||
play:
|
||||
choose_your_level: "Chọn Trình của bạn"
|
||||
|
|
|
@ -100,6 +100,12 @@ module.exports = nativeDescription: "简体中文", englishDescription: "Chinese
|
|||
for_beginners: "适合初学者"
|
||||
multiplayer: "多人游戏"
|
||||
for_developers: "适合开发者"
|
||||
# javascript_blurb: "The language of the web. Great for writing websites, web apps, HTML5 games, and servers."
|
||||
# python_blurb: "Simple yet powerful, Python is a great general purpose programming language."
|
||||
# coffeescript_blurb: "Nicer JavaScript syntax."
|
||||
# clojure_blurb: "A modern Lisp."
|
||||
# lua_blurb: "Game scripting language."
|
||||
# io_blurb: "Simple but obscure."
|
||||
|
||||
play:
|
||||
choose_your_level: "选择关卡"
|
||||
|
|
|
@ -100,6 +100,12 @@ module.exports = nativeDescription: "繁体中文", englishDescription: "Chinese
|
|||
# for_beginners: "For Beginners"
|
||||
# multiplayer: "Multiplayer"
|
||||
# for_developers: "For Developers"
|
||||
# javascript_blurb: "The language of the web. Great for writing websites, web apps, HTML5 games, and servers."
|
||||
# python_blurb: "Simple yet powerful, Python is a great general purpose programming language."
|
||||
# coffeescript_blurb: "Nicer JavaScript syntax."
|
||||
# clojure_blurb: "A modern Lisp."
|
||||
# lua_blurb: "Game scripting language."
|
||||
# io_blurb: "Simple but obscure."
|
||||
|
||||
play:
|
||||
choose_your_level: "選取關卡"
|
||||
|
|
|
@ -100,6 +100,12 @@ module.exports = nativeDescription: "吴语", englishDescription: "Wuu (Simplifi
|
|||
# for_beginners: "For Beginners"
|
||||
# multiplayer: "Multiplayer"
|
||||
# for_developers: "For Developers"
|
||||
# javascript_blurb: "The language of the web. Great for writing websites, web apps, HTML5 games, and servers."
|
||||
# python_blurb: "Simple yet powerful, Python is a great general purpose programming language."
|
||||
# coffeescript_blurb: "Nicer JavaScript syntax."
|
||||
# clojure_blurb: "A modern Lisp."
|
||||
# lua_blurb: "Game scripting language."
|
||||
# io_blurb: "Simple but obscure."
|
||||
|
||||
# play:
|
||||
# choose_your_level: "Choose Your Level"
|
||||
|
|
|
@ -100,6 +100,12 @@ module.exports = nativeDescription: "吳語", englishDescription: "Wuu (Traditio
|
|||
for_beginners: "適合學起頭個人"
|
||||
multiplayer: "聚隊打遊戲"
|
||||
for_developers: "適合開發個人"
|
||||
# javascript_blurb: "The language of the web. Great for writing websites, web apps, HTML5 games, and servers."
|
||||
# python_blurb: "Simple yet powerful, Python is a great general purpose programming language."
|
||||
# coffeescript_blurb: "Nicer JavaScript syntax."
|
||||
# clojure_blurb: "A modern Lisp."
|
||||
# lua_blurb: "Game scripting language."
|
||||
# io_blurb: "Simple but obscure."
|
||||
|
||||
play:
|
||||
choose_your_level: "揀關數"
|
||||
|
|
|
@ -100,6 +100,12 @@ module.exports = nativeDescription: "中文", englishDescription: "Chinese", tra
|
|||
# for_beginners: "For Beginners"
|
||||
# multiplayer: "Multiplayer"
|
||||
# for_developers: "For Developers"
|
||||
# javascript_blurb: "The language of the web. Great for writing websites, web apps, HTML5 games, and servers."
|
||||
# python_blurb: "Simple yet powerful, Python is a great general purpose programming language."
|
||||
# coffeescript_blurb: "Nicer JavaScript syntax."
|
||||
# clojure_blurb: "A modern Lisp."
|
||||
# lua_blurb: "Game scripting language."
|
||||
# io_blurb: "Simple but obscure."
|
||||
|
||||
play:
|
||||
choose_your_level: "选取难度"
|
||||
|
|
|
@ -15,8 +15,11 @@
|
|||
.doc-name
|
||||
color: rgb(139, 69, 19)
|
||||
|
||||
.index-column
|
||||
width: 25%
|
||||
|
||||
.documentation-column
|
||||
width: 75%
|
||||
|
||||
.specialList
|
||||
list-style-type: none
|
||||
|
|
|
@ -167,6 +167,10 @@
|
|||
h2
|
||||
margin: 15px 0 5px
|
||||
|
||||
p
|
||||
overflow: hidden
|
||||
height: 40px
|
||||
|
||||
.secondary-code-languages
|
||||
margin-left: -10px
|
||||
|
||||
|
@ -201,17 +205,22 @@
|
|||
margin: 0
|
||||
padding: 0
|
||||
|
||||
p
|
||||
white-space: nowrap
|
||||
text-overflow: ellipsis
|
||||
overflow: hidden
|
||||
|
||||
#coffeescript .code-language-logo
|
||||
background: transparent url(/images/pages/home/language_logo_coffeescript.png) no-repeat center
|
||||
background: transparent url(/images/common/code_languages/coffeescript_small.png) no-repeat center
|
||||
|
||||
#clojure .code-language-logo
|
||||
background: transparent url(/images/pages/home/language_logo_clojure.png) no-repeat center
|
||||
background: transparent url(/images/common/code_languages/clojure_small.png) no-repeat center
|
||||
|
||||
#lua .code-language-logo
|
||||
background: transparent url(/images/pages/home/language_logo_lua.png) no-repeat center
|
||||
background: transparent url(/images/common/code_languages/lua_small.png) no-repeat center
|
||||
|
||||
#io .code-language-logo
|
||||
background: transparent url(/images/pages/home/language_logo_io.png) no-repeat center
|
||||
background: transparent url(/images/common/code_languages/io_small.png) no-repeat center
|
||||
|
||||
|
||||
#multiplayer-launch-modal
|
||||
|
|
|
@ -53,6 +53,5 @@
|
|||
|
||||
.code-language-cell
|
||||
padding: 0 10px
|
||||
background: transparent url(/images/pages/home/language_logo_javascript.png) no-repeat center center
|
||||
background-size: contain
|
||||
height: 19px
|
||||
background: transparent url(/images/common/code_languages/javascript_icon.png) no-repeat center center
|
||||
height: 16px
|
||||
|
|
|
@ -40,6 +40,5 @@
|
|||
|
||||
.code-language-cell
|
||||
padding: 0 10px
|
||||
background: transparent url(/images/pages/home/language_logo_javascript.png) no-repeat center center
|
||||
background-size: contain
|
||||
height: 19px
|
||||
background: transparent url(/images/common/code_languages/javascript_icon.png) no-repeat center center
|
||||
height: 16px
|
||||
|
|
|
@ -98,12 +98,12 @@
|
|||
|
||||
.code-language
|
||||
position: absolute
|
||||
background: transparent url(/images/pages/home/language_logo_javascript.png) no-repeat center center
|
||||
background: transparent url(/images/common/code_languages/javascript_small.png) no-repeat center center
|
||||
background-size: contain
|
||||
width: 40px
|
||||
height: 40px
|
||||
right: -5px
|
||||
top: -15px
|
||||
width: 50px
|
||||
height: 50px
|
||||
right: -0px
|
||||
top: -30px
|
||||
display: block
|
||||
|
||||
.my-name
|
||||
|
|
|
@ -70,10 +70,10 @@
|
|||
|
||||
.code-language-logo
|
||||
position: absolute
|
||||
width: 20px
|
||||
height: 20px
|
||||
left: 12px
|
||||
top: 34px
|
||||
width: 16px
|
||||
height: 16px
|
||||
left: 16px
|
||||
top: 36px
|
||||
z-index: 10
|
||||
background-color: transparent
|
||||
background-repeat: no-repeat
|
||||
|
@ -81,21 +81,27 @@
|
|||
cursor: pointer
|
||||
|
||||
&.javascript
|
||||
background-image: url(/images/pages/home/language_logo_javascript.png)
|
||||
background-image: url(/images/common/code_languages/javascript_icon.png)
|
||||
&.python
|
||||
background-image: url(/images/pages/home/language_logo_python.png)
|
||||
background-image: url(/images/common/code_languages/python_icon.png)
|
||||
&.coffeescript
|
||||
background-image: url(/images/pages/home/language_logo_coffeescript.png)
|
||||
background-image: url(/images/common/code_languages/coffeescript_icon.png)
|
||||
&.clojure
|
||||
background-image: url(/images/pages/home/language_logo_clojure.png)
|
||||
background-image: url(/images/common/code_languages/clojure_icon.png)
|
||||
&.lua
|
||||
background-image: url(/images/pages/home/language_logo_lua.png)
|
||||
background-image: url(/images/common/code_languages/lua_icon.png)
|
||||
&.io
|
||||
background-image: url(/images/pages/home/language_logo_io.png)
|
||||
background-image: url(/images/common/code_languages/io_icon.png)
|
||||
|
||||
&:hover
|
||||
outline: 1px outset #ccc
|
||||
|
||||
&:active
|
||||
outline: 1px inset #ccc
|
||||
|
||||
html.no-borderimage
|
||||
#spell-palette-view
|
||||
span.code-palette-background
|
||||
display: none
|
||||
img.code-palette-background
|
||||
display: block
|
||||
display: block
|
||||
|
|
|
@ -26,8 +26,8 @@ block content
|
|||
li(id="#{component.get('name')}#{doc.name}")
|
||||
| #{doc.name}
|
||||
ul.specialList
|
||||
if doc.description[language.substring(1,language.length-1)]
|
||||
li!=marked(doc.description[language.substring(1,language.length-1)])
|
||||
if doc.description[language]
|
||||
li!=marked(doc.description[language])
|
||||
else
|
||||
li!=marked(doc.description)
|
||||
|
||||
|
|
|
@ -10,14 +10,14 @@ block content
|
|||
.code-language#javascript(data-code-language='javascript')
|
||||
.code-wizard
|
||||
h2 JavaScript
|
||||
p The language of the web. Great for writing websites, web apps, HTML5 games, and servers.
|
||||
p(data-i18n="home.javascript_blurb") The language of the web. Great for writing websites, web apps, HTML5 games, and servers.
|
||||
|
||||
.col-md-6
|
||||
.code-language.beta#python(data-code-language='python')
|
||||
.code-wizard
|
||||
.code-language-beta
|
||||
h2 Python
|
||||
p Simple yet powerful, Python is a great general purpose programming language.
|
||||
p(data-i18n="home.python_blurb") Simple yet powerful, Python is a great general purpose programming language.
|
||||
|
||||
.secondary-code-languages.row
|
||||
.col-md-3
|
||||
|
@ -26,7 +26,7 @@ block content
|
|||
.code-wizard
|
||||
.code-language-beta
|
||||
h3 CoffeeScript
|
||||
p Nicer JavaScript syntax
|
||||
p(data-i18n="home.coffeescript_blurb") Nicer JavaScript syntax.
|
||||
|
||||
.col-md-3
|
||||
.code-language.beta#clojure(data-code-language='clojure')
|
||||
|
@ -34,7 +34,7 @@ block content
|
|||
.code-wizard
|
||||
.code-language-beta
|
||||
h3 Clojure
|
||||
p A modern Lisp
|
||||
p(data-i18n="home.clojure_blurb") A modern Lisp.
|
||||
|
||||
.col-md-3
|
||||
.code-language.beta#lua(data-code-language='lua')
|
||||
|
@ -42,7 +42,7 @@ block content
|
|||
.code-wizard
|
||||
.code-language-beta
|
||||
h3 Lua
|
||||
p Game scripting language
|
||||
p(data-i18n="home.lua_blurb") Game scripting language.
|
||||
|
||||
.col-md-3
|
||||
.code-language.beta#io(data-code-language='io', title="Careful: Io is still quite buggy")
|
||||
|
@ -50,7 +50,7 @@ block content
|
|||
.code-wizard
|
||||
.code-language-beta
|
||||
h3 Io
|
||||
p Simple but obscure
|
||||
p(data-i18n="home.io_blurb") Simple but obscure.
|
||||
|
||||
.alert.alert-danger.lt-ie10
|
||||
strong(data-i18n="home.no_ie") CodeCombat does not run in Internet Explorer 9 or older. Sorry!
|
||||
|
|
|
@ -21,7 +21,7 @@ div#columns.row
|
|||
for session, rank in topSessions
|
||||
- var myRow = session.get('creator') == me.id
|
||||
tr(class=myRow ? "success" : "", data-player-id=session.get('creator'), data-session-id=session.id)
|
||||
td.code-language-cell(style="background-image: url(/images/pages/home/language_logo_" + session.get('submittedCodeLanguage') + ".png)")
|
||||
td.code-language-cell(style="background-image: url(/images/common/code_languages/" + session.get('submittedCodeLanguage') + "_icon.png)")
|
||||
td.rank-cell= rank + 1
|
||||
td.score-cell= Math.round(session.get('totalScore') * 100)
|
||||
td.name-col-cell= session.get('creatorName') || "Anonymous"
|
||||
|
@ -35,7 +35,7 @@ div#columns.row
|
|||
for session in team.leaderboard.nearbySessions()
|
||||
- var myRow = session.get('creator') == me.id
|
||||
tr(class=myRow ? "success" : "", data-player-id=session.get('creator'), data-session-id=session.id)
|
||||
td.code-language-cell(style="background-image: url(/images/pages/home/language_logo_" + session.get('submittedCodeLanguage') + ".png)")
|
||||
td.code-language-cell(style="background-image: url(/images/common/code_languages/" + session.get('submittedCodeLanguage') + "_icon.png)")
|
||||
td.rank-cell= session.rank
|
||||
td.score-cell= Math.round(session.get('totalScore') * 100)
|
||||
td.name-col-cell= session.get('creatorName') || "Anonymous"
|
||||
|
|
|
@ -39,7 +39,7 @@ div#columns.row
|
|||
span(data-i18n="general.loss").loss Loss
|
||||
if match.state === 'tie'
|
||||
span(data-i18n="general.tie").tie Tie
|
||||
td.code-language-cell(style="background-image: url(/images/pages/home/language_logo_" + match.codeLanguage + ".png)")
|
||||
td.code-language-cell(style="background-image: url(/images/common/code_languages/" + match.codeLanguage + "_icon.png)")
|
||||
td.name-cell= match.opponentName || "Anonymous"
|
||||
td.time-cell= match.when
|
||||
td.battle-cell
|
||||
|
|
|
@ -33,7 +33,7 @@ block modal-body-content
|
|||
span= myName
|
||||
div.opponent-name.name-label
|
||||
span(data-i18n="ladder.simple_ai") Simple AI
|
||||
//span.code-language(style="background-image: url(/images/pages/home/language_logo_javascript.png)")
|
||||
//span.code-language(style="background-image: url(/images/common/code_languages/javascript_small.png)")
|
||||
div.difficulty
|
||||
span(data-i18n="ladder.warmup") Warmup
|
||||
div(data-i18n="ladder.vs").vs VS
|
||||
|
@ -50,7 +50,7 @@ block modal-body-content
|
|||
div.opponent-name.name-label
|
||||
span= challengers.easy.opponentName
|
||||
if challengers.easy.codeLanguage
|
||||
span.code-language(style="background-image: url(/images/pages/home/language_logo_" + challengers.easy.codeLanguage + ".png)")
|
||||
span.code-language(style="background-image: url(/images/common/code_languages/" + challengers.easy.codeLanguage + "_small.png)")
|
||||
div.difficulty
|
||||
span(data-i18n="general.easy") Easy
|
||||
div(data-i18n="ladder.vs").vs VS
|
||||
|
@ -67,7 +67,7 @@ block modal-body-content
|
|||
div.opponent-name.name-label
|
||||
span= challengers.medium.opponentName
|
||||
if challengers.medium.codeLanguage
|
||||
span.code-language(style="background-image: url(/images/pages/home/language_logo_" + challengers.medium.codeLanguage + ".png)")
|
||||
span.code-language(style="background-image: url(/images/common/code_languages/" + challengers.medium.codeLanguage + "_small.png)")
|
||||
div.difficulty
|
||||
span(data-i18n="general.medium") Medium
|
||||
div(data-i18n="ladder.vs").vs VS
|
||||
|
@ -84,7 +84,7 @@ block modal-body-content
|
|||
div.opponent-name.name-label
|
||||
span= challengers.hard.opponentName
|
||||
if challengers.hard.codeLanguage
|
||||
span.code-language(style="background-image: url(/images/pages/home/language_logo_" + challengers.hard.codeLanguage + ".png)")
|
||||
span.code-language(style="background-image: url(/images/common/code_languages/" + challengers.hard.codeLanguage + "_small.png)")
|
||||
div.difficulty
|
||||
span(data-i18n="general.hard") Hard
|
||||
div(data-i18n="ladder.vs").vs VS
|
||||
|
|
|
@ -34,5 +34,5 @@ module.exports = class UnnamedView extends RootView
|
|||
if (me.get('aceConfig')?.language?) is false
|
||||
c.language = 'javascript'
|
||||
else
|
||||
c.language = JSON.stringify(me.get('aceConfig').language)
|
||||
c.language = me.get('aceConfig').language
|
||||
c
|
||||
|
|
|
@ -40,7 +40,7 @@ module.exports = class EditorLevelView extends View
|
|||
constructor: (options, @levelID) ->
|
||||
super options
|
||||
@supermodel.shouldSaveBackups = (model) ->
|
||||
model.constructor.className in ['Level', 'LevelComponent', 'LevelSystem']
|
||||
model.constructor.className in ['Level', 'LevelComponent', 'LevelSystem', 'ThangType']
|
||||
@levelLoader = new LevelLoader supermodel: @supermodel, levelID: @levelID, headless: true, editorMode: true
|
||||
@level = @levelLoader.level
|
||||
@files = new DocumentFiles(@levelLoader.level)
|
||||
|
|
|
@ -52,7 +52,7 @@ module.exports = class HomeView extends View
|
|||
@updateLanguageLogos codeLanguage
|
||||
|
||||
updateLanguageLogos: (codeLanguage) ->
|
||||
@$el.find('.game-mode-wrapper .code-language-logo').css('background-image', "url(/images/pages/home/language_logo_#{codeLanguage}.png)").toggleClass 'inverted', (codeLanguage in ['io', 'coffeescript'])
|
||||
@$el.find('.game-mode-wrapper .code-language-logo').css('background-image', "url(/images/common/code_languages/#{codeLanguage}_small.png)").toggleClass 'inverted', (codeLanguage in ['io', 'coffeescript'])
|
||||
|
||||
onCodeLanguageSelected: (e) ->
|
||||
target = $(e.target).closest('.code-language')
|
||||
|
|
|
@ -84,8 +84,9 @@ module.exports = class PlayLevelView extends View
|
|||
@saveScreenshot = _.throttle @saveScreenshot, 30000
|
||||
|
||||
if @isEditorPreview
|
||||
# wait to see if it's just given to us through setLevel
|
||||
f = => @load() unless @levelLoader
|
||||
@supermodel.shouldSaveBackups = (model) -> # Make sure to load possibly changed things from localStorage.
|
||||
model.constructor.className in ['Level', 'LevelComponent', 'LevelSystem', 'ThangType']
|
||||
f = => @load() unless @levelLoader # Wait to see if it's just given to us through setLevel.
|
||||
setTimeout f, 100
|
||||
else
|
||||
@load()
|
||||
|
|
|
@ -117,7 +117,7 @@ module.exports = class PlayView extends View
|
|||
difficulty: 2
|
||||
id: 'emphasis-on-aim'
|
||||
image: '/file/db/level/525f384d96cd77000000000f/munchkin_masher_icon.png'
|
||||
description: 'Chose your targets carefully.'
|
||||
description: 'Choose your targets carefully.'
|
||||
}
|
||||
{
|
||||
name: 'Zone of Danger'
|
||||
|
|
|
@ -9,15 +9,15 @@ LevelSession = require '../levels/sessions/LevelSession'
|
|||
Level = require '../levels/Level'
|
||||
log = require 'winston'
|
||||
sendwithus = require '../sendwithus'
|
||||
if config.isProduction
|
||||
if config.isProduction and config.redis.host isnt 'localhost'
|
||||
lockManager = require '../commons/LockManager'
|
||||
|
||||
|
||||
module.exports.setup = (app) ->
|
||||
app.all config.mail.mailchimpWebhook, handleMailchimpWebHook
|
||||
app.get '/mail/cron/ladder-update', handleLadderUpdate
|
||||
if lockManager
|
||||
setupScheduledEmails()
|
||||
|
||||
|
||||
setupScheduledEmails = ->
|
||||
testForLockManager()
|
||||
mailTasks = [
|
||||
|
@ -35,15 +35,14 @@ setupScheduledEmails = ->
|
|||
]
|
||||
|
||||
for mailTask in mailTasks
|
||||
setInterval mailTask.taskFunction, mailTask.frequencyMs
|
||||
|
||||
testForLockManager = -> unless lockManager then throw "The system isn't configured to do distributed locking!"
|
||||
|
||||
### Approved Candidate Update Reminder Task ###
|
||||
setInterval mailTask.taskFunction, mailTask.frequencyMs
|
||||
|
||||
testForLockManager = -> unless lockManager then throw "The system isn't configured to do distributed locking!"
|
||||
|
||||
### Approved Candidate Update Reminder Task ###
|
||||
candidateUpdateProfileTask = ->
|
||||
mailTaskName = "candidateUpdateProfileTask"
|
||||
lockDurationMs = 2 * 60 * 1000
|
||||
lockDurationMs = 2 * 60 * 1000
|
||||
currentDate = new Date()
|
||||
timeRanges = []
|
||||
for weekPair in [[4, 2,'two weeks'], [8, 4, 'four weeks'], [52, 8, 'eight weeks']]
|
||||
|
@ -70,12 +69,12 @@ emailTimeRange = (timeRange, emailTimeRangeCallback) ->
|
|||
"mailTaskName": @mailTaskName
|
||||
async.waterfall [
|
||||
findAllCandidatesWithinTimeRange.bind(waterfallContext)
|
||||
(unfilteredCandidates, cb) ->
|
||||
(unfilteredCandidates, cb) ->
|
||||
async.reject unfilteredCandidates, candidateFilter.bind(waterfallContext), cb.bind(null, null)
|
||||
(filteredCandidates, cb) ->
|
||||
async.each filteredCandidates, sendReminderEmailToCandidate.bind(waterfallContext), cb
|
||||
], emailTimeRangeCallback
|
||||
|
||||
|
||||
findAllCandidatesWithinTimeRange = (cb) ->
|
||||
findParameters =
|
||||
"jobProfile.updated":
|
||||
|
@ -84,7 +83,7 @@ findAllCandidatesWithinTimeRange = (cb) ->
|
|||
"jobProfileApproved": true
|
||||
selection = "_id email jobProfile.name jobProfile.updated emails" #make sure to check for anyNotes too.
|
||||
User.find(findParameters).select(selection).lean().exec cb
|
||||
|
||||
|
||||
candidateFilter = (candidate, sentEmailFilterCallback) ->
|
||||
if candidate.emails?.anyNotes?.enabled is false or candidate.emails?.recruitNotes?.enabled is false
|
||||
return sentEmailFilterCallback true
|
||||
|
@ -106,7 +105,7 @@ findEmployersSignedUpAfterDate = (dateObject, cb) ->
|
|||
employerAt: {$exists: true}
|
||||
permissions: "employer"
|
||||
User.count countParameters, cb
|
||||
|
||||
|
||||
sendReminderEmailToCandidate = (candidate, sendEmailCallback) ->
|
||||
findEmployersSignedUpAfterDate new Date(candidate.jobProfile.updated), (err, employersAfterCount) =>
|
||||
if err?
|
||||
|
@ -236,7 +235,7 @@ sendReminderEmailToUnapprovedCandidate = (candidate, sendEmailCallback) ->
|
|||
### Internal Candidate Update Reminder Email ###
|
||||
internalCandidateUpdateTask = ->
|
||||
mailTaskName = "internalCandidateUpdateTask"
|
||||
lockDurationMs = 2 * 60 * 1000
|
||||
lockDurationMs = 2 * 60 * 1000
|
||||
lockManager.setLock mailTaskName, lockDurationMs, (err) ->
|
||||
if err? then return log.error "Error getting a distributed lock for task #{mailTaskName}: #{err}"
|
||||
emailInternalCandidateUpdateReminder.call {"mailTaskName":mailTaskName}, (err) ->
|
||||
|
@ -262,31 +261,31 @@ emailInternalCandidateUpdateReminder = (internalCandidateUpdateReminderCallback)
|
|||
(filteredCandidates, cb) ->
|
||||
async.each filteredCandidates, sendInternalCandidateUpdateReminder.bind(asyncContext), cb
|
||||
], internalCandidateUpdateReminderCallback
|
||||
|
||||
|
||||
findNonApprovedCandidatesWhoUpdatedJobProfileToday = (cb) ->
|
||||
findParameters =
|
||||
findParameters =
|
||||
"jobProfile.updated":
|
||||
$lte: @currentTime.toISOString()
|
||||
$gt: @beginningOfUTCDay.toISOString()
|
||||
"jobProfileApproved": false
|
||||
"jobProfileApproved": false
|
||||
User.find(findParameters).select("_id jobProfile.name jobProfile.updated").lean().exec cb
|
||||
|
||||
|
||||
candidatesUpdatedTodayFilter = (candidate, cb) ->
|
||||
findParameters =
|
||||
"user": candidate._id
|
||||
"mailTask": @mailTaskName
|
||||
"metadata.beginningOfUTCDay": @beginningOfUTCDay
|
||||
"metadata.beginningOfUTCDay": @beginningOfUTCDay
|
||||
MailSent.find(findParameters).lean().exec (err, sentMail) ->
|
||||
if err?
|
||||
log.error "Error finding mail sent for task #{@mailTaskName} and user #{candidate._id}!"
|
||||
cb true
|
||||
else
|
||||
cb Boolean(sentMail.length)
|
||||
|
||||
|
||||
sendInternalCandidateUpdateReminder = (candidate, cb) ->
|
||||
context =
|
||||
email_id: "tem_Ac7nhgKqatTHBCgDgjF5pE"
|
||||
recipient:
|
||||
recipient:
|
||||
address: "team@codecombat.com"
|
||||
name: "The CodeCombat Team"
|
||||
email_data:
|
||||
|
@ -297,7 +296,7 @@ sendInternalCandidateUpdateReminder = (candidate, cb) ->
|
|||
user: candidate._id
|
||||
metadata:
|
||||
beginningOfUTCDay: @beginningOfUTCDay
|
||||
|
||||
|
||||
MailSent.create newSentMail, (err) ->
|
||||
if err? then return cb err
|
||||
sendwithus.api.send context, (err, result) ->
|
||||
|
@ -308,7 +307,7 @@ sendInternalCandidateUpdateReminder = (candidate, cb) ->
|
|||
### Employer New Candidates Available Email ###
|
||||
employerNewCandidatesAvailableTask = ->
|
||||
mailTaskName = "employerNewCandidatesAvailableTask"
|
||||
lockDurationMs = 2 * 60 * 1000
|
||||
lockDurationMs = 2 * 60 * 1000
|
||||
lockManager.setLock mailTaskName, lockDurationMs, (err) ->
|
||||
if err? then return log.error "Error getting a distributed lock for task #{mailTaskName}: #{err}"
|
||||
emailEmployerNewCandidatesAvailable.call {"mailTaskName":mailTaskName}, (err) ->
|
||||
|
@ -321,10 +320,10 @@ employerNewCandidatesAvailableTask = ->
|
|||
|
||||
emailEmployerNewCandidatesAvailable = (emailEmployerNewCandidatesAvailableCallback) ->
|
||||
currentTime = new Date()
|
||||
asyncContext =
|
||||
asyncContext =
|
||||
"currentTime": currentTime
|
||||
"mailTaskName": @mailTaskName
|
||||
|
||||
|
||||
async.waterfall [
|
||||
findAllEmployers
|
||||
makeEmployerNamesEasilyAccessible
|
||||
|
@ -333,15 +332,15 @@ emailEmployerNewCandidatesAvailable = (emailEmployerNewCandidatesAvailableCallba
|
|||
(employersToEmail, cb) ->
|
||||
async.each employersToEmail, sendEmployerNewCandidatesAvailableEmail.bind(asyncContext), cb
|
||||
], emailEmployerNewCandidatesAvailableCallback
|
||||
|
||||
|
||||
findAllEmployers = (cb) ->
|
||||
findParameters =
|
||||
findParameters =
|
||||
"employerAt":
|
||||
$exists: true
|
||||
$exists: true
|
||||
permissions: "employer"
|
||||
selection = "_id email employerAt signedEmployerAgreement.data.firstName signedEmployerAgreement.data.lastName activity dateCreated emails"
|
||||
User.find(findParameters).select(selection).lean().exec cb
|
||||
|
||||
|
||||
makeEmployerNamesEasilyAccessible = (allEmployers, cb) ->
|
||||
for employer, index in allEmployers
|
||||
if employer.signedEmployerAgreement?.data?.firstName
|
||||
|
@ -349,17 +348,17 @@ makeEmployerNamesEasilyAccessible = (allEmployers, cb) ->
|
|||
delete employer.signedEmployerAgreement
|
||||
allEmployers[index] = employer
|
||||
cb null, allEmployers
|
||||
|
||||
|
||||
employersEmailedDigestMoreThanWeekAgoFilter = (employer, cb) ->
|
||||
if employer.emails?.employerNotes?.enabled is false
|
||||
return cb true
|
||||
if not employer.signedEmployerAgreement and not employer.activity?.login?
|
||||
return cb true
|
||||
findParameters =
|
||||
findParameters =
|
||||
"user": employer._id
|
||||
"mailTask": @mailTaskName
|
||||
"sent":
|
||||
$gt: new Date(@currentTime.getTime() - 7 * 24 * 60 * 60 * 1000)
|
||||
$gt: new Date(@currentTime.getTime() - 7 * 24 * 60 * 60 * 1000)
|
||||
MailSent.find(findParameters).lean().exec (err, sentMail) ->
|
||||
if err?
|
||||
log.error "Error finding mail sent for task #{@mailTaskName} and employer #employer._id}!"
|
||||
|
@ -368,17 +367,17 @@ employersEmailedDigestMoreThanWeekAgoFilter = (employer, cb) ->
|
|||
cb Boolean(sentMail.length)
|
||||
|
||||
sendEmployerNewCandidatesAvailableEmail = (employer, cb) ->
|
||||
lastLoginDate = employer.activity?.login?.last ? employer.dateCreated
|
||||
lastLoginDate = employer.activity?.login?.last ? employer.dateCreated
|
||||
countParameters =
|
||||
"jobProfileApproved": true
|
||||
$or: [
|
||||
jobProfileApprovedDate:
|
||||
jobProfileApprovedDate:
|
||||
$gt: lastLoginDate.toISOString()
|
||||
,
|
||||
jobProfileApprovedDate:
|
||||
$exists: false
|
||||
"jobProfile.updated":
|
||||
$gt: lastLoginDate.toISOString()
|
||||
$gt: lastLoginDate.toISOString()
|
||||
]
|
||||
User.count countParameters, (err, numberOfCandidatesSinceLogin) =>
|
||||
if err? then return cb err
|
||||
|
@ -415,8 +414,8 @@ newRecruitLeaderboardEmailTask = ->
|
|||
lockManager.setLock mailTaskName, lockDurationMs, (err, lockResult) ->
|
||||
###
|
||||
### End New Recruit Leaderboard Email ###
|
||||
|
||||
### Employer Matching Candidate Notification Email ###
|
||||
|
||||
### Employer Matching Candidate Notification Email ###
|
||||
###
|
||||
employerMatchingCandidateNotificationTask = ->
|
||||
# tem_mYsepTfWQ265noKfZJcbBH
|
||||
|
@ -444,7 +443,7 @@ isRequestFromDesignatedCronHandler = (req, res) ->
|
|||
return true
|
||||
|
||||
|
||||
|
||||
|
||||
handleLadderUpdate = (req, res) ->
|
||||
log.info('Going to see about sending ladder update emails.')
|
||||
requestIsFromDesignatedCronHandler = isRequestFromDesignatedCronHandler req, res
|
||||
|
|