This commit is contained in:
George Saines 2014-11-23 13:32:31 -08:00
commit e7a5cadfb0
93 changed files with 1656 additions and 214 deletions
app
server

View file

@ -188,7 +188,7 @@ module.exports = LevelOptions =
hidesCodeToolbar: true
hidesRealTimePlayback: true
requiredGear: {feet: 'simple-boots', 'right-hand': 'simple-sword', torso: 'tarnished-bronze-breastplate', 'programming-book': 'programmaticon-i', eyes: 'crude-glasses'}
restrictedGear: {feet: 'leather-boots'}
restrictedGear: {feet: 'leather-boots', 'right-hand': 'crude-builders-hammer'}
suspectCode: [{name: 'lone-find-nearest-enemy', pattern: /^[ ]*(self|this|@)?[:.]?findNearestEnemy()/m}]
'kithgard-gates':
hidesSay: true

View file

@ -96,6 +96,8 @@ module.exports = class SpriteBuilder
shape.graphics.lf shapeData.lf...
else if shapeData.fc?
shape.graphics.f @colorMap[shapeKey] or shapeData.fc
else if shapeData.rf?
shape.graphics.rf shapeData.rf...
if shapeData.ls?
shape.graphics.ls shapeData.ls...
else if shapeData.sc?

View file

