diff --git a/app/assets/main.html b/app/assets/main.html
index 98c0571ae..d2a3257b4 100644
--- a/app/assets/main.html
+++ b/app/assets/main.html
@@ -53,10 +53,6 @@
-
-
diff --git a/app/lib/surface/Surface.coffee b/app/lib/surface/Surface.coffee
index b809742c6..96e051fe1 100644
--- a/app/lib/surface/Surface.coffee
+++ b/app/lib/surface/Surface.coffee
@@ -457,12 +457,12 @@ module.exports = Surface = class Surface extends CocoClass
onMouseDown: (e) =>
return if @disabled
- newPos = @camera.screenToCanvas({x: e.stageX, y: e.stageY})
+ cap = @camera.screenToCanvas({x: e.stageX, y: e.stageY})
# getObject(s)UnderPoint is broken, so we have to use the private method to get what we want
- onBackground = not @stage._getObjectsUnderPoint(newPos.x, newPos.y, null, true)
+ onBackground = not @stage._getObjectsUnderPoint(e.stageX, e.stageY, null, true)
- worldPos = @camera.screenToWorld x: e.stageX, y: e.stageY
- event = onBackground: onBackground, x: e.stageX, y: e.stageY, originalEvent: e, worldPos: worldPos
+ wop = @camera.screenToWorld x: e.stageX, y: e.stageY
+ event = onBackground: onBackground, x: e.stageX, y: e.stageY, originalEvent: e, worldPos: wop
Backbone.Mediator.publish 'surface:stage-mouse-down', event
Backbone.Mediator.publish 'tome:focus-editor', {}
diff --git a/app/locale/es-ES.coffee b/app/locale/es-ES.coffee
index 35e022051..bae6ed94d 100644
--- a/app/locale/es-ES.coffee
+++ b/app/locale/es-ES.coffee
@@ -652,21 +652,21 @@ module.exports = nativeDescription: "español (ES)", englishDescription: "Spanis
why_paragraph_2_italic_caps: "¡NO MAMA, TENGO QUE TERMINAR EL NIVEL!"
why_paragraph_2_suffix: "Por eso Codecombat es multijugador, no un curso con lecciones \"gamificadas\" . No pararemos hasta que tú no puedas parar... pero esta vez, eso será buena señal."
why_paragraph_3: "Si vas a engancharte a algún juego, engánchate a este y conviértete en uno de los magos de la era tecnológica."
-# press_title: "Bloggers/Press"
-# press_paragraph_1_prefix: "Want to write about us? Feel free to download and use all of the resources included in our"
-# press_paragraph_1_link: "press packet"
-# press_paragraph_1_suffix: ". All logos and images may be used without contacting us directly."
-# team: "Team"
-# george_title: "CEO"
-# george_blurb: "Businesser"
-# scott_title: "Programmer"
-# scott_blurb: "Reasonable One"
-# nick_title: "Programmer"
-# nick_blurb: "Motivation Guru"
-# michael_title: "Programmer"
-# michael_blurb: "Sys Admin"
-# matt_title: "Programmer"
-# matt_blurb: "Bicyclist"
+ press_title: "Blogueros/Prensa"
+ press_paragraph_1_prefix: "Quieres escribir sobre nosotros? Bajate y usa todos los recursos incluidos en nuestro"
+ press_paragraph_1_link: "paquete de prensa"
+ press_paragraph_1_suffix: ". Todos los logos y las imagenes pueden ser usados sin necesidad de contactarnos directamente."
+ team: "Equipo"
+ george_title: "CEO"
+ george_blurb: "Hombre de Negocios"
+ scott_title: "Programador"
+ scott_blurb: "Razonable"
+ nick_title: "Programador"
+ nick_blurb: "Guru Motivacional"
+ michael_title: "Programador"
+ michael_blurb: "Administrador de Sistemas"
+ matt_title: "Programador"
+ matt_blurb: "Ciclista"
legal:
page_title: "Legal"
@@ -878,7 +878,7 @@ module.exports = nativeDescription: "español (ES)", englishDescription: "Spanis
tournament_ended: "El torneo ha terminado"
tournament_rules: "Reglas del Torneo"
tournament_blurb: "Escribe codigo, recolecta oro, construye ejercitos, aplasta a los malos, gana premios, y sube en tu carrera en nuestro Torneo de la Avaricia con $40,000! Ver los detalles"
-# tournament_blurb_criss_cross: "Win bids, construct paths, outwit opponents, grab gems, and upgrade your career in our Criss-Cross tournament! Check out the details"
+ tournament_blurb_criss_cross: "Gana pujas, construye caminos, aniquila a tus oponentes, recoge gemas, y mejora tu carrera en nuestro torneo Criss-Cross! Mira los detalles"
tournament_blurb_blog: "en nuestro blog"
rules: "Reglas"
winners: "Ganadores"
@@ -896,7 +896,7 @@ module.exports = nativeDescription: "español (ES)", englishDescription: "Spanis
in_cash: "en dinero"
custom_wizard: "Personaliza tu Mago de CodeCombat"
custom_avatar: "Personaliza tu avatar de CoceCombat"
-# heap: "for six months of \"Startup\" access"
+ heap: "Por seis meses de acceso \"Startup\""
credits: "creditos"
one_month_coupon: "cupon: elige entre Rails o HTML"
one_month_discount: "descuento del 30%: elige entre Rails o HTML"
@@ -946,61 +946,61 @@ module.exports = nativeDescription: "español (ES)", englishDescription: "Spanis
files: "Archivos"
top_simulators: "Top simuladores"
source_document: "Documento fuente"
-# document: "Document"
+ document: "Documento"
# sprite_sheet: "Sprite Sheet"
-# employers: "Employers"
-# candidates: "Candidates"
-# candidate_sessions: "Candidate Sessions"
+ employers: "Empleados"
+ candidates: "Candidatos"
+ candidate_sessions: "Sesiones de Candidato"
# user_remark: "User Remark"
# user_remarks: "User Remarks"
-# versions: "Versions"
-# items: "Items"
-# wizard: "Wizard"
-# achievement: "Achievement"
+ versions: "Versiones"
+ items: "Objetos"
+ wizard: "Mago"
+ achievement: "Logro"
# clas: "CLAs"
-# play_counts: "Play Counts"
+ play_counts: "Contador de Juegos"
# feedback: "Feedback"
delta:
added: "Añadido"
modified: "Modificado"
deleted: "Eliminado"
-# moved_index: "Moved Index"
+ moved_index: "Indice Movido"
# text_diff: "Text Diff"
# merge_conflict_with: "MERGE CONFLICT WITH"
no_changes: "Sin Cambios"
-# user:
-# stats: "Stats"
-# singleplayer_title: "Singleplayer Levels"
-# multiplayer_title: "Multiplayer Levels"
-# achievements_title: "Achievements"
-# last_played: "Last Played"
-# status: "Status"
-# status_completed: "Completed"
-# status_unfinished: "Unfinished"
-# no_singleplayer: "No Singleplayer games played yet."
-# no_multiplayer: "No Multiplayer games played yet."
-# no_achievements: "No Achievements earned yet."
-# favorite_prefix: "Favorite language is "
-# favorite_postfix: "."
+ user:
+ stats: "Estadisticas"
+ singleplayer_title: "Niveles Individuales"
+ multiplayer_title: "Niveles Multijugador"
+ achievements_title: "Logros"
+ last_played: "Ultimo Jugado"
+ status: "Estatus"
+ status_completed: "Completado"
+ status_unfinished: "Sin Terminar"
+ no_singleplayer: "No has jugado ningun nivel individual todavia."
+ no_multiplayer: "No has jugado ningun nivel multijugador todavia."
+ no_achievements: "No has alcanzado ningun logro todavia."
+ favorite_prefix: "Favorite language is "
+ favorite_postfix: "."
-# achievements:
-# last_earned: "Last Earned"
-# amount_achieved: "Amount"
-# achievement: "Achievement"
-# category_contributor: "Contributor"
-# category_miscellaneous: "Miscellaneous"
-# category_levels: "Levels"
-# category_undefined: "Uncategorized"
-# current_xp_prefix: ""
-# current_xp_postfix: " in total"
-# new_xp_prefix: ""
-# new_xp_postfix: " earned"
-# left_xp_prefix: ""
-# left_xp_infix: " until level "
-# left_xp_postfix: ""
+ achievements:
+ last_earned: "Ganado la ultima vez"
+ amount_achieved: "Cantidad"
+ achievement: "Logro"
+ category_contributor: "Contribuidor"
+ category_miscellaneous: "Miscelanea"
+ category_levels: "Niveles"
+ category_undefined: "Sin categorizar"
+ current_xp_prefix: ""
+ current_xp_postfix: " en total"
+ new_xp_prefix: ""
+ new_xp_postfix: " ganado"
+ left_xp_prefix: ""
+ left_xp_infix: " hasta el nivel"
+ left_xp_postfix: ""
-# account:
-# recently_played: "Recently Played"
-# no_recent_games: "No games played during the past two weeks."
+ account:
+ recently_played: "Jugado Recientemente"
+ no_recent_games: "No he jugado juegos en las ultimas dos semanas."
diff --git a/app/locale/pt-BR.coffee b/app/locale/pt-BR.coffee
index 8127d9f8e..02fc6f480 100644
--- a/app/locale/pt-BR.coffee
+++ b/app/locale/pt-BR.coffee
@@ -79,7 +79,7 @@ module.exports = nativeDescription: "português do Brasil", englishDescription:
recover:
recover_account_title: "Recuperar conta"
send_password: "Recuperar senha"
-# recovery_sent: "Recovery email sent."
+ recovery_sent: "Email de recuperação enviado."
signup:
create_account_title: "Criar conta para salvar progresso"
@@ -91,7 +91,7 @@ module.exports = nativeDescription: "português do Brasil", englishDescription:
sign_up: "Criar conta"
log_in: "Entre com a senha"
social_signup: "Ou, você pode fazer login pelo Facebook ou G+:"
-# required: "You need to log in before you can go that way."
+ required: "Você precisa fazer login antes de ir por esse caminho."
home:
slogan: "Aprenda a programar enquanto se diverte com um jogo."
@@ -106,10 +106,10 @@ module.exports = nativeDescription: "português do Brasil", englishDescription:
for_developers: "Para Desenvolvedores"
javascript_blurb: "A linguagem da web. Ótima para criação de websites, web app, jogos HTML5, e servidores"
python_blurb: "Simples mas poderosa, Python é uma linguagem de programação de uso geral"
-# coffeescript_blurb: "Nicer JavaScript syntax."
-# clojure_blurb: "A modern Lisp."
-# lua_blurb: "Game scripting language."
-# io_blurb: "Simple but obscure."
+ coffeescript_blurb: "Sintaxe de JavaScript mais legal."
+ clojure_blurb: "Um Lisp moderno."
+ lua_blurb: "Linguagem de script para jogos."
+ io_blurb: "Simples mas obscura."
play:
choose_your_level: "Escolha seu estágio"
@@ -129,7 +129,7 @@ module.exports = nativeDescription: "português do Brasil", englishDescription:
level_difficulty: "Dificuldade: "
play_as: "Jogar Como "
spectate: "Assistir"
-# players: "players"
+ players: "jogadores"
# hours_played: "hours played"
contact:
@@ -184,14 +184,14 @@ module.exports = nativeDescription: "português do Brasil", englishDescription:
new_password: "Nova Senha"
new_password_verify: "Confirmação"
email_subscriptions: "Assinaturas para Notícias por Email"
-# email_subscriptions_none: "No Email Subscriptions."
+ email_subscriptions_none: "Sem Assinaturas de Email"
email_announcements: "Notícias"
email_announcements_description: "Receba emails com as últimas notícias e desenvolvimentos do CodeCombat."
email_notifications: "Notificações"
# 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_any_notes_description: "Desabilitar todas as atividades de notificação por email."
+ email_news: "Notícias"
email_recruit_notes: "Oportunidades de emprego"
email_recruit_notes_description: "Se você jogar muito bem, nós podemos lhe contactar para lhe oferecer um emprego (melhor)"
contributor_emails: "Emails para as Classes de Contribuidores"
@@ -202,7 +202,7 @@ module.exports = nativeDescription: "português do Brasil", englishDescription:
error_saving: "Erro no salvamento"
saved: "Alterações Salvas"
password_mismatch: "As senhas não estão iguais"
-# password_repeat: "Please repeat your password."
+ password_repeat: "Por favor repita sua senha."
job_profile: "Perfil de trabalho"
# job_profile_approved: "Your job profile has been approved by CodeCombat. Employers will be able to see it until you either mark it inactive or it has not been changed for four weeks."
# job_profile_explanation: "Hi! Fill this out, and we will get in touch about finding you a software developer job."
@@ -210,9 +210,9 @@ module.exports = nativeDescription: "português do Brasil", englishDescription:
view_profile: "Visualizar seu perfil"
account_profile:
-# settings: "Settings"
-# edit_profile: "Edit Profile"
-# done_editing: "Done Editing"
+ settings: "Configurações"
+ edit_profile: "Edite seu perfil"
+ done_editing: "Edição Feita"
profile_for_prefix: "Perfil de "
profile_for_suffix: ""
# featured: "Featured"
@@ -237,18 +237,18 @@ module.exports = nativeDescription: "português do Brasil", englishDescription:
# next_photo: "add an optional professional photo."
# next_active: "mark yourself open to offers to show up in searches."
example_blog: "Blog"
-# example_personal_site: "Personal Site"
+ example_personal_site: "Site Pessoal"
# links_header: "Personal Links"
# links_blurb: "Link any other sites or profiles you want to highlight, like your GitHub, your LinkedIn, or your blog."
# links_name: "Link Name"
# links_name_help: "What are you linking to?"
# links_link_blurb: "Link URL"
# basics_header: "Update basic info"
-# basics_active: "Open to Offers"
+ basics_active: "Aberto para Ofertas"
# basics_active_help: "Want interview offers right now?"
# basics_job_title: "Desired Job Title"
# basics_job_title_help: "What role are you looking for?"
-# basics_city: "City"
+ basics_city: "Cidade"
# basics_city_help: "City you want to work in (or live in now)."
basics_country: "País"
# basics_country_help: "Country you want to work in (or live in now)."
@@ -283,35 +283,35 @@ module.exports = nativeDescription: "português do Brasil", englishDescription:
# work_employer_help: "Name of your employer."
# work_role: "Job Title"
# work_role_help: "What was your job title or role?"
-# work_duration: "Duration"
+ work_duration: "Duração"
# work_duration_help: "When did you hold this gig?"
-# work_description: "Description"
+ work_description: "Descrição"
# work_description_help: "What did you do there? (140 chars; optional)"
education: "Educação"
# education_header: "Recount your academic ordeals"
# education_blurb: "List your academic ordeals."
education_school: "Escola"
-# education_school_help: "Name of your school."
-# education_degree: "Degree"
+ education_school_help: "Nome da sua escola."
+ education_degree: "Grau"
# education_degree_help: "What was your degree and field of study?"
-# education_duration: "Dates"
-# education_duration_help: "When?"
-# education_description: "Description"
+ education_duration: "Datas"
+ education_duration_help: "Quando?"
+ education_description: "Descrição"
# education_description_help: "Highlight anything about this educational experience. (140 chars; optional)"
our_notes: "Nossas notas"
# remarks: "Remarks"
projects: "Projetos"
-# projects_header: "Add 3 projects"
-# projects_header_2: "Projects (Top 3)"
-# projects_blurb: "Highlight your projects to amaze employers."
-# project_name: "Project Name"
+ projects_header: "Adicione 3 projetos"
+ projects_header_2: "Projetos (Top 3)"
+ projects_blurb: "Destaque seus projetos para impressionar os empregadores."
+ project_name: "Nome do Projeto"
# project_name_help: "What was the project called?"
-# project_description: "Description"
+ project_description: "Descrição"
# project_description_help: "Briefly describe the project."
-# project_picture: "Picture"
+ project_picture: "Imagem"
# project_picture_help: "Upload a 230x115px or larger image showing off the project."
-# project_link: "Link"
-# project_link_help: "Link to the project."
+ project_link: "Link"
+ project_link_help: "Link para o projeto."
# player_code: "Player Code"
# employers:
diff --git a/app/views/editor/level/thangs/AddThangsView.coffee b/app/views/editor/level/thangs/AddThangsView.coffee
index aeba64f92..204c6b9d9 100644
--- a/app/views/editor/level/thangs/AddThangsView.coffee
+++ b/app/views/editor/level/thangs/AddThangsView.coffee
@@ -33,7 +33,7 @@ module.exports = class AddThangsView extends CocoView
models = @supermodel.getModels(ThangType)
thangTypes = _.uniq models, false, (thangType) -> thangType.get('original')
- thangTypes = _.reject thangTypes, (thangType) -> thangType.get('kind') is 'Mark'
+ thangTypes = _.reject thangTypes, (thangType) -> thangType.get('kind') in ['Mark', 'Item']
groupMap = {}
for thangType in thangTypes
kind = thangType.get('kind')
@@ -49,6 +49,10 @@ module.exports = class AddThangsView extends CocoView
thangs: someThangTypes
groups.push group
+ groups = _.sortBy groups, (group) ->
+ index = ['Wall', 'Floor', 'Unit', 'Doodad', 'Misc'].indexOf group.name
+ if index is -1 then 9001 else index
+
context.thangTypes = thangTypes
context.groups = groups
context