diff --git a/app/locale/es-419.coffee b/app/locale/es-419.coffee
index f925aaf63..eefb10072 100644
--- a/app/locale/es-419.coffee
+++ b/app/locale/es-419.coffee
@@ -437,24 +437,24 @@ module.exports = nativeDescription: "Español (América Latina)", englishDescrip
payment_methods_title: "Metodos de pago aceptados."
payment_methods_blurb1: "Actualmente aceptamos tarjetas de credito y Alipay."
payment_methods_blurb2: "Si necesitas una forma alternativa de pago, por favor contactarse"
-# sale_already_subscribed: "You're already subscribed!"
+ sale_already_subscribed: "¡Ya estás subscrito!"
sale_blurb1: "Ahorra 35%"
-# sale_blurb2: "off regular subscription price of $120 for a whole year!" # {changed}
-# sale_button: "Sale!"
-# sale_button_title: "Save 35% when you purchase a 1 year subscription"
+ sale_blurb2: "de descuento en el precio regular de una subscripción de $120 USD por un año completo!" # {changed}
+ sale_button: "Venta!"
+ sale_button_title: "Ahorra 35% al adquirir una subscripción por 1 año"
sale_click_here: "Haz Click Aquí"
sale_ends: "Termina"
-# sale_extended: "*Existing subscriptions will be extended by 1 year."
-# sale_feature_here: "Here's what you'll get:"
-# sale_feature2: "Access to 9 powerful new heroes with unique skills!"
-# sale_feature4: "42,000 bonus gems awarded immediately!"
-# sale_continue: "Ready to continue adventuring?"
+ sale_extended: "*Las subscripciones existentes se extenderán por un año."
+ sale_feature_here: "Esto es lo que obtendrás:"
+ sale_feature2: "¡Acceso a 9 poderosos nuevos héroes con habilidades únicas!"
+ sale_feature4: "¡Una bonificación inmediata de 42,000 gemas!"
+ sale_continue: "¿Estás listo para continuar aventurándote?"
sale_limited_time: "¡Oferta por tiempo limitado!"
sale_new_heroes: "¡Nuevos héroes!"
-# sale_title: "Back to School Sale"
-# sale_view_button: "Buy 1 year subscription for"
+ sale_title: "Venta de regreso a clases"
+ sale_view_button: "Compra la subscripción de 1 año por"
stripe_description: "Suscripción Mensual"
-# stripe_description_year_sale: "1 Year Subscription (35% discount)"
+ stripe_description_year_sale: "Subscripción por 1 año (35% descuento)"
subscription_required_to_play: "Necesitas una suscripción para jugar este nivel."
unlock_help_videos: "Suscríbete para desbloquear todos los video tutoriales."
personal_sub: "Suscripción Personal" # Accounts Subscription View below
@@ -462,14 +462,14 @@ module.exports = nativeDescription: "Español (América Latina)", englishDescrip
managed_by: "Administrado por"
will_be_cancelled: "Será cancelado en"
currently_free: "Actualmente tienes una suscripción gratuita"
- currently_free_until: "Actualmente tienes una suscripción gratuita hasta" # {changed}
+ currently_free_until: "Actualmente tienes una suscripción gratuita hasta"
was_free_until: "Tuviste una suscripción gratuita hasta"
managed_subs: "Suscripciones administradas"
managed_subs_desc: "Agregar suscripciones para otros jugadores (alumnos, hijos, etc.)"
managed_subs_desc_2: "Los recipientes deben tener una cuenta de CodeCombat asociada con el email que usted provea."
group_discounts: "Descuentos por grupo"
group_discounts_1: "También ofrecemos descuentos grupales por suscripciones masivas."
- group_discounts_1st: "1ra suscripción (incluye la tuya)" # {change}
+ group_discounts_1st: "primera suscripción (incluye la tuya)"
group_discounts_full: "Precio regular"
group_discounts_2nd: "2-11 Suscripciones"
group_discounts_20: "20% descuento"
@@ -654,7 +654,7 @@ module.exports = nativeDescription: "Español (América Latina)", englishDescrip
teachers_survey:
title: "Encuesta para profesores"
- must_be_logged: "Debe iniiciar sesión primero. Por favor cree una cuenta o inicie sesión desde el menú en la parte superior."
+ must_be_logged: "Debe iniciar sesión primero. Por favor cree una cuenta o inicie sesión desde el menú en la parte superior."
retrieving: "Obteniendo información..."
being_reviewed_1: "Su solicitud para una prueba gratuita de subscripción está siendo"
being_reviewed_2: "revisada."
@@ -665,20 +665,20 @@ module.exports = nativeDescription: "Español (América Latina)", englishDescrip
denied_2: "denegada."
contact_1: "Por favor contáctenos"
contact_2: "si tiene más preguntas."
-# description_1: "Ofrecemos free subscriptions to teachers for evaluation purposes. You can find more information on our"
+ description_1: "Ofrecemos suscripciones gratuitas a maestros con propósitos de evaluación. Puede hallar más información en nuestra"
description_2: "página"
description_3: "de maestros."
-# description_4: "Por favor fill out this quick survey and we’ll email you setup instructions."
+ description_4: "Por favor llene esta encuesta rápida y le mandaremos por email las instrucciones de configuración."
email: "Dirección de email"
school: "Nombre del colegio"
location: "Nombre de la ciudad"
- age_students: "¿Qué edad tienen tus estudiantes?"
+ age_students: "¿Qué edad tienen sus estudiantes?"
under: "Menor"
other: "Otro:"
- amount_students: "¿A cuantos alumnos les enseñas?"
- hear_about: "¿Donde escuchaste sobre CodeCombat?"
- fill_fields: "Porfavor llenar todos los campos."
- thanks: "Gracias! Vamos a mandarte instrucciónes para iniciar proximamente."
+ amount_students: "¿A cuantos alumnos les enseña?"
+ hear_about: "¿Donde escuchó sobre CodeCombat?"
+ fill_fields: "Porfavor llene todos los campos."
+ thanks: "Gracias! Vamos a mandarle instrucciónes para iniciar proximamente."
versions:
save_version_title: "Guardar nueva versión"
@@ -836,7 +836,7 @@ module.exports = nativeDescription: "Español (América Latina)", englishDescrip
latest_achievement: "último logro"
playtime: "Tiempo de juego"
last_played: "Último jugado"
-# leagues_explanation: "Juega en una liga contra otros miembros del clan en these multiplayer arena instances."
+ leagues_explanation: "Juega en una liga contra otros miembros del clan en estas instancias de arena multijugador."
classes:
archmage_title: "Archimago"
@@ -1026,7 +1026,7 @@ module.exports = nativeDescription: "Español (América Latina)", englishDescrip
my_matches: "Mis Partidas"
simulate: "Simular"
simulation_explanation: "¡Simulando tus juegos puedes mejorar tu posición más rápido!"
-# simulation_explanation_leagues: "Principalmente ayudarás a simular juegos for allied players in your clans and courses."
+ simulation_explanation_leagues: "Principalmente ayudarás a simular juegos para jugadores aliados en tus clanes y cursos."
simulate_games: "¡Simular Juegos!"
simulate_all: "REINICIAR Y SIMULAR JUEGOS"
games_simulated_by: "Juegos simulados por ti:"
@@ -1219,16 +1219,16 @@ module.exports = nativeDescription: "Español (América Latina)", englishDescrip
arrays: "Arreglos"
basic_syntax: "Sintaxis Básica"
boolean_logic: "Lógica Booleana"
-# break_statements: "Break Statements"
+ break_statements: "Sentencias Break"
classes: "Clases"
-# continue_statements: "Continue Statements"
+ continue_statements: "Sentencias Continue"
for_loops: "Ciclos For"
functions: "Funciones"
graphics: "Gráficos"
-# if_statements: "If Statements"
-# input_handling: "Input Handling"
+ if_statements: "Sentencias If"
+ input_handling: "Manejo de Entrada"
math_operations: "Operaciones Matemáticas"
-# object_literals: "Object Literals"
+ object_literals: "Literales de Objeto"
parameters: "Parámetros"
strings: "Cadenas"
variables: "Variables"
@@ -1260,9 +1260,9 @@ module.exports = nativeDescription: "Español (América Latina)", englishDescrip
multiplayer_sign_in_leaderboard: "Entra o crea una cuenta y mira tu solución en la tabla de posiciones."
legal:
- page_title: "Legal"
+ page_title: "Información legal"
opensource_intro: "CodeCombat es completamente open source."
- opensource_description_prefix: "Echa un vistazo "
+ opensource_description_prefix: "Echa un vistazo a "
github_url: "nuestro GitHub"
opensource_description_center: "y ayudanos si quieres! CodeCombat esta construido por docenas de proyectos open source, y los amamos. Mira "
archmage_wiki_url: "nuestra wiki de Archimago"
diff --git a/app/templates/base.jade b/app/templates/base.jade
index bf21fc9a9..ec136a7c1 100644
--- a/app/templates/base.jade
+++ b/app/templates/base.jade
@@ -13,7 +13,6 @@ block header
a(href='/clans', data-i18n="clans.clans") Clans
a(href='http://discourse.codecombat.com/', data-i18n="nav.forum")
a(href='/community', data-i18n="nav.community")
- //a(href='/play/ladder', data-i18n="home.multiplayer").multiplayer-nav-link
if me.get('anonymous') === false
span.dropdown
@@ -63,6 +62,7 @@ block footer
a(href='http://blog.codecombat.com/', data-i18n="nav.blog")
a(href='/contribute', tabindex=-1, data-i18n="nav.contribute") Contribute
a(href='/legal', tabindex=-1, data-i18n="nav.legal") Legal
+ a(href='/play/ladder', tabindex=-1, data-i18n="home.multiplayer").multiplayer-nav-link
if me.isAdmin()
a(href='/admin', data-i18n="nav.admin") Admin
diff --git a/app/templates/common/table.jade b/app/templates/common/table.jade
index a38f2b75b..bd768ce42 100755
--- a/app/templates/common/table.jade
+++ b/app/templates/common/table.jade
@@ -16,8 +16,6 @@ table.table
block tableBody
for document in documents
- var data = document.attributes;
- - if(data.slug == 'ace-of-coders' && new Date() < new Date(1441863900000))
- - continue;
tr(class=document.getOwner() == me.id ? 'mine' : '')
td
a(href="/editor/#{page}/#{data.slug || data._id}")
diff --git a/app/templates/play/campaign-view.jade b/app/templates/play/campaign-view.jade
index 6e69fc9e0..53bb2bb36 100644
--- a/app/templates/play/campaign-view.jade
+++ b/app/templates/play/campaign-view.jade
@@ -17,8 +17,6 @@ if campaign
a(href=level.type == 'hero' ? '#' : level.disabled ? "/play" : "/play/#{level.levelPath || 'level'}/#{level.slug}", disabled=level.disabled, data-level-slug=level.slug, data-level-path=level.levelPath || 'level', data-level-name=level.name)
if level.slug == 'lost-viking'
img.star(src="/file/db/thang.type/5441c3144e9aeb727cc97111/portrait.png")
- else if level.slug == 'robot-ragnarok'
- img.star(src="/file/db/thang.type/54ea35fd2b7506e891ca70d5/portrait.png")
else if level.requiresSubscription
img.star(src="/images/pages/play/star.png")
if levelStatusMap[level.slug] === 'complete'
diff --git a/app/views/clans/ClanDetailsView.coffee b/app/views/clans/ClanDetailsView.coffee
index 111eae966..16f335ac3 100644
--- a/app/views/clans/ClanDetailsView.coffee
+++ b/app/views/clans/ClanDetailsView.coffee
@@ -191,7 +191,6 @@ module.exports = class ClanDetailsView extends RootView
name: utils.i18n(campaign.attributes, 'fullName') or utils.i18n(campaign.attributes, 'name')
levels: []
for levelID, level of campaign.get('levels')
- continue if level.slug is 'ace-of-coders' and new Date() < new Date(1441863900000)
campaignLevelProgression.levels.push
ID: levelID
slug: level.slug
diff --git a/app/views/ladder/MainLadderView.coffee b/app/views/ladder/MainLadderView.coffee
index 620a2d9ee..4656abfa2 100644
--- a/app/views/ladder/MainLadderView.coffee
+++ b/app/views/ladder/MainLadderView.coffee
@@ -55,6 +55,13 @@ module.exports = class LadderHomeView extends RootView
context
heroArenas = [
+ {
+ name: 'Ace of Coders'
+ difficulty: 3
+ id: 'ace-of-coders'
+ image: '/file/db/level/55de80407a57948705777e89/Ace-of-Coders-banner.png'
+ description: 'Battle for control over the icy treasure chests as your gigantic warrior marshals his armies against his mirror-match nemesis.'
+ }
{
name: 'Zero Sum'
difficulty: 3
@@ -62,13 +69,6 @@ heroArenas = [
image: '/file/db/level/550363b4ec31df9c691ab629/MAR26-Banner_Zero%20Sum.png'
description: 'Unleash your coding creativity in both gold gathering and battle tactics in this alpine mirror match between red sorcerer and blue sorcerer.'
}
- {
- name: 'Ace of Coders'
- difficulty: 3
- id: 'ace-of-coders'
- image: '/file/db/level/550363b4ec31df9c691ab629/MAR26-Banner_Zero%20Sum.png'
- description: 'Battle for control over the icy treasure chests as your gigantic warrior marshals his armies against his mirror-match nemesis.'
- }
{
name: 'Cavern Survival'
difficulty: 1
@@ -99,8 +99,6 @@ heroArenas = [
}
]
-heroArenas = _.reject heroArenas, id: 'ace-of-coders' if new Date() < new Date(1441863900000)
-
oldArenas = [
{
name: 'Criss-Cross'
diff --git a/app/views/play/CampaignView.coffee b/app/views/play/CampaignView.coffee
index e896b4f38..84ab46c8d 100644
--- a/app/views/play/CampaignView.coffee
+++ b/app/views/play/CampaignView.coffee
@@ -267,7 +267,7 @@ module.exports = class CampaignView extends RootView
level.locked = false if @campaign?.get('name') is 'Auditions'
level.locked = false if @campaign?.get('name') is 'Intro'
level.locked = false if me.isInGodMode()
- level.locked = false if level.slug is 'robot-ragnarok'
+ #level.locked = false if level.slug is 'robot-ragnarok'
level.disabled = true if level.adminOnly and @levelStatusMap[level.slug] not in ['started', 'complete']
level.disabled = false if me.isInGodMode()
level.color = 'rgb(255, 80, 60)'
@@ -324,8 +324,7 @@ module.exports = class CampaignView extends RootView
me.isPremium() or
not nextLevel.requiresSubscription or
(nextLevel.slug is 'boom-and-bust' and not @levelStatusMap['defense-of-plainswood']) or
- (nextLevel.slug is 'favorable-odds' and not @levelStatusMap['the-raised-sword']) or
- (nextLevel.slug is 'robot-ragnarok' and @levelStatusMap['the-raised-sword'])
+ (nextLevel.slug is 'favorable-odds' and not @levelStatusMap['the-raised-sword'])
)
nextLevel.next = true
foundNext = true
@@ -381,7 +380,7 @@ module.exports = class CampaignView extends RootView
particleKey.push 'premium' if level.requiresSubscription
particleKey.push 'gate' if level.slug in ['kithgard-gates', 'siege-of-stonehold', 'clash-of-clones', 'summits-gate']
particleKey.push 'hero' if level.unlocksHero and not level.unlockedHero
- particleKey.push 'item' if level.slug is 'robot-ragnarok' # TODO: generalize
+ #particleKey.push 'item' if level.slug is 'robot-ragnarok' # TODO: generalize
continue if particleKey.length is 2 # Don't show basic levels
continue unless level.hidden or _.intersection(particleKey, ['item', 'hero-ladder', 'replayable']).length
@particleMan.addEmitter level.position.x / 100, level.position.y / 100, particleKey.join('-')
diff --git a/server/queues/scoring/getTwoGames.coffee b/server/queues/scoring/getTwoGames.coffee
index cf80c143e..eb861a01a 100644
--- a/server/queues/scoring/getTwoGames.coffee
+++ b/server/queues/scoring/getTwoGames.coffee
@@ -66,7 +66,7 @@ getRandomSessions = (user, callback) ->
# Sampling by level: we pick a level, then find a human and ogre session for that level, one at random, one biased towards recent submissions.
#ladderLevelIDs = ['greed', 'criss-cross', 'brawlwood', 'dungeon-arena', 'gold-rush', 'sky-span'] # Let's not give any extra simulations to old ladders.
-ladderLevelIDs = ['dueling-grounds', 'cavern-survival', 'multiplayer-treasure-grove', 'harrowland', 'zero-sum', 'ace-of-coders', 'ace-of-coders', 'ace-of-coders', 'ace-of-coders', 'ace-of-coders', 'ace-of-coders', 'ace-of-coders', 'ace-of-coders', 'ace-of-coders', 'ace-of-coders', 'ace-of-coders', 'ace-of-coders', 'ace-of-coders', 'ace-of-coders', 'ace-of-coders', 'ace-of-coders', 'ace-of-coders']
+ladderLevelIDs = ['dueling-grounds', 'cavern-survival', 'multiplayer-treasure-grove', 'harrowland', 'zero-sum', 'ace-of-coders', 'ace-of-coders', 'ace-of-coders', 'ace-of-coders']
sampleByLevel = (callback) ->
levelID = _.sample ladderLevelIDs
favorRecentHumans = Math.random() < 0.5 # We pick one session favoring recent submissions, then find another one uniformly to play against
@@ -76,7 +76,6 @@ findRandomSession = (queryParams, callback) ->
# In MongoDB 3.2, we will be able to easily get a random document with aggregate $sample: https://jira.mongodb.org/browse/SERVER-533
queryParams.submitted = true
favorRecent = queryParams.favorRecent
- favorRecent = false # temp, for Ace of Coders tournament
delete queryParams.favorRecent
if favorRecent
return findRecentRandomSession queryParams, callback