@ -52,7 +52,7 @@ module.exports = class SpriteParser
container.bounds[0] -= @width / 2
container.bounds[1] -= @height / 2
[shapeKeys, localShapes] = @getShapesFromBlock container, source
localContainers = @getContainersFromMovieClip container, source
localContainers = @getContainersFromMovieClip container, source, true # Added true because anya attack was breaking, but might break other imports
addChildArgs = @getAddChildCallArguments container, source
instructions = []
for bn in addChildArgs
@ -248,9 +248,13 @@ module.exports = class SpriteParser
if fillCall.callee.property.name is 'lf'
linearGradientFillSource = @subSourceFromRange fillCall.parent.range, source
linearGradientFill = @grabFunctionArguments linearGradientFillSource.replace(/.*?lf\(/, 'lf('), true
else if fillCall.callee.property.name is 'rf'
radialGradientFillSource = @subSourceFromRange fillCall.parent.range, source
radialGradientFill = @grabFunctionArguments radialGradientFillSource.replace(/.*?lf\(/, 'lf('), true
else
fillColor = fillCall.arguments[0]?.value ? null
console.error 'What is this?! Not a fill!' unless fillCall.callee.property.name is 'f'
callName = fillCall.callee.property.name
console.error 'What is this?! Not a fill!', callName unless callName is 'f'
strokeCall = node.parent.parent.parent.parent
if strokeCall.object.callee.property.name is 'ls'
linearGradientStrokeSource = @subSourceFromRange strokeCall.parent.range, source
@ -301,6 +305,7 @@ module.exports = class SpriteParser
shape.ss = strokeStyle if strokeStyle
shape.fc = fillColor if fillColor
shape.lf = linearGradientFill if linearGradientFill
shape.rf = radialGradientFill if radialGradientFill
shape.ls = linearGradientStroke if linearGradientStroke
if name.search('shape') isnt -1 and shape.fc is 'rgba(0,0,0,0.451)' and not shape.ss and not shape.sc
console.log 'Skipping a shadow', name, shape, 'because we\'re doing shadows separately now.'

View file

@ -285,7 +285,7 @@ module.exports = class Camera extends CocoClass
@currentTarget = target
viewportDifference = @updateViewports target
if viewportDifference > 0.1 # Roughly 0.1 pixel difference in what we can see
Backbone.Mediator.publish 'camera:zoom-updated', camera: @, zoom: @zoom, surfaceViewport: @surfaceViewport
Backbone.Mediator.publish 'camera:zoom-updated', camera: @, zoom: @zoom, surfaceViewport: @surfaceViewport, minZoom: @minZoom
boundTarget: (pos, zoom) ->
# Given an {x, y} in Surface coordinates, return one that will keep our viewport on the Surface.

View file

@ -104,7 +104,8 @@ module.exports = Lank = class Lank extends CocoClass
@sprite.destroy?()
if parent = @sprite.parent
parent.removeChild @sprite
parent.addChild newSprite
if parent.spriteSheet is newSprite.spriteSheet
parent.addChild newSprite
# get the lank to update things
for prop in ['lastPos', 'currentRootAction']

View file

@ -384,6 +384,11 @@ module.exports = Surface = class Surface extends CocoClass
if @ended
@setPaused false
@surfaceZoomPauseTimeout = _.delay (=> @setPaused true), 3000
@zoomedIn = e.zoom > e.minZoom * 1.1
@updateGrabbability()
updateGrabbability: ->
@webGLCanvas.toggleClass 'grabbable', @zoomedIn and not @playing and not @disabled
onDisableControls: (e) ->
return if e.controls and not ('surface' in e.controls)
@ -400,6 +405,7 @@ module.exports = Surface = class Surface extends CocoClass
setDisabled: (@disabled) ->
@lankBoss.disabled = @disabled
@updateGrabbability()
onSetPlaying: (e) ->
@playing = (e ? {}).playing ? true
@ -408,6 +414,7 @@ module.exports = Surface = class Surface extends CocoClass
@currentFrame = 1 # Go back to the beginning (but not frame 0, that frame is weird)
if @fastForwardingToFrame and not @playing
@fastForwardingToFrame = null
@updateGrabbability()
onSetTime: (e) ->
toFrame = @currentFrame

View file

@ -10,6 +10,7 @@ module.exports = nativeDescription: "العربية", englishDescription: "Arabi
for_beginners: "للمبتدئين"
multiplayer: "متعدد اللاعبين" # Not currently shown on home page
for_developers: "للمطوّرين" # Not currently shown on home page.
# or_ipad: "Or download for iPad"
nav:
play: "إلعب" # The top nav bar entry where players choose which levels to play
@ -207,6 +208,8 @@ module.exports = nativeDescription: "العربية", englishDescription: "Arabi
# failing: "Failing"
# action_timeline: "Action Timeline"
# click_to_select: "Click on a unit to select it."
# control_bar_multiplayer: "Multiplayer"
# control_bar_join_game: "Join Game"
# reload: "Reload"
# reload_title: "Reload All Code?"
# reload_really: "Are you sure you want to reload this level back to the beginning?"
@ -319,6 +322,9 @@ module.exports = nativeDescription: "العربية", englishDescription: "Arabi
# few_gems: "A few gems"
# pile_gems: "Pile of gems"
# chest_gems: "Chest of gems"
# purchasing: "Purchasing..."
# declined: "Your card was declined"
# retrying: "Server error, retrying."
choose_hero:
# choose_hero: "Choose Your Hero"
@ -345,6 +351,24 @@ module.exports = nativeDescription: "العربية", englishDescription: "Arabi
# blocks: "Blocks" # As in "this shield blocks this much damage"
# skills: "Skills"
# skill_docs:
# writable: "writable" # Hover over "attack" in Your Skills while playing a level to see most of this
# read_only: "read-only"
# action_name: "name"
# action_cooldown: "Takes"
# action_specific_cooldown: "Cooldown"
# action_damage: "Damage"
# action_range: "Range"
# action_radius: "Radius"
# action_duration: "Duration"
# example: "Example"
# ex: "ex" # Abbreviation of "example"
# current_value: "Current Value"
# default_value: "Default value"
# parameters: "Parameters"
# returns: "Returns"
# granted_by: "Granted by"
# save_load:
# granularity_saved_games: "Saved"
# granularity_change_history: "History"
@ -745,6 +769,8 @@ module.exports = nativeDescription: "العربية", englishDescription: "Arabi
amount_achieved: "مبلغ"
achievement: "الإنجاز"
category_contributor: "مساهم"
# category_ladder: "Ladder"
# category_level: "Level"
category_miscellaneous: "متنوعة"
category_levels: "مستويات"
category_undefined: "غير مصنف"

View file

@ -4,12 +4,13 @@ module.exports = nativeDescription: "български език", englishDescri
no_ie: "CodeCombat не работи под Internet Explorer 8 или по-стари версии. Съжалявам!" # Warning that only shows up in IE8 and older
no_mobile: "CodeCombat не е направен за мобилни устройства и може да не работи!" # Warning that shows up on mobile devices
play: "Играй" # The big play button that just starts playing a level
old_browser: "О, не! Браузърът ти е твърде стар за CodeCombat. Съжалявам!" #"Uh oh, your browser is too old to run CodeCombat. Sorry!" # Warning that shows up on really old Firefox/Chrome/Safari
old_browser_suffix: "Все пак можеш да опиваш, но най-вероятно няма да проработи." # "You can try anyway, but it probably won't work."
old_browser: "О, не! Браузърът ти е твърде стар за CodeCombat. Съжалявам!" # Warning that shows up on really old Firefox/Chrome/Safari
old_browser_suffix: "Все пак можеш да опиваш, но най-вероятно няма да проработи."
# campaign: "Campaign"
for_beginners: "За начинаещи" # "For Beginners"
for_beginners: "За начинаещи"
# multiplayer: "Multiplayer" # Not currently shown on home page
for_developers: "За разработчици" # "For Developers" # Not currently shown on home page.
for_developers: "За разработчици" # Not currently shown on home page.
# or_ipad: "Or download for iPad"
nav:
play: "Нива" # The top nav bar entry where players choose which levels to play
@ -23,12 +24,12 @@ module.exports = nativeDescription: "български език", englishDescri
# code: "Code"
# admin: "Admin" # Only shows up when you are an admin
home: "Начало"
contribute: "Допринеси" # "Contribute"
contribute: "Допринеси"
# legal: "Legal"
about: "За нас"
contact: "Контакти"
twitter_follow: "Започни да следиш" # "Follow"
teachers: "Учители" # "Teachers"
twitter_follow: "Започни да следиш"
teachers: "Учители"
modal:
close: "Затвори"
@ -39,19 +40,19 @@ module.exports = nativeDescription: "български език", englishDescri
diplomat_suggestion:
title: "Помогни да преведем CodeCombat!" # This shows up when a player switches to a non-English language using the language selector.
sub_heading: "Имаме нужда от твоите езикови познания!" # "We need your language skills."
sub_heading: "Имаме нужда от твоите езикови познания!"
pitch_body: "We develop CodeCombat in English, but we already have players all over the world. Many of them want to play in Bulgarian but don't speak English, so if you can speak both, please consider signing up to be a Diplomat and help translate both the CodeCombat website and all the levels into Bulgarian."
missing_translations: "Until we can translate everything into Bulgarian, you'll see English when Bulgarian isn't available."
learn_more: "Научи повече за това как да станеш Дипломат"
subscribe_as_diplomat: "Стани дипломат" # "Subscribe as a Diplomat"
subscribe_as_diplomat: "Стани дипломат"
play:
# play_as: "Play As" # Ladder page
# spectate: "Spectate" # Ladder page
# players: "players" # Hover over a level on /play
# hours_played: "hours played" # Hover over a level on /play
items: "Предмети" # "Items" # Tooltip on item shop button from /play
unlock: "Отключи" # "Unlock" # For purchasing items and heroes
items: "Предмети" # Tooltip on item shop button from /play
unlock: "Отключи" # For purchasing items and heroes
confirm: "Потвърди"
# owned: "Owned" # For items you own
locked: "Заключено"
@ -64,27 +65,27 @@ module.exports = nativeDescription: "български език", englishDescri
# next: "Next" # Go from choose hero to choose inventory before playing a level
# change_hero: "Change Hero" # Go back from choose inventory to choose hero
# choose_inventory: "Equip Items"
buy_gems: "Купи скъпоценни камъни" # "Buy Gems"
older_campaigns: "Предишни капмании" # "Older Campaigns"
anonymous: "Анонимен играч" # "Anonymous Player"
level_difficulty: "Трудност" # "Difficulty: "
campaign_beginner: "Кампания за начинаещи" # "Beginner Campaign"
buy_gems: "Купи скъпоценни камъни"
older_campaigns: "Предишни капмании"
anonymous: "Анонимен играч"
level_difficulty: "Трудност"
campaign_beginner: "Кампания за начинаещи"
# awaiting_levels_adventurer_prefix: "We release five levels per week."
awaiting_levels_adventurer: "Стани Приключенец" # "Sign up as an Adventurer"
awaiting_levels_adventurer_suffix: "за да бъдеш първият, който играе нови нива." # "to be the first to play new levels."
awaiting_levels_adventurer: "Стани Приключенец"
awaiting_levels_adventurer_suffix: "за да бъдеш първият, който играе нови нива."
choose_your_level: "Избери своето ниво" # The rest of this section is the old play view at /play-old and isn't very important.
# adventurer_prefix: "You can jump to any level below, or discuss the levels on "
adventurer_forum: "Приключенският форум" # "the Adventurer forum"
adventurer_forum: "Приключенският форум"
# adventurer_suffix: "."
campaign_old_beginner: "Предишни кампании за начинаещи" # "Old Beginner Campaign"
campaign_old_beginner: "Предишни кампании за начинаещи"
# campaign_old_beginner_description: "... in which you learn the wizardry of programming."
campaign_dev: "Случайни трудни нива" # "Random Harder Levels"
campaign_dev: "Случайни трудни нива"
# campaign_dev_description: "... in which you learn the interface while doing something a little harder."
# campaign_multiplayer: "Multiplayer Arenas"
# campaign_multiplayer_description: "... in which you code head-to-head against other players."
# campaign_player_created: "Player-Created"
# campaign_player_created_description: "... in which you battle against the creativity of your fellow <a href=\"/contribute#artisan\">Artisan Wizards</a>."
campaign_classic_algorithms: "Класически алгоритми" # "Classic Algorithms"
campaign_classic_algorithms: "Класически алгоритми"
# campaign_classic_algorithms_description: "... in which you learn the most popular algorithms in Computer Science."
# campaign_forest: "Forest Campaign"
# campaign_dungeon: "Dungeon Campaign"
@ -115,13 +116,13 @@ module.exports = nativeDescription: "български език", englishDescri
recover:
recover_account_title: "Възстанови Акаунт"
send_password: "Изпрати парола за възстановяване"
recovery_sent: "Писмото за възстановяване на парола е изпратено." # "Recovery email sent."
recovery_sent: "Писмото за възстановяване на парола е изпратено."
# items:
# primary: "Primary"
# secondary: "Secondary"
# armor: "Armor"
accessories: "Аксесоари" # "Accessories"
# accessories: "Accessories"
# misc: "Misc"
# books: "Books"
@ -145,11 +146,11 @@ module.exports = nativeDescription: "български език", englishDescri
general:
and: "и"
name: "Име"
date: "Дата" # "Date"
date: "Дата"
# body: "Body"
version: "Версия"
# commit_msg: "Commit Message"
version_history: "Предишни версии" # "Version History"
version_history: "Предишни версии"
# version_history_for: "Version History for: "
# result: "Result"
results: "Резултати"
@ -157,7 +158,7 @@ module.exports = nativeDescription: "български език", englishDescri
or: "или"
# subject: "Subject"
email: "Email"
password: "Парола" # "Password"
password: "Парола"
message: "Съобщение"
# code: "Code"
# ladder: "Ladder"
@ -207,6 +208,8 @@ module.exports = nativeDescription: "български език", englishDescri
# failing: "Failing"
# action_timeline: "Action Timeline"
# click_to_select: "Click on a unit to select it."
# control_bar_multiplayer: "Multiplayer"
# control_bar_join_game: "Join Game"
# reload: "Reload"
# reload_title: "Reload All Code?"
# reload_really: "Are you sure you want to reload this level back to the beginning?"
@ -319,6 +322,9 @@ module.exports = nativeDescription: "български език", englishDescri
# few_gems: "A few gems"
# pile_gems: "Pile of gems"
# chest_gems: "Chest of gems"
# purchasing: "Purchasing..."
# declined: "Your card was declined"
# retrying: "Server error, retrying."
# choose_hero:
# choose_hero: "Choose Your Hero"
@ -345,6 +351,24 @@ module.exports = nativeDescription: "български език", englishDescri
# blocks: "Blocks" # As in "this shield blocks this much damage"
# skills: "Skills"
# skill_docs:
# writable: "writable" # Hover over "attack" in Your Skills while playing a level to see most of this
# read_only: "read-only"
# action_name: "name"
# action_cooldown: "Takes"
# action_specific_cooldown: "Cooldown"
# action_damage: "Damage"
# action_range: "Range"
# action_radius: "Radius"
# action_duration: "Duration"
# example: "Example"
# ex: "ex" # Abbreviation of "example"
# current_value: "Current Value"
# default_value: "Default value"
# parameters: "Parameters"
# returns: "Returns"
# granted_by: "Granted by"
# save_load:
# granularity_saved_games: "Saved"
# granularity_change_history: "History"
@ -405,10 +429,10 @@ module.exports = nativeDescription: "български език", englishDescri
# cla_prefix: "To save changes, first you must agree to our"
# cla_url: "CLA"
# cla_suffix: "."
cla_agree: "СЪГЛАСЕН СЪМ" # "I AGREE"
# cla_agree: "I AGREE"
# contact:
contact_us: "Свържи се с CodeCombat" # "Contact CodeCombat"
# contact_us: "Contact CodeCombat"
# welcome: "Good to hear from you! Use this form to send us email. "
# contribute_prefix: "If you're interested in contributing, check out our "
# contribute_page: "contribute page"
@ -430,17 +454,17 @@ module.exports = nativeDescription: "български език", englishDescri
# password_tab: "Password"
# emails_tab: "Emails"
# admin: "Admin"
new_password: "Нова парола" # "New Password"
# new_password: "New Password"
# new_password_verify: "Verify"
# email_subscriptions: "Email Subscriptions"
# email_subscriptions_none: "No Email Subscriptions."
email_announcements: "Съобщения" # "Announcements"
# email_announcements: "Announcements"
# email_announcements_description: "Get emails on the latest news and developments at CodeCombat."
email_notifications: "Известия" # "Notifications"
# email_notifications: "Notifications"
# email_notifications_summary: "Controls for personalized, automatic email notifications related to your CodeCombat activity."
# email_any_notes: "Any Notifications"
# email_any_notes_description: "Disable to stop all activity notification emails."
email_news: "Новини" # "News"
# email_news: "News"
# email_recruit_notes: "Job Opportunities"
# email_recruit_notes_description: "If you play really well, we may contact you about getting you a (better) job."
# contributor_emails: "Contributor Class Emails"
@ -745,6 +769,8 @@ module.exports = nativeDescription: "български език", englishDescri
# amount_achieved: "Amount"
# achievement: "Achievement"
# category_contributor: "Contributor"
# category_ladder: "Ladder"
# category_level: "Level"
# category_miscellaneous: "Miscellaneous"
# category_levels: "Levels"
# category_undefined: "Uncategorized"

View file

@ -10,6 +10,7 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr
for_beginners: "Per a principiants"
multiplayer: "Multijugador" # Not currently shown on home page
for_developers: "Per a Desenvolupadors" # Not currently shown on home page.
# or_ipad: "Or download for iPad"
nav:
play: "Nivells" # The top nav bar entry where players choose which levels to play
@ -207,6 +208,8 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr
failing: "Fallant"
action_timeline: "Cronologia d'accions"
# click_to_select: "Click on a unit to select it."
# control_bar_multiplayer: "Multiplayer"
# control_bar_join_game: "Join Game"
# reload: "Reload"
# reload_title: "Reload All Code?"
# reload_really: "Are you sure you want to reload this level back to the beginning?"
@ -319,6 +322,9 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr
# few_gems: "A few gems"
# pile_gems: "Pile of gems"
# chest_gems: "Chest of gems"
# purchasing: "Purchasing..."
# declined: "Your card was declined"
# retrying: "Server error, retrying."
choose_hero:
choose_hero: "Escull el teu heroi"
@ -345,6 +351,24 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr
# blocks: "Blocks" # As in "this shield blocks this much damage"
skills: "Habilitats"
# skill_docs:
# writable: "writable" # Hover over "attack" in Your Skills while playing a level to see most of this
# read_only: "read-only"
# action_name: "name"
# action_cooldown: "Takes"
# action_specific_cooldown: "Cooldown"
# action_damage: "Damage"
# action_range: "Range"
# action_radius: "Radius"
# action_duration: "Duration"
# example: "Example"
# ex: "ex" # Abbreviation of "example"
# current_value: "Current Value"
# default_value: "Default value"
# parameters: "Parameters"
# returns: "Returns"
# granted_by: "Granted by"
save_load:
granularity_saved_games: "Desats"
granularity_change_history: "Historial"
@ -745,6 +769,8 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr
amount_achieved: "Cantitat"
achievement: "Triomf"
category_contributor: "Contribuidor"
# category_ladder: "Ladder"
# category_level: "Level"
category_miscellaneous: "Miscel·lània"
category_levels: "Nivells"
category_undefined: "Sense categoria"

View file

@ -10,6 +10,7 @@ module.exports = nativeDescription: "čeština", englishDescription: "Czech", tr
# for_beginners: "For Beginners"
# multiplayer: "Multiplayer" # Not currently shown on home page
# for_developers: "For Developers" # Not currently shown on home page.
# or_ipad: "Or download for iPad"
nav:
play: "Úrovně" # The top nav bar entry where players choose which levels to play
@ -207,6 +208,8 @@ module.exports = nativeDescription: "čeština", englishDescription: "Czech", tr
# failing: "Failing"
action_timeline: "Časová osa"
click_to_select: "Vyberte kliknutím."
# control_bar_multiplayer: "Multiplayer"
# control_bar_join_game: "Join Game"
# reload: "Reload"
reload_title: "Znovunačíst veškerý kód?"
reload_really: "Opravdu chcete resetovat tuto úroveň do počátečního stavu?"
@ -319,6 +322,9 @@ module.exports = nativeDescription: "čeština", englishDescription: "Czech", tr
# few_gems: "A few gems"
# pile_gems: "Pile of gems"
# chest_gems: "Chest of gems"
# purchasing: "Purchasing..."
# declined: "Your card was declined"
# retrying: "Server error, retrying."
# choose_hero:
# choose_hero: "Choose Your Hero"
@ -345,6 +351,24 @@ module.exports = nativeDescription: "čeština", englishDescription: "Czech", tr
# blocks: "Blocks" # As in "this shield blocks this much damage"
# skills: "Skills"
# skill_docs:
# writable: "writable" # Hover over "attack" in Your Skills while playing a level to see most of this
# read_only: "read-only"
# action_name: "name"
# action_cooldown: "Takes"
# action_specific_cooldown: "Cooldown"
# action_damage: "Damage"
# action_range: "Range"
# action_radius: "Radius"
# action_duration: "Duration"
# example: "Example"
# ex: "ex" # Abbreviation of "example"
# current_value: "Current Value"
# default_value: "Default value"
# parameters: "Parameters"
# returns: "Returns"
# granted_by: "Granted by"
# save_load:
# granularity_saved_games: "Saved"
# granularity_change_history: "History"
@ -745,6 +769,8 @@ module.exports = nativeDescription: "čeština", englishDescription: "Czech", tr
# amount_achieved: "Amount"
# achievement: "Achievement"
# category_contributor: "Contributor"
# category_ladder: "Ladder"
# category_level: "Level"
# category_miscellaneous: "Miscellaneous"
# category_levels: "Levels"
# category_undefined: "Uncategorized"

View file

@ -10,6 +10,7 @@ module.exports = nativeDescription: "dansk", englishDescription: "Danish", trans
for_beginners: "For Begyndere"
multiplayer: "Multiplayer" # Not currently shown on home page
for_developers: "For Udviklere" # Not currently shown on home page.
# or_ipad: "Or download for iPad"
nav:
play: "Spil" # The top nav bar entry where players choose which levels to play
@ -207,6 +208,8 @@ module.exports = nativeDescription: "dansk", englishDescription: "Danish", trans
# failing: "Failing"
action_timeline: "Handlingstidslinje"
click_to_select: "Klik på en enhed for at vælge"
# control_bar_multiplayer: "Multiplayer"
# control_bar_join_game: "Join Game"
# reload: "Reload"
reload_title: "Genindlæs alt kode?"
reload_really: "Er du sikker på at du ønsker at genindlæse denne bane helt fra begyndelsen?"
@ -319,6 +322,9 @@ module.exports = nativeDescription: "dansk", englishDescription: "Danish", trans
# few_gems: "A few gems"
# pile_gems: "Pile of gems"
# chest_gems: "Chest of gems"
# purchasing: "Purchasing..."
# declined: "Your card was declined"
# retrying: "Server error, retrying."
# choose_hero:
# choose_hero: "Choose Your Hero"
@ -345,6 +351,24 @@ module.exports = nativeDescription: "dansk", englishDescription: "Danish", trans
# blocks: "Blocks" # As in "this shield blocks this much damage"
# skills: "Skills"
# skill_docs:
# writable: "writable" # Hover over "attack" in Your Skills while playing a level to see most of this
# read_only: "read-only"
# action_name: "name"
# action_cooldown: "Takes"
# action_specific_cooldown: "Cooldown"
# action_damage: "Damage"
# action_range: "Range"
# action_radius: "Radius"
# action_duration: "Duration"
# example: "Example"
# ex: "ex" # Abbreviation of "example"
# current_value: "Current Value"
# default_value: "Default value"
# parameters: "Parameters"
# returns: "Returns"
# granted_by: "Granted by"
# save_load:
# granularity_saved_games: "Saved"
# granularity_change_history: "History"
@ -745,6 +769,8 @@ module.exports = nativeDescription: "dansk", englishDescription: "Danish", trans
# amount_achieved: "Amount"
# achievement: "Achievement"
# category_contributor: "Contributor"
# category_ladder: "Ladder"
# category_level: "Level"
# category_miscellaneous: "Miscellaneous"
# category_levels: "Levels"
# category_undefined: "Uncategorized"

View file

@ -10,6 +10,7 @@ module.exports = nativeDescription: "Deutsch (Österreich)", englishDescription:
for_beginners: "Für Anfänger"
multiplayer: "Mehrspieler" # Not currently shown on home page
for_developers: "Für Entwickler" # Not currently shown on home page.
# or_ipad: "Or download for iPad"
nav:
play: "Spielen" # The top nav bar entry where players choose which levels to play
@ -207,6 +208,8 @@ module.exports = nativeDescription: "Deutsch (Österreich)", englishDescription:
# failing: "Failing"
action_timeline: "Aktionszeitstrahl"
click_to_select: "Klicke auf eine Einheit, um sie auszuwählen."
# control_bar_multiplayer: "Multiplayer"
# control_bar_join_game: "Join Game"
# reload: "Reload"
reload_title: "Gesamten Code neu laden?"
reload_really: "Bist Du sicher, dass Du das Level neu beginnen willst?"
@ -319,6 +322,9 @@ module.exports = nativeDescription: "Deutsch (Österreich)", englishDescription:
# few_gems: "A few gems"
# pile_gems: "Pile of gems"
# chest_gems: "Chest of gems"
# purchasing: "Purchasing..."
# declined: "Your card was declined"
# retrying: "Server error, retrying."
choose_hero:
choose_hero: "Wähle deinen Helden"
@ -345,6 +351,24 @@ module.exports = nativeDescription: "Deutsch (Österreich)", englishDescription:
# blocks: "Blocks" # As in "this shield blocks this much damage"
# skills: "Skills"
# skill_docs:
# writable: "writable" # Hover over "attack" in Your Skills while playing a level to see most of this
# read_only: "read-only"
# action_name: "name"
# action_cooldown: "Takes"
# action_specific_cooldown: "Cooldown"
# action_damage: "Damage"
# action_range: "Range"
# action_radius: "Radius"
# action_duration: "Duration"
# example: "Example"
# ex: "ex" # Abbreviation of "example"
# current_value: "Current Value"
# default_value: "Default value"
# parameters: "Parameters"
# returns: "Returns"
# granted_by: "Granted by"
save_load:
granularity_saved_games: "Gespeichert"
granularity_change_history: "Historie"
@ -745,6 +769,8 @@ module.exports = nativeDescription: "Deutsch (Österreich)", englishDescription:
amount_achieved: "Anzahl"
achievement: "Achievement"
# category_contributor: "Contributor"
# category_ladder: "Ladder"
# category_level: "Level"
category_miscellaneous: "Sonstiges"
category_levels: "Level"
category_undefined: "ohne Kategorie"

View file

@ -10,6 +10,7 @@ module.exports = nativeDescription: "Deutsch (Schweiz)", englishDescription: "Ge
for_beginners: "Für Afänger"
multiplayer: "Multiplayer" # Not currently shown on home page
for_developers: "Für Entwickler" # Not currently shown on home page.
# or_ipad: "Or download for iPad"
nav:
play: "Levels" # The top nav bar entry where players choose which levels to play
@ -207,6 +208,8 @@ module.exports = nativeDescription: "Deutsch (Schweiz)", englishDescription: "Ge
failing: "Fehler"
action_timeline: "Aktionsziitleiste"
click_to_select: "Klick uf e Einheit zum sie uswähle."
# control_bar_multiplayer: "Multiplayer"
# control_bar_join_game: "Join Game"
# reload: "Reload"
reload_title: "De ganze Code neu lade?"
reload_really: "Bisch sicher du willsch level neu lade bis zrugg zum Afang?"
@ -319,6 +322,9 @@ module.exports = nativeDescription: "Deutsch (Schweiz)", englishDescription: "Ge
# few_gems: "A few gems"
# pile_gems: "Pile of gems"
# chest_gems: "Chest of gems"
# purchasing: "Purchasing..."
# declined: "Your card was declined"
# retrying: "Server error, retrying."
choose_hero:
# choose_hero: "Choose Your Hero"
@ -345,6 +351,24 @@ module.exports = nativeDescription: "Deutsch (Schweiz)", englishDescription: "Ge
# blocks: "Blocks" # As in "this shield blocks this much damage"
# skills: "Skills"
# skill_docs:
# writable: "writable" # Hover over "attack" in Your Skills while playing a level to see most of this
# read_only: "read-only"
# action_name: "name"
# action_cooldown: "Takes"
# action_specific_cooldown: "Cooldown"
# action_damage: "Damage"
# action_range: "Range"
# action_radius: "Radius"
# action_duration: "Duration"
# example: "Example"
# ex: "ex" # Abbreviation of "example"
# current_value: "Current Value"
# default_value: "Default value"
# parameters: "Parameters"
# returns: "Returns"
# granted_by: "Granted by"
# save_load:
# granularity_saved_games: "Saved"
# granularity_change_history: "History"
@ -745,6 +769,8 @@ module.exports = nativeDescription: "Deutsch (Schweiz)", englishDescription: "Ge
# amount_achieved: "Amount"
# achievement: "Achievement"
# category_contributor: "Contributor"
# category_ladder: "Ladder"
# category_level: "Level"
# category_miscellaneous: "Miscellaneous"
# category_levels: "Levels"
# category_undefined: "Uncategorized"

View file

@ -10,6 +10,7 @@ module.exports = nativeDescription: "Deutsch (Deutschland)", englishDescription:
for_beginners: "Für Anfänger"
multiplayer: "Mehrspieler" # Not currently shown on home page
for_developers: "Für Entwickler" # Not currently shown on home page.
# or_ipad: "Or download for iPad"
nav:
play: "Spielen" # The top nav bar entry where players choose which levels to play
@ -207,6 +208,8 @@ module.exports = nativeDescription: "Deutsch (Deutschland)", englishDescription:
failing: "Fehlgeschlagen"
action_timeline: "Aktionszeitstrahl"
click_to_select: "Klicke auf eine Einheit, um sie auszuwählen."
# control_bar_multiplayer: "Multiplayer"
# control_bar_join_game: "Join Game"
reload: "Neu laden"
reload_title: "Gesamten Code neu laden?"
reload_really: "Bist Du sicher, dass Du das Level neu beginnen willst?"
@ -319,6 +322,9 @@ module.exports = nativeDescription: "Deutsch (Deutschland)", englishDescription:
few_gems: "Ein paar Edelsteine"
pile_gems: "Stapel von Edelsteinen"
chest_gems: "Kiste von Edelsteinen"
# purchasing: "Purchasing..."
# declined: "Your card was declined"
# retrying: "Server error, retrying."
choose_hero:
choose_hero: "Wähle deinen Helden"
@ -345,6 +351,24 @@ module.exports = nativeDescription: "Deutsch (Deutschland)", englishDescription:
blocks: "Blockieren" # As in "this shield blocks this much damage"
skills: "Fähigkeiten"
# skill_docs:
# writable: "writable" # Hover over "attack" in Your Skills while playing a level to see most of this
# read_only: "read-only"
# action_name: "name"
# action_cooldown: "Takes"
# action_specific_cooldown: "Cooldown"
# action_damage: "Damage"
# action_range: "Range"
# action_radius: "Radius"
# action_duration: "Duration"
# example: "Example"
# ex: "ex" # Abbreviation of "example"
# current_value: "Current Value"
# default_value: "Default value"
# parameters: "Parameters"
# returns: "Returns"
# granted_by: "Granted by"
save_load:
granularity_saved_games: "Gespeichert"
granularity_change_history: "Historie"
@ -587,7 +611,7 @@ module.exports = nativeDescription: "Deutsch (Deutschland)", englishDescription:
page_title: "Mitwirken"
character_classes_title: "Charakter Klassen"
introduction_desc_intro: "Wir haben hohe Erwartungen für CodeCombat."
# introduction_desc_pref: "We want to be where programmers of all stripes come to learn and play together, introduce others to the wonderful world of coding, and reflect the best parts of the community. We can't and don't want to do that alone; what makes projects like GitHub, Stack Overflow and Linux great are the people who use them and build on them. To that end, "
# introduction_desc_pref: "We want to be where programmers of all stripes come to learn and play together, introduce others to the wonderful world of coding, and reflect the best parts of the community. We can't and don't want to do that alone; what makes projects like GitHub, Stack Overflow and Linux great are the people who use them and build on them. To that end, "
introduction_desc_github_url: "CodeCombat ist komplett OpenSource"
# introduction_desc_suf: ", and we aim to provide as many ways as possible for you to take part and make this project as much yours as ours."
introduction_desc_ending: "Wir hoffen du nimmst an unserer Party teil!"
@ -745,6 +769,8 @@ module.exports = nativeDescription: "Deutsch (Deutschland)", englishDescription:
amount_achieved: "Anzahl"
achievement: "Achievement"
category_contributor: "Mitwirkender"
# category_ladder: "Ladder"
# category_level: "Level"
category_miscellaneous: "Sonstiges"
category_levels: "Level"
category_undefined: "ohne Kategorie"

View file

@ -10,6 +10,7 @@ module.exports = nativeDescription: "Ελληνικά", englishDescription: "Gre
for_beginners: "Για αρχάριους"
multiplayer: "Πολλαπλοί Παίκτες" # Not currently shown on home page
for_developers: "Για προγραμματιστές" # Not currently shown on home page.
# or_ipad: "Or download for iPad"
nav:
play: "Επίπεδα" # The top nav bar entry where players choose which levels to play
@ -207,6 +208,8 @@ module.exports = nativeDescription: "Ελληνικά", englishDescription: "Gre
# failing: "Failing"
action_timeline: "Χρονοδιάγραμμα δράσης"
click_to_select: "Κάντε κλικ σε μια μονάδα για να το επιλέξετε."
# control_bar_multiplayer: "Multiplayer"
# control_bar_join_game: "Join Game"
# reload: "Reload"
reload_title: "Ανανέωση όλου του κωδικά;"
reload_really: "Είστε σίγουροι ότι θέλετε να φορτώσετε αυτό το επίπεδο από την αρχή;"
@ -319,6 +322,9 @@ module.exports = nativeDescription: "Ελληνικά", englishDescription: "Gre
# few_gems: "A few gems"
# pile_gems: "Pile of gems"
# chest_gems: "Chest of gems"
# purchasing: "Purchasing..."
# declined: "Your card was declined"
# retrying: "Server error, retrying."
choose_hero:
# choose_hero: "Choose Your Hero"
@ -345,6 +351,24 @@ module.exports = nativeDescription: "Ελληνικά", englishDescription: "Gre
# blocks: "Blocks" # As in "this shield blocks this much damage"
# skills: "Skills"
# skill_docs:
# writable: "writable" # Hover over "attack" in Your Skills while playing a level to see most of this
# read_only: "read-only"
# action_name: "name"
# action_cooldown: "Takes"
# action_specific_cooldown: "Cooldown"
# action_damage: "Damage"
# action_range: "Range"
# action_radius: "Radius"
# action_duration: "Duration"
# example: "Example"
# ex: "ex" # Abbreviation of "example"
# current_value: "Current Value"
# default_value: "Default value"
# parameters: "Parameters"
# returns: "Returns"
# granted_by: "Granted by"
# save_load:
# granularity_saved_games: "Saved"
# granularity_change_history: "History"
@ -745,6 +769,8 @@ module.exports = nativeDescription: "Ελληνικά", englishDescription: "Gre
# amount_achieved: "Amount"
# achievement: "Achievement"
# category_contributor: "Contributor"
# category_ladder: "Ladder"
# category_level: "Level"
# category_miscellaneous: "Miscellaneous"
# category_levels: "Levels"
# category_undefined: "Uncategorized"

View file

@ -10,6 +10,7 @@ module.exports = nativeDescription: "English (AU)", englishDescription: "English
# for_beginners: "For Beginners"
# multiplayer: "Multiplayer" # Not currently shown on home page
# for_developers: "For Developers" # Not currently shown on home page.
# or_ipad: "Or download for iPad"
# nav:
# play: "Levels" # The top nav bar entry where players choose which levels to play
@ -207,6 +208,8 @@ module.exports = nativeDescription: "English (AU)", englishDescription: "English
# failing: "Failing"
# action_timeline: "Action Timeline"
# click_to_select: "Click on a unit to select it."
# control_bar_multiplayer: "Multiplayer"
# control_bar_join_game: "Join Game"
# reload: "Reload"
# reload_title: "Reload All Code?"
# reload_really: "Are you sure you want to reload this level back to the beginning?"
@ -319,6 +322,9 @@ module.exports = nativeDescription: "English (AU)", englishDescription: "English
# few_gems: "A few gems"
# pile_gems: "Pile of gems"
# chest_gems: "Chest of gems"
# purchasing: "Purchasing..."
# declined: "Your card was declined"
# retrying: "Server error, retrying."
# choose_hero:
# choose_hero: "Choose Your Hero"
@ -345,6 +351,24 @@ module.exports = nativeDescription: "English (AU)", englishDescription: "English
# blocks: "Blocks" # As in "this shield blocks this much damage"
# skills: "Skills"
# skill_docs:
# writable: "writable" # Hover over "attack" in Your Skills while playing a level to see most of this
# read_only: "read-only"
# action_name: "name"
# action_cooldown: "Takes"
# action_specific_cooldown: "Cooldown"
# action_damage: "Damage"
# action_range: "Range"
# action_radius: "Radius"
# action_duration: "Duration"
# example: "Example"
# ex: "ex" # Abbreviation of "example"
# current_value: "Current Value"
# default_value: "Default value"
# parameters: "Parameters"
# returns: "Returns"
# granted_by: "Granted by"
# save_load:
# granularity_saved_games: "Saved"
# granularity_change_history: "History"
@ -745,6 +769,8 @@ module.exports = nativeDescription: "English (AU)", englishDescription: "English
# amount_achieved: "Amount"
# achievement: "Achievement"
# category_contributor: "Contributor"
# category_ladder: "Ladder"
# category_level: "Level"
# category_miscellaneous: "Miscellaneous"
# category_levels: "Levels"
# category_undefined: "Uncategorized"

View file

@ -10,6 +10,7 @@ module.exports = nativeDescription: "English (UK)", englishDescription: "English
# for_beginners: "For Beginners"
# multiplayer: "Multiplayer" # Not currently shown on home page
# for_developers: "For Developers" # Not currently shown on home page.
# or_ipad: "Or download for iPad"
# nav:
# play: "Levels" # The top nav bar entry where players choose which levels to play
@ -207,6 +208,8 @@ module.exports = nativeDescription: "English (UK)", englishDescription: "English
# failing: "Failing"
# action_timeline: "Action Timeline"
# click_to_select: "Click on a unit to select it."
# control_bar_multiplayer: "Multiplayer"
# control_bar_join_game: "Join Game"
# reload: "Reload"
# reload_title: "Reload All Code?"
# reload_really: "Are you sure you want to reload this level back to the beginning?"
@ -319,6 +322,9 @@ module.exports = nativeDescription: "English (UK)", englishDescription: "English
# few_gems: "A few gems"
# pile_gems: "Pile of gems"
# chest_gems: "Chest of gems"
# purchasing: "Purchasing..."
# declined: "Your card was declined"
# retrying: "Server error, retrying."
# choose_hero:
# choose_hero: "Choose Your Hero"
@ -345,6 +351,24 @@ module.exports = nativeDescription: "English (UK)", englishDescription: "English
# blocks: "Blocks" # As in "this shield blocks this much damage"
# skills: "Skills"
# skill_docs:
# writable: "writable" # Hover over "attack" in Your Skills while playing a level to see most of this
# read_only: "read-only"
# action_name: "name"
# action_cooldown: "Takes"
# action_specific_cooldown: "Cooldown"
# action_damage: "Damage"
# action_range: "Range"
# action_radius: "Radius"
# action_duration: "Duration"
# example: "Example"
# ex: "ex" # Abbreviation of "example"
# current_value: "Current Value"
# default_value: "Default value"
# parameters: "Parameters"
# returns: "Returns"
# granted_by: "Granted by"
# save_load:
# granularity_saved_games: "Saved"
# granularity_change_history: "History"
@ -745,6 +769,8 @@ module.exports = nativeDescription: "English (UK)", englishDescription: "English
# amount_achieved: "Amount"
# achievement: "Achievement"
# category_contributor: "Contributor"
# category_ladder: "Ladder"
# category_level: "Level"
# category_miscellaneous: "Miscellaneous"
# category_levels: "Levels"
# category_undefined: "Uncategorized"

View file

@ -10,6 +10,7 @@ module.exports = nativeDescription: "English (US)", englishDescription: "English
# for_beginners: "For Beginners"
# multiplayer: "Multiplayer" # Not currently shown on home page
# for_developers: "For Developers" # Not currently shown on home page.
# or_ipad: "Or download for iPad"
# nav:
# play: "Levels" # The top nav bar entry where players choose which levels to play
@ -207,6 +208,8 @@ module.exports = nativeDescription: "English (US)", englishDescription: "English
# failing: "Failing"
# action_timeline: "Action Timeline"
# click_to_select: "Click on a unit to select it."
# control_bar_multiplayer: "Multiplayer"
# control_bar_join_game: "Join Game"
# reload: "Reload"
# reload_title: "Reload All Code?"
# reload_really: "Are you sure you want to reload this level back to the beginning?"
@ -319,6 +322,9 @@ module.exports = nativeDescription: "English (US)", englishDescription: "English
# few_gems: "A few gems"
# pile_gems: "Pile of gems"
# chest_gems: "Chest of gems"
# purchasing: "Purchasing..."
# declined: "Your card was declined"
# retrying: "Server error, retrying."
# choose_hero:
# choose_hero: "Choose Your Hero"
@ -345,6 +351,24 @@ module.exports = nativeDescription: "English (US)", englishDescription: "English
# blocks: "Blocks" # As in "this shield blocks this much damage"
# skills: "Skills"
# skill_docs:
# writable: "writable" # Hover over "attack" in Your Skills while playing a level to see most of this
# read_only: "read-only"
# action_name: "name"
# action_cooldown: "Takes"
# action_specific_cooldown: "Cooldown"
# action_damage: "Damage"
# action_range: "Range"
# action_radius: "Radius"
# action_duration: "Duration"
# example: "Example"
# ex: "ex" # Abbreviation of "example"
# current_value: "Current Value"
# default_value: "Default value"
# parameters: "Parameters"
# returns: "Returns"
# granted_by: "Granted by"
# save_load:
# granularity_saved_games: "Saved"
# granularity_change_history: "History"
@ -745,6 +769,8 @@ module.exports = nativeDescription: "English (US)", englishDescription: "English
# amount_achieved: "Amount"
# achievement: "Achievement"
# category_contributor: "Contributor"
# category_ladder: "Ladder"
# category_level: "Level"
# category_miscellaneous: "Miscellaneous"
# category_levels: "Levels"
# category_undefined: "Uncategorized"

View file

@ -351,6 +351,24 @@
blocks: "Blocks" # As in "this shield blocks this much damage"
skills: "Skills"
skill_docs:
writable: "writable" # Hover over "attack" in Your Skills while playing a level to see most of this
read_only: "read-only"
action_name: "name"
action_cooldown: "Takes"
action_specific_cooldown: "Cooldown"
action_damage: "Damage"
action_range: "Range"
action_radius: "Radius"
action_duration: "Duration"
example: "Example"
ex: "ex" # Abbreviation of "example"
current_value: "Current Value"
default_value: "Default value"
parameters: "Parameters"
returns: "Returns"
granted_by: "Granted by"
save_load:
granularity_saved_games: "Saved"
granularity_change_history: "History"

View file

@ -10,6 +10,7 @@ module.exports = nativeDescription: "español (América Latina)", englishDescrip
for_beginners: "Para Principiantes"
multiplayer: "Multijugador" # Not currently shown on home page
for_developers: "Para Desarrolladores" # Not currently shown on home page.
# or_ipad: "Or download for iPad"
nav:
play: "Jugar" # The top nav bar entry where players choose which levels to play
@ -207,6 +208,8 @@ module.exports = nativeDescription: "español (América Latina)", englishDescrip
failing: "Fallando"
action_timeline: "Cronologia de Accion"
click_to_select: "Has click en una unidad para seleccionarla."
# control_bar_multiplayer: "Multiplayer"
# control_bar_join_game: "Join Game"
# reload: "Reload"
reload_title: "¿Recargar Todo el Código?"
reload_really: "¿Estás seguro de que quieres empezar este nivel desde el principio?"
@ -319,6 +322,9 @@ module.exports = nativeDescription: "español (América Latina)", englishDescrip
# few_gems: "A few gems"
# pile_gems: "Pile of gems"
# chest_gems: "Chest of gems"
# purchasing: "Purchasing..."
# declined: "Your card was declined"
# retrying: "Server error, retrying."
choose_hero:
choose_hero: "Elige tu héroe"
@ -345,6 +351,24 @@ module.exports = nativeDescription: "español (América Latina)", englishDescrip
# blocks: "Blocks" # As in "this shield blocks this much damage"
# skills: "Skills"
# skill_docs:
# writable: "writable" # Hover over "attack" in Your Skills while playing a level to see most of this
# read_only: "read-only"
# action_name: "name"
# action_cooldown: "Takes"
# action_specific_cooldown: "Cooldown"
# action_damage: "Damage"
# action_range: "Range"
# action_radius: "Radius"
# action_duration: "Duration"
# example: "Example"
# ex: "ex" # Abbreviation of "example"
# current_value: "Current Value"
# default_value: "Default value"
# parameters: "Parameters"
# returns: "Returns"
# granted_by: "Granted by"
save_load:
granularity_saved_games: "Almacenado"
granularity_change_history: "Historia"
@ -745,6 +769,8 @@ module.exports = nativeDescription: "español (América Latina)", englishDescrip
# amount_achieved: "Amount"
# achievement: "Achievement"
# category_contributor: "Contributor"
# category_ladder: "Ladder"
# category_level: "Level"
# category_miscellaneous: "Miscellaneous"
# category_levels: "Levels"
# category_undefined: "Uncategorized"

View file

@ -10,6 +10,7 @@ module.exports = nativeDescription: "español (ES)", englishDescription: "Spanis
for_beginners: "Para principiantes"
multiplayer: "Multijugador" # Not currently shown on home page
for_developers: "Para programadores" # Not currently shown on home page.
# or_ipad: "Or download for iPad"
nav:
play: "Jugar" # The top nav bar entry where players choose which levels to play
@ -207,6 +208,8 @@ module.exports = nativeDescription: "español (ES)", englishDescription: "Spanis
failing: "Fallando"
action_timeline: "Cronología de Acción"
click_to_select: "Click en una unidad para seleccionarla"
# control_bar_multiplayer: "Multiplayer"
# control_bar_join_game: "Join Game"
# reload: "Reload"
reload_title: "¿Recargar todo el código?"
reload_really: "¿Estas seguro que quieres reiniciar el nivel?"
@ -319,6 +322,9 @@ module.exports = nativeDescription: "español (ES)", englishDescription: "Spanis
# few_gems: "A few gems"
# pile_gems: "Pile of gems"
# chest_gems: "Chest of gems"
# purchasing: "Purchasing..."
# declined: "Your card was declined"
# retrying: "Server error, retrying."
choose_hero:
choose_hero: "Selecciona tu Heroe"
@ -345,6 +351,24 @@ module.exports = nativeDescription: "español (ES)", englishDescription: "Spanis
# blocks: "Blocks" # As in "this shield blocks this much damage"
skills: "Habilidades"
# skill_docs:
# writable: "writable" # Hover over "attack" in Your Skills while playing a level to see most of this
# read_only: "read-only"
# action_name: "name"
# action_cooldown: "Takes"
# action_specific_cooldown: "Cooldown"
# action_damage: "Damage"
# action_range: "Range"
# action_radius: "Radius"
# action_duration: "Duration"
# example: "Example"
# ex: "ex" # Abbreviation of "example"
# current_value: "Current Value"
# default_value: "Default value"
# parameters: "Parameters"
# returns: "Returns"
# granted_by: "Granted by"
save_load:
granularity_saved_games: "Salvado"
granularity_change_history: "Historia"
@ -745,6 +769,8 @@ module.exports = nativeDescription: "español (ES)", englishDescription: "Spanis
amount_achieved: "Cantidad"
achievement: "Logro"
category_contributor: "Contribuidor"
# category_ladder: "Ladder"
# category_level: "Level"
category_miscellaneous: "Miscelanea"
category_levels: "Niveles"
category_undefined: "Sin categorizar"

View file

@ -10,6 +10,7 @@ module.exports = nativeDescription: "فارسی", englishDescription: "Persian",
# for_beginners: "For Beginners"
# multiplayer: "Multiplayer" # Not currently shown on home page
# for_developers: "For Developers" # Not currently shown on home page.
# or_ipad: "Or download for iPad"
nav:
play: "سطوح" # The top nav bar entry where players choose which levels to play
@ -207,6 +208,8 @@ module.exports = nativeDescription: "فارسی", englishDescription: "Persian",
# failing: "Failing"
# action_timeline: "Action Timeline"
# click_to_select: "Click on a unit to select it."
# control_bar_multiplayer: "Multiplayer"
# control_bar_join_game: "Join Game"
# reload: "Reload"
# reload_title: "Reload All Code?"
# reload_really: "Are you sure you want to reload this level back to the beginning?"
@ -319,6 +322,9 @@ module.exports = nativeDescription: "فارسی", englishDescription: "Persian",
# few_gems: "A few gems"
# pile_gems: "Pile of gems"
# chest_gems: "Chest of gems"
# purchasing: "Purchasing..."
# declined: "Your card was declined"
# retrying: "Server error, retrying."
# choose_hero:
# choose_hero: "Choose Your Hero"
@ -345,6 +351,24 @@ module.exports = nativeDescription: "فارسی", englishDescription: "Persian",
# blocks: "Blocks" # As in "this shield blocks this much damage"
# skills: "Skills"
# skill_docs:
# writable: "writable" # Hover over "attack" in Your Skills while playing a level to see most of this
# read_only: "read-only"
# action_name: "name"
# action_cooldown: "Takes"
# action_specific_cooldown: "Cooldown"
# action_damage: "Damage"
# action_range: "Range"
# action_radius: "Radius"
# action_duration: "Duration"
# example: "Example"
# ex: "ex" # Abbreviation of "example"
# current_value: "Current Value"
# default_value: "Default value"
# parameters: "Parameters"
# returns: "Returns"
# granted_by: "Granted by"
# save_load:
# granularity_saved_games: "Saved"
# granularity_change_history: "History"
@ -745,6 +769,8 @@ module.exports = nativeDescription: "فارسی", englishDescription: "Persian",
# amount_achieved: "Amount"
# achievement: "Achievement"
# category_contributor: "Contributor"
# category_ladder: "Ladder"
# category_level: "Level"
# category_miscellaneous: "Miscellaneous"
# category_levels: "Levels"
# category_undefined: "Uncategorized"

View file

@ -10,6 +10,7 @@ module.exports = nativeDescription: "suomi", englishDescription: "Finnish", tran
# for_beginners: "For Beginners"
# multiplayer: "Multiplayer" # Not currently shown on home page
# for_developers: "For Developers" # Not currently shown on home page.
# or_ipad: "Or download for iPad"
# nav:
# play: "Levels" # The top nav bar entry where players choose which levels to play
@ -207,6 +208,8 @@ module.exports = nativeDescription: "suomi", englishDescription: "Finnish", tran
# failing: "Failing"
# action_timeline: "Action Timeline"
# click_to_select: "Click on a unit to select it."
# control_bar_multiplayer: "Multiplayer"
# control_bar_join_game: "Join Game"
# reload: "Reload"
# reload_title: "Reload All Code?"
# reload_really: "Are you sure you want to reload this level back to the beginning?"
@ -319,6 +322,9 @@ module.exports = nativeDescription: "suomi", englishDescription: "Finnish", tran
# few_gems: "A few gems"
# pile_gems: "Pile of gems"
# chest_gems: "Chest of gems"
# purchasing: "Purchasing..."
# declined: "Your card was declined"
# retrying: "Server error, retrying."
# choose_hero:
# choose_hero: "Choose Your Hero"
@ -345,6 +351,24 @@ module.exports = nativeDescription: "suomi", englishDescription: "Finnish", tran
# blocks: "Blocks" # As in "this shield blocks this much damage"
# skills: "Skills"
# skill_docs:
# writable: "writable" # Hover over "attack" in Your Skills while playing a level to see most of this
# read_only: "read-only"
# action_name: "name"
# action_cooldown: "Takes"
# action_specific_cooldown: "Cooldown"
# action_damage: "Damage"
# action_range: "Range"
# action_radius: "Radius"
# action_duration: "Duration"
# example: "Example"
# ex: "ex" # Abbreviation of "example"
# current_value: "Current Value"
# default_value: "Default value"
# parameters: "Parameters"
# returns: "Returns"
# granted_by: "Granted by"
# save_load:
# granularity_saved_games: "Saved"
# granularity_change_history: "History"
@ -745,6 +769,8 @@ module.exports = nativeDescription: "suomi", englishDescription: "Finnish", tran
# amount_achieved: "Amount"
# achievement: "Achievement"
# category_contributor: "Contributor"
# category_ladder: "Ladder"
# category_level: "Level"
# category_miscellaneous: "Miscellaneous"
# category_levels: "Levels"
# category_undefined: "Uncategorized"

View file

@ -10,6 +10,7 @@ module.exports = nativeDescription: "français", englishDescription: "French", t
for_beginners: "Pour débutants"
multiplayer: "Multijoueurs" # Not currently shown on home page
for_developers: "Pour développeurs" # Not currently shown on home page.
# or_ipad: "Or download for iPad"
nav:
play: "Jouer" # The top nav bar entry where players choose which levels to play
@ -207,6 +208,8 @@ module.exports = nativeDescription: "français", englishDescription: "French", t
failing: "Échec"
action_timeline: "Action sur la ligne de temps"
click_to_select: "Clique sur une unité pour la sélectionner."
# control_bar_multiplayer: "Multiplayer"
# control_bar_join_game: "Join Game"
# reload: "Reload"
reload_title: "Recharger tout le code?"
reload_really: "Êtes-vous sûr de vouloir recharger ce niveau et retourner au début?"
@ -319,6 +322,9 @@ module.exports = nativeDescription: "français", englishDescription: "French", t
# few_gems: "A few gems"
# pile_gems: "Pile of gems"
# chest_gems: "Chest of gems"
# purchasing: "Purchasing..."
# declined: "Your card was declined"
# retrying: "Server error, retrying."
choose_hero:
choose_hero: "Choisissez votre Héro"
@ -345,6 +351,24 @@ module.exports = nativeDescription: "français", englishDescription: "French", t
# blocks: "Blocks" # As in "this shield blocks this much damage"
skills: "Compétences"
# skill_docs:
# writable: "writable" # Hover over "attack" in Your Skills while playing a level to see most of this
# read_only: "read-only"
# action_name: "name"
# action_cooldown: "Takes"
# action_specific_cooldown: "Cooldown"
# action_damage: "Damage"
# action_range: "Range"
# action_radius: "Radius"
# action_duration: "Duration"
# example: "Example"
# ex: "ex" # Abbreviation of "example"
# current_value: "Current Value"
# default_value: "Default value"
# parameters: "Parameters"
# returns: "Returns"
# granted_by: "Granted by"
save_load:
granularity_saved_games: "Sauvegardé"
granularity_change_history: "Historique"
@ -745,6 +769,8 @@ module.exports = nativeDescription: "français", englishDescription: "French", t
amount_achieved: "Quantité"
achievement: "Succès"
category_contributor: "Contributeur"
# category_ladder: "Ladder"
# category_level: "Level"
category_miscellaneous: "Divers"
category_levels: "Niveaux"
category_undefined: "Non classé"

View file

@ -10,6 +10,7 @@ module.exports = nativeDescription: "Galego", englishDescription: "Galician", tr
for_beginners: "Para principiantes"
multiplayer: "Multixogador" # Not currently shown on home page
for_developers: "Para programadores" # Not currently shown on home page.
# or_ipad: "Or download for iPad"
nav:
play: "Xogar" # The top nav bar entry where players choose which levels to play
@ -207,6 +208,8 @@ module.exports = nativeDescription: "Galego", englishDescription: "Galician", tr
failing: "Fallando"
action_timeline: "Cronoloxía de Acción"
click_to_select: "Preme nunha unidade para seleccionala"
# control_bar_multiplayer: "Multiplayer"
# control_bar_join_game: "Join Game"
# reload: "Reload"
reload_title: "Recargar todo o código?"
reload_really: "Estás seguro que queres reiniciar o nivel?"
@ -319,6 +322,9 @@ module.exports = nativeDescription: "Galego", englishDescription: "Galician", tr
# few_gems: "A few gems"
# pile_gems: "Pile of gems"
# chest_gems: "Chest of gems"
# purchasing: "Purchasing..."
# declined: "Your card was declined"
# retrying: "Server error, retrying."
choose_hero:
choose_hero: "Selecciona o teu Heroe"
@ -345,6 +351,24 @@ module.exports = nativeDescription: "Galego", englishDescription: "Galician", tr
# blocks: "Blocks" # As in "this shield blocks this much damage"
skills: "Habilidades"
# skill_docs:
# writable: "writable" # Hover over "attack" in Your Skills while playing a level to see most of this
# read_only: "read-only"
# action_name: "name"
# action_cooldown: "Takes"
# action_specific_cooldown: "Cooldown"
# action_damage: "Damage"
# action_range: "Range"
# action_radius: "Radius"
# action_duration: "Duration"
# example: "Example"
# ex: "ex" # Abbreviation of "example"
# current_value: "Current Value"
# default_value: "Default value"
# parameters: "Parameters"
# returns: "Returns"
# granted_by: "Granted by"
save_load:
granularity_saved_games: "Gardado"
granularity_change_history: "Historia"
@ -745,6 +769,8 @@ module.exports = nativeDescription: "Galego", englishDescription: "Galician", tr
amount_achieved: "Cantidade"
achievement: "Logro"
category_contributor: "Contribuidor"
# category_ladder: "Ladder"
# category_level: "Level"
category_miscellaneous: "Miscelánea"
category_levels: "Niveis"
category_undefined: "Sen categorizar"

View file

@ -10,6 +10,7 @@ module.exports = nativeDescription: "עברית", englishDescription: "Hebrew",
for_beginners: "למתחילים"
multiplayer: "רב-משתתפים" # Not currently shown on home page
for_developers: "למומחים" # Not currently shown on home page.
# or_ipad: "Or download for iPad"
nav:
play: "שלבים" # The top nav bar entry where players choose which levels to play
@ -207,6 +208,8 @@ module.exports = nativeDescription: "עברית", englishDescription: "Hebrew",
# failing: "Failing"
# action_timeline: "Action Timeline"
# click_to_select: "Click on a unit to select it."
# control_bar_multiplayer: "Multiplayer"
# control_bar_join_game: "Join Game"
# reload: "Reload"
# reload_title: "Reload All Code?"
# reload_really: "Are you sure you want to reload this level back to the beginning?"
@ -319,6 +322,9 @@ module.exports = nativeDescription: "עברית", englishDescription: "Hebrew",
# few_gems: "A few gems"
# pile_gems: "Pile of gems"
# chest_gems: "Chest of gems"
# purchasing: "Purchasing..."
# declined: "Your card was declined"
# retrying: "Server error, retrying."
# choose_hero:
# choose_hero: "Choose Your Hero"
@ -345,6 +351,24 @@ module.exports = nativeDescription: "עברית", englishDescription: "Hebrew",
# blocks: "Blocks" # As in "this shield blocks this much damage"
# skills: "Skills"
# skill_docs:
# writable: "writable" # Hover over "attack" in Your Skills while playing a level to see most of this
# read_only: "read-only"
# action_name: "name"
# action_cooldown: "Takes"
# action_specific_cooldown: "Cooldown"
# action_damage: "Damage"
# action_range: "Range"
# action_radius: "Radius"
# action_duration: "Duration"
# example: "Example"
# ex: "ex" # Abbreviation of "example"
# current_value: "Current Value"
# default_value: "Default value"
# parameters: "Parameters"
# returns: "Returns"
# granted_by: "Granted by"
# save_load:
# granularity_saved_games: "Saved"
# granularity_change_history: "History"
@ -745,6 +769,8 @@ module.exports = nativeDescription: "עברית", englishDescription: "Hebrew",
# amount_achieved: "Amount"
# achievement: "Achievement"
# category_contributor: "Contributor"
# category_ladder: "Ladder"
# category_level: "Level"
# category_miscellaneous: "Miscellaneous"
# category_levels: "Levels"
# category_undefined: "Uncategorized"

View file

@ -10,6 +10,7 @@ module.exports = nativeDescription: "मानक हिन्दी", englishDe
# for_beginners: "For Beginners"
# multiplayer: "Multiplayer" # Not currently shown on home page
# for_developers: "For Developers" # Not currently shown on home page.
# or_ipad: "Or download for iPad"
# nav:
# play: "Levels" # The top nav bar entry where players choose which levels to play
@ -207,6 +208,8 @@ module.exports = nativeDescription: "मानक हिन्दी", englishDe
# failing: "Failing"
# action_timeline: "Action Timeline"
# click_to_select: "Click on a unit to select it."
# control_bar_multiplayer: "Multiplayer"
# control_bar_join_game: "Join Game"
# reload: "Reload"
# reload_title: "Reload All Code?"
# reload_really: "Are you sure you want to reload this level back to the beginning?"
@ -319,6 +322,9 @@ module.exports = nativeDescription: "मानक हिन्दी", englishDe
# few_gems: "A few gems"
# pile_gems: "Pile of gems"
# chest_gems: "Chest of gems"
# purchasing: "Purchasing..."
# declined: "Your card was declined"
# retrying: "Server error, retrying."
# choose_hero:
# choose_hero: "Choose Your Hero"
@ -345,6 +351,24 @@ module.exports = nativeDescription: "मानक हिन्दी", englishDe
# blocks: "Blocks" # As in "this shield blocks this much damage"
# skills: "Skills"
# skill_docs:
# writable: "writable" # Hover over "attack" in Your Skills while playing a level to see most of this
# read_only: "read-only"
# action_name: "name"
# action_cooldown: "Takes"
# action_specific_cooldown: "Cooldown"
# action_damage: "Damage"
# action_range: "Range"
# action_radius: "Radius"
# action_duration: "Duration"
# example: "Example"
# ex: "ex" # Abbreviation of "example"
# current_value: "Current Value"
# default_value: "Default value"
# parameters: "Parameters"
# returns: "Returns"
# granted_by: "Granted by"
# save_load:
# granularity_saved_games: "Saved"
# granularity_change_history: "History"
@ -745,6 +769,8 @@ module.exports = nativeDescription: "मानक हिन्दी", englishDe
# amount_achieved: "Amount"
# achievement: "Achievement"
# category_contributor: "Contributor"
# category_ladder: "Ladder"
# category_level: "Level"
# category_miscellaneous: "Miscellaneous"
# category_levels: "Levels"
# category_undefined: "Uncategorized"

View file

@ -10,6 +10,7 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t
for_beginners: "Kezdőknek"
# multiplayer: "Multiplayer" # Not currently shown on home page
for_developers: "Fejlesztőknek" # Not currently shown on home page.
# or_ipad: "Or download for iPad"
nav:
play: "Játék" # The top nav bar entry where players choose which levels to play
@ -207,6 +208,8 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t
# failing: "Failing"
action_timeline: "Akció - Idővonal"
click_to_select: "Kattints egy egységre, hogy kijelöld!"
# control_bar_multiplayer: "Multiplayer"
# control_bar_join_game: "Join Game"
# reload: "Reload"
reload_title: "Újra kezded mindet?"
reload_really: "Biztos vagy benne, hogy előlről szeretnéd kezdeni az egész pályát?"
@ -319,6 +322,9 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t
# few_gems: "A few gems"
# pile_gems: "Pile of gems"
# chest_gems: "Chest of gems"
# purchasing: "Purchasing..."
# declined: "Your card was declined"
# retrying: "Server error, retrying."
# choose_hero:
# choose_hero: "Choose Your Hero"
@ -345,6 +351,24 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t
# blocks: "Blocks" # As in "this shield blocks this much damage"
# skills: "Skills"
# skill_docs:
# writable: "writable" # Hover over "attack" in Your Skills while playing a level to see most of this
# read_only: "read-only"
# action_name: "name"
# action_cooldown: "Takes"
# action_specific_cooldown: "Cooldown"
# action_damage: "Damage"
# action_range: "Range"
# action_radius: "Radius"
# action_duration: "Duration"
# example: "Example"
# ex: "ex" # Abbreviation of "example"
# current_value: "Current Value"
# default_value: "Default value"
# parameters: "Parameters"
# returns: "Returns"
# granted_by: "Granted by"
# save_load:
# granularity_saved_games: "Saved"
# granularity_change_history: "History"
@ -745,6 +769,8 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t
# amount_achieved: "Amount"
# achievement: "Achievement"
# category_contributor: "Contributor"
# category_ladder: "Ladder"
# category_level: "Level"
# category_miscellaneous: "Miscellaneous"
# category_levels: "Levels"
# category_undefined: "Uncategorized"

View file

@ -10,6 +10,7 @@ module.exports = nativeDescription: "Bahasa Indonesia", englishDescription: "Ind
# for_beginners: "For Beginners"
# multiplayer: "Multiplayer" # Not currently shown on home page
# for_developers: "For Developers" # Not currently shown on home page.
# or_ipad: "Or download for iPad"
# nav:
# play: "Levels" # The top nav bar entry where players choose which levels to play
@ -207,6 +208,8 @@ module.exports = nativeDescription: "Bahasa Indonesia", englishDescription: "Ind
# failing: "Failing"
# action_timeline: "Action Timeline"
# click_to_select: "Click on a unit to select it."
# control_bar_multiplayer: "Multiplayer"
# control_bar_join_game: "Join Game"
# reload: "Reload"
# reload_title: "Reload All Code?"
# reload_really: "Are you sure you want to reload this level back to the beginning?"
@ -319,6 +322,9 @@ module.exports = nativeDescription: "Bahasa Indonesia", englishDescription: "Ind
# few_gems: "A few gems"
# pile_gems: "Pile of gems"
# chest_gems: "Chest of gems"
# purchasing: "Purchasing..."
# declined: "Your card was declined"
# retrying: "Server error, retrying."
# choose_hero:
# choose_hero: "Choose Your Hero"
@ -345,6 +351,24 @@ module.exports = nativeDescription: "Bahasa Indonesia", englishDescription: "Ind
# blocks: "Blocks" # As in "this shield blocks this much damage"
# skills: "Skills"
# skill_docs:
# writable: "writable" # Hover over "attack" in Your Skills while playing a level to see most of this
# read_only: "read-only"
# action_name: "name"
# action_cooldown: "Takes"
# action_specific_cooldown: "Cooldown"
# action_damage: "Damage"
# action_range: "Range"
# action_radius: "Radius"
# action_duration: "Duration"
# example: "Example"
# ex: "ex" # Abbreviation of "example"
# current_value: "Current Value"
# default_value: "Default value"
# parameters: "Parameters"
# returns: "Returns"
# granted_by: "Granted by"
# save_load:
# granularity_saved_games: "Saved"
# granularity_change_history: "History"
@ -745,6 +769,8 @@ module.exports = nativeDescription: "Bahasa Indonesia", englishDescription: "Ind
# amount_achieved: "Amount"
# achievement: "Achievement"
# category_contributor: "Contributor"
# category_ladder: "Ladder"
# category_level: "Level"
# category_miscellaneous: "Miscellaneous"
# category_levels: "Levels"
# category_undefined: "Uncategorized"

View file

@ -10,6 +10,7 @@ module.exports = nativeDescription: "Italiano", englishDescription: "Italian", t
for_beginners: "Per Principianti"
multiplayer: "Multiplayer" # Not currently shown on home page
for_developers: "Per Sviluppatori" # Not currently shown on home page.
# or_ipad: "Or download for iPad"
nav:
play: "Livelli" # The top nav bar entry where players choose which levels to play
@ -207,6 +208,8 @@ module.exports = nativeDescription: "Italiano", englishDescription: "Italian", t
# failing: "Failing"
action_timeline: "Barra temporale delle azioni"
click_to_select: "Clicca un'unità per selezionarla."
# control_bar_multiplayer: "Multiplayer"
# control_bar_join_game: "Join Game"
reload: "Ricarica"
reload_title: "Ricarica tutto il codice?"
reload_really: "Sei sicuro di voler ricominciare il livello?"
@ -319,6 +322,9 @@ module.exports = nativeDescription: "Italiano", englishDescription: "Italian", t
# few_gems: "A few gems"
# pile_gems: "Pile of gems"
# chest_gems: "Chest of gems"
# purchasing: "Purchasing..."
# declined: "Your card was declined"
# retrying: "Server error, retrying."
# choose_hero:
# choose_hero: "Choose Your Hero"
@ -345,6 +351,24 @@ module.exports = nativeDescription: "Italiano", englishDescription: "Italian", t
# blocks: "Blocks" # As in "this shield blocks this much damage"
# skills: "Skills"
# skill_docs:
# writable: "writable" # Hover over "attack" in Your Skills while playing a level to see most of this
# read_only: "read-only"
# action_name: "name"
# action_cooldown: "Takes"
# action_specific_cooldown: "Cooldown"
# action_damage: "Damage"
# action_range: "Range"
# action_radius: "Radius"
# action_duration: "Duration"
# example: "Example"
# ex: "ex" # Abbreviation of "example"
# current_value: "Current Value"
# default_value: "Default value"
# parameters: "Parameters"
# returns: "Returns"
# granted_by: "Granted by"
save_load:
granularity_saved_games: "Salvato"
# granularity_change_history: "History"
@ -745,6 +769,8 @@ module.exports = nativeDescription: "Italiano", englishDescription: "Italian", t
# amount_achieved: "Amount"
# achievement: "Achievement"
# category_contributor: "Contributor"
# category_ladder: "Ladder"
# category_level: "Level"
# category_miscellaneous: "Miscellaneous"
# category_levels: "Levels"
# category_undefined: "Uncategorized"

View file

@ -10,6 +10,7 @@ module.exports = nativeDescription: "日本語", englishDescription: "Japanese",
for_beginners: "初心者向け"
multiplayer: "マルチプレイヤー" # Not currently shown on home page
for_developers: "開発者向け" # Not currently shown on home page.
# or_ipad: "Or download for iPad"
nav:
play: "ゲームスタート" # The top nav bar entry where players choose which levels to play
@ -207,6 +208,8 @@ module.exports = nativeDescription: "日本語", englishDescription: "Japanese",
# failing: "Failing"
action_timeline: "アクション・タイムライン"
click_to_select: "ユニットを左クリックで選択してください"
# control_bar_multiplayer: "Multiplayer"
# control_bar_join_game: "Join Game"
# reload: "Reload"
reload_title: "コードを再読み込ますか?"
reload_really: "レベルをリセットします。よろしいですか?"
@ -319,6 +322,9 @@ module.exports = nativeDescription: "日本語", englishDescription: "Japanese",
# few_gems: "A few gems"
# pile_gems: "Pile of gems"
# chest_gems: "Chest of gems"
# purchasing: "Purchasing..."
# declined: "Your card was declined"
# retrying: "Server error, retrying."
# choose_hero:
# choose_hero: "Choose Your Hero"
@ -345,6 +351,24 @@ module.exports = nativeDescription: "日本語", englishDescription: "Japanese",
# blocks: "Blocks" # As in "this shield blocks this much damage"
# skills: "Skills"
# skill_docs:
# writable: "writable" # Hover over "attack" in Your Skills while playing a level to see most of this
# read_only: "read-only"
# action_name: "name"
# action_cooldown: "Takes"
# action_specific_cooldown: "Cooldown"
# action_damage: "Damage"
# action_range: "Range"
# action_radius: "Radius"
# action_duration: "Duration"
# example: "Example"
# ex: "ex" # Abbreviation of "example"
# current_value: "Current Value"
# default_value: "Default value"
# parameters: "Parameters"
# returns: "Returns"
# granted_by: "Granted by"
# save_load:
# granularity_saved_games: "Saved"
# granularity_change_history: "History"
@ -745,6 +769,8 @@ module.exports = nativeDescription: "日本語", englishDescription: "Japanese",
# amount_achieved: "Amount"
# achievement: "Achievement"
# category_contributor: "Contributor"
# category_ladder: "Ladder"
# category_level: "Level"
# category_miscellaneous: "Miscellaneous"
# category_levels: "Levels"
# category_undefined: "Uncategorized"

View file

@ -10,6 +10,7 @@ module.exports = nativeDescription: "한국어", englishDescription: "Korean", t
for_beginners: "초보자용"
multiplayer: "멀티플레이어" # Not currently shown on home page
for_developers: "개발자용" # Not currently shown on home page.
# or_ipad: "Or download for iPad"
nav:
play: "레벨" # The top nav bar entry where players choose which levels to play
@ -207,6 +208,8 @@ module.exports = nativeDescription: "한국어", englishDescription: "Korean", t
failing: "다시 한번 더 도전해보세요."
action_timeline: "액션 타임라인"
click_to_select: "유닛을 선택하기 위해서 유닛을 마우스로 클릭하세요."
# control_bar_multiplayer: "Multiplayer"
# control_bar_join_game: "Join Game"
# reload: "Reload"
reload_title: "모든 코드가 다시 로딩 되었나요?"
reload_really: "모든 레벨 초기화합니다. 확실한가요?"
@ -319,6 +322,9 @@ module.exports = nativeDescription: "한국어", englishDescription: "Korean", t
# few_gems: "A few gems"
# pile_gems: "Pile of gems"
# chest_gems: "Chest of gems"
# purchasing: "Purchasing..."
# declined: "Your card was declined"
# retrying: "Server error, retrying."
choose_hero:
# choose_hero: "Choose Your Hero"
@ -345,6 +351,24 @@ module.exports = nativeDescription: "한국어", englishDescription: "Korean", t
# blocks: "Blocks" # As in "this shield blocks this much damage"
# skills: "Skills"
# skill_docs:
# writable: "writable" # Hover over "attack" in Your Skills while playing a level to see most of this
# read_only: "read-only"
# action_name: "name"
# action_cooldown: "Takes"
# action_specific_cooldown: "Cooldown"
# action_damage: "Damage"
# action_range: "Range"
# action_radius: "Radius"
# action_duration: "Duration"
# example: "Example"
# ex: "ex" # Abbreviation of "example"
# current_value: "Current Value"
# default_value: "Default value"
# parameters: "Parameters"
# returns: "Returns"
# granted_by: "Granted by"
# save_load:
# granularity_saved_games: "Saved"
# granularity_change_history: "History"
@ -745,6 +769,8 @@ module.exports = nativeDescription: "한국어", englishDescription: "Korean", t
# amount_achieved: "Amount"
# achievement: "Achievement"
# category_contributor: "Contributor"
# category_ladder: "Ladder"
# category_level: "Level"
# category_miscellaneous: "Miscellaneous"
# category_levels: "Levels"
# category_undefined: "Uncategorized"

View file

@ -10,6 +10,7 @@ module.exports = nativeDescription: "lietuvių kalba", englishDescription: "Lith
# for_beginners: "For Beginners"
# multiplayer: "Multiplayer" # Not currently shown on home page
# for_developers: "For Developers" # Not currently shown on home page.
# or_ipad: "Or download for iPad"
# nav:
# play: "Levels" # The top nav bar entry where players choose which levels to play
@ -207,6 +208,8 @@ module.exports = nativeDescription: "lietuvių kalba", englishDescription: "Lith
# failing: "Failing"
# action_timeline: "Action Timeline"
# click_to_select: "Click on a unit to select it."
# control_bar_multiplayer: "Multiplayer"
# control_bar_join_game: "Join Game"
# reload: "Reload"
# reload_title: "Reload All Code?"
# reload_really: "Are you sure you want to reload this level back to the beginning?"
@ -319,6 +322,9 @@ module.exports = nativeDescription: "lietuvių kalba", englishDescription: "Lith
# few_gems: "A few gems"
# pile_gems: "Pile of gems"
# chest_gems: "Chest of gems"
# purchasing: "Purchasing..."
# declined: "Your card was declined"
# retrying: "Server error, retrying."
# choose_hero:
# choose_hero: "Choose Your Hero"
@ -345,6 +351,24 @@ module.exports = nativeDescription: "lietuvių kalba", englishDescription: "Lith
# blocks: "Blocks" # As in "this shield blocks this much damage"
# skills: "Skills"
# skill_docs:
# writable: "writable" # Hover over "attack" in Your Skills while playing a level to see most of this
# read_only: "read-only"
# action_name: "name"
# action_cooldown: "Takes"
# action_specific_cooldown: "Cooldown"
# action_damage: "Damage"
# action_range: "Range"
# action_radius: "Radius"
# action_duration: "Duration"
# example: "Example"
# ex: "ex" # Abbreviation of "example"
# current_value: "Current Value"
# default_value: "Default value"
# parameters: "Parameters"
# returns: "Returns"
# granted_by: "Granted by"
# save_load:
# granularity_saved_games: "Saved"
# granularity_change_history: "History"
@ -745,6 +769,8 @@ module.exports = nativeDescription: "lietuvių kalba", englishDescription: "Lith
# amount_achieved: "Amount"
# achievement: "Achievement"
# category_contributor: "Contributor"
# category_ladder: "Ladder"
# category_level: "Level"
# category_miscellaneous: "Miscellaneous"
# category_levels: "Levels"
# category_undefined: "Uncategorized"

View file

@ -10,6 +10,7 @@ module.exports = nativeDescription: "Bahasa Melayu", englishDescription: "Bahasa
# for_beginners: "For Beginners"
# multiplayer: "Multiplayer" # Not currently shown on home page
# for_developers: "For Developers" # Not currently shown on home page.
# or_ipad: "Or download for iPad"
nav:
play: "Mula" # The top nav bar entry where players choose which levels to play
@ -207,6 +208,8 @@ module.exports = nativeDescription: "Bahasa Melayu", englishDescription: "Bahasa
# failing: "Failing"
# action_timeline: "Action Timeline"
# click_to_select: "Click on a unit to select it."
# control_bar_multiplayer: "Multiplayer"
# control_bar_join_game: "Join Game"
# reload: "Reload"
# reload_title: "Reload All Code?"
# reload_really: "Are you sure you want to reload this level back to the beginning?"
@ -319,6 +322,9 @@ module.exports = nativeDescription: "Bahasa Melayu", englishDescription: "Bahasa
# few_gems: "A few gems"
# pile_gems: "Pile of gems"
# chest_gems: "Chest of gems"
# purchasing: "Purchasing..."
# declined: "Your card was declined"
# retrying: "Server error, retrying."
# choose_hero:
# choose_hero: "Choose Your Hero"
@ -345,6 +351,24 @@ module.exports = nativeDescription: "Bahasa Melayu", englishDescription: "Bahasa
# blocks: "Blocks" # As in "this shield blocks this much damage"
# skills: "Skills"
# skill_docs:
# writable: "writable" # Hover over "attack" in Your Skills while playing a level to see most of this
# read_only: "read-only"
# action_name: "name"
# action_cooldown: "Takes"
# action_specific_cooldown: "Cooldown"
# action_damage: "Damage"
# action_range: "Range"
# action_radius: "Radius"
# action_duration: "Duration"
# example: "Example"
# ex: "ex" # Abbreviation of "example"
# current_value: "Current Value"
# default_value: "Default value"
# parameters: "Parameters"
# returns: "Returns"
# granted_by: "Granted by"
# save_load:
# granularity_saved_games: "Saved"
# granularity_change_history: "History"
@ -745,6 +769,8 @@ module.exports = nativeDescription: "Bahasa Melayu", englishDescription: "Bahasa
# amount_achieved: "Amount"
# achievement: "Achievement"
# category_contributor: "Contributor"
# category_ladder: "Ladder"
# category_level: "Level"
# category_miscellaneous: "Miscellaneous"
# category_levels: "Levels"
# category_undefined: "Uncategorized"

View file

@ -10,6 +10,7 @@ module.exports = nativeDescription: "Norsk Bokmål", englishDescription: "Norweg
for_beginners: "For Begynnere"
multiplayer: "Flerspiller" # Not currently shown on home page
for_developers: "For Utviklere" # Not currently shown on home page.
# or_ipad: "Or download for iPad"
nav:
play: "Spill" # The top nav bar entry where players choose which levels to play
@ -207,6 +208,8 @@ module.exports = nativeDescription: "Norsk Bokmål", englishDescription: "Norweg
# failing: "Failing"
action_timeline: "Hendelsestidslinje"
click_to_select: "Klikk på en enhet for å velge den."
# control_bar_multiplayer: "Multiplayer"
# control_bar_join_game: "Join Game"
# reload: "Reload"
reload_title: "Laste All Koden på Nytt?"
reload_really: "Er du sikker på at du vil laste dette nivået på nytt, tilbake til begynnelsen?"
@ -319,6 +322,9 @@ module.exports = nativeDescription: "Norsk Bokmål", englishDescription: "Norweg
# few_gems: "A few gems"
# pile_gems: "Pile of gems"
# chest_gems: "Chest of gems"
# purchasing: "Purchasing..."
# declined: "Your card was declined"
# retrying: "Server error, retrying."
# choose_hero:
# choose_hero: "Choose Your Hero"
@ -345,6 +351,24 @@ module.exports = nativeDescription: "Norsk Bokmål", englishDescription: "Norweg
# blocks: "Blocks" # As in "this shield blocks this much damage"
# skills: "Skills"
# skill_docs:
# writable: "writable" # Hover over "attack" in Your Skills while playing a level to see most of this
# read_only: "read-only"
# action_name: "name"
# action_cooldown: "Takes"
# action_specific_cooldown: "Cooldown"
# action_damage: "Damage"
# action_range: "Range"
# action_radius: "Radius"
# action_duration: "Duration"
# example: "Example"
# ex: "ex" # Abbreviation of "example"
# current_value: "Current Value"
# default_value: "Default value"
# parameters: "Parameters"
# returns: "Returns"
# granted_by: "Granted by"
# save_load:
# granularity_saved_games: "Saved"
# granularity_change_history: "History"
@ -745,6 +769,8 @@ module.exports = nativeDescription: "Norsk Bokmål", englishDescription: "Norweg
# amount_achieved: "Amount"
# achievement: "Achievement"
# category_contributor: "Contributor"
# category_ladder: "Ladder"
# category_level: "Level"
# category_miscellaneous: "Miscellaneous"
# category_levels: "Levels"
# category_undefined: "Uncategorized"

View file

@ -10,6 +10,7 @@ module.exports = nativeDescription: "Nederlands (België)", englishDescription:
for_beginners: "Voor Beginners"
multiplayer: "Multiplayer" # Not currently shown on home page
for_developers: "Voor ontwikkelaars" # Not currently shown on home page.
# or_ipad: "Or download for iPad"
nav:
play: "Levels" # The top nav bar entry where players choose which levels to play
@ -207,6 +208,8 @@ module.exports = nativeDescription: "Nederlands (België)", englishDescription:
# failing: "Failing"
action_timeline: "Actie tijdlijn"
click_to_select: "Klik op een eenheid om deze te selecteren."
# control_bar_multiplayer: "Multiplayer"
# control_bar_join_game: "Join Game"
# reload: "Reload"
reload_title: "Alle Code Herladen?"
reload_really: "Weet je zeker dat je dit level tot het begin wilt herladen?"
@ -319,6 +322,9 @@ module.exports = nativeDescription: "Nederlands (België)", englishDescription:
# few_gems: "A few gems"
# pile_gems: "Pile of gems"
# chest_gems: "Chest of gems"
# purchasing: "Purchasing..."
# declined: "Your card was declined"
# retrying: "Server error, retrying."
# choose_hero:
# choose_hero: "Choose Your Hero"
@ -345,6 +351,24 @@ module.exports = nativeDescription: "Nederlands (België)", englishDescription:
# blocks: "Blocks" # As in "this shield blocks this much damage"
# skills: "Skills"
# skill_docs:
# writable: "writable" # Hover over "attack" in Your Skills while playing a level to see most of this
# read_only: "read-only"
# action_name: "name"
# action_cooldown: "Takes"
# action_specific_cooldown: "Cooldown"
# action_damage: "Damage"
# action_range: "Range"
# action_radius: "Radius"
# action_duration: "Duration"
# example: "Example"
# ex: "ex" # Abbreviation of "example"
# current_value: "Current Value"
# default_value: "Default value"
# parameters: "Parameters"
# returns: "Returns"
# granted_by: "Granted by"
# save_load:
# granularity_saved_games: "Saved"
# granularity_change_history: "History"
@ -745,6 +769,8 @@ module.exports = nativeDescription: "Nederlands (België)", englishDescription:
# amount_achieved: "Amount"
# achievement: "Achievement"
# category_contributor: "Contributor"
# category_ladder: "Ladder"
# category_level: "Level"
# category_miscellaneous: "Miscellaneous"
# category_levels: "Levels"
# category_undefined: "Uncategorized"

View file

@ -10,6 +10,7 @@ module.exports = nativeDescription: "Nederlands (Nederland)", englishDescription
for_beginners: "Voor Beginners"
multiplayer: "Multiplayer" # Not currently shown on home page
for_developers: "Voor ontwikkelaars" # Not currently shown on home page.
# or_ipad: "Or download for iPad"
nav:
play: "Levels" # The top nav bar entry where players choose which levels to play
@ -207,6 +208,8 @@ module.exports = nativeDescription: "Nederlands (Nederland)", englishDescription
# failing: "Failing"
action_timeline: "Actie tijdlijn"
click_to_select: "Klik op een eenheid om deze te selecteren."
# control_bar_multiplayer: "Multiplayer"
# control_bar_join_game: "Join Game"
# reload: "Reload"
reload_title: "Alle Code Herladen?"
reload_really: "Weet je zeker dat je dit level tot het begin wilt herladen?"
@ -319,6 +322,9 @@ module.exports = nativeDescription: "Nederlands (Nederland)", englishDescription
# few_gems: "A few gems"
# pile_gems: "Pile of gems"
# chest_gems: "Chest of gems"
# purchasing: "Purchasing..."
# declined: "Your card was declined"
# retrying: "Server error, retrying."
# choose_hero:
# choose_hero: "Choose Your Hero"
@ -345,6 +351,24 @@ module.exports = nativeDescription: "Nederlands (Nederland)", englishDescription
# blocks: "Blocks" # As in "this shield blocks this much damage"
# skills: "Skills"
# skill_docs:
# writable: "writable" # Hover over "attack" in Your Skills while playing a level to see most of this
# read_only: "read-only"
# action_name: "name"
# action_cooldown: "Takes"
# action_specific_cooldown: "Cooldown"
# action_damage: "Damage"
# action_range: "Range"
# action_radius: "Radius"
# action_duration: "Duration"
# example: "Example"
# ex: "ex" # Abbreviation of "example"
# current_value: "Current Value"
# default_value: "Default value"
# parameters: "Parameters"
# returns: "Returns"
# granted_by: "Granted by"
# save_load:
# granularity_saved_games: "Saved"
# granularity_change_history: "History"
@ -745,6 +769,8 @@ module.exports = nativeDescription: "Nederlands (Nederland)", englishDescription
# amount_achieved: "Amount"
# achievement: "Achievement"
# category_contributor: "Contributor"
# category_ladder: "Ladder"
# category_level: "Level"
# category_miscellaneous: "Miscellaneous"
# category_levels: "Levels"
# category_undefined: "Uncategorized"

View file

@ -10,6 +10,7 @@ module.exports = nativeDescription: "Norwegian Nynorsk", englishDescription: "No
# for_beginners: "For Beginners"
# multiplayer: "Multiplayer" # Not currently shown on home page
# for_developers: "For Developers" # Not currently shown on home page.
# or_ipad: "Or download for iPad"
# nav:
# play: "Levels" # The top nav bar entry where players choose which levels to play
@ -207,6 +208,8 @@ module.exports = nativeDescription: "Norwegian Nynorsk", englishDescription: "No
# failing: "Failing"
# action_timeline: "Action Timeline"
# click_to_select: "Click on a unit to select it."
# control_bar_multiplayer: "Multiplayer"
# control_bar_join_game: "Join Game"
# reload: "Reload"
# reload_title: "Reload All Code?"
# reload_really: "Are you sure you want to reload this level back to the beginning?"
@ -319,6 +322,9 @@ module.exports = nativeDescription: "Norwegian Nynorsk", englishDescription: "No
# few_gems: "A few gems"
# pile_gems: "Pile of gems"
# chest_gems: "Chest of gems"
# purchasing: "Purchasing..."
# declined: "Your card was declined"
# retrying: "Server error, retrying."
# choose_hero:
# choose_hero: "Choose Your Hero"
@ -345,6 +351,24 @@ module.exports = nativeDescription: "Norwegian Nynorsk", englishDescription: "No
# blocks: "Blocks" # As in "this shield blocks this much damage"
# skills: "Skills"
# skill_docs:
# writable: "writable" # Hover over "attack" in Your Skills while playing a level to see most of this
# read_only: "read-only"
# action_name: "name"
# action_cooldown: "Takes"
# action_specific_cooldown: "Cooldown"
# action_damage: "Damage"
# action_range: "Range"
# action_radius: "Radius"
# action_duration: "Duration"
# example: "Example"
# ex: "ex" # Abbreviation of "example"
# current_value: "Current Value"
# default_value: "Default value"
# parameters: "Parameters"
# returns: "Returns"
# granted_by: "Granted by"
# save_load:
# granularity_saved_games: "Saved"
# granularity_change_history: "History"
@ -745,6 +769,8 @@ module.exports = nativeDescription: "Norwegian Nynorsk", englishDescription: "No
# amount_achieved: "Amount"
# achievement: "Achievement"
# category_contributor: "Contributor"
# category_ladder: "Ladder"
# category_level: "Level"
# category_miscellaneous: "Miscellaneous"
# category_levels: "Levels"
# category_undefined: "Uncategorized"

View file

@ -10,6 +10,7 @@ module.exports = nativeDescription: "Norsk", englishDescription: "Norwegian", tr
# for_beginners: "For Beginners"
# multiplayer: "Multiplayer" # Not currently shown on home page
# for_developers: "For Developers" # Not currently shown on home page.
# or_ipad: "Or download for iPad"
nav:
play: "Spill" # The top nav bar entry where players choose which levels to play
@ -207,6 +208,8 @@ module.exports = nativeDescription: "Norsk", englishDescription: "Norwegian", tr
# failing: "Failing"
action_timeline: "Hendelsestidslinje"
click_to_select: "Klikk på en enhet for å velge den."
# control_bar_multiplayer: "Multiplayer"
# control_bar_join_game: "Join Game"
# reload: "Reload"
reload_title: "Laste all koden på nytt?"
reload_really: "Er du sikker på at du vil laste dette nivået på nytt, tilbake til begynnelsen?"
@ -319,6 +322,9 @@ module.exports = nativeDescription: "Norsk", englishDescription: "Norwegian", tr
# few_gems: "A few gems"
# pile_gems: "Pile of gems"
# chest_gems: "Chest of gems"
# purchasing: "Purchasing..."
# declined: "Your card was declined"
# retrying: "Server error, retrying."
# choose_hero:
# choose_hero: "Choose Your Hero"
@ -345,6 +351,24 @@ module.exports = nativeDescription: "Norsk", englishDescription: "Norwegian", tr
# blocks: "Blocks" # As in "this shield blocks this much damage"
# skills: "Skills"
# skill_docs:
# writable: "writable" # Hover over "attack" in Your Skills while playing a level to see most of this
# read_only: "read-only"
# action_name: "name"
# action_cooldown: "Takes"
# action_specific_cooldown: "Cooldown"
# action_damage: "Damage"
# action_range: "Range"
# action_radius: "Radius"
# action_duration: "Duration"
# example: "Example"
# ex: "ex" # Abbreviation of "example"
# current_value: "Current Value"
# default_value: "Default value"
# parameters: "Parameters"
# returns: "Returns"
# granted_by: "Granted by"
# save_load:
# granularity_saved_games: "Saved"
# granularity_change_history: "History"
@ -745,6 +769,8 @@ module.exports = nativeDescription: "Norsk", englishDescription: "Norwegian", tr
# amount_achieved: "Amount"
# achievement: "Achievement"
# category_contributor: "Contributor"
# category_ladder: "Ladder"
# category_level: "Level"
# category_miscellaneous: "Miscellaneous"
# category_levels: "Levels"
# category_undefined: "Uncategorized"

View file

@ -10,6 +10,7 @@ module.exports = nativeDescription: "język polski", englishDescription: "Polish
for_beginners: "Dla początkujących"
# multiplayer: "Multiplayer" # Not currently shown on home page
for_developers: "Dla developerów" # Not currently shown on home page.
# or_ipad: "Or download for iPad"
nav:
play: "Graj" # The top nav bar entry where players choose which levels to play
@ -207,6 +208,8 @@ module.exports = nativeDescription: "język polski", englishDescription: "Polish
failing: "Niepowodzenie"
action_timeline: "Oś czasu"
click_to_select: "Kliknij jednostkę, by ją zaznaczyć."
# control_bar_multiplayer: "Multiplayer"
# control_bar_join_game: "Join Game"
# reload: "Reload"
reload_title: "Przywrócić cały kod?"
reload_really: "Czy jesteś pewien, że chcesz przywrócić kod startowy tego poziomu?"
@ -319,6 +322,9 @@ module.exports = nativeDescription: "język polski", englishDescription: "Polish
# few_gems: "A few gems"
# pile_gems: "Pile of gems"
# chest_gems: "Chest of gems"
# purchasing: "Purchasing..."
# declined: "Your card was declined"
# retrying: "Server error, retrying."
choose_hero:
# choose_hero: "Choose Your Hero"
@ -345,6 +351,24 @@ module.exports = nativeDescription: "język polski", englishDescription: "Polish
# blocks: "Blocks" # As in "this shield blocks this much damage"
# skills: "Skills"
# skill_docs:
# writable: "writable" # Hover over "attack" in Your Skills while playing a level to see most of this
# read_only: "read-only"
# action_name: "name"
# action_cooldown: "Takes"
# action_specific_cooldown: "Cooldown"
# action_damage: "Damage"
# action_range: "Range"
# action_radius: "Radius"
# action_duration: "Duration"
# example: "Example"
# ex: "ex" # Abbreviation of "example"
# current_value: "Current Value"
# default_value: "Default value"
# parameters: "Parameters"
# returns: "Returns"
# granted_by: "Granted by"
# save_load:
# granularity_saved_games: "Saved"
# granularity_change_history: "History"
@ -745,6 +769,8 @@ module.exports = nativeDescription: "język polski", englishDescription: "Polish
# amount_achieved: "Amount"
# achievement: "Achievement"
# category_contributor: "Contributor"
# category_ladder: "Ladder"
# category_level: "Level"
# category_miscellaneous: "Miscellaneous"
# category_levels: "Levels"
# category_undefined: "Uncategorized"

View file

@ -10,6 +10,7 @@ module.exports = nativeDescription: "português do Brasil", englishDescription:
for_beginners: "Para Iniciantes"
multiplayer: "Multijogador" # Not currently shown on home page
for_developers: "Para Desenvolvedores" # Not currently shown on home page.
# or_ipad: "Or download for iPad"
nav:
play: "Jogar" # The top nav bar entry where players choose which levels to play
@ -207,6 +208,8 @@ module.exports = nativeDescription: "português do Brasil", englishDescription:
failing: "Falta"
action_timeline: "Linha do Tempo das Ações"
click_to_select: "Clique em um personagem para selecioná-lo."
# control_bar_multiplayer: "Multiplayer"
# control_bar_join_game: "Join Game"
# reload: "Reload"
reload_title: "Recarregar Todo o Código?"
reload_really: "Você tem certeza que quer reiniciar o estágio?"
@ -319,6 +322,9 @@ module.exports = nativeDescription: "português do Brasil", englishDescription:
# few_gems: "A few gems"
# pile_gems: "Pile of gems"
# chest_gems: "Chest of gems"
# purchasing: "Purchasing..."
# declined: "Your card was declined"
# retrying: "Server error, retrying."
choose_hero:
choose_hero: "Escolha seu Herói"
@ -345,6 +351,24 @@ module.exports = nativeDescription: "português do Brasil", englishDescription:
# blocks: "Blocks" # As in "this shield blocks this much damage"
# skills: "Skills"
# skill_docs:
# writable: "writable" # Hover over "attack" in Your Skills while playing a level to see most of this
# read_only: "read-only"
# action_name: "name"
# action_cooldown: "Takes"
# action_specific_cooldown: "Cooldown"
# action_damage: "Damage"
# action_range: "Range"
# action_radius: "Radius"
# action_duration: "Duration"
# example: "Example"
# ex: "ex" # Abbreviation of "example"
# current_value: "Current Value"
# default_value: "Default value"
# parameters: "Parameters"
# returns: "Returns"
# granted_by: "Granted by"
save_load:
granularity_saved_games: "Salvo"
granularity_change_history: "Histórico"
@ -745,6 +769,8 @@ module.exports = nativeDescription: "português do Brasil", englishDescription:
amount_achieved: "Montante"
achievement: "Conquista"
category_contributor: "Cotribuidor"
# category_ladder: "Ladder"
# category_level: "Level"
category_miscellaneous: "Diversos"
category_levels: "Níveis"
category_undefined: "Sem categoria"

View file

@ -10,6 +10,7 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription:
for_beginners: "Para Iniciantes"
multiplayer: "Multijogador" # Not currently shown on home page
for_developers: "Para Programadores" # Not currently shown on home page.
# or_ipad: "Or download for iPad"
nav:
play: "Níveis" # The top nav bar entry where players choose which levels to play
@ -207,6 +208,8 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription:
failing: "A falhar"
action_timeline: "Linha do Tempo de Ações"
click_to_select: "Clica numa unidade para selecioná-la."
# control_bar_multiplayer: "Multiplayer"
# control_bar_join_game: "Join Game"
reload: "Recarregar"
reload_title: "Recarregar o Código Todo?"
reload_really: "Tens a certeza que queres recarregar este nível de volta ao início?"
@ -319,6 +322,9 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription:
few_gems: "Algumas gemas"
pile_gems: "Pilha de gemas"
chest_gems: "Arca de gemas"
# purchasing: "Purchasing..."
# declined: "Your card was declined"
# retrying: "Server error, retrying."
choose_hero:
choose_hero: "Escolhe o Teu Herói"
@ -345,6 +351,24 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription:
blocks: "Bloqueia" # As in "this shield blocks this much damage"
skills: "Habilidades"
# skill_docs:
# writable: "writable" # Hover over "attack" in Your Skills while playing a level to see most of this
# read_only: "read-only"
# action_name: "name"
# action_cooldown: "Takes"
# action_specific_cooldown: "Cooldown"
# action_damage: "Damage"
# action_range: "Range"
# action_radius: "Radius"
# action_duration: "Duration"
# example: "Example"
# ex: "ex" # Abbreviation of "example"
# current_value: "Current Value"
# default_value: "Default value"
# parameters: "Parameters"
# returns: "Returns"
# granted_by: "Granted by"
save_load:
granularity_saved_games: "Guardados"
granularity_change_history: "Histórico"
@ -745,6 +769,8 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription:
amount_achieved: "Quantidade"
achievement: "Conquista"
category_contributor: "Contribuidor"
# category_ladder: "Ladder"
# category_level: "Level"
category_miscellaneous: "Vários"
category_levels: "Níveis"
category_undefined: "Sem Categoria"

View file

@ -10,6 +10,7 @@ module.exports = nativeDescription: "limba română", englishDescription: "Roman
for_beginners: "Pentru Începători"
multiplayer: "Multiplayer" # Not currently shown on home page
for_developers: "Pentru dezvoltatori" # Not currently shown on home page.
# or_ipad: "Or download for iPad"
nav:
play: "Nivele" # The top nav bar entry where players choose which levels to play
@ -207,6 +208,8 @@ module.exports = nativeDescription: "limba română", englishDescription: "Roman
failing: "Eşec"
action_timeline: "Timeline-ul acțiunii"
click_to_select: "Apasă pe o unitate pentru a o selecta."
# control_bar_multiplayer: "Multiplayer"
# control_bar_join_game: "Join Game"
# reload: "Reload"
reload_title: "Reîncarcă tot codul?"
reload_really: "Ești sigur că vrei să reîncarci nivelul de la început?"
@ -319,6 +322,9 @@ module.exports = nativeDescription: "limba română", englishDescription: "Roman
# few_gems: "A few gems"
# pile_gems: "Pile of gems"
# chest_gems: "Chest of gems"
# purchasing: "Purchasing..."
# declined: "Your card was declined"
# retrying: "Server error, retrying."
choose_hero:
# choose_hero: "Choose Your Hero"
@ -345,6 +351,24 @@ module.exports = nativeDescription: "limba română", englishDescription: "Roman
# blocks: "Blocks" # As in "this shield blocks this much damage"
# skills: "Skills"
# skill_docs:
# writable: "writable" # Hover over "attack" in Your Skills while playing a level to see most of this
# read_only: "read-only"
# action_name: "name"
# action_cooldown: "Takes"
# action_specific_cooldown: "Cooldown"
# action_damage: "Damage"
# action_range: "Range"
# action_radius: "Radius"
# action_duration: "Duration"
# example: "Example"
# ex: "ex" # Abbreviation of "example"
# current_value: "Current Value"
# default_value: "Default value"
# parameters: "Parameters"
# returns: "Returns"
# granted_by: "Granted by"
# save_load:
# granularity_saved_games: "Saved"
# granularity_change_history: "History"
@ -745,6 +769,8 @@ module.exports = nativeDescription: "limba română", englishDescription: "Roman
# amount_achieved: "Amount"
# achievement: "Achievement"
# category_contributor: "Contributor"
# category_ladder: "Ladder"
# category_level: "Level"
# category_miscellaneous: "Miscellaneous"
# category_levels: "Levels"
# category_undefined: "Uncategorized"

View file

@ -10,6 +10,7 @@ module.exports = nativeDescription: "русский", englishDescription: "Russi
for_beginners: "Новичкам"
multiplayer: "Мультиплеер" # Not currently shown on home page
for_developers: "Разработчикам" # Not currently shown on home page.
# or_ipad: "Or download for iPad"
nav:
play: "Уровни" # The top nav bar entry where players choose which levels to play
@ -207,6 +208,8 @@ module.exports = nativeDescription: "русский", englishDescription: "Russi
failing: "Неудача"
action_timeline: "График действий"
click_to_select: "Выберите персонажа, щёлкнув на нём"
# control_bar_multiplayer: "Multiplayer"
# control_bar_join_game: "Join Game"
reload: "Перезагрузить"
reload_title: "Перезагрузить код полностью?"
reload_really: "Вы уверены, что хотите начать уровень сначала?"
@ -319,6 +322,9 @@ module.exports = nativeDescription: "русский", englishDescription: "Russi
few_gems: "Немного самоцветов"
pile_gems: "Кучка самоцветов"
chest_gems: "Сундук с самоцветами"
# purchasing: "Purchasing..."
# declined: "Your card was declined"
# retrying: "Server error, retrying."
choose_hero:
choose_hero: "Выберите героя"
@ -345,6 +351,24 @@ module.exports = nativeDescription: "русский", englishDescription: "Russi
blocks: "Блокирует" # As in "this shield blocks this much damage"
skills: "Умения"
# skill_docs:
# writable: "writable" # Hover over "attack" in Your Skills while playing a level to see most of this
# read_only: "read-only"
# action_name: "name"
# action_cooldown: "Takes"
# action_specific_cooldown: "Cooldown"
# action_damage: "Damage"
# action_range: "Range"
# action_radius: "Radius"
# action_duration: "Duration"
# example: "Example"
# ex: "ex" # Abbreviation of "example"
# current_value: "Current Value"
# default_value: "Default value"
# parameters: "Parameters"
# returns: "Returns"
# granted_by: "Granted by"
save_load:
granularity_saved_games: "Сохранено"
granularity_change_history: "История"
@ -745,6 +769,8 @@ module.exports = nativeDescription: "русский", englishDescription: "Russi
amount_achieved: "Количество"
achievement: "Достижение"
category_contributor: "Помощь"
# category_ladder: "Ladder"
# category_level: "Level"
category_miscellaneous: "Помощь"
category_levels: "Уровни"
category_undefined: "Неопределено"

View file

@ -10,6 +10,7 @@ module.exports = nativeDescription: "slovenčina", englishDescription: "Slovak",
for_beginners: "Pre začiatočníkov"
# multiplayer: "Multiplayer" # Not currently shown on home page
for_developers: "Pre vývojárov" # Not currently shown on home page.
# or_ipad: "Or download for iPad"
nav:
play: "Hraj" # The top nav bar entry where players choose which levels to play
@ -207,6 +208,8 @@ module.exports = nativeDescription: "slovenčina", englishDescription: "Slovak",
# failing: "Failing"
# action_timeline: "Action Timeline"
# click_to_select: "Click on a unit to select it."
# control_bar_multiplayer: "Multiplayer"
# control_bar_join_game: "Join Game"
# reload: "Reload"
# reload_title: "Reload All Code?"
# reload_really: "Are you sure you want to reload this level back to the beginning?"
@ -319,6 +322,9 @@ module.exports = nativeDescription: "slovenčina", englishDescription: "Slovak",
# few_gems: "A few gems"
# pile_gems: "Pile of gems"
# chest_gems: "Chest of gems"
# purchasing: "Purchasing..."
# declined: "Your card was declined"
# retrying: "Server error, retrying."
# choose_hero:
# choose_hero: "Choose Your Hero"
@ -345,6 +351,24 @@ module.exports = nativeDescription: "slovenčina", englishDescription: "Slovak",
# blocks: "Blocks" # As in "this shield blocks this much damage"
# skills: "Skills"
# skill_docs:
# writable: "writable" # Hover over "attack" in Your Skills while playing a level to see most of this
# read_only: "read-only"
# action_name: "name"
# action_cooldown: "Takes"
# action_specific_cooldown: "Cooldown"
# action_damage: "Damage"
# action_range: "Range"
# action_radius: "Radius"
# action_duration: "Duration"
# example: "Example"
# ex: "ex" # Abbreviation of "example"
# current_value: "Current Value"
# default_value: "Default value"
# parameters: "Parameters"
# returns: "Returns"
# granted_by: "Granted by"
# save_load:
# granularity_saved_games: "Saved"
# granularity_change_history: "History"
@ -745,6 +769,8 @@ module.exports = nativeDescription: "slovenčina", englishDescription: "Slovak",
# amount_achieved: "Amount"
# achievement: "Achievement"
# category_contributor: "Contributor"
# category_ladder: "Ladder"
# category_level: "Level"
# category_miscellaneous: "Miscellaneous"
# category_levels: "Levels"
# category_undefined: "Uncategorized"

View file

@ -10,6 +10,7 @@ module.exports = nativeDescription: "slovenščina", englishDescription: "Sloven
# for_beginners: "For Beginners"
# multiplayer: "Multiplayer" # Not currently shown on home page
# for_developers: "For Developers" # Not currently shown on home page.
# or_ipad: "Or download for iPad"
# nav:
# play: "Levels" # The top nav bar entry where players choose which levels to play
@ -207,6 +208,8 @@ module.exports = nativeDescription: "slovenščina", englishDescription: "Sloven
# failing: "Failing"
# action_timeline: "Action Timeline"
# click_to_select: "Click on a unit to select it."
# control_bar_multiplayer: "Multiplayer"
# control_bar_join_game: "Join Game"
# reload: "Reload"
# reload_title: "Reload All Code?"
# reload_really: "Are you sure you want to reload this level back to the beginning?"
@ -319,6 +322,9 @@ module.exports = nativeDescription: "slovenščina", englishDescription: "Sloven
# few_gems: "A few gems"
# pile_gems: "Pile of gems"
# chest_gems: "Chest of gems"
# purchasing: "Purchasing..."
# declined: "Your card was declined"
# retrying: "Server error, retrying."
# choose_hero:
# choose_hero: "Choose Your Hero"
@ -345,6 +351,24 @@ module.exports = nativeDescription: "slovenščina", englishDescription: "Sloven
# blocks: "Blocks" # As in "this shield blocks this much damage"
# skills: "Skills"
# skill_docs:
# writable: "writable" # Hover over "attack" in Your Skills while playing a level to see most of this
# read_only: "read-only"
# action_name: "name"
# action_cooldown: "Takes"
# action_specific_cooldown: "Cooldown"
# action_damage: "Damage"
# action_range: "Range"
# action_radius: "Radius"
# action_duration: "Duration"
# example: "Example"
# ex: "ex" # Abbreviation of "example"
# current_value: "Current Value"
# default_value: "Default value"
# parameters: "Parameters"
# returns: "Returns"
# granted_by: "Granted by"
# save_load:
# granularity_saved_games: "Saved"
# granularity_change_history: "History"
@ -745,6 +769,8 @@ module.exports = nativeDescription: "slovenščina", englishDescription: "Sloven
# amount_achieved: "Amount"
# achievement: "Achievement"
# category_contributor: "Contributor"
# category_ladder: "Ladder"
# category_level: "Level"
# category_miscellaneous: "Miscellaneous"
# category_levels: "Levels"
# category_undefined: "Uncategorized"

View file

@ -10,6 +10,7 @@ module.exports = nativeDescription: "српски", englishDescription: "Serbian
# for_beginners: "For Beginners"
# multiplayer: "Multiplayer" # Not currently shown on home page
# for_developers: "For Developers" # Not currently shown on home page.
# or_ipad: "Or download for iPad"
nav:
play: "Нивои" # The top nav bar entry where players choose which levels to play
@ -207,6 +208,8 @@ module.exports = nativeDescription: "српски", englishDescription: "Serbian
# failing: "Failing"
action_timeline: "Временска линија акције"
click_to_select: "Кликни на јединицу да је селектујеш"
# control_bar_multiplayer: "Multiplayer"
# control_bar_join_game: "Join Game"
# reload: "Reload"
reload_title: "Поновно учитавање целог кода?"
reload_really: "Да ли сте сигурни да желите да кренете ниво испочетка?"
@ -319,6 +322,9 @@ module.exports = nativeDescription: "српски", englishDescription: "Serbian
# few_gems: "A few gems"
# pile_gems: "Pile of gems"
# chest_gems: "Chest of gems"
# purchasing: "Purchasing..."
# declined: "Your card was declined"
# retrying: "Server error, retrying."
# choose_hero:
# choose_hero: "Choose Your Hero"
@ -345,6 +351,24 @@ module.exports = nativeDescription: "српски", englishDescription: "Serbian
# blocks: "Blocks" # As in "this shield blocks this much damage"
# skills: "Skills"
# skill_docs:
# writable: "writable" # Hover over "attack" in Your Skills while playing a level to see most of this
# read_only: "read-only"
# action_name: "name"
# action_cooldown: "Takes"
# action_specific_cooldown: "Cooldown"
# action_damage: "Damage"
# action_range: "Range"
# action_radius: "Radius"
# action_duration: "Duration"
# example: "Example"
# ex: "ex" # Abbreviation of "example"
# current_value: "Current Value"
# default_value: "Default value"
# parameters: "Parameters"
# returns: "Returns"
# granted_by: "Granted by"
# save_load:
# granularity_saved_games: "Saved"
# granularity_change_history: "History"
@ -745,6 +769,8 @@ module.exports = nativeDescription: "српски", englishDescription: "Serbian
# amount_achieved: "Amount"
# achievement: "Achievement"
# category_contributor: "Contributor"
# category_ladder: "Ladder"
# category_level: "Level"
# category_miscellaneous: "Miscellaneous"
# category_levels: "Levels"
# category_undefined: "Uncategorized"

View file

@ -10,6 +10,7 @@ module.exports = nativeDescription: "Svenska", englishDescription: "Swedish", tr
for_beginners: "För nybörjare"
multiplayer: "Flera spelare" # Not currently shown on home page
for_developers: "För utvecklare" # Not currently shown on home page.
# or_ipad: "Or download for iPad"
nav:
play: "Spela" # The top nav bar entry where players choose which levels to play
@ -207,6 +208,8 @@ module.exports = nativeDescription: "Svenska", englishDescription: "Swedish", tr
# failing: "Failing"
action_timeline: "Händelse-tidslinje"
click_to_select: "Klicka på en enhet för att välja den."
# control_bar_multiplayer: "Multiplayer"
# control_bar_join_game: "Join Game"
# reload: "Reload"
reload_title: "Ladda om all kod?"
reload_really: "Är du säker på att du vill ladda om nivån från början?"
@ -319,6 +322,9 @@ module.exports = nativeDescription: "Svenska", englishDescription: "Swedish", tr
# few_gems: "A few gems"
# pile_gems: "Pile of gems"
# chest_gems: "Chest of gems"
# purchasing: "Purchasing..."
# declined: "Your card was declined"
# retrying: "Server error, retrying."
# choose_hero:
# choose_hero: "Choose Your Hero"
@ -345,6 +351,24 @@ module.exports = nativeDescription: "Svenska", englishDescription: "Swedish", tr
# blocks: "Blocks" # As in "this shield blocks this much damage"
# skills: "Skills"
# skill_docs:
# writable: "writable" # Hover over "attack" in Your Skills while playing a level to see most of this
# read_only: "read-only"
# action_name: "name"
# action_cooldown: "Takes"
# action_specific_cooldown: "Cooldown"
# action_damage: "Damage"
# action_range: "Range"
# action_radius: "Radius"
# action_duration: "Duration"
# example: "Example"
# ex: "ex" # Abbreviation of "example"
# current_value: "Current Value"
# default_value: "Default value"
# parameters: "Parameters"
# returns: "Returns"
# granted_by: "Granted by"
# save_load:
# granularity_saved_games: "Saved"
# granularity_change_history: "History"
@ -745,6 +769,8 @@ module.exports = nativeDescription: "Svenska", englishDescription: "Swedish", tr
# amount_achieved: "Amount"
# achievement: "Achievement"
# category_contributor: "Contributor"
# category_ladder: "Ladder"
# category_level: "Level"
# category_miscellaneous: "Miscellaneous"
# category_levels: "Levels"
# category_undefined: "Uncategorized"

View file

@ -10,6 +10,7 @@ module.exports = nativeDescription: "ไทย", englishDescription: "Thai", tra
# for_beginners: "For Beginners"
# multiplayer: "Multiplayer" # Not currently shown on home page
# for_developers: "For Developers" # Not currently shown on home page.
# or_ipad: "Or download for iPad"
nav:
play: "เล่น" # The top nav bar entry where players choose which levels to play
@ -207,6 +208,8 @@ module.exports = nativeDescription: "ไทย", englishDescription: "Thai", tra
# failing: "Failing"
# action_timeline: "Action Timeline"
# click_to_select: "Click on a unit to select it."
# control_bar_multiplayer: "Multiplayer"
# control_bar_join_game: "Join Game"
# reload: "Reload"
# reload_title: "Reload All Code?"
# reload_really: "Are you sure you want to reload this level back to the beginning?"
@ -319,6 +322,9 @@ module.exports = nativeDescription: "ไทย", englishDescription: "Thai", tra
# few_gems: "A few gems"
# pile_gems: "Pile of gems"
# chest_gems: "Chest of gems"
# purchasing: "Purchasing..."
# declined: "Your card was declined"
# retrying: "Server error, retrying."
# choose_hero:
# choose_hero: "Choose Your Hero"
@ -345,6 +351,24 @@ module.exports = nativeDescription: "ไทย", englishDescription: "Thai", tra
# blocks: "Blocks" # As in "this shield blocks this much damage"
# skills: "Skills"
# skill_docs:
# writable: "writable" # Hover over "attack" in Your Skills while playing a level to see most of this
# read_only: "read-only"
# action_name: "name"
# action_cooldown: "Takes"
# action_specific_cooldown: "Cooldown"
# action_damage: "Damage"
# action_range: "Range"
# action_radius: "Radius"
# action_duration: "Duration"
# example: "Example"
# ex: "ex" # Abbreviation of "example"
# current_value: "Current Value"
# default_value: "Default value"
# parameters: "Parameters"
# returns: "Returns"
# granted_by: "Granted by"
# save_load:
# granularity_saved_games: "Saved"
# granularity_change_history: "History"
@ -745,6 +769,8 @@ module.exports = nativeDescription: "ไทย", englishDescription: "Thai", tra
# amount_achieved: "Amount"
# achievement: "Achievement"
# category_contributor: "Contributor"
# category_ladder: "Ladder"
# category_level: "Level"
# category_miscellaneous: "Miscellaneous"
# category_levels: "Levels"
# category_undefined: "Uncategorized"

View file

@ -10,6 +10,7 @@ module.exports = nativeDescription: "Türkçe", englishDescription: "Turkish", t
for_beginners: "Yeni Başlayanlar için"
multiplayer: "Çoklu-oyuncu Kipi" # Not currently shown on home page
for_developers: "Geliştiriciler için" # Not currently shown on home page.
# or_ipad: "Or download for iPad"
nav:
play: "Oyna" # The top nav bar entry where players choose which levels to play
@ -207,6 +208,8 @@ module.exports = nativeDescription: "Türkçe", englishDescription: "Turkish", t
failing: "Başarısız"
action_timeline: "Eylem Çizelgesi"
click_to_select: "Birimi seçmek için üzerine tıklayın."
# control_bar_multiplayer: "Multiplayer"
# control_bar_join_game: "Join Game"
# reload: "Reload"
reload_title: "Tüm kod yeniden yüklensin mi?"
reload_really: "Bu seviyeyi en baştan yüklemek istediğinizden emin misiniz?"
@ -319,6 +322,9 @@ module.exports = nativeDescription: "Türkçe", englishDescription: "Turkish", t
# few_gems: "A few gems"
# pile_gems: "Pile of gems"
# chest_gems: "Chest of gems"
# purchasing: "Purchasing..."
# declined: "Your card was declined"
# retrying: "Server error, retrying."
choose_hero:
choose_hero: "Kahramanınızı Seçin"
@ -345,6 +351,24 @@ module.exports = nativeDescription: "Türkçe", englishDescription: "Turkish", t
# blocks: "Blocks" # As in "this shield blocks this much damage"
skills: "Yetenekler"
# skill_docs:
# writable: "writable" # Hover over "attack" in Your Skills while playing a level to see most of this
# read_only: "read-only"
# action_name: "name"
# action_cooldown: "Takes"
# action_specific_cooldown: "Cooldown"
# action_damage: "Damage"
# action_range: "Range"
# action_radius: "Radius"
# action_duration: "Duration"
# example: "Example"
# ex: "ex" # Abbreviation of "example"
# current_value: "Current Value"
# default_value: "Default value"
# parameters: "Parameters"
# returns: "Returns"
# granted_by: "Granted by"
save_load:
granularity_saved_games: "Kaydedildi"
granularity_change_history: "Geçmiş"
@ -745,6 +769,8 @@ module.exports = nativeDescription: "Türkçe", englishDescription: "Turkish", t
# amount_achieved: "Amount"
# achievement: "Achievement"
# category_contributor: "Contributor"
# category_ladder: "Ladder"
# category_level: "Level"
# category_miscellaneous: "Miscellaneous"
# category_levels: "Levels"
# category_undefined: "Uncategorized"

View file

@ -10,6 +10,7 @@ module.exports = nativeDescription: "українська мова", englishDesc
for_beginners: "Для новачків"
multiplayer: "Командна гра" # Not currently shown on home page
for_developers: "Для розробників" # Not currently shown on home page.
# or_ipad: "Or download for iPad"
nav:
play: "Грати" # The top nav bar entry where players choose which levels to play
@ -207,6 +208,8 @@ module.exports = nativeDescription: "українська мова", englishDesc
# failing: "Failing"
action_timeline: "Лінія часу"
click_to_select: "Клікніть на юніті, щоб обрати його."
# control_bar_multiplayer: "Multiplayer"
# control_bar_join_game: "Join Game"
# reload: "Reload"
reload_title: "Перезавантажити весь код?"
reload_really: "Ви впевнені, що хочете перезавантажити цей рівень і почати спочатку?"
@ -319,6 +322,9 @@ module.exports = nativeDescription: "українська мова", englishDesc
# few_gems: "A few gems"
# pile_gems: "Pile of gems"
# chest_gems: "Chest of gems"
# purchasing: "Purchasing..."
# declined: "Your card was declined"
# retrying: "Server error, retrying."
# choose_hero:
# choose_hero: "Choose Your Hero"
@ -345,6 +351,24 @@ module.exports = nativeDescription: "українська мова", englishDesc
# blocks: "Blocks" # As in "this shield blocks this much damage"
# skills: "Skills"
# skill_docs:
# writable: "writable" # Hover over "attack" in Your Skills while playing a level to see most of this
# read_only: "read-only"
# action_name: "name"
# action_cooldown: "Takes"
# action_specific_cooldown: "Cooldown"
# action_damage: "Damage"
# action_range: "Range"
# action_radius: "Radius"
# action_duration: "Duration"
# example: "Example"
# ex: "ex" # Abbreviation of "example"
# current_value: "Current Value"
# default_value: "Default value"
# parameters: "Parameters"
# returns: "Returns"
# granted_by: "Granted by"
# save_load:
# granularity_saved_games: "Saved"
# granularity_change_history: "History"
@ -745,6 +769,8 @@ module.exports = nativeDescription: "українська мова", englishDesc
# amount_achieved: "Amount"
# achievement: "Achievement"
# category_contributor: "Contributor"
# category_ladder: "Ladder"
# category_level: "Level"
# category_miscellaneous: "Miscellaneous"
# category_levels: "Levels"
# category_undefined: "Uncategorized"

View file

@ -10,6 +10,7 @@ module.exports = nativeDescription: "اُردُو", englishDescription: "Urdu",
# for_beginners: "For Beginners"
# multiplayer: "Multiplayer" # Not currently shown on home page
# for_developers: "For Developers" # Not currently shown on home page.
# or_ipad: "Or download for iPad"
# nav:
# play: "Levels" # The top nav bar entry where players choose which levels to play
@ -207,6 +208,8 @@ module.exports = nativeDescription: "اُردُو", englishDescription: "Urdu",
# failing: "Failing"
# action_timeline: "Action Timeline"
# click_to_select: "Click on a unit to select it."
# control_bar_multiplayer: "Multiplayer"
# control_bar_join_game: "Join Game"
# reload: "Reload"
# reload_title: "Reload All Code?"
# reload_really: "Are you sure you want to reload this level back to the beginning?"
@ -319,6 +322,9 @@ module.exports = nativeDescription: "اُردُو", englishDescription: "Urdu",
# few_gems: "A few gems"
# pile_gems: "Pile of gems"
# chest_gems: "Chest of gems"
# purchasing: "Purchasing..."
# declined: "Your card was declined"
# retrying: "Server error, retrying."
# choose_hero:
# choose_hero: "Choose Your Hero"
@ -345,6 +351,24 @@ module.exports = nativeDescription: "اُردُو", englishDescription: "Urdu",
# blocks: "Blocks" # As in "this shield blocks this much damage"
# skills: "Skills"
# skill_docs:
# writable: "writable" # Hover over "attack" in Your Skills while playing a level to see most of this
# read_only: "read-only"
# action_name: "name"
# action_cooldown: "Takes"
# action_specific_cooldown: "Cooldown"
# action_damage: "Damage"
# action_range: "Range"
# action_radius: "Radius"
# action_duration: "Duration"
# example: "Example"
# ex: "ex" # Abbreviation of "example"
# current_value: "Current Value"
# default_value: "Default value"
# parameters: "Parameters"
# returns: "Returns"
# granted_by: "Granted by"
# save_load:
# granularity_saved_games: "Saved"
# granularity_change_history: "History"
@ -745,6 +769,8 @@ module.exports = nativeDescription: "اُردُو", englishDescription: "Urdu",
# amount_achieved: "Amount"
# achievement: "Achievement"
# category_contributor: "Contributor"
# category_ladder: "Ladder"
# category_level: "Level"
# category_miscellaneous: "Miscellaneous"
# category_levels: "Levels"
# category_undefined: "Uncategorized"

View file

@ -10,6 +10,7 @@ module.exports = nativeDescription: "Tiếng Việt", englishDescription: "Vietn
for_beginners: "Dành cho người bắt đầu chơi"
# multiplayer: "Multiplayer" # Not currently shown on home page
# for_developers: "For Developers" # Not currently shown on home page.
# or_ipad: "Or download for iPad"
nav:
play: "Các cấp độ" # The top nav bar entry where players choose which levels to play
@ -207,6 +208,8 @@ module.exports = nativeDescription: "Tiếng Việt", englishDescription: "Vietn
# failing: "Failing"
# action_timeline: "Action Timeline"
click_to_select: "Kích vào đơn vị để chọn nó."
# control_bar_multiplayer: "Multiplayer"
# control_bar_join_game: "Join Game"
# reload: "Reload"
reload_title: "Tải lại tất cả mã?"
# reload_really: "Are you sure you want to reload this level back to the beginning?"
@ -319,6 +322,9 @@ module.exports = nativeDescription: "Tiếng Việt", englishDescription: "Vietn
# few_gems: "A few gems"
# pile_gems: "Pile of gems"
# chest_gems: "Chest of gems"
# purchasing: "Purchasing..."
# declined: "Your card was declined"
# retrying: "Server error, retrying."
# choose_hero:
# choose_hero: "Choose Your Hero"
@ -345,6 +351,24 @@ module.exports = nativeDescription: "Tiếng Việt", englishDescription: "Vietn
# blocks: "Blocks" # As in "this shield blocks this much damage"
# skills: "Skills"
# skill_docs:
# writable: "writable" # Hover over "attack" in Your Skills while playing a level to see most of this
# read_only: "read-only"
# action_name: "name"
# action_cooldown: "Takes"
# action_specific_cooldown: "Cooldown"
# action_damage: "Damage"
# action_range: "Range"
# action_radius: "Radius"
# action_duration: "Duration"
# example: "Example"
# ex: "ex" # Abbreviation of "example"
# current_value: "Current Value"
# default_value: "Default value"
# parameters: "Parameters"
# returns: "Returns"
# granted_by: "Granted by"
# save_load:
# granularity_saved_games: "Saved"
# granularity_change_history: "History"
@ -745,6 +769,8 @@ module.exports = nativeDescription: "Tiếng Việt", englishDescription: "Vietn
# amount_achieved: "Amount"
# achievement: "Achievement"
# category_contributor: "Contributor"
# category_ladder: "Ladder"
# category_level: "Level"
# category_miscellaneous: "Miscellaneous"
# category_levels: "Levels"
# category_undefined: "Uncategorized"

View file

@ -10,6 +10,7 @@ module.exports = nativeDescription: "简体中文", englishDescription: "Chinese
for_beginners: "适合初学者"
multiplayer: "多人游戏" # Not currently shown on home page
for_developers: "适合开发者" # Not currently shown on home page.
# or_ipad: "Or download for iPad"
nav:
play: "关卡选择" # The top nav bar entry where players choose which levels to play
@ -55,7 +56,7 @@ module.exports = nativeDescription: "简体中文", englishDescription: "Chinese
confirm: "确认"
owned: "已拥有" # For items you own
locked: "需解锁"
available: "可用" # Available
available: "可用"
skills_granted: "获得技能" # Property documentation details
heroes: "英雄" # Tooltip on hero shop button from /play
achievements: "成就" # Tooltip on achievement list button from /play
@ -64,14 +65,14 @@ module.exports = nativeDescription: "简体中文", englishDescription: "Chinese
next: "下一步" # Go from choose hero to choose inventory before playing a level
change_hero: "重新选择英雄" # Go back from choose inventory to choose hero
choose_inventory: "装备道具"
buy_gems: "购买宝石" # Buy Gems
buy_gems: "购买宝石"
older_campaigns: "旧的战役"
anonymous: "匿名玩家"
level_difficulty: "难度:"
campaign_beginner: "新手作战"
awaiting_levels_adventurer_prefix: "我们每周开放五个关卡"
awaiting_levels_adventurer: "注册成为冒险家" #"Sign up as an Adventurer"
awaiting_levels_adventurer_suffix: "来优先尝试新关卡" #to be the first to play new levels."
awaiting_levels_adventurer: "注册成为冒险家"
awaiting_levels_adventurer_suffix: "来优先尝试新关卡"
choose_your_level: "选择关卡" # The rest of this section is the old play view at /play-old and isn't very important.
adventurer_prefix: "你可以选择以下任意关卡,或者讨论以上的关卡。到"
adventurer_forum: "冒险者论坛"
@ -86,8 +87,8 @@ module.exports = nativeDescription: "简体中文", englishDescription: "Chinese
campaign_player_created_description: "……在这里你可以与你的小伙伴的创造力战斗 <a href=\"/contribute#artisan\">技术指导</a>."
campaign_classic_algorithms: "经典算法"
campaign_classic_algorithms_description: "... 你可以在此学习到计算机科学中最常用的算法"
campaign_forest: "森林战役" #Forest Campaign"
campaign_dungeon: "地牢战役" #Dungeon Campaign"
campaign_forest: "森林战役"
campaign_dungeon: "地牢战役"
login:
sign_up: "注册"
@ -95,10 +96,10 @@ module.exports = nativeDescription: "简体中文", englishDescription: "Chinese
logging_in: "正在登录"
log_out: "登出"
recover: "找回账户"
authenticate_gplus: "使用 G+ 授权"#Authenticate G+"
load_profile: "载入 G+ 档案" # Load G+ Profile"
load_email: "载入 G+ 电子邮件" #Load G+ Email"
finishing: "完成..." #Finishing"
authenticate_gplus: "使用 G+ 授权"
load_profile: "载入 G+ 档案"
load_email: "载入 G+ 电子邮件"
finishing: "完成..."
signup:
create_account_title: "创建一个账户来保存进度"
@ -118,8 +119,8 @@ module.exports = nativeDescription: "简体中文", englishDescription: "Chinese
recovery_sent: "找回账户邮件已发送."
items:
primary: "右手"#"Primary"
secondary: "左手"#Secondary"
primary: "右手"
secondary: "左手"
armor: "盔甲"
accessories: "配饰"
misc: "辅助道具"
@ -207,6 +208,8 @@ module.exports = nativeDescription: "简体中文", englishDescription: "Chinese
failing: "失败"
action_timeline: "行动时间轴"
click_to_select: "点击选择一个单元。"
# control_bar_multiplayer: "Multiplayer"
# control_bar_join_game: "Join Game"
reload: "重载"
reload_title: "重载所有代码?"
reload_really: "确定重载这一关,返回开始处吗?"
@ -315,10 +318,13 @@ module.exports = nativeDescription: "简体中文", englishDescription: "Chinese
equip: "装备"
unequip: "取消装备"
buy_gems:
buy_gems:
few_gems: "几个宝石"
pile_gems: "一堆宝石"
chest_gems: "一箱宝石"
# purchasing: "Purchasing..."
# declined: "Your card was declined"
# retrying: "Server error, retrying."
choose_hero:
choose_hero: "请选择您的英雄"
@ -345,6 +351,24 @@ module.exports = nativeDescription: "简体中文", englishDescription: "Chinese
blocks: "格挡" # As in "this shield blocks this much damage"
skills: "技能"
# skill_docs:
# writable: "writable" # Hover over "attack" in Your Skills while playing a level to see most of this
# read_only: "read-only"
# action_name: "name"
# action_cooldown: "Takes"
# action_specific_cooldown: "Cooldown"
# action_damage: "Damage"
# action_range: "Range"
# action_radius: "Radius"
# action_duration: "Duration"
# example: "Example"
# ex: "ex" # Abbreviation of "example"
# current_value: "Current Value"
# default_value: "Default value"
# parameters: "Parameters"
# returns: "Returns"
# granted_by: "Granted by"
save_load:
granularity_saved_games: "保存"
granularity_change_history: "历史记录"
@ -698,7 +722,7 @@ module.exports = nativeDescription: "简体中文", englishDescription: "Chinese
rank_last_submitted: "已提交"
help_simulate: "模拟游戏需要帮助?"
code_being_simulated: "你的新代码正在被其他玩家模拟评分。这个将会刷新,作为一个新游戏开始。"
# no_ranked_matches_pre: "No ranked matches for the "
# no_ranked_matches_pre: "No ranked matches for the "
# no_ranked_matches_post: " team! Play against some competitors and then come back here to get your game ranked."
choose_opponent: "选择一个对手"
select_your_language: "选择你使用的语言!"
@ -745,6 +769,8 @@ module.exports = nativeDescription: "简体中文", englishDescription: "Chinese
amount_achieved: "数量"
achievement: "成就"
category_contributor: "贡献"
# category_ladder: "Ladder"
# category_level: "Level"
category_miscellaneous: "其他"
category_levels: "等级"
category_undefined: "未分类"

View file

@ -10,6 +10,7 @@ module.exports = nativeDescription: "繁体中文", englishDescription: "Chinese
# for_beginners: "For Beginners"
# multiplayer: "Multiplayer" # Not currently shown on home page
# for_developers: "For Developers" # Not currently shown on home page.
# or_ipad: "Or download for iPad"
nav:
play: "開始遊戲" # The top nav bar entry where players choose which levels to play
@ -207,6 +208,8 @@ module.exports = nativeDescription: "繁体中文", englishDescription: "Chinese
# failing: "Failing"
action_timeline: "行動時間軸"
click_to_select: "點擊選擇一個單元。"
# control_bar_multiplayer: "Multiplayer"
# control_bar_join_game: "Join Game"
# reload: "Reload"
reload_title: "重新載入程式碼?"
reload_really: "確定重設所有的程式碼?"
@ -319,6 +322,9 @@ module.exports = nativeDescription: "繁体中文", englishDescription: "Chinese
# few_gems: "A few gems"
# pile_gems: "Pile of gems"
# chest_gems: "Chest of gems"
# purchasing: "Purchasing..."
# declined: "Your card was declined"
# retrying: "Server error, retrying."
# choose_hero:
# choose_hero: "Choose Your Hero"
@ -345,6 +351,24 @@ module.exports = nativeDescription: "繁体中文", englishDescription: "Chinese
# blocks: "Blocks" # As in "this shield blocks this much damage"
# skills: "Skills"
# skill_docs:
# writable: "writable" # Hover over "attack" in Your Skills while playing a level to see most of this
# read_only: "read-only"
# action_name: "name"
# action_cooldown: "Takes"
# action_specific_cooldown: "Cooldown"
# action_damage: "Damage"
# action_range: "Range"
# action_radius: "Radius"
# action_duration: "Duration"
# example: "Example"
# ex: "ex" # Abbreviation of "example"
# current_value: "Current Value"
# default_value: "Default value"
# parameters: "Parameters"
# returns: "Returns"
# granted_by: "Granted by"
# save_load:
# granularity_saved_games: "Saved"
# granularity_change_history: "History"
@ -745,6 +769,8 @@ module.exports = nativeDescription: "繁体中文", englishDescription: "Chinese
amount_achieved: "數量"
achievement: "成就"
category_contributor: "貢獻者"
# category_ladder: "Ladder"
# category_level: "Level"
# category_miscellaneous: "Miscellaneous"
category_levels: "等級"
category_undefined: "未定義"

View file

@ -10,6 +10,7 @@ module.exports = nativeDescription: "吴语", englishDescription: "Wuu (Simplifi
# for_beginners: "For Beginners"
# multiplayer: "Multiplayer" # Not currently shown on home page
# for_developers: "For Developers" # Not currently shown on home page.
# or_ipad: "Or download for iPad"
# nav:
# play: "Levels" # The top nav bar entry where players choose which levels to play
@ -207,6 +208,8 @@ module.exports = nativeDescription: "吴语", englishDescription: "Wuu (Simplifi
# failing: "Failing"
# action_timeline: "Action Timeline"
# click_to_select: "Click on a unit to select it."
# control_bar_multiplayer: "Multiplayer"
# control_bar_join_game: "Join Game"
# reload: "Reload"
# reload_title: "Reload All Code?"
# reload_really: "Are you sure you want to reload this level back to the beginning?"
@ -319,6 +322,9 @@ module.exports = nativeDescription: "吴语", englishDescription: "Wuu (Simplifi
# few_gems: "A few gems"
# pile_gems: "Pile of gems"
# chest_gems: "Chest of gems"
# purchasing: "Purchasing..."
# declined: "Your card was declined"
# retrying: "Server error, retrying."
# choose_hero:
# choose_hero: "Choose Your Hero"
@ -345,6 +351,24 @@ module.exports = nativeDescription: "吴语", englishDescription: "Wuu (Simplifi
# blocks: "Blocks" # As in "this shield blocks this much damage"
# skills: "Skills"
# skill_docs:
# writable: "writable" # Hover over "attack" in Your Skills while playing a level to see most of this
# read_only: "read-only"
# action_name: "name"
# action_cooldown: "Takes"
# action_specific_cooldown: "Cooldown"
# action_damage: "Damage"
# action_range: "Range"
# action_radius: "Radius"
# action_duration: "Duration"
# example: "Example"
# ex: "ex" # Abbreviation of "example"
# current_value: "Current Value"
# default_value: "Default value"
# parameters: "Parameters"
# returns: "Returns"
# granted_by: "Granted by"
# save_load:
# granularity_saved_games: "Saved"
# granularity_change_history: "History"
@ -745,6 +769,8 @@ module.exports = nativeDescription: "吴语", englishDescription: "Wuu (Simplifi
# amount_achieved: "Amount"
# achievement: "Achievement"
# category_contributor: "Contributor"
# category_ladder: "Ladder"
# category_level: "Level"
# category_miscellaneous: "Miscellaneous"
# category_levels: "Levels"
# category_undefined: "Uncategorized"

View file

@ -10,6 +10,7 @@ module.exports = nativeDescription: "吳語", englishDescription: "Wuu (Traditio
for_beginners: "適合學起頭個人"
multiplayer: "聚隊打遊戲" # Not currently shown on home page
for_developers: "適合開發個人" # Not currently shown on home page.
# or_ipad: "Or download for iPad"
nav:
play: "遊戲開來" # The top nav bar entry where players choose which levels to play
@ -207,6 +208,8 @@ module.exports = nativeDescription: "吳語", englishDescription: "Wuu (Traditio
# failing: "Failing"
action_timeline: "行動時間橛"
click_to_select: "點選一個單位。"
# control_bar_multiplayer: "Multiplayer"
# control_bar_join_game: "Join Game"
# reload: "Reload"
reload_title: "轉讀取全部個代碼?"
reload_really: "準定轉讀取箇關,回轉到扣起頭?"
@ -319,6 +322,9 @@ module.exports = nativeDescription: "吳語", englishDescription: "Wuu (Traditio
# few_gems: "A few gems"
# pile_gems: "Pile of gems"
# chest_gems: "Chest of gems"
# purchasing: "Purchasing..."
# declined: "Your card was declined"
# retrying: "Server error, retrying."
# choose_hero:
# choose_hero: "Choose Your Hero"
@ -345,6 +351,24 @@ module.exports = nativeDescription: "吳語", englishDescription: "Wuu (Traditio
# blocks: "Blocks" # As in "this shield blocks this much damage"
# skills: "Skills"
# skill_docs:
# writable: "writable" # Hover over "attack" in Your Skills while playing a level to see most of this
# read_only: "read-only"
# action_name: "name"
# action_cooldown: "Takes"
# action_specific_cooldown: "Cooldown"
# action_damage: "Damage"
# action_range: "Range"
# action_radius: "Radius"
# action_duration: "Duration"
# example: "Example"
# ex: "ex" # Abbreviation of "example"
# current_value: "Current Value"
# default_value: "Default value"
# parameters: "Parameters"
# returns: "Returns"
# granted_by: "Granted by"
# save_load:
# granularity_saved_games: "Saved"
# granularity_change_history: "History"
@ -745,6 +769,8 @@ module.exports = nativeDescription: "吳語", englishDescription: "Wuu (Traditio
# amount_achieved: "Amount"
# achievement: "Achievement"
# category_contributor: "Contributor"
# category_ladder: "Ladder"
# category_level: "Level"
# category_miscellaneous: "Miscellaneous"
# category_levels: "Levels"
# category_undefined: "Uncategorized"

View file

@ -389,7 +389,12 @@ module.exports = class ThangType extends CocoModel
props = props.concat config.programmableSnippets
for stat, value of stats when not value?
stats[stat] = name: stat, display: '???'
props: props, stats: stats
statKeys = _.keys(stats)
statKeys.sort()
props.sort()
sortedStats = {}
sortedStats[key] = stats[key] for key in statKeys
props: props, stats: sortedStats
formatStatDisplay: (name, modifiers) ->
i18nKey = {
@ -402,6 +407,7 @@ module.exports = class ThangType extends CocoModel
visualRange: 'range'
throwDamage: 'attack'
throwRange: 'range'
bashDamage: 'attack'
}[name]
if i18nKey

View file

@ -104,8 +104,7 @@ module.exports = class User extends CocoModel
when 2 then 'choice-explicit'
when 3 then 'choice-implicit'
@branchingGroup = 'choice-explicit' if me.isAdmin()
@branchingGroup = 'no-practice' # paused A/B test
#application.tracker.identify branchingGroup: @branchingGroup unless me.isAdmin() # paused A/B test
application.tracker.identify branchingGroup: @branchingGroup unless me.isAdmin()
@branchingGroup
tiersByLevel = [-1, 0, 0.05, 0.14, 0.18, 0.32, 0.41, 0.5, 0.64, 0.82, 0.91, 1.04, 1.22, 1.35, 1.48, 1.65, 1.78, 1.96, 2.1, 2.24, 2.38, 2.55, 2.69, 2.86, 3.03, 3.16, 3.29, 3.42, 3.58, 3.74, 3.89, 4.04, 4.19, 4.32, 4.47, 4.64, 4.79, 4.96]

View file

@ -7,6 +7,7 @@ c.extendNamedProperties ThangTypeSchema # name first
ShapeObjectSchema = c.object {title: 'Shape'},
fc: {type: 'string', title: 'Fill Color'}
lf: {type: 'array', title: 'Linear Gradient Fill'}
rf: {type: 'array', title: 'Radial Gradient Fill'}
ls: {type: 'array', title: 'Linear Gradient Stroke'}
p: {type: 'string', title: 'Path'}
de: {type: 'array', title: 'Draw Ellipse'}

View file

@ -23,6 +23,7 @@ module.exports = # /app/lib/surface
camera: {type: 'object'}
zoom: {type: 'number', minimum: 0, exclusiveMinimum: true}
surfaceViewport: {type: 'object'}
minZoom: {type: 'number', minimum: 0, exclusiveMinimum: true}
'camera:set-camera': c.object {},
pos: c.object {required: ['x', 'y']},

View file

@ -126,6 +126,10 @@ module.exports =
codeFragment: {type: 'string'}
codeLanguage: {type: 'string'}
'tome:suspect-code-fragment-deleted': c.object {title: 'Suspect Code Fragment Deleted', description: 'Published when a suspect code fragment is deleted from the sample code.', required: ['codeFragment']},
codeFragment: {type: 'string'}
codeLanguage: {type: 'string'}
'tome:winnability-updated': c.object {title: 'Winnability Updated', description: 'When we think we can now win (or can no longer win), we may want to emphasize the submit button versus the run button (or vice versa), so this fires when we get new goal states (even preloaded goal states) suggesting success or failure change.', required: ['winnable']},
winnable: {type: 'boolean'}

View file

@ -77,8 +77,11 @@
//- Account menu
.dropdown
.account-settings-image
width: 18px
.dropdown-menu
left: auto
//left: auto // this busts it, not sure why it's in
width: 280px
padding: 0px
border-radius: 0px
@ -219,4 +222,4 @@
top: 8px
a
color: rgb(238,227,131)
color: rgb(238,227,131)

View file

@ -84,3 +84,9 @@
height: 514px
padding: 50px
overflow-y: scroll
::-webkit-scrollbar
// So that the scrollbar doesn't go on top of the close button.
// Wish we could easily do this for Firefox.
display: none

View file

@ -296,6 +296,9 @@ $itemSlotGridHeight: 70px
width: $itemSlotSize * 1.2
height: $itemSlotSize * 1.2
button
display: none
//- Available equipment
@ -381,8 +384,9 @@ $itemSlotGridHeight: 70px
// display: inline
&.restricted
background-color: rgba(255, 80, 67, 0.25)
background-color: rgba(190, 190, 190, 1)
cursor: default
@include filter(contrast(50%) brightness(100%))
//.item-view
// cursor: default

View file

@ -90,6 +90,16 @@ $level-resize-transition-time: 0.5s
z-index: 2
@include transition($level-resize-transition-time ease-out)
&.grabbable:not(.flag-color-selected)
cursor: -moz-grab
cursor: -webkit-grab
cursor: grab
&:active
cursor: -moz-grabbing
cursor: -webkit-grabbing
cursor: grabbing
&.flag-color-selected
cursor: crosshair

View file

@ -1,4 +1,8 @@
@import "app/styles/mixins"
#play-achievements-modal
.modal-dialog
width: 800px
.modal-header
padding-bottom: 20px
@ -16,6 +20,7 @@
position: relative
border: 2px solid rgb(75,75,75)
padding: 2px
@include opacity(0.75)
h3
margin: 0 0 0 50px
@ -27,7 +32,7 @@
.panel-body
padding: 5px 150px 5px 5px
border: 2px solid rgb(150,150,150)
//border: 2px solid rgb(150,150,150) // Chloe's suggestion to not have this
.created
position: absolute
@ -43,6 +48,7 @@
background: rgb(50,40,33)
border: 5px solid rgb(26,21,17)
padding: 0
@include opacity(1)
h3
color: white
@ -79,4 +85,4 @@
img
width: 12px
height: 12px
height: 12px

View file

@ -201,13 +201,13 @@ $heroCanvasHeight: 265px
&.attack .stat-progress-bar
background: purple
background: #c32424
&.health .stat-progress-bar
background: red
background: #0f802a
&.speed .stat-progress-bar
background: green
background: #4d52ab
//- Carousel switch buttons

View file

@ -265,21 +265,6 @@ $gameControlMargin: 30px
.tooltip
font-size: 24px
.old-levels
position: absolute
bottom: 5%
left: 1%
z-index: 3
a
font-size: 24px
color: #eee
text-decoration: underline
&:hover
color: white
text-shadow: 1px 1px 0px black
.user-status
position: absolute
bottom: 1%
@ -322,6 +307,8 @@ body:not(.ipad) #world-map-view
.level-info-container
pointer-events: none
body.ipad #world-map-view
// iPad only supports up to Kithgard Gates for now.
.campaign-switch

View file

@ -1,47 +1,48 @@
#site-nav
img#nav-logo(src="/images/pages/base/logo.png", title="CodeCombat - Learn how to code by playing a game", alt="CodeCombat")
div#site-nav-links
a(href="/")
span.glyphicon.glyphicon-home
a(href="/about", data-i18n="nav.about")
a(href='/play/ladder', data-i18n="home.multiplayer")
a(href='/community', data-i18n="nav.community")
a(href='http://blog.codecombat.com/', data-i18n="nav.blog")
a(href='http://discourse.codecombat.com/', data-i18n="nav.forum")
if me.get('anonymous') === false
span.dropdown
button.btn.btn-sm.header-font.dropdown-toggle(href="#", data-toggle="dropdown")
if me.get('photoURL')
img.account-settings-image(src=me.getPhotoURL(18), alt="")
else
i.glyphicon.glyphicon-user
span.spl.spr(data-i18n="nav.account" href="/account") Account
span.caret
ul.dropdown-menu(role="menu")
li.user-dropdown-header
span.user-level= me.level()
a(href="/user/#{me.getSlugOrID()}")
img.img-circle(src="#{me.getPhotoURL()}" alt="")
h3=me.displayName()
li.user-dropdown-body
.col-xs-4.text-center
a(href="/user/#{me.getSlugOrID()}" data-i18n="nav.profile") Profile
.col-xs-4.text-center
a(href="/user/#{me.getSlugOrID()}/stats" data-i18n="nav.stats") Stats
.col-xs-4.text-center
a.disabled(data-i18n="nav.code") Code
li.user-dropdown-footer
.pull-left
a.btn.btn-default.btn-flat(href="/account" data-i18n="nav.account") Account
.pull-right
button#logout-button.btn.btn-default.btn-flat(data-i18n="login.log_out") Log Out
else
button.btn.btn-sm.btn-primary.header-font.signup-button(data-i18n="login.sign_up")
button.btn.btn-sm.btn-default.header-font.login-button(data-i18n="login.log_in")
select.language-dropdown.form-control
block header
#site-nav
img#nav-logo(src="/images/pages/base/logo.png", title="CodeCombat - Learn how to code by playing a game", alt="CodeCombat")
div#site-nav-links
a(href="/")
span.glyphicon.glyphicon-home
a(href="/about", data-i18n="nav.about")
a(href='/play/ladder', data-i18n="home.multiplayer")
a(href='/community', data-i18n="nav.community")
a(href='http://blog.codecombat.com/', data-i18n="nav.blog")
a(href='http://discourse.codecombat.com/', data-i18n="nav.forum")
if me.get('anonymous') === false
span.dropdown
button.btn.btn-sm.header-font.dropdown-toggle(href="#", data-toggle="dropdown")
if me.get('photoURL')
img.account-settings-image(src=me.getPhotoURL(18), alt="")
else
i.glyphicon.glyphicon-user
span.spl.spr(data-i18n="nav.account" href="/account") Account
span.caret
ul.dropdown-menu(role="menu")
li.user-dropdown-header
span.user-level= me.level()
a(href="/user/#{me.getSlugOrID()}")
img.img-circle(src="#{me.getPhotoURL()}" alt="")
h3=me.displayName()
li.user-dropdown-body
.col-xs-4.text-center
a(href="/user/#{me.getSlugOrID()}" data-i18n="nav.profile") Profile
.col-xs-4.text-center
a(href="/user/#{me.getSlugOrID()}/stats" data-i18n="nav.stats") Stats
.col-xs-4.text-center
a.disabled(data-i18n="nav.code") Code
li.user-dropdown-footer
.pull-left
a.btn.btn-default.btn-flat(href="/account" data-i18n="nav.account") Account
.pull-right
button#logout-button.btn.btn-default.btn-flat(data-i18n="login.log_out") Log Out
else
button.btn.btn-sm.btn-primary.header-font.signup-button(data-i18n="login.sign_up")
button.btn.btn-sm.btn-default.header-font.login-button(data-i18n="login.log_in")
select.language-dropdown.form-control
block outer_content
#site-content-area
@ -59,6 +60,7 @@ block footer
a(href='/legal', tabindex=-1, data-i18n="nav.legal") Legal
a(title='Contact', tabindex=-1, data-toggle="coco-modal", data-target="modal/ContactModal", data-i18n="nav.contact") Contact
a(href='/teachers', data-i18n="nav.teachers") Teachers
a(href="/play-old", data-i18n="play.older_campaigns") Older Campaigns
if me.isAdmin()
a(href='/admin', data-i18n="nav.admin") Admin

View file

@ -3,57 +3,71 @@ h4
| -
code.prop-type= doc.type == 'function' && doc.owner == 'this' ? 'method' : doc.type
if doc.type != 'function'
| (
if writable
| (writable)
span(data-i18n="skill_docs.writable") writable
else
| (read-only)
span(data-i18n="skill_docs.read_only") read-only
| )
.description
p!= marked(doc.description || 'Still undocumented, sorry.')
if cooldowns && (cooldowns.cooldown || cooldowns.specificCooldown)
p
span
| #{cooldowns.type == 'spell' ? 'Spell' : 'Action'} name:
| #{cooldowns.type == 'spell' ? 'Spell' : 'Action'}
span.spl(data-i18n="skill_docs.action_name") name
span.spr :
code "#{cooldowns.name}"
| .
span.spl
| Cooldown:
span(data-i18n="skill_docs.action_cooldown") Takes
span.spr :
code= cooldowns.cooldown
| s.
if cooldowns.specificCooldown
span.spl
| Specific cooldown:
span(data-i18n="skill_docs.action_specific_cooldown") Cooldown
span.spr :
code= cooldowns.specificCooldown
| s.
if cooldowns.damage
span.spl
| Damage:
span(data-i18n="skill_docs.action_damage") Damage
span.spr :
code= cooldowns.damage
| .
if cooldowns.range
span.spl
| Range:
span(data-i18n="skill_docs.action_range") Range
span.spr :
code= cooldowns.range
| m.
if cooldowns.radius
span.spl
| Radius:
span(data-i18n="skill_docs.action_radius") Radius
span.spr :
code= cooldowns.radius
| m.
if cooldowns.duration
span.spl
| Duration:
span(data-i18n="skill_docs.action_duration") Duration
span.spr :
code= cooldowns.duration
| s.
if !selectedMethod
if doc.example
p.example
strong Example:
strong
span(data-i18n="skill_docs.example") Example
| :
div!= marked("```\n" + doc.example + "```")
else if doc.type == 'function' && argumentExamples.length
p.example
strong Example:
strong
span(data-i18n="skill_docs.example") Example
| :
div
if language == 'javascript'
code= doc.owner + '.' + doc.name + '(' + argumentExamples.join(', ') + ');'
@ -70,36 +84,48 @@ if !selectedMethod
if (doc.type != 'function' && doc.type != 'snippet') || doc.name == 'now'
p.value
strong Current Value:
strong
span(data-i18n="skill_docs.current_value") Current Value
span.spr :
pre
code.current-value(data-prop=doc.name)= value
if doc.args && doc.args.length
p.args
strong Parameters:
strong
span(data-i18n="skill_docs.parameters") Parameters
span.spr :
for arg in doc.args
div
code= arg.name
| :
span.spr :
code= arg.type
if arg.example
| (ex:
| (
span(data-i18n="skill_docs.ex") ex
span.spr :
code= arg.example
| )
if arg.description
div!= marked(arg.description)
if arg.default
div
em Default value:
em
span(data-i18n="skill_docs.default_value") Default value
span.spr :
code= arg.default
if doc.returns
p.returns
strong Returns:
strong
span(data-i18n="skill_docs.returns") Returns
span.spr :
div
code= doc.returns.type
if doc.returns.example
| (ex:
| (
span(data-i18n="skill_docs.ex") ex
span.spr :
code= doc.returns.example
| )
if doc.returns.description
@ -107,7 +133,9 @@ if doc.returns
if item
p
em Granted by #{item.get('name')}.
em
span.spr(data-i18n="skill_docs.granted_by") Granted by
| #{item.get('name')}.
if selectedMethod
p

View file

@ -23,7 +23,7 @@
h3.big-font(data-i18n="play.skills_granted")
for prop in props
p
strong.big-font= prop.name
strong= prop.name
span.spr :
span!= prop.description

View file

@ -7,10 +7,10 @@
- var seenNext = nextLevel;
each level in campaign.levels
if true || !level.hidden
if !level.hidden
- var next = level.id == nextLevel || (!seenNext && levelStatusMap[level.id] != "complete" && !level.locked && !level.disabled && (!level.practice || me.getBranchingGroup() == 'all-practice'));
- seenNext = seenNext || next;
div(style="left: #{level.x}%; bottom: #{level.y}%; background-color: #{level.color}", class="level" + (next ? " next" : "") + (level.disabled ? " disabled" : "") + (level.locked ? " locked" : "") + " " + levelStatusMap[level.id] || "", data-level-id=level.id, title=level.name)
div(style="left: #{level.x}%; bottom: #{level.y}%; background-color: #{level.color}", class="level" + (next ? " next" : "") + (level.disabled ? " disabled" : "") + (level.locked ? " locked" : "") + " " + levelStatusMap[level.id] || "", data-level-id=level.id, title=level.name + (level.disabled ? ' (Coming Soon to Adventurers)' : ''))
a(href=level.type == 'hero' ? '#' : level.disabled ? "/play" : "/play/#{level.levelPath || 'level'}/#{level.id}", disabled=level.disabled, data-level-id=level.id, data-level-path=level.levelPath || 'level', data-level-name=level.name)
div(style="left: #{level.x}%; bottom: #{level.y}%", class="level-shadow" + (next ? " next" : "") + " " + levelStatusMap[level.id] || "")
.level-info-container(data-level-id=level.id, data-level-path=level.levelPath || 'level', data-level-name=level.name)
@ -56,9 +56,6 @@
// a.btn.account(href="/user/#{me.getSlugOrID()}", data-i18n="[title]play.account")
// a.btn.settings(href='/account', data-i18n="[title]play.settings")
.old-levels
a(href="/play-old", data-i18n="play.older_campaigns").header-font Older Campaigns
.user-status.header-font
span.gem.gem-20
span#gems-count.spr= me.gems()

View file

@ -240,10 +240,13 @@ module.exports = class InventoryModal extends ModalView
me.set('spent', (me.get('spent') ? 0) + item.get('gems'))
#- ...then rerender key bits
@requireLevelEquipment()
@itemGroups.lockedItems.remove(item)
@sortItem(item)
@renderSelectors("#unequipped", "#gems-count")
# Redo all item sorting to make sure that we don't clobber state changes since last render.
equipped = _.values @getCurrentEquipmentConfig()
@sortItem(item, equipped) for item in @items.models
@renderSelectors('#unequipped', '#gems-count')
@requireLevelEquipment()
@delegateEvents()
@setUpDraggableEventsForAvailableEquipment()
@itemDetailsView.setItem(item)

View file

@ -7,17 +7,17 @@ module.exports = class I18NEditComponentView extends I18NEditModelView
buildTranslationList: ->
lang = @selectedLanguage
propDocs = @model.get('propertyDocumentation')
for propDoc, propDocIndex in propDocs
#- Component property descriptions
if i18n = propDoc.i18n
path = ["propertyDocumentation", propDocIndex]
if _.isObject propDoc.description
for progLang, description of propDoc
@wrapRow "#{propDoc.name} description (#{progLang})", [progLang, 'description'], description, i18n[lang]?[progLang]?.description, path, 'markdown'
for progLang, description of propDoc.description
@wrapRow "#{propDoc.name} description (#{progLang})", ['description', progLang], description, i18n[lang]?[progLang]?.description, path, 'markdown'
else if _.isString propDoc.description
@wrapRow "#{propDoc.name} description", ['description'], propDoc.description, i18n[lang]?.description, path, 'markdown'
if context = propDoc.context
@ -29,8 +29,8 @@ module.exports = class I18NEditComponentView extends I18NEditModelView
path = ["propertyDocumentation", propDocIndex, "returns"]
d = propDoc.returns.description
if _.isObject d
for progLang, description of d
@wrapRow "#{propDoc.name} return val (#{progLang})", [progLang, 'description'], description, i18n[lang]?[progLang]?.description, path, 'markdown'
for progLang, description of d.description
@wrapRow "#{propDoc.name} return val (#{progLang})", ['description', progLang], description, i18n[lang]?[progLang]?.description, path, 'markdown'
else if _.isString d
@wrapRow "#{propDoc.name} return val", ['description'], d, i18n[lang]?.description, path, 'markdown'
@ -40,8 +40,7 @@ module.exports = class I18NEditComponentView extends I18NEditModelView
if i18n = argDoc.i18n
path = ["propertyDocumentation", propDocIndex, 'args', argIndex]
if _.isObject argDoc.description
for progLang, description of argDoc
@wrapRow "#{propDoc.name} arg description #{argDoc.name} (#{progLang})", [progLang, 'description'], description, i18n[lang]?[progLang]?.description, path, 'markdown'
for progLang, description of argDoc.description
@wrapRow "#{propDoc.name} arg description #{argDoc.name} (#{progLang})", ['description', progLang], description, i18n[lang]?[progLang]?.description, path, 'markdown'
else if _.isString argDoc.description
@wrapRow "#{propDoc.name} arg description #{argDoc.name}", ['description'], argDoc.description, i18n[lang]?.description, path, 'markdown'

View file

@ -842,8 +842,8 @@ forest = [
#nextLevels:
# continue: ''
disabled: not me.isAdmin()
x: 77.54
y: 25.94
x: 83.87
y: 18.89
}
{
name: 'Multiplayer Treasure Grove'

View file

@ -57,6 +57,7 @@ module.exports = class LevelHUDView extends CocoView
if not thang? and not @thang? then return
if thang? and @thang? and thang.id is @thang.id then return
if thang? and @hidesHUD and thang.id isnt 'Hero Placeholder' then return # Don't let them find the names of their opponents this way
return unless thang # Don't let them deselect anything, ever.
@thang = thang
@thangType = thangType
return unless @thang

View file

@ -4,6 +4,7 @@ template = require 'templates/play/level'
ThangType = require 'models/ThangType'
utils = require 'lib/utils'
storage = require 'lib/storage'
{createAetherOptions} = require 'lib/aether_utils'
# tools
Surface = require 'lib/surface/Surface'
@ -217,8 +218,7 @@ module.exports = class PlayLevelView extends RootView
opponentSpells = opponentSpells.concat spells
if (not @session.get('teamSpells')) and @otherSession?.get('teamSpells')
@session.set('teamSpells', @otherSession.get('teamSpells'))
# hero-ladder levels use code instead of transpiledCode
opponentCode = @otherSession?.get('transpiledCode') or @otherSession?.get('code') or {}
opponentCode = @otherSession?.get('transpiledCode') or {}
myCode = @session.get('code') or {}
for spell in opponentSpells
[thang, spell] = spell.split '/'
@ -571,7 +571,20 @@ module.exports = class PlayLevelView extends RootView
@onRealTimeMultiplayerLevelUnloaded()
super()
# Real-time Multiplayer ######################################################
onIPadMemoryWarning: (e) ->
@hasReceivedMemoryWarning = true
onItemPurchased: (e) ->
heroConfig = @session.get('heroConfig') ? {}
inventory = heroConfig.inventory ? {}
slot = e.item.getAllowedSlots()[0]
if slot and not inventory[slot]
# Open up the inventory modal so they can equip the new item
@setupManager?.destroy()
@setupManager = new LevelSetupManager({supermodel: @supermodel, levelID: @levelID, parent: @, session: @session, hadEverChosenHero: true})
@setupManager.open()
# Start Real-time Multiplayer ######################################################
#
# This view acts as a hub for the real-time multiplayer session for the current level.
#
@ -800,6 +813,21 @@ module.exports = class PlayLevelView extends RootView
opponentPlayer = player
if myPlayer
console.info 'Submitting my code'
# Transpile code
# Copied from scripts/transpile.coffee
# TODO: Should this live somewhere else?
transpiledCode = {}
for thang, spells of @session.get('code')
transpiledCode[thang] = {}
for spellID, spell of spells
spellName = thang + '/' + spellID
continue if @session.get('teamSpells') and not (spellName in @session.get('teamSpells')[@session.get('team')])
# console.log "PlayLevelView Transpiling spell #{spellName}"
aetherOptions = createAetherOptions functionName: spellID, codeLanguage: @session.get('submittedCodeLanguage')
aether = new Aether aetherOptions
transpiledCode[thang][spellID] = aether.transpile spell
# console.log "PlayLevelView transpiled code", transpiledCode
@session.set 'transpiledCode', transpiledCode
@session.patch()
myPlayer.set 'state', 'submitted'
else
@ -904,15 +932,4 @@ module.exports = class PlayLevelView extends RootView
# TODO: Don't hardcode spellName
Backbone.Mediator.publish 'level:select-sprite', thangID: sessionState.selected, spellName: 'plan'
onIPadMemoryWarning: (e) ->
@hasReceivedMemoryWarning = true
onItemPurchased: (e) ->
heroConfig = @session.get('heroConfig') ? {}
inventory = heroConfig.inventory ? {}
slot = e.item.getAllowedSlots()[0]
if slot and not inventory[slot]
# Open up the inventory modal so they can equip the new item
@setupManager?.destroy()
@setupManager = new LevelSetupManager({supermodel: @supermodel, levelID: @levelID, parent: @, session: @session, hadEverChosenHero: true})
@setupManager.open()
# End Real-time Multiplayer ######################################################

View file

@ -100,6 +100,9 @@ module.exports = class DocFormatter
if val = obj[prop]
context = @doc.context
obj[prop] = val = utils.i18n obj, prop
# For multiplexed-by-both-code-and-spoken-language objects, now also get code language again.
if _.isObject val
obj[prop] = val = obj[prop]?[@options.language]
if @doc.i18n
spokenLanguage = me.get 'preferredLanguage'
while spokenLanguage
@ -113,13 +116,18 @@ module.exports = class DocFormatter
obj[prop] = _.template val, context
catch e
console.error "Couldn't create docs template of", val, "\nwith context", context, "\nError:", e
obj[prop] = @replaceSpriteName obj[prop] # Do this before using the template, otherwise marked might get us first.
formatPopover: ->
content = popoverTemplate doc: @doc, language: @options.language, value: @formatValue(), marked: marked, argumentExamples: (arg.example or arg.default or arg.name for arg in @doc.args ? []), writable: @options.writable, selectedMethod: @options.selectedMethod, cooldowns: @inferCooldowns(), item: @options.item
owner = if @doc.owner is 'this' then @options.thang else window[@doc.owner]
content = content.replace /#{spriteName}/g, @options.thang.type ? @options.thang.spriteName # Prefer type, and excluded the quotes we'd get with @formatValue
content = @replaceSpriteName content
content.replace /\#\{(.*?)\}/g, (s, properties) => @formatValue downTheChain(owner, properties.split('.'))
replaceSpriteName: (s) ->
# Prefer type, and excluded the quotes we'd get with @formatValue
s.replace /#{spriteName}/g, @options.thang.type ? @options.thang.spriteName
formatValue: (v) ->
return null if @doc.type is 'snippet'
return @options.thang.now() if @doc.name is 'now'
@ -130,7 +138,7 @@ module.exports = class DocFormatter
else
v = window[@doc.owner][@doc.name] # grab Math or Vector
if @doc.type is 'number' and not _.isNaN v
if v == Math.round v
if v is Math.round v
return v
if _.isNumber v
return v.toFixed 2
@ -165,5 +173,7 @@ module.exports = class DocFormatter
return null unless action
cooldowns = cooldown: action.cooldown, specificCooldown: action.specificCooldown, name: actionName, type: type
for prop in ['range', 'radius', 'duration', 'damage']
cooldowns[prop] = owner[_.string.camelize actionName + _.string.capitalize(prop)]
cooldowns[prop] = v = owner[_.string.camelize actionName + _.string.capitalize(prop)]
if _.isNumber(v) and v isnt Math.round v
cooldowns[prop] = v.toFixed 2
cooldowns

View file

@ -88,8 +88,12 @@ module.exports = class ProblemAlertView extends CocoView
onWindowResize: (e) =>
# TODO: This all seems a little hacky
if @problem?
@$el.css('left', $('#goals-view').outerWidth(true) + 'px')
@$el.css('right', $('#code-area').outerWidth(true) + 'px')
levelContentWidth = $('.level-content').outerWidth(true)
goalsViewWidth = $('#goals-view').outerWidth(true)
codeAreaWidth = $('#code-area').outerWidth(true)
# problem alert view has 20px padding
@$el.css('max-width', levelContentWidth - codeAreaWidth - goalsViewWidth + 40 + 'px')
@$el.css('right', codeAreaWidth + 'px')
# 110px from top roughly aligns top of alert with top of first code line
# TODO: calculate this in a more dynamic, less sketchy way

View file

@ -185,7 +185,6 @@ module.exports = class Spell
shouldUseTranspiledCode: ->
# Determine whether this code has already been transpiled, or whether it's raw source needing transpilation.
return false if @levelType is 'hero-ladder'
return true if @spectateView # Use transpiled code for both teams if we're just spectating.
return true if @isEnemySpell() # Use transpiled for enemy spells.
# Players without permissions can't view the raw code.

View file

@ -46,10 +46,12 @@ module.exports = class SpellPaletteEntryView extends CocoView
content: @docFormatter.formatPopover()
container: 'body'
template: @overridePopoverTemplate
).on 'show.bs.popover', =>
).on 'shown.bs.popover', =>
Backbone.Mediator.publish 'tome:palette-hovered', thang: @thang, prop: @doc.name, entry: @
soundIndex = Math.floor(Math.random() * 4)
Backbone.Mediator.publish 'audio-player:play-sound', trigger: "spell-palette-entry-open-#{soundIndex}", volume: 0.75
popover = @$el.data('bs.popover')
popover?.$tip?.i18n()
onMouseEnter: (e) ->
# Make sure the doc has the updated Thang so it can regenerate its prop value

View file

@ -228,7 +228,7 @@ module.exports = class SpellView extends CocoView
unless CampaignOptions?.getOption?(@options?.level?.get?('slug'), 'backspaceThrottle')
@ace.remove "left"
return
nowDate = Date.now()
if @aceSession.selection.isEmpty()
cursor = @ace.getCursorPosition()
@ -245,7 +245,7 @@ module.exports = class SpellView extends CocoView
@backspaceThrottleMs = null
@lastBackspace = nowDate
@ace.remove "left"
fillACE: ->
@ -946,12 +946,18 @@ module.exports = class SpellView extends CocoView
return if @destroyed
source = @getSource().replace @singleLineCommentRegex(), ''
suspectCodeFragments = LevelOptions[@options.level.get('slug')].suspectCode
detectedSuspectCodeFragmentNames = []
for suspectCodeFragment in suspectCodeFragments
if suspectCodeFragment.pattern.test source
@warnedCodeFragments ?= {}
unless @warnedCodeFragments[suspectCodeFragment.name]
Backbone.Mediator.publish 'tome:suspect-code-fragment-added', codeFragment: suspectCodeFragment.name, codeLanguage: @spell.language
@warnedCodeFragments[suspectCodeFragment] = true
@warnedCodeFragments[suspectCodeFragment.name] = true
detectedSuspectCodeFragmentNames.push suspectCodeFragment.name
for lastDetectedSuspectCodeFragmentName in @lastDetectedSuspectCodeFragmentNames ? []
unless lastDetectedSuspectCodeFragmentName in detectedSuspectCodeFragmentNames
Backbone.Mediator.publish 'tome:suspect-code-fragment-deleted', codeFragment: lastDetectedSuspectCodeFragmentName, codeLanguage: @spell.language
@lastDetectedSuspectCodeFragmentNames = detectedSuspectCodeFragmentNames
destroy: ->
$(@ace?.container).find('.ace_gutter').off 'click', '.ace_error, .ace_warning, .ace_info', @onAnnotationClick

View file

@ -3,6 +3,7 @@ template = require 'templates/play/modal/item-details-view'
CocoCollection = require 'collections/CocoCollection'
LevelComponent = require 'models/LevelComponent'
{downTheChain} = require 'lib/world/world_utils'
utils = require 'lib/utils'
module.exports = class ItemDetailsView extends CocoView
@ -21,6 +22,7 @@ module.exports = class ItemDetailsView extends CocoView
@item.affordable = me.gems() >= @item.get('gems')
@item.owned = me.ownsItem @item.get('original')
@item.comingSoon = not @item.getFrontFacingStats().props.length and not _.size @item.getFrontFacingStats().stats # Temp: while there are placeholder items
@componentConfigs = (c.config for c in @item.get('components') when c.config)
stats = @item.getFrontFacingStats()
props = (p for p in stats.props when not @propDocs[p])
@ -78,15 +80,22 @@ module.exports = class ItemDetailsView extends CocoView
description = description.replace(/#{spriteName}/g, 'hero')
if fact = stats.stats.shieldDefenseFactor
description = description.replace(/#{shieldDefensePercent}%/g, fact.display)
## We don't have the full components loaded here, so we can't really get most of these values.
#description = description.replace /#{([^.]+?)}/g, (match, keyChain) ->
# console.log 'gotta find', keyChain, 'from', match, 'and have', stats
# match
if prop is 'buildTypes'
buildsConfig = _.find @componentConfigs, 'buildables'
description = description.replace '#{buildTypes}', "`[\"#{_.keys(buildsConfig.buildables).join('\", \"')}\"]`"
# We don't have the full components loaded here, so we can't really get most of these values.
componentConfigs = @componentConfigs ? []
description = description.replace /#{([^.]+?)}/g, (match, keyChain) ->
for componentConfig in componentConfigs
if value = downTheChain componentConfig, keyChain
return value
#console.log 'gotta find', keyChain, 'from', match
match
description = description.replace(/#{(.+?)}/g, '`$1`')
description = $(marked(description)).html()
c.props.push {
name: _.string.humanize prop
name: prop
description: description or '...'
}
c

View file

@ -11,17 +11,16 @@ PAGE_SIZE = 200
module.exports = class PlayAchievementsModal extends ModalView
className: 'modal fade play-modal'
template: template
modalWidthPercent: 90
id: 'play-achievements-modal'
plain: true
earnedMap: {}
constructor: (options) ->
super options
@achievements = new Backbone.Collection()
earnedMap = {}
achievementsFetcher = new CocoCollection([], {url: '/db/achievement', model: Achievement})
achievementsFetcher.setProjection([
'name'
@ -32,10 +31,10 @@ module.exports = class PlayAchievementsModal extends ModalView
'rewards'
'collection'
])
earnedAchievementsFetcher = new CocoCollection([], {url: '/db/earned_achievement', model: EarnedAchievement})
earnedAchievementsFetcher.setProjection([ 'achievement' ])
achievementsFetcher.skip = 0
achievementsFetcher.fetch({data: {skip: 0, limit: PAGE_SIZE}})
earnedAchievementsFetcher.skip = 0
@ -46,7 +45,7 @@ module.exports = class PlayAchievementsModal extends ModalView
@supermodel.loadCollection(achievementsFetcher, 'achievement')
@supermodel.loadCollection(earnedAchievementsFetcher, 'achievement')
@onEverythingLoaded = _.after(2, @onEverythingLoaded)
onAchievementsLoaded: (fetcher) ->

View file

@ -12,6 +12,7 @@ class EarnedAchievementHandler extends Handler
# Don't allow POSTs or anything yet
hasAccess: (req) ->
return false unless req.user
req.method in ['GET', 'POST'] # or req.user.isAdmin()
get: (req, res) ->

View file

@ -56,7 +56,7 @@ module.exports = class Handler
isBrandNew = req.method is 'POST' and not req.body.original
props = props.concat @postEditableProperties if isBrandNew
if @modelClass.schema.uses_coco_permissions
if @modelClass.schema.uses_coco_permissions and req.user
# can only edit permissions if this is a brand new property,
# or you are an owner of the old one
isOwner = document.getAccessForUserObjectId(req.user._id) is 'owner'
@ -523,7 +523,7 @@ module.exports = class Handler
# This is not a Mongoose user
projectionForUser: (req, model, ownerID) ->
return {} if 'privateProperties' not of model or req.user._id + '' is ownerID + '' or req.user.isAdmin()
return {} if 'privateProperties' not of model or req.user?._id + '' is ownerID + '' or req.user.isAdmin()
projection = {}
projection[field] = 0 for field in model.privateProperties
projection

View file

@ -102,6 +102,7 @@ LevelHandler = class LevelHandler extends Handler
# of model, like in this case. Refactor to move that logic to the model instead.
getMySessions: (req, res, slugOrID) ->
return @sendForbiddenError(res) if not req.user
findParameters = {}
if Handler.isID slugOrID
findParameters['_id'] = slugOrID
@ -271,6 +272,7 @@ LevelHandler = class LevelHandler extends Handler
@doGetFeedback req, res, levelID, false
getAllFeedback: (req, res, levelID) ->
return @sendNotFoundError(res) unless req.user
@doGetFeedback req, res, levelID, true
doGetFeedback: (req, res, levelID, multiple) ->

View file

@ -39,7 +39,7 @@ LevelSessionSchema.statics.privateProperties = ['code', 'submittedCode', 'unsubs
LevelSessionSchema.statics.editableProperties = ['multiplayer', 'players', 'code', 'codeLanguage', 'completed', 'state',
'levelName', 'creatorName', 'levelID', 'screenshot',
'chat', 'teamSpells', 'submitted', 'submittedCodeLanguage',
'unsubscribed', 'playtime', 'heroConfig', 'team']
'unsubscribed', 'playtime', 'heroConfig', 'team', 'transpiledCode']
LevelSessionSchema.statics.jsonSchema = jsonschema
LevelSessionSchema.index {user: 1, changed: -1}, {sparse: true, name: 'last played index'}

View file

@ -20,7 +20,7 @@ class LevelSessionHandler extends Handler
return _.omit documentObject, @privateProperties
getActiveSessions: (req, res) ->
return @sendForbiddenError(res) unless req.user.isAdmin()
return @sendForbiddenError(res) unless req.user?.isAdmin()
start = new Date()
start = new Date(start.getTime() - TIMEOUT)
query = @modelClass.find({'changed': {$gt: start}})

View file

@ -116,7 +116,7 @@ module.exports.PermissionsPlugin = (schema) ->
allowed = allowed[method] or []
for permission in @permissions
if permission.target is 'public' or actor._id.equals(permission.target)
if permission.target is 'public' or actor?._id.equals(permission.target)
return true if permission.access in allowed
return false

View file

@ -25,7 +25,8 @@ module.exports.setup = (app) ->
parts = module.split('/')
module = parts[0]
return getSchema(req, res, module) if parts[1] is 'schema'
return errors.unauthorized(res, 'Must have an identity to do anything with the db. Do you have cookies enabled?') unless req.user
if (not req.user) and req.route.method isnt 'get'
return errors.unauthorized(res, 'Must have an identity to do anything with the db. Do you have cookies enabled?')
try
moduleName = module.replace new RegExp('\\.', 'g'), '_'

View file

@ -224,6 +224,7 @@ UserHandler = class UserHandler extends Handler
res.end()
getLevelSessionsForEmployer: (req, res, userID) ->
return @sendForbiddenError(res) unless req.user
return @sendForbiddenError(res) unless req.user._id+'' is userID or req.user.isAdmin() or ('employer' in (req.user.get('permissions') ? []))
query = creator: userID, levelID: {$in: ['criss-cross', 'gridmancer', 'greed', 'dungeon-arena', 'brawlwood', 'gold-rush']}
projection = 'levelName levelID team playtime codeLanguage submitted code totalScore teamSpells level'
@ -241,7 +242,7 @@ UserHandler = class UserHandler extends Handler
return @sendDatabaseError res, err if err
return @sendNotFoundError res unless userID?
query = creator: userID + ''
isAuthorized = req.user._id+'' is userID or req.user.isAdmin()
isAuthorized = req.user?._id+'' is userID or req.user?.isAdmin()
projection = {}
if req.query.project
projection[field] = 1 for field in req.query.project.split(',') when isAuthorized or not (field in LevelSessionHandler.privateProperties)
@ -278,9 +279,9 @@ UserHandler = class UserHandler extends Handler
trackActivity: (req, res, userID, activityName, increment=1) ->
return @sendMethodNotAllowed res unless req.method is 'POST'
isMe = userID is req.user._id + ''
isAuthorized = isMe or req.user.isAdmin()
isAuthorized ||= ('employer' in (req.user.get('permissions') ? [])) and (activityName in ['viewed_by_employer', 'contacted_by_employer'])
isMe = userID is req.user?._id + ''
isAuthorized = isMe or req.user?.isAdmin()
isAuthorized ||= ('employer' in (req.user?.get('permissions') ? [])) and (activityName in ['viewed_by_employer', 'contacted_by_employer'])
return @sendForbiddenError res unless isAuthorized
updateUser = (user) =>
activity = user.trackActivity activityName, increment
@ -322,6 +323,7 @@ UserHandler = class UserHandler extends Handler
res.end()
getCandidates: (req, res) ->
return @sendForbiddenError(res) unless req.user
authorized = req.user.isAdmin() or ('employer' in (req.user.get('permissions') ? []))
months = if req.user.isAdmin() then 12 else 2
since = (new Date((new Date()) - months * 30.4 * 86400 * 1000)).toISOString()
@ -356,7 +358,7 @@ UserHandler = class UserHandler extends Handler
true
getEmployers: (req, res) ->
return @sendForbiddenError(res) unless req.user.isAdmin()
return @sendForbiddenError(res) unless req.user?.isAdmin()
query = {employerAt: {$exists: true, $ne: ''}}
selection = 'name firstName lastName email activity signedEmployerAgreement photoURL employerAt'
User.find(query).select(selection).lean().exec (err, documents) =>
@ -379,7 +381,7 @@ UserHandler = class UserHandler extends Handler
hash.digest('hex')
getRemark: (req, res, userID) ->
return @sendForbiddenError(res) unless req.user.isAdmin()
return @sendForbiddenError(res) unless req.user?.isAdmin()
query = user: userID
projection = null
if req.query.project
@ -392,7 +394,7 @@ UserHandler = class UserHandler extends Handler
searchForUser: (req, res) ->
# TODO: also somehow search the CLAs to find a match amongst those fields and to find GitHub ids
return @sendForbiddenError(res) unless req.user.isAdmin()
return @sendForbiddenError(res) unless req.user?.isAdmin()
search = req.body.search
query = email: {$exists: true}, $or: [
{emailLower: search}
@ -605,7 +607,7 @@ UserHandler = class UserHandler extends Handler
@statRecalculators[statName] done
recalculate: (req, res, statName) ->
return @sendForbiddenError(res) unless req.user.isAdmin()
return @sendForbiddenError(res) unless req.user?.isAdmin()
log.debug 'recalculate'
return @sendNotFoundError(res) unless statName of @statRecalculators
@recalculateStats statName