mirror of
https://github.com/codeninjasllc/codecombat.git
synced 2025-04-13 21:44:40 -04:00
Merge branch 'master' into feature/webgl
This commit is contained in:
commit
8adbd87401
95 changed files with 716 additions and 618 deletions
app
Router.coffee
bower.jsonpackage.jsonassets/images
lib
locale
ar.coffeebg.coffeeca.coffeecs.coffeeda.coffeede-AT.coffeede-CH.coffeede-DE.coffeeel.coffeeen-AU.coffeeen-GB.coffeeen-US.coffeeen.coffeees-419.coffeees-ES.coffeefa.coffeefi.coffeefr.coffeehe.coffeehi.coffeehu.coffeeid.coffeeit.coffeeja.coffeeko.coffeelt.coffeems.coffeenb.coffeenl-BE.coffeenl-NL.coffeenn.coffeeno.coffeepl.coffeept-BR.coffeept-PT.coffeero.coffeeru.coffeesk.coffeesl.coffeesr.coffeesv.coffeeth.coffeetr.coffeeuk.coffeeur.coffeevi.coffeezh-HANS.coffeezh-HANT.coffeezh-WUU-HANS.coffeezh-WUU-HANT.coffee
models
schemas
styles
templates
treema-ext.coffeeviews
server
achievements
levels
plugins
test/app/views/game-menu
|
@ -74,8 +74,9 @@ module.exports = class CocoRouter extends Backbone.Router
|
|||
|
||||
'multiplayer': go('MultiplayerView')
|
||||
|
||||
'play': go('play/MainPlayView') # This will become 'play-old' or something.
|
||||
'play-hero': go('play/WorldMapView') # This will become 'play' when it is done.
|
||||
'play-old': go('play/MainPlayView') # This used to be 'play'.
|
||||
'play': go('play/WorldMapView')
|
||||
'play-hero': go('play/WorldMapView') # Legacy URL for /play; leave up until start of 2015, I guess.
|
||||
'play/ladder/:levelID': go('play/ladder/LadderView')
|
||||
'play/ladder': go('play/ladder/MainLadderView')
|
||||
'play/level/:levelID': go('play/level/PlayLevelView')
|
||||
|
|
BIN
app/assets/images/common/gem.png
Normal file
BIN
app/assets/images/common/gem.png
Normal file
Binary file not shown.
After ![]() (image error) Size: 7.5 KiB |
BIN
app/assets/images/pages/home/play_img.png
Normal file
BIN
app/assets/images/pages/home/play_img.png
Normal file
Binary file not shown.
After ![]() (image error) Size: 217 KiB |
|
@ -146,10 +146,8 @@ module.exports = Surface = class Surface extends CocoClass
|
|||
|
||||
setWorld: (@world) ->
|
||||
@worldLoaded = true
|
||||
lastFrame = Math.min(@getCurrentFrame(), @world.frames.length - 1)
|
||||
@world.getFrame(lastFrame).restoreState() unless @options.choosing
|
||||
@spriteBoss.world = @world
|
||||
|
||||
@restoreWorldState() unless @options.choosing
|
||||
@showLevel()
|
||||
@updateState true if @loaded
|
||||
@onFrameChanged()
|
||||
|
|
|
@ -98,6 +98,10 @@ module.exports = class World
|
|||
continueLaterFn = =>
|
||||
@loadFrames(loadedCallback, errorCallback, loadProgressCallback, preloadedCallback, skipDeferredLoading, loadUntilFrame) unless @destroyed
|
||||
if @realTime and not @countdownFinished
|
||||
if @levelID in ['the-first-kithmaze', 'the-second-kithmaze', 'the-final-kithmaze']
|
||||
@realTimeSpeedFactor = 3
|
||||
else
|
||||
@realTimeSpeedFactor = 1
|
||||
return setTimeout @finishCountdown(continueLaterFn), REAL_TIME_COUNTDOWN_DELAY
|
||||
t1 = now()
|
||||
@t0 ?= t1
|
||||
|
@ -136,18 +140,18 @@ module.exports = class World
|
|||
|
||||
shouldDelayRealTimeSimulation: (t) ->
|
||||
return false unless @realTime
|
||||
timeSinceStart = t - @worldLoadStartTime
|
||||
timeSinceStart = (t - @worldLoadStartTime) * @realTimeSpeedFactor
|
||||
timeLoaded = @frames.length * @dt * 1000
|
||||
timeBuffered = timeLoaded - timeSinceStart
|
||||
timeBuffered > REAL_TIME_BUFFER_MAX
|
||||
timeBuffered > REAL_TIME_BUFFER_MAX * @realTimeSpeedFactor
|
||||
|
||||
shouldUpdateRealTimePlayback: (t) ->
|
||||
return false unless @realTime
|
||||
return false if @frames.length * @dt is @lastRealTimeUpdate
|
||||
timeLoaded = @frames.length * @dt * 1000
|
||||
timeSinceStart = t - @worldLoadStartTime
|
||||
timeSinceStart = (t - @worldLoadStartTime) * @realTimeSpeedFactor
|
||||
remainingBuffer = @lastRealTimeUpdate * 1000 - timeSinceStart
|
||||
remainingBuffer < REAL_TIME_BUFFER_MIN
|
||||
remainingBuffer < REAL_TIME_BUFFER_MIN * @realTimeSpeedFactor
|
||||
|
||||
shouldContinueLoading: (t1, loadProgressCallback, skipDeferredLoading, continueLaterFn) ->
|
||||
t2 = now()
|
||||
|
@ -192,6 +196,7 @@ module.exports = class World
|
|||
@flagHistory.push flagEvent
|
||||
|
||||
loadFromLevel: (level, willSimulate=true) ->
|
||||
@levelID = level.slug
|
||||
@levelComponents = level.levelComponents
|
||||
@thangTypes = level.thangTypes
|
||||
@loadSystemsFromLevel level
|
||||
|
|
|
@ -117,6 +117,7 @@ module.exports = nativeDescription: "العربية", englishDescription: "Arabi
|
|||
adventurer_forum: "منتدى المغامر"
|
||||
adventurer_suffix: "."
|
||||
campaign_beginner: "حملة المبتدئين"
|
||||
# campaign_old_beginner: "Old Beginner Campaign"
|
||||
campaign_beginner_description: "... فيها تتعلم سحر البرمجة."
|
||||
campaign_dev: "مستويات أصعب عشوائية"
|
||||
campaign_dev_description: "... فيها تتعلم واجهة بينما تفعل شيئا أصعب قليلا."
|
||||
|
@ -139,6 +140,8 @@ module.exports = nativeDescription: "العربية", englishDescription: "Arabi
|
|||
# next: "Next"
|
||||
# previous: "Previous"
|
||||
# choose_inventory: "Equip Items"
|
||||
# older_campaigns: "Older Campaigns"
|
||||
# anonymous: "Anonymous Player"
|
||||
|
||||
# items:
|
||||
# armor: "Armor"
|
||||
|
@ -416,7 +419,9 @@ module.exports = nativeDescription: "العربية", englishDescription: "Arabi
|
|||
# tome_cast_button_running: "Running"
|
||||
# tome_cast_button_ran: "Ran"
|
||||
# tome_submit_button: "Submit"
|
||||
# tome_select_spell: "Select a Spell"
|
||||
# tome_reload_method: "Reload original code for this method" # Title text for individual method reload button.
|
||||
# tome_select_method: "Select a Method"
|
||||
# tome_see_all_methods: "See all methods you can edit" # Title text for method list selector (shown when there are multiple programmable methdos).
|
||||
# tome_select_a_thang: "Select Someone for "
|
||||
# tome_available_spells: "Available Spells"
|
||||
# tome_your_skills: "Your Skills"
|
||||
|
|
|
@ -117,6 +117,7 @@ module.exports = nativeDescription: "български език", englishDescri
|
|||
# adventurer_forum: "the Adventurer forum"
|
||||
# adventurer_suffix: "."
|
||||
# campaign_beginner: "Beginner Campaign"
|
||||
# campaign_old_beginner: "Old Beginner Campaign"
|
||||
# campaign_beginner_description: "... in which you learn the wizardry of programming."
|
||||
# campaign_dev: "Random Harder Levels"
|
||||
# campaign_dev_description: "... in which you learn the interface while doing something a little harder."
|
||||
|
@ -139,6 +140,8 @@ module.exports = nativeDescription: "български език", englishDescri
|
|||
# next: "Next"
|
||||
# previous: "Previous"
|
||||
# choose_inventory: "Equip Items"
|
||||
# older_campaigns: "Older Campaigns"
|
||||
# anonymous: "Anonymous Player"
|
||||
|
||||
# items:
|
||||
# armor: "Armor"
|
||||
|
@ -416,7 +419,9 @@ module.exports = nativeDescription: "български език", englishDescri
|
|||
# tome_cast_button_running: "Running"
|
||||
# tome_cast_button_ran: "Ran"
|
||||
# tome_submit_button: "Submit"
|
||||
# tome_select_spell: "Select a Spell"
|
||||
# tome_reload_method: "Reload original code for this method" # Title text for individual method reload button.
|
||||
# tome_select_method: "Select a Method"
|
||||
# tome_see_all_methods: "See all methods you can edit" # Title text for method list selector (shown when there are multiple programmable methdos).
|
||||
# tome_select_a_thang: "Select Someone for "
|
||||
# tome_available_spells: "Available Spells"
|
||||
# tome_your_skills: "Your Skills"
|
||||
|
|
|
@ -90,8 +90,8 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr
|
|||
creating: "Creant Compte..."
|
||||
sign_up: "Registrar-se"
|
||||
log_in: "Iniciar sessió amb la teva contrasenya"
|
||||
# social_signup: "Or, you can sign up through Facebook or G+:"
|
||||
# required: "You need to log in before you can go that way."
|
||||
social_signup: "O, pots iniciar sesió desde Facebook o G+:"
|
||||
required: "Neccesites iniciar sesió abans ."
|
||||
|
||||
home:
|
||||
slogan: "Aprén a programar tot Jugant"
|
||||
|
@ -117,6 +117,7 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr
|
|||
adventurer_forum: "El fòrum de l'aventurer"
|
||||
adventurer_suffix: "."
|
||||
campaign_beginner: "Campanya del principiant"
|
||||
campaign_old_beginner: "Antiga campanya del principiant"
|
||||
campaign_beginner_description: "... on aprens la bruixeria de la programació."
|
||||
campaign_dev: "Nivells difícils aleatoris"
|
||||
campaign_dev_description: "... on aprens a interactuar amb la interfície tot fent coses un pèl més difícils."
|
||||
|
@ -133,12 +134,14 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr
|
|||
hours_played: "hores de joc"
|
||||
items: "Objectes"
|
||||
heroes: "Herois"
|
||||
achievements: "Assoliments"
|
||||
achievements: "Triomfs"
|
||||
account: "Conta"
|
||||
settings: "Configuració"
|
||||
next: "Següent"
|
||||
previous: "Anterior"
|
||||
choose_inventory: "Equipar objectes"
|
||||
older_campaigns: "Campanyes antigues"
|
||||
anonymous: "Jugador anònim"
|
||||
|
||||
items:
|
||||
armor: "Armadura"
|
||||
|
@ -158,7 +161,7 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr
|
|||
forum_page: "el nostre fòrum"
|
||||
forum_suffix: " sinó"
|
||||
send: "Enviar comentari"
|
||||
# contact_candidate: "Contact Candidate"
|
||||
contact_candidate: "Contactar amb el candidat"
|
||||
# recruitment_reminder: "Use this form to reach out to candidates you are interested in interviewing. Remember that CodeCombat charges 15% of first-year salary. The fee is due upon hiring the employee and is refundable for 90 days if the employee does not remain employed. Part time, remote, and contract employees are free, as are interns."
|
||||
|
||||
diplomat_suggestion:
|
||||
|
@ -177,13 +180,13 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr
|
|||
group: "Grup"
|
||||
clothes: "Roba"
|
||||
# trim: "Trim"
|
||||
# cloud: "Cloud"
|
||||
cloud: "Nuvol"
|
||||
team: "Equip"
|
||||
# spell: "Spell"
|
||||
boots: "Botes"
|
||||
# hue: "Hue"
|
||||
# saturation: "Saturation"
|
||||
# lightness: "Lightness"
|
||||
saturation: "Saturació"
|
||||
lightness: "Brillantor"
|
||||
|
||||
account_settings:
|
||||
title: "Configuració de la compta"
|
||||
|
@ -194,7 +197,7 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr
|
|||
upload_picture: "Carrega una foto"
|
||||
wizard_tab: "Bruixot"
|
||||
password_tab: "Contrasenya"
|
||||
# emails_tab: "Emails"
|
||||
emails_tab: "Missatges"
|
||||
admin: "Administrador"
|
||||
wizard_color: "Color de la roba"
|
||||
new_password: "Contrasenya nova"
|
||||
|
@ -205,7 +208,7 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr
|
|||
# email_announcements_description: "Get emails on the latest news and developments at CodeCombat."
|
||||
email_notifications: "Notificacions"
|
||||
# email_notifications_summary: "Controls for personalized, automatic email notifications related to your CodeCombat activity."
|
||||
# email_any_notes: "Any Notifications"
|
||||
email_any_notes: "Cap notificació"
|
||||
# email_any_notes_description: "Disable to stop all activity notification emails."
|
||||
email_news: "Noticies"
|
||||
email_recruit_notes: "Oportunitats de feina"
|
||||
|
@ -214,8 +217,8 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr
|
|||
# contribute_prefix: "We're looking for people to join our party! Check out the "
|
||||
# contribute_page: "contribute page"
|
||||
# contribute_suffix: " to find out more."
|
||||
# email_toggle: "Toggle All"
|
||||
# error_saving: "Error Saving"
|
||||
email_toggle: "Activa-ho tot"
|
||||
error_saving: "Error en desar"
|
||||
saved: "Canvis desats"
|
||||
password_mismatch: "Les contrasenyes no coincideixen."
|
||||
password_repeat: "Siusplau, repetiu la contrasenya."
|
||||
|
@ -228,9 +231,9 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr
|
|||
account_profile:
|
||||
settings: "Configuració"
|
||||
edit_profile: "Modifica el perfil"
|
||||
# done_editing: "Done Editing"
|
||||
done_editing: "Acaba l'edició"
|
||||
# profile_for_prefix: "Profile for "
|
||||
# profile_for_suffix: ""
|
||||
profile_for_suffix: ""
|
||||
# featured: "Featured"
|
||||
# not_featured: "Not Featured"
|
||||
looking_for: "Buscant:"
|
||||
|
@ -277,8 +280,8 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr
|
|||
# basics_looking_for_contracting: "Contracting"
|
||||
# basics_looking_for_internship: "Internship"
|
||||
# basics_looking_for_help: "What kind of developer position do you want?"
|
||||
# name_header: "Fill in your name"
|
||||
# name_anonymous: "Anonymous Developer"
|
||||
name_header: "Omplir amb el teu nom"
|
||||
name_anonymous: "Desenvolupador anònim"
|
||||
# name_help: "Name you want employers to see, like 'Nick Winter'."
|
||||
# short_description_header: "Write a short description of yourself"
|
||||
# short_description_blurb: "Add a tagline to help an employer quickly learn more about you."
|
||||
|
@ -307,17 +310,17 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr
|
|||
# education_header: "Recount your academic ordeals"
|
||||
# education_blurb: "List your academic ordeals."
|
||||
education_school: "Escola"
|
||||
# education_school_help: "Name of your school."
|
||||
education_school_help: "Nom de la teva escola."
|
||||
# education_degree: "Degree"
|
||||
# education_degree_help: "What was your degree and field of study?"
|
||||
# education_duration: "Dates"
|
||||
# education_duration_help: "When?"
|
||||
education_duration_help: "Quan?"
|
||||
# education_description: "Description"
|
||||
# education_description_help: "Highlight anything about this educational experience. (140 chars; optional)"
|
||||
# our_notes: "CodeCombat's Notes"
|
||||
# remarks: "Remarks"
|
||||
projects: "Projectes"
|
||||
# projects_header: "Add 3 projects"
|
||||
projects_header: "Afegeix 3 projectes"
|
||||
# projects_header_2: "Projects (Top 3)"
|
||||
# projects_blurb: "Highlight your projects to amaze employers."
|
||||
project_name: "Nom del projecte"
|
||||
|
@ -326,7 +329,7 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr
|
|||
# project_description_help: "Briefly describe the project."
|
||||
project_picture: "Imatge"
|
||||
# project_picture_help: "Upload a 230x115px or larger image showing off the project."
|
||||
# project_link: "Link"
|
||||
project_link: "Enllaç"
|
||||
# project_link_help: "Link to the project."
|
||||
# player_code: "Player Code"
|
||||
|
||||
|
@ -339,16 +342,16 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr
|
|||
# filter_visa_yes: "US Authorized"
|
||||
# filter_visa_no: "Not Authorized"
|
||||
# filter_education_top: "Top School"
|
||||
# filter_education_other: "Other"
|
||||
# filter_role_web_developer: "Web Developer"
|
||||
filter_education_other: "Altres"
|
||||
filter_role_web_developer: "Desenvolupador web"
|
||||
# filter_role_software_developer: "Software Developer"
|
||||
# filter_role_mobile_developer: "Mobile Developer"
|
||||
# filter_experience: "Experience"
|
||||
filter_experience: "Experiencia"
|
||||
# filter_experience_senior: "Senior"
|
||||
# filter_experience_junior: "Junior"
|
||||
# filter_experience_recent_grad: "Recent Grad"
|
||||
# filter_experience_student: "College Student"
|
||||
# filter_results: "results"
|
||||
filter_results: "resultats"
|
||||
# start_hiring: "Start hiring."
|
||||
# reasons: "Three reasons you should hire through us:"
|
||||
# everyone_looking: "Everyone here is looking for their next opportunity."
|
||||
|
@ -358,7 +361,7 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr
|
|||
# pass_screen: "They will pass your technical screen."
|
||||
# pass_screen_blurb: "Review each candidate's code before reaching out. One employer found that 5x as many of our devs passed their technical screen than hiring from Hacker News."
|
||||
# make_hiring_easier: "Make my hiring easier, please."
|
||||
# what: "What is CodeCombat?"
|
||||
what: "Que és CodeCombat?"
|
||||
# what_blurb: "CodeCombat is a multiplayer browser programming game. Players write code to control their forces in battle against other developers. Our players have experience with all major tech stacks."
|
||||
# cost: "How much do we charge?"
|
||||
# cost_blurb: "We charge 15% of first year's salary and offer a 100% money back guarantee for 90 days. We don't charge for candidates who are already actively being interviewed at your company."
|
||||
|
@ -371,13 +374,13 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr
|
|||
# candidate_last_updated: "Last Updated"
|
||||
# candidate_who: "Who"
|
||||
# featured_developers: "Featured Developers"
|
||||
# other_developers: "Other Developers"
|
||||
other_developers: "Altres desenvolupadors"
|
||||
# inactive_developers: "Inactive Developers"
|
||||
|
||||
play_level:
|
||||
done: "Fet"
|
||||
customize_wizard: "Personalitza el teu bruixot"
|
||||
# home: "Home"
|
||||
home: "Inici"
|
||||
# skip: "Skip"
|
||||
game_menu: "Menu de joc"
|
||||
guide: "Guia"
|
||||
|
@ -385,9 +388,9 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr
|
|||
goals: "Objectius"
|
||||
goal: "Objectiu"
|
||||
success: "Exit!"
|
||||
# incomplete: "Incomplete"
|
||||
# timed_out: "Ran out of time"
|
||||
# failing: "Failing"
|
||||
incomplete: "Incomplet"
|
||||
timed_out: "S'ha acabat el temps"
|
||||
failing: "Fallant"
|
||||
# action_timeline: "Action Timeline"
|
||||
# click_to_select: "Click on a unit to select it."
|
||||
# reload_title: "Reload All Code?"
|
||||
|
@ -401,14 +404,14 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr
|
|||
# victory_return_to_ladder: "Return to Ladder"
|
||||
victory_play_next_level: "Jugar el següent nivell"
|
||||
victory_play_continue: "Continuar"
|
||||
# victory_go_home: "Go Home"
|
||||
# victory_review: "Tell us more!"
|
||||
victory_go_home: "Tornar a l'inici"
|
||||
victory_review: "Diguens més!"
|
||||
# victory_hour_of_code_done: "Are You Done?"
|
||||
# victory_hour_of_code_done_yes: "Yes, I'm finished with my Hour of Code™!"
|
||||
guide_title: "Guia"
|
||||
# tome_minion_spells: "Your Minions' Spells"
|
||||
# tome_read_only_spells: "Read-Only Spells"
|
||||
# tome_other_units: "Other Units"
|
||||
tome_other_units: "Altres unitats"
|
||||
# tome_cast_button_castable: "Cast Spell" # Temporary, if tome_cast_button_run isn't translated.
|
||||
# tome_cast_button_casting: "Casting" # Temporary, if tome_cast_button_running isn't translated.
|
||||
# tome_cast_button_cast: "Spell Cast" # Temporary, if tome_cast_button_ran isn't translated.
|
||||
|
@ -416,14 +419,16 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr
|
|||
# tome_cast_button_running: "Running"
|
||||
# tome_cast_button_ran: "Ran"
|
||||
# tome_submit_button: "Submit"
|
||||
# tome_select_spell: "Select a Spell"
|
||||
# tome_reload_method: "Reload original code for this method" # Title text for individual method reload button.
|
||||
tome_select_method: "Selecciona un mètode"
|
||||
# tome_see_all_methods: "See all methods you can edit" # Title text for method list selector (shown when there are multiple programmable methdos).
|
||||
# tome_select_a_thang: "Select Someone for "
|
||||
# tome_available_spells: "Available Spells"
|
||||
# tome_your_skills: "Your Skills"
|
||||
# hud_continue: "Continue (shift+space)"
|
||||
hud_continue: "Continuar (shift+espai)"
|
||||
# spell_saved: "Spell Saved"
|
||||
# skip_tutorial: "Skip (esc)"
|
||||
# keyboard_shortcuts: "Key Shortcuts"
|
||||
keyboard_shortcuts: "Dreceres del teclat"
|
||||
# loading_ready: "Ready!"
|
||||
loading_start: "Comença el nivell"
|
||||
# tip_insert_positions: "Shift+Click a point on the map to insert it into the spell editor."
|
||||
|
@ -432,8 +437,8 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr
|
|||
# tip_guide_exists: "Click the guide at the top of the page for useful info."
|
||||
# tip_open_source: "CodeCombat is 100% open source!"
|
||||
# tip_beta_launch: "CodeCombat launched its beta in October, 2013."
|
||||
# tip_js_beginning: "JavaScript is just the beginning."
|
||||
# tip_think_solution: "Think of the solution, not the problem."
|
||||
tip_js_beginning: "JavaScript és només."
|
||||
tip_think_solution: "Pensa en la solució,no en el problema."
|
||||
# tip_theory_practice: "In theory, there is no difference between theory and practice. But in practice, there is. - Yogi Berra"
|
||||
# tip_error_free: "There are two ways to write error-free programs; only the third one works. - Alan Perlis"
|
||||
# tip_debugging_program: "If debugging is the process of removing bugs, then programming must be the process of putting them in. - Edsger W. Dijkstra"
|
||||
|
@ -457,15 +462,15 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr
|
|||
# tip_hofstadters_law: "Hofstadter's Law: It always takes longer than you expect, even when you take into account Hofstadter's Law."
|
||||
# tip_premature_optimization: "Premature optimization is the root of all evil. - Donald Knuth"
|
||||
# tip_brute_force: "When in doubt, use brute force. - Ken Thompson"
|
||||
# time_current: "Now:"
|
||||
# time_total: "Max:"
|
||||
# time_goto: "Go to:"
|
||||
time_current: "Ara:"
|
||||
time_total: "Maxim:"
|
||||
time_goto: "Ves a:"
|
||||
infinite_loop_try_again: "Tornar a intentar"
|
||||
infinite_loop_reset_level: "Reiniciar nivell"
|
||||
# infinite_loop_comment_out: "Comment Out My Code"
|
||||
|
||||
game_menu:
|
||||
# inventory_tab: "Inventory"
|
||||
inventory_tab: "Inventari"
|
||||
choose_hero_tab: "Recomençar nivell"
|
||||
save_load_tab: "Desa/Carrega"
|
||||
options_tab: "Opcions"
|
||||
|
@ -475,7 +480,7 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr
|
|||
# choose_hero_caption: "Choose hero, language"
|
||||
# save_load_caption: "... and view history"
|
||||
options_caption: "Edita la configuració"
|
||||
# guide_caption: "Docs and tips"
|
||||
guide_caption: "Documents i pistes"
|
||||
multiplayer_caption: "Juga amb amics!"
|
||||
|
||||
inventory:
|
||||
|
@ -484,7 +489,7 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr
|
|||
choose_hero:
|
||||
choose_hero: "Escull el teu heroi"
|
||||
programming_language: "Llenguatge de programació"
|
||||
# programming_language_description: "Which programming language do you want to use?"
|
||||
programming_language_description: "Quin llenguatge de programació vols utilitzar?"
|
||||
status: "Estat"
|
||||
weapons: "Armes"
|
||||
health: "Salut"
|
||||
|
@ -505,7 +510,7 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr
|
|||
# editor_config_title: "Editor Configuration"
|
||||
# editor_config_level_language_label: "Language for This Level"
|
||||
# editor_config_level_language_description: "Define the programming language for this particular level."
|
||||
# editor_config_default_language_label: "Default Programming Language"
|
||||
editor_config_default_language_label: "Llenguatge de programació per defecte"
|
||||
# editor_config_default_language_description: "Define the programming language you want to code in when starting new levels."
|
||||
# editor_config_keybindings_label: "Key Bindings"
|
||||
# editor_config_keybindings_default: "Default (Ace)"
|
||||
|
@ -523,7 +528,7 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr
|
|||
# temp: "Temp"
|
||||
|
||||
multiplayer:
|
||||
# multiplayer_title: "Multiplayer Settings"
|
||||
multiplayer_title: "Configuració multijugador"
|
||||
multiplayer_toggle: "Activar multijugador"
|
||||
# multiplayer_toggle_description: "Allow others to join your game."
|
||||
# multiplayer_link_description: "Give this link to anyone to have them join you."
|
||||
|
@ -572,7 +577,7 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr
|
|||
# clas: "CLAs"
|
||||
|
||||
community:
|
||||
# main_title: "CodeCombat Community"
|
||||
main_title: "Comunitat CodeCombat"
|
||||
# introduction: "Check out the ways you can get involved below and decide what sounds the most fun. We look forward to working with you!"
|
||||
# level_editor_prefix: "Use the CodeCombat"
|
||||
# level_editor_suffix: "to create and edit levels. Users have created levels for their classes, friends, hackathons, students, and siblings. If create a new level sounds intimidating you can start by forking one of ours!"
|
||||
|
@ -587,14 +592,14 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr
|
|||
social_twitter: "Segueix CodeCombat al Twitter"
|
||||
# social_gplus: "Join CodeCombat on Google+"
|
||||
# social_hipchat: "Chat with us in the public CodeCombat HipChat room"
|
||||
# contribute_to_the_project: "Contribute to the project"
|
||||
contribute_to_the_project: "Contribueix al projecte"
|
||||
|
||||
editor:
|
||||
# main_title: "CodeCombat Editors"
|
||||
# article_title: "Article Editor"
|
||||
# thang_title: "Thang Editor"
|
||||
level_title: "Editor de nivells"
|
||||
# achievement_title: "Achievement Editor"
|
||||
achievement_title: "Editor de triomfs"
|
||||
# back: "Back"
|
||||
# revert: "Revert"
|
||||
# revert_models: "Revert Models"
|
||||
|
@ -606,7 +611,7 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr
|
|||
# generate_terrain: "Generate Terrain"
|
||||
more: "Més"
|
||||
wiki: "Wiki"
|
||||
# live_chat: "Live Chat"
|
||||
live_chat: "Xat en directe"
|
||||
# level_some_options: "Some Options?"
|
||||
# level_tab_thangs: "Thangs"
|
||||
# level_tab_scripts: "Scripts"
|
||||
|
@ -620,7 +625,7 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr
|
|||
# level_tab_thangs_add: "Add Thangs"
|
||||
delete: "Esborrar"
|
||||
duplicate: "Duplicar"
|
||||
# level_settings_title: "Settings"
|
||||
level_settings_title: "Configuració"
|
||||
# level_component_tab_title: "Current Components"
|
||||
# level_component_btn_new: "Create New Component"
|
||||
# level_systems_tab_title: "Current Systems"
|
||||
|
@ -632,17 +637,17 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr
|
|||
# level_component_config_schema: "Config Schema"
|
||||
# level_component_settings: "Settings"
|
||||
# level_system_edit_title: "Edit System"
|
||||
# create_system_title: "Create New System"
|
||||
create_system_title: "Crea un nou sistema"
|
||||
# new_component_title: "Create New Component"
|
||||
# new_component_field_system: "System"
|
||||
# new_article_title: "Create a New Article"
|
||||
new_component_field_system: "Sistema"
|
||||
new_article_title: "Crea un article nou"
|
||||
# new_thang_title: "Create a New Thang Type"
|
||||
# new_level_title: "Create a New Level"
|
||||
# new_article_title_login: "Log In to Create a New Article"
|
||||
new_level_title: "Crea un nou nivell"
|
||||
new_article_title_login: "Inicia sessió per a crear un article nou"
|
||||
# new_thang_title_login: "Log In to Create a New Thang Type"
|
||||
# new_level_title_login: "Log In to Create a New Level"
|
||||
# new_achievement_title: "Create a New Achievement"
|
||||
# new_achievement_title_login: "Log In to Create a New Achievement"
|
||||
new_level_title_login: "Inicia sessió per a crear un nou nivell"
|
||||
new_achievement_title: "Crea un nou triomf"
|
||||
new_achievement_title_login: "Inicia sessió per a crear un nou triomf"
|
||||
# article_search_title: "Search Articles Here"
|
||||
# thang_search_title: "Search Thang Types Here"
|
||||
# level_search_title: "Search Levels Here"
|
||||
|
@ -660,15 +665,15 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr
|
|||
general:
|
||||
# and: "and"
|
||||
name: "Nom"
|
||||
# date: "Date"
|
||||
# body: "Body"
|
||||
date: "Data"
|
||||
body: "Cos"
|
||||
version: "Versió"
|
||||
# commit_msg: "Commit Message"
|
||||
# version_history: "Version History"
|
||||
# version_history_for: "Version History for: "
|
||||
result: "Resultat"
|
||||
results: "Resultats"
|
||||
# description: "Description"
|
||||
description: "Descripció"
|
||||
# or: "or"
|
||||
# subject: "Subject"
|
||||
# email: "Email"
|
||||
|
@ -689,7 +694,7 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr
|
|||
player: "Jugador"
|
||||
|
||||
about:
|
||||
# why_codecombat: "Why CodeCombat?"
|
||||
why_codecombat: "Perquè CodeCombat?"
|
||||
# why_paragraph_1: "If you want to learn to program, you don't need lessons. You need to write a lot of code and have a great time doing it."
|
||||
# why_paragraph_2_prefix: "That's what programming is about. It's gotta be fun. Not fun like"
|
||||
# why_paragraph_2_italic: "yay a badge"
|
||||
|
@ -752,9 +757,9 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr
|
|||
# art_description_prefix: "All common content is available under the"
|
||||
# cc_license_url: "Creative Commons Attribution 4.0 International License"
|
||||
# art_description_suffix: "Common content is anything made generally available by CodeCombat for the purpose of creating Levels. This includes:"
|
||||
# art_music: "Music"
|
||||
# art_sound: "Sound"
|
||||
# art_artwork: "Artwork"
|
||||
art_music: "Musica"
|
||||
art_sound: "So"
|
||||
art_artwork: "Art"
|
||||
# art_sprites: "Sprites"
|
||||
# art_other: "Any and all other non-code creative works that are made available when creating Levels."
|
||||
# art_access: "Currently there is no universal, easy system for fetching these assets. In general, fetch them from the URLs as used by the site, contact us for assistance, or help us in extending the site to make these assets more easily accessible."
|
||||
|
@ -762,12 +767,12 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr
|
|||
# use_list_1: "If used in a movie or another game, include codecombat.com in the credits."
|
||||
# use_list_2: "If used on a website, include a link near the usage, for example underneath an image, or in a general attributions page where you might also mention other Creative Commons works and open source software being used on the site. Something that's already clearly referencing CodeCombat, such as a blog post mentioning CodeCombat, does not need some separate attribution."
|
||||
# art_paragraph_2: "If the content being used is created not by CodeCombat but instead by a user of codecombat.com, attribute them instead, and follow attribution directions provided in that resource's description if there are any."
|
||||
# rights_title: "Rights Reserved"
|
||||
rights_title: "Drets reservats"
|
||||
# rights_desc: "All rights are reserved for Levels themselves. This includes"
|
||||
# rights_scripts: "Scripts"
|
||||
# rights_unit: "Unit configuration"
|
||||
# rights_description: "Description"
|
||||
# rights_writings: "Writings"
|
||||
rights_scripts: "Scripts"
|
||||
rights_unit: "Configuració de la unitat"
|
||||
rights_description: "Descripció"
|
||||
rights_writings: "Escrits"
|
||||
# rights_media: "Media (sounds, music) and any other creative content made specifically for that Level and not made generally available when creating Levels."
|
||||
# rights_clarification: "To clarify, anything that is made available in the Level Editor for the purpose of making levels is under CC, whereas the content created with the Level Editor or uploaded in the course of creation of Levels is not."
|
||||
# nutshell_title: "In a Nutshell"
|
||||
|
@ -776,7 +781,7 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr
|
|||
|
||||
# contribute:
|
||||
# page_title: "Contributing"
|
||||
# character_classes_title: "Character Classes"
|
||||
character_classes_title: "Classes de personatges"
|
||||
# introduction_desc_intro: "We have high hopes for 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_github_url: "CodeCombat is totally open source"
|
||||
|
@ -788,10 +793,10 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr
|
|||
# archmage_summary: "Interested in working on game graphics, user interface design, database and server organization, multiplayer networking, physics, sound, or game engine performance? Want to help build a game to help other people learn what you are good at? We have a lot to do and if you are an experienced programmer and want to develop for CodeCombat, this class is for you. We would love your help building the best programming game ever."
|
||||
# archmage_introduction: "One of the best parts about building games is they synthesize so many different things. Graphics, sound, real-time networking, social networking, and of course many of the more common aspects of programming, from low-level database management, and server administration to user facing design and interface building. There's a lot to do, and if you're an experienced programmer with a hankering to really dive into the nitty-gritty of CodeCombat, this class might be for you. We would love to have your help building the best programming game ever."
|
||||
# class_attributes: "Class Attributes"
|
||||
# archmage_attribute_1_pref: "Knowledge in "
|
||||
archmage_attribute_1_pref: "Coneixement en "
|
||||
# archmage_attribute_1_suf: ", or a desire to learn. Most of our code is in this language. If you're a fan of Ruby or Python, you'll feel right at home. It's JavaScript, but with a nicer syntax."
|
||||
# archmage_attribute_2: "Some experience in programming and personal initiative. We'll help you get oriented, but we can't spend much time training you."
|
||||
# how_to_join: "How To Join"
|
||||
how_to_join: "Com unir-se"
|
||||
# join_desc_1: "Anyone can help out! Just check out our "
|
||||
# join_desc_2: "to get started, and check the box below to mark yourself as a brave Archmage and get the latest news by email. Want to chat about what to do or how to get more deeply involved? "
|
||||
# join_desc_3: ", or find us in our "
|
||||
|
@ -867,7 +872,7 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr
|
|||
adventurer_title: "Aventurer"
|
||||
adventurer_title_description: "(Provador de nivells)"
|
||||
scribe_title: "Escriba"
|
||||
# scribe_title_description: "(Article Editor)"
|
||||
scribe_title_description: "(Editor d'articles)"
|
||||
diplomat_title: "Diplomàtic"
|
||||
diplomat_title_description: "(Traductor)"
|
||||
# ambassador_title: "Ambassador"
|
||||
|
@ -927,24 +932,24 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr
|
|||
rules: "Normes"
|
||||
winners: "Guanyadors"
|
||||
|
||||
# ladder_prizes:
|
||||
# title: "Tournament Prizes"
|
||||
ladder_prizes:
|
||||
title: "Premis del torneig"
|
||||
# blurb_1: "These prizes will be awarded according to"
|
||||
# blurb_2: "the tournament rules"
|
||||
blurb_2: "Les normes del torneig"
|
||||
# blurb_3: "to the top human and ogre players."
|
||||
# blurb_4: "Two teams means double the prizes!"
|
||||
# blurb_5: "(There will be two first place winners, two second-place winners, etc.)"
|
||||
# rank: "Rank"
|
||||
# prizes: "Prizes"
|
||||
# total_value: "Total Value"
|
||||
rank: "Rang"
|
||||
prizes: "Premis"
|
||||
total_value: "Valor total"
|
||||
# in_cash: "in cash"
|
||||
# custom_wizard: "Custom CodeCombat Wizard"
|
||||
# custom_avatar: "Custom CodeCombat avatar"
|
||||
# heap: "for six months of \"Startup\" access"
|
||||
# credits: "credits"
|
||||
credits: "credits"
|
||||
# one_month_coupon: "coupon: choose either Rails or HTML"
|
||||
# one_month_discount: "discount, 30% off: choose either Rails or HTML"
|
||||
# license: "license"
|
||||
license: "llicencia"
|
||||
# oreilly: "ebook of your choice"
|
||||
|
||||
loading_error:
|
||||
|
@ -961,7 +966,7 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr
|
|||
unknown: "Error desconegut."
|
||||
|
||||
resources:
|
||||
# sessions: "Sessions"
|
||||
sessions: "Sessions"
|
||||
# your_sessions: "Your Sessions"
|
||||
level: "Nivell"
|
||||
# social_network_apis: "Social Network APIs"
|
||||
|
@ -976,24 +981,24 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr
|
|||
# patches: "Patches"
|
||||
# patched_model: "Source Document"
|
||||
# model: "Model"
|
||||
# system: "System"
|
||||
# systems: "Systems"
|
||||
system: "Sistema"
|
||||
systems: "Sistemes"
|
||||
# component: "Component"
|
||||
# components: "Components"
|
||||
# thang: "Thang"
|
||||
# thangs: "Thangs"
|
||||
# level_session: "Your Session"
|
||||
level_session: "La teva sessió"
|
||||
# opponent_session: "Opponent Session"
|
||||
# article: "Article"
|
||||
# user_names: "User Names"
|
||||
user_names: "Noms d'usuaris"
|
||||
# thang_names: "Thang Names"
|
||||
# files: "Files"
|
||||
files: "Archius"
|
||||
# top_simulators: "Top Simulators"
|
||||
# source_document: "Source Document"
|
||||
# document: "Document"
|
||||
document: "Documents"
|
||||
# sprite_sheet: "Sprite Sheet"
|
||||
# employers: "Employers"
|
||||
# candidates: "Candidates"
|
||||
candidates: "Candidats"
|
||||
# candidate_sessions: "Candidate Sessions"
|
||||
# user_remark: "User Remark"
|
||||
# user_remarks: "User Remarks"
|
||||
|
@ -1001,7 +1006,7 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr
|
|||
items: "Objectes"
|
||||
heroes: "Herois"
|
||||
wizard: "Bruixot"
|
||||
# achievement: "Achievement"
|
||||
achievement: "Triomf"
|
||||
# clas: "CLAs"
|
||||
# play_counts: "Play Counts"
|
||||
# feedback: "Feedback"
|
||||
|
@ -1013,38 +1018,38 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr
|
|||
# moved_index: "Moved Index"
|
||||
# text_diff: "Text Diff"
|
||||
# merge_conflict_with: "MERGE CONFLICT WITH"
|
||||
# no_changes: "No Changes"
|
||||
no_changes: "Sense canvis"
|
||||
|
||||
user:
|
||||
# stats: "Stats"
|
||||
stats: "Estadístiques"
|
||||
singleplayer_title: "Nivell d'un sol jugador"
|
||||
multiplayer_title: "Nivells multijugador"
|
||||
# achievements_title: "Achievements"
|
||||
achievements_title: "Triomfs"
|
||||
last_played: "Ultim jugat"
|
||||
status: "Estat"
|
||||
status_completed: "Complet"
|
||||
status_unfinished: "Inacabat"
|
||||
no_singleplayer: "Encara no s'han jugat nivells individuals."
|
||||
# no_multiplayer: "No Multiplayer games played yet."
|
||||
# no_achievements: "No Achievements earned yet."
|
||||
no_multiplayer: "Encara no s'han jugat nivells multijugador."
|
||||
no_achievements: "No has aconseguit cap triomf encara."
|
||||
# favorite_prefix: "Favorite language is "
|
||||
# favorite_postfix: "."
|
||||
favorite_postfix: "."
|
||||
|
||||
achievements:
|
||||
# last_earned: "Last Earned"
|
||||
# amount_achieved: "Amount"
|
||||
# achievement: "Achievement"
|
||||
# category_contributor: "Contributor"
|
||||
# category_miscellaneous: "Miscellaneous"
|
||||
last_earned: "Últim aconseguit"
|
||||
amount_achieved: "Cantitat"
|
||||
achievement: "Triomf"
|
||||
category_contributor: "Contribuidor"
|
||||
category_miscellaneous: "Miscel·lània"
|
||||
category_levels: "Nivells"
|
||||
# category_undefined: "Uncategorized"
|
||||
# current_xp_prefix: ""
|
||||
category_undefined: "Sense categoria"
|
||||
current_xp_prefix: ""
|
||||
current_xp_postfix: " en total"
|
||||
# new_xp_prefix: ""
|
||||
new_xp_prefix: ""
|
||||
new_xp_postfix: " guanyat"
|
||||
# left_xp_prefix: ""
|
||||
# left_xp_infix: " until level "
|
||||
# left_xp_postfix: ""
|
||||
left_xp_prefix: ""
|
||||
left_xp_infix: " fins el nivell "
|
||||
left_xp_postfix: ""
|
||||
|
||||
account:
|
||||
recently_played: "Ultimanent jugat"
|
||||
|
|
|
@ -117,6 +117,7 @@ module.exports = nativeDescription: "čeština", englishDescription: "Czech", tr
|
|||
adventurer_forum: "fóru Dobrodruhů"
|
||||
adventurer_suffix: "."
|
||||
campaign_beginner: "Začátečnická úroveň"
|
||||
# campaign_old_beginner: "Old Beginner Campaign"
|
||||
campaign_beginner_description: "...ve které se naučíte kouzla programování."
|
||||
campaign_dev: "Náhodné težší úrovně"
|
||||
campaign_dev_description: "...ve kterých se dozvíte více o prostředí při plnění těžších úkolů."
|
||||
|
@ -139,6 +140,8 @@ module.exports = nativeDescription: "čeština", englishDescription: "Czech", tr
|
|||
# next: "Next"
|
||||
# previous: "Previous"
|
||||
# choose_inventory: "Equip Items"
|
||||
# older_campaigns: "Older Campaigns"
|
||||
# anonymous: "Anonymous Player"
|
||||
|
||||
# items:
|
||||
# armor: "Armor"
|
||||
|
@ -416,7 +419,9 @@ module.exports = nativeDescription: "čeština", englishDescription: "Czech", tr
|
|||
# tome_cast_button_running: "Running"
|
||||
# tome_cast_button_ran: "Ran"
|
||||
# tome_submit_button: "Submit"
|
||||
tome_select_spell: "Zvolte Kouzlo"
|
||||
# tome_reload_method: "Reload original code for this method" # Title text for individual method reload button.
|
||||
# tome_select_method: "Select a Method"
|
||||
# tome_see_all_methods: "See all methods you can edit" # Title text for method list selector (shown when there are multiple programmable methdos).
|
||||
tome_select_a_thang: "Zvolte někoho pro "
|
||||
tome_available_spells: "Dostupná kouzla"
|
||||
# tome_your_skills: "Your Skills"
|
||||
|
|
|
@ -117,6 +117,7 @@ module.exports = nativeDescription: "dansk", englishDescription: "Danish", trans
|
|||
adventurer_forum: "Eventyrer-forummet"
|
||||
adventurer_suffix: "."
|
||||
campaign_beginner: "Begynderkampagne"
|
||||
# campaign_old_beginner: "Old Beginner Campaign"
|
||||
campaign_beginner_description: "... hvor du lærer programmeringens kunst."
|
||||
campaign_dev: "Tilfældige Sværere Niveauer"
|
||||
campaign_dev_description: "... hvor du lærer grænsefladen imens du udfører lidt sværere opgaver."
|
||||
|
@ -139,6 +140,8 @@ module.exports = nativeDescription: "dansk", englishDescription: "Danish", trans
|
|||
# next: "Next"
|
||||
# previous: "Previous"
|
||||
# choose_inventory: "Equip Items"
|
||||
# older_campaigns: "Older Campaigns"
|
||||
# anonymous: "Anonymous Player"
|
||||
|
||||
# items:
|
||||
# armor: "Armor"
|
||||
|
@ -416,7 +419,9 @@ module.exports = nativeDescription: "dansk", englishDescription: "Danish", trans
|
|||
# tome_cast_button_running: "Running"
|
||||
# tome_cast_button_ran: "Ran"
|
||||
# tome_submit_button: "Submit"
|
||||
tome_select_spell: "Vælg en trylleformular"
|
||||
# tome_reload_method: "Reload original code for this method" # Title text for individual method reload button.
|
||||
# tome_select_method: "Select a Method"
|
||||
# tome_see_all_methods: "See all methods you can edit" # Title text for method list selector (shown when there are multiple programmable methdos).
|
||||
tome_select_a_thang: "Vælg nogen til at "
|
||||
tome_available_spells: "Tilgængelige trylleformularer"
|
||||
# tome_your_skills: "Your Skills"
|
||||
|
|
|
@ -117,6 +117,7 @@ module.exports = nativeDescription: "Deutsch (Österreich)", englishDescription:
|
|||
adventurer_forum: "im Abenteurerforum"
|
||||
adventurer_suffix: "."
|
||||
campaign_beginner: "Anfängerkampagne"
|
||||
# campaign_old_beginner: "Old Beginner Campaign"
|
||||
campaign_beginner_description: "... in der Du die Zauberei der Programmierung lernst."
|
||||
campaign_dev: "Beliebiges schwierigeres Level"
|
||||
campaign_dev_description: "... in welchem Du die Bedienung erlernst, indem Du etwas schwierigeres machst."
|
||||
|
@ -139,6 +140,8 @@ module.exports = nativeDescription: "Deutsch (Österreich)", englishDescription:
|
|||
# next: "Next"
|
||||
# previous: "Previous"
|
||||
choose_inventory: "Gegenstände ausrüsten"
|
||||
# older_campaigns: "Older Campaigns"
|
||||
# anonymous: "Anonymous Player"
|
||||
|
||||
items:
|
||||
armor: "Rüstung"
|
||||
|
@ -416,7 +419,9 @@ module.exports = nativeDescription: "Deutsch (Österreich)", englishDescription:
|
|||
# tome_cast_button_running: "Running"
|
||||
# tome_cast_button_ran: "Ran"
|
||||
# tome_submit_button: "Submit"
|
||||
tome_select_spell: "Wähle einen Zauber"
|
||||
# tome_reload_method: "Reload original code for this method" # Title text for individual method reload button.
|
||||
# tome_select_method: "Select a Method"
|
||||
# tome_see_all_methods: "See all methods you can edit" # Title text for method list selector (shown when there are multiple programmable methdos).
|
||||
tome_select_a_thang: "Wähle jemanden aus, um "
|
||||
tome_available_spells: "Verfügbare Zauber"
|
||||
# tome_your_skills: "Your Skills"
|
||||
|
|
|
@ -117,6 +117,7 @@ module.exports = nativeDescription: "Deutsch (Schweiz)", englishDescription: "Ge
|
|||
adventurer_forum: "Abentürer-Forum"
|
||||
adventurer_suffix: "."
|
||||
campaign_beginner: "Afängerkampagne"
|
||||
# campaign_old_beginner: "Old Beginner Campaign"
|
||||
campaign_beginner_description: "... i dere du d Zauberkunst vom Programmiere lernsch."
|
||||
campaign_dev: "Zuefälligi schwierigeri Level"
|
||||
campaign_dev_description: "... i dene du s Interface kenne lernsch, während du öppis chli Schwierigers machsch."
|
||||
|
@ -139,6 +140,8 @@ module.exports = nativeDescription: "Deutsch (Schweiz)", englishDescription: "Ge
|
|||
# next: "Next"
|
||||
# previous: "Previous"
|
||||
# choose_inventory: "Equip Items"
|
||||
# older_campaigns: "Older Campaigns"
|
||||
# anonymous: "Anonymous Player"
|
||||
|
||||
# items:
|
||||
# armor: "Armor"
|
||||
|
@ -416,7 +419,9 @@ module.exports = nativeDescription: "Deutsch (Schweiz)", englishDescription: "Ge
|
|||
# tome_cast_button_running: "Running"
|
||||
# tome_cast_button_ran: "Ran"
|
||||
# tome_submit_button: "Submit"
|
||||
tome_select_spell: "Wähl en Zauberspruch us"
|
||||
# tome_reload_method: "Reload original code for this method" # Title text for individual method reload button.
|
||||
# tome_select_method: "Select a Method"
|
||||
# tome_see_all_methods: "See all methods you can edit" # Title text for method list selector (shown when there are multiple programmable methdos).
|
||||
tome_select_a_thang: "Wähl öpper us für"
|
||||
tome_available_spells: "Verfüegbari Zaubersprüch"
|
||||
# tome_your_skills: "Your Skills"
|
||||
|
|
|
@ -117,6 +117,7 @@ module.exports = nativeDescription: "Deutsch (Deutschland)", englishDescription:
|
|||
adventurer_forum: "im Abenteurerforum"
|
||||
adventurer_suffix: "."
|
||||
campaign_beginner: "Anfängerkampagne"
|
||||
# campaign_old_beginner: "Old Beginner Campaign"
|
||||
campaign_beginner_description: "... in der Du die Zauberei der Programmierung lernst."
|
||||
campaign_dev: "Beliebiges schwierigeres Level"
|
||||
campaign_dev_description: "... in welchem Du die Bedienung erlernst, indem Du etwas schwierigeres machst."
|
||||
|
@ -139,6 +140,8 @@ module.exports = nativeDescription: "Deutsch (Deutschland)", englishDescription:
|
|||
# next: "Next"
|
||||
# previous: "Previous"
|
||||
choose_inventory: "Gegenstände ausrüsten"
|
||||
# older_campaigns: "Older Campaigns"
|
||||
# anonymous: "Anonymous Player"
|
||||
|
||||
items:
|
||||
armor: "Rüstung"
|
||||
|
@ -416,7 +419,9 @@ module.exports = nativeDescription: "Deutsch (Deutschland)", englishDescription:
|
|||
# tome_cast_button_running: "Running"
|
||||
# tome_cast_button_ran: "Ran"
|
||||
# tome_submit_button: "Submit"
|
||||
tome_select_spell: "Wähle einen Zauber"
|
||||
# tome_reload_method: "Reload original code for this method" # Title text for individual method reload button.
|
||||
# tome_select_method: "Select a Method"
|
||||
# tome_see_all_methods: "See all methods you can edit" # Title text for method list selector (shown when there are multiple programmable methdos).
|
||||
tome_select_a_thang: "Wähle jemanden aus, um "
|
||||
tome_available_spells: "Verfügbare Zauber"
|
||||
# tome_your_skills: "Your Skills"
|
||||
|
|
|
@ -117,6 +117,7 @@ module.exports = nativeDescription: "Ελληνικά", englishDescription: "Gre
|
|||
adventurer_forum: "Φόρουμ του \"Τυχοδιώκτη\""
|
||||
# adventurer_suffix: "."
|
||||
campaign_beginner: "Εκστρατεία για Αρχάριους"
|
||||
# campaign_old_beginner: "Old Beginner Campaign"
|
||||
campaign_beginner_description: "... στο οποίο μπορείτε να μάθετε τη μαγεία του προγραμματισμού"
|
||||
campaign_dev: "Τυχαία δυσκολότερα επίπεδα"
|
||||
campaign_dev_description: "... στο οποίο μπορείτε να μάθετε το περιβάλλον, ενώ κάνετε κάτι λίγο πιο δύσκολο."
|
||||
|
@ -139,6 +140,8 @@ module.exports = nativeDescription: "Ελληνικά", englishDescription: "Gre
|
|||
# next: "Next"
|
||||
# previous: "Previous"
|
||||
# choose_inventory: "Equip Items"
|
||||
# older_campaigns: "Older Campaigns"
|
||||
# anonymous: "Anonymous Player"
|
||||
|
||||
# items:
|
||||
# armor: "Armor"
|
||||
|
@ -416,7 +419,9 @@ module.exports = nativeDescription: "Ελληνικά", englishDescription: "Gre
|
|||
# tome_cast_button_running: "Running"
|
||||
# tome_cast_button_ran: "Ran"
|
||||
# tome_submit_button: "Submit"
|
||||
# tome_select_spell: "Select a Spell"
|
||||
# tome_reload_method: "Reload original code for this method" # Title text for individual method reload button.
|
||||
# tome_select_method: "Select a Method"
|
||||
# tome_see_all_methods: "See all methods you can edit" # Title text for method list selector (shown when there are multiple programmable methdos).
|
||||
# tome_select_a_thang: "Select Someone for "
|
||||
# tome_available_spells: "Available Spells"
|
||||
# tome_your_skills: "Your Skills"
|
||||
|
|
|
@ -117,6 +117,7 @@ module.exports = nativeDescription: "English (AU)", englishDescription: "English
|
|||
# adventurer_forum: "the Adventurer forum"
|
||||
# adventurer_suffix: "."
|
||||
# campaign_beginner: "Beginner Campaign"
|
||||
# campaign_old_beginner: "Old Beginner Campaign"
|
||||
# campaign_beginner_description: "... in which you learn the wizardry of programming."
|
||||
# campaign_dev: "Random Harder Levels"
|
||||
# campaign_dev_description: "... in which you learn the interface while doing something a little harder."
|
||||
|
@ -139,6 +140,8 @@ module.exports = nativeDescription: "English (AU)", englishDescription: "English
|
|||
# next: "Next"
|
||||
# previous: "Previous"
|
||||
# choose_inventory: "Equip Items"
|
||||
# older_campaigns: "Older Campaigns"
|
||||
# anonymous: "Anonymous Player"
|
||||
|
||||
# items:
|
||||
# armor: "Armor"
|
||||
|
@ -416,7 +419,9 @@ module.exports = nativeDescription: "English (AU)", englishDescription: "English
|
|||
# tome_cast_button_running: "Running"
|
||||
# tome_cast_button_ran: "Ran"
|
||||
# tome_submit_button: "Submit"
|
||||
# tome_select_spell: "Select a Spell"
|
||||
# tome_reload_method: "Reload original code for this method" # Title text for individual method reload button.
|
||||
# tome_select_method: "Select a Method"
|
||||
# tome_see_all_methods: "See all methods you can edit" # Title text for method list selector (shown when there are multiple programmable methdos).
|
||||
# tome_select_a_thang: "Select Someone for "
|
||||
# tome_available_spells: "Available Spells"
|
||||
# tome_your_skills: "Your Skills"
|
||||
|
|
|
@ -117,6 +117,7 @@ module.exports = nativeDescription: "English (UK)", englishDescription: "English
|
|||
# adventurer_forum: "the Adventurer forum"
|
||||
# adventurer_suffix: "."
|
||||
# campaign_beginner: "Beginner Campaign"
|
||||
# campaign_old_beginner: "Old Beginner Campaign"
|
||||
# campaign_beginner_description: "... in which you learn the wizardry of programming."
|
||||
# campaign_dev: "Random Harder Levels"
|
||||
# campaign_dev_description: "... in which you learn the interface while doing something a little harder."
|
||||
|
@ -139,6 +140,8 @@ module.exports = nativeDescription: "English (UK)", englishDescription: "English
|
|||
# next: "Next"
|
||||
# previous: "Previous"
|
||||
# choose_inventory: "Equip Items"
|
||||
# older_campaigns: "Older Campaigns"
|
||||
# anonymous: "Anonymous Player"
|
||||
|
||||
# items:
|
||||
# armor: "Armor"
|
||||
|
@ -416,7 +419,9 @@ module.exports = nativeDescription: "English (UK)", englishDescription: "English
|
|||
# tome_cast_button_running: "Running"
|
||||
# tome_cast_button_ran: "Ran"
|
||||
# tome_submit_button: "Submit"
|
||||
# tome_select_spell: "Select a Spell"
|
||||
# tome_reload_method: "Reload original code for this method" # Title text for individual method reload button.
|
||||
# tome_select_method: "Select a Method"
|
||||
# tome_see_all_methods: "See all methods you can edit" # Title text for method list selector (shown when there are multiple programmable methdos).
|
||||
# tome_select_a_thang: "Select Someone for "
|
||||
# tome_available_spells: "Available Spells"
|
||||
# tome_your_skills: "Your Skills"
|
||||
|
|
|
@ -117,6 +117,7 @@ module.exports = nativeDescription: "English (US)", englishDescription: "English
|
|||
# adventurer_forum: "the Adventurer forum"
|
||||
# adventurer_suffix: "."
|
||||
# campaign_beginner: "Beginner Campaign"
|
||||
# campaign_old_beginner: "Old Beginner Campaign"
|
||||
# campaign_beginner_description: "... in which you learn the wizardry of programming."
|
||||
# campaign_dev: "Random Harder Levels"
|
||||
# campaign_dev_description: "... in which you learn the interface while doing something a little harder."
|
||||
|
@ -139,6 +140,8 @@ module.exports = nativeDescription: "English (US)", englishDescription: "English
|
|||
# next: "Next"
|
||||
# previous: "Previous"
|
||||
# choose_inventory: "Equip Items"
|
||||
# older_campaigns: "Older Campaigns"
|
||||
# anonymous: "Anonymous Player"
|
||||
|
||||
# items:
|
||||
# armor: "Armor"
|
||||
|
@ -416,7 +419,9 @@ module.exports = nativeDescription: "English (US)", englishDescription: "English
|
|||
# tome_cast_button_running: "Running"
|
||||
# tome_cast_button_ran: "Ran"
|
||||
# tome_submit_button: "Submit"
|
||||
# tome_select_spell: "Select a Spell"
|
||||
# tome_reload_method: "Reload original code for this method" # Title text for individual method reload button.
|
||||
# tome_select_method: "Select a Method"
|
||||
# tome_see_all_methods: "See all methods you can edit" # Title text for method list selector (shown when there are multiple programmable methdos).
|
||||
# tome_select_a_thang: "Select Someone for "
|
||||
# tome_available_spells: "Available Spells"
|
||||
# tome_your_skills: "Your Skills"
|
||||
|
|
|
@ -95,7 +95,7 @@
|
|||
|
||||
home:
|
||||
slogan: "Learn to Code by Playing a Game"
|
||||
no_ie: "CodeCombat does not run in Internet Explorer 9 or older. Sorry!"
|
||||
no_ie: "CodeCombat does not run in Internet Explorer 8 or older. Sorry!"
|
||||
no_mobile: "CodeCombat wasn't designed for mobile devices and may not work!"
|
||||
play: "Play" # The big play button that just starts playing a level
|
||||
old_browser: "Uh oh, your browser is too old to run CodeCombat. Sorry!"
|
||||
|
@ -117,6 +117,7 @@
|
|||
adventurer_forum: "the Adventurer forum"
|
||||
adventurer_suffix: "."
|
||||
campaign_beginner: "Beginner Campaign"
|
||||
campaign_old_beginner: "Old Beginner Campaign"
|
||||
campaign_beginner_description: "... in which you learn the wizardry of programming."
|
||||
campaign_dev: "Random Harder Levels"
|
||||
campaign_dev_description: "... in which you learn the interface while doing something a little harder."
|
||||
|
@ -139,6 +140,8 @@
|
|||
next: "Next"
|
||||
previous: "Previous"
|
||||
choose_inventory: "Equip Items"
|
||||
older_campaigns: "Older Campaigns"
|
||||
anonymous: "Anonymous Player"
|
||||
|
||||
items:
|
||||
armor: "Armor"
|
||||
|
|
|
@ -117,6 +117,7 @@ module.exports = nativeDescription: "español (América Latina)", englishDescrip
|
|||
adventurer_forum: "el foro del aventurero"
|
||||
adventurer_suffix: "."
|
||||
campaign_beginner: "Campaña para principiantes"
|
||||
# campaign_old_beginner: "Old Beginner Campaign"
|
||||
campaign_beginner_description: "... en la que aprendes la hechicería de la programación."
|
||||
campaign_dev: "Niveles aleatorios más difíciles"
|
||||
campaign_dev_description: "... en los que aprendes sobre la interfaz mientras haces algo un poco más difícil."
|
||||
|
@ -139,6 +140,8 @@ module.exports = nativeDescription: "español (América Latina)", englishDescrip
|
|||
next: "Próximo"
|
||||
previous: "Previo"
|
||||
choose_inventory: "Equipar objetos"
|
||||
# older_campaigns: "Older Campaigns"
|
||||
# anonymous: "Anonymous Player"
|
||||
|
||||
items:
|
||||
armor: "Armadura"
|
||||
|
@ -416,7 +419,9 @@ module.exports = nativeDescription: "español (América Latina)", englishDescrip
|
|||
# tome_cast_button_running: "Running"
|
||||
# tome_cast_button_ran: "Ran"
|
||||
# tome_submit_button: "Submit"
|
||||
tome_select_spell: "Selecciona un Hechizo"
|
||||
# tome_reload_method: "Reload original code for this method" # Title text for individual method reload button.
|
||||
# tome_select_method: "Select a Method"
|
||||
# tome_see_all_methods: "See all methods you can edit" # Title text for method list selector (shown when there are multiple programmable methdos).
|
||||
tome_select_a_thang: "Selecciona Alguien para "
|
||||
tome_available_spells: "Hechizos Disponibles"
|
||||
# tome_your_skills: "Your Skills"
|
||||
|
|
|
@ -117,6 +117,7 @@ module.exports = nativeDescription: "español (ES)", englishDescription: "Spanis
|
|||
adventurer_forum: "el foro del aventurero "
|
||||
adventurer_suffix: "sobre ello."
|
||||
campaign_beginner: "Campaña de Principiante"
|
||||
# campaign_old_beginner: "Old Beginner Campaign"
|
||||
campaign_beginner_description: "... en la que aprenderás la magia de la programación."
|
||||
campaign_dev: "Niveles aleatorios más dificiles"
|
||||
campaign_dev_description: "... en los que aprenderás sobre la interfaz mientras haces algo más difícil."
|
||||
|
@ -139,6 +140,8 @@ module.exports = nativeDescription: "español (ES)", englishDescription: "Spanis
|
|||
# next: "Next"
|
||||
# previous: "Previous"
|
||||
# choose_inventory: "Equip Items"
|
||||
# older_campaigns: "Older Campaigns"
|
||||
# anonymous: "Anonymous Player"
|
||||
|
||||
# items:
|
||||
# armor: "Armor"
|
||||
|
@ -416,7 +419,9 @@ module.exports = nativeDescription: "español (ES)", englishDescription: "Spanis
|
|||
# tome_cast_button_running: "Running"
|
||||
# tome_cast_button_ran: "Ran"
|
||||
# tome_submit_button: "Submit"
|
||||
tome_select_spell: "Selecciona un Hechizo"
|
||||
# tome_reload_method: "Reload original code for this method" # Title text for individual method reload button.
|
||||
# tome_select_method: "Select a Method"
|
||||
# tome_see_all_methods: "See all methods you can edit" # Title text for method list selector (shown when there are multiple programmable methdos).
|
||||
tome_select_a_thang: "Selecciona a alguien para "
|
||||
tome_available_spells: "Hechizos disponibles"
|
||||
# tome_your_skills: "Your Skills"
|
||||
|
|
|
@ -117,6 +117,7 @@ module.exports = nativeDescription: "فارسی", englishDescription: "Persian",
|
|||
adventurer_forum: "انجمن ماجراجو ها"
|
||||
adventurer_suffix: "."
|
||||
campaign_beginner: "کمپین تازه کارها"
|
||||
# campaign_old_beginner: "Old Beginner Campaign"
|
||||
campaign_beginner_description: ".که شما در آن می توانید جادوگری به وسیله برنامه نویسی را یادبگیرید..."
|
||||
campaign_dev: "مراحل سخت تصادفی"
|
||||
campaign_dev_description: "... جایی که میتونید طراحی ظاهر رو یاد بگیرید درحالی که فعالیت سخت تری انجام میدید"
|
||||
|
@ -139,6 +140,8 @@ module.exports = nativeDescription: "فارسی", englishDescription: "Persian",
|
|||
# next: "Next"
|
||||
# previous: "Previous"
|
||||
# choose_inventory: "Equip Items"
|
||||
# older_campaigns: "Older Campaigns"
|
||||
# anonymous: "Anonymous Player"
|
||||
|
||||
# items:
|
||||
# armor: "Armor"
|
||||
|
@ -416,7 +419,9 @@ module.exports = nativeDescription: "فارسی", englishDescription: "Persian",
|
|||
# tome_cast_button_running: "Running"
|
||||
# tome_cast_button_ran: "Ran"
|
||||
# tome_submit_button: "Submit"
|
||||
# tome_select_spell: "Select a Spell"
|
||||
# tome_reload_method: "Reload original code for this method" # Title text for individual method reload button.
|
||||
# tome_select_method: "Select a Method"
|
||||
# tome_see_all_methods: "See all methods you can edit" # Title text for method list selector (shown when there are multiple programmable methdos).
|
||||
# tome_select_a_thang: "Select Someone for "
|
||||
# tome_available_spells: "Available Spells"
|
||||
# tome_your_skills: "Your Skills"
|
||||
|
|
|
@ -117,6 +117,7 @@ module.exports = nativeDescription: "suomi", englishDescription: "Finnish", tran
|
|||
# adventurer_forum: "the Adventurer forum"
|
||||
# adventurer_suffix: "."
|
||||
# campaign_beginner: "Beginner Campaign"
|
||||
# campaign_old_beginner: "Old Beginner Campaign"
|
||||
# campaign_beginner_description: "... in which you learn the wizardry of programming."
|
||||
# campaign_dev: "Random Harder Levels"
|
||||
# campaign_dev_description: "... in which you learn the interface while doing something a little harder."
|
||||
|
@ -139,6 +140,8 @@ module.exports = nativeDescription: "suomi", englishDescription: "Finnish", tran
|
|||
# next: "Next"
|
||||
# previous: "Previous"
|
||||
# choose_inventory: "Equip Items"
|
||||
# older_campaigns: "Older Campaigns"
|
||||
# anonymous: "Anonymous Player"
|
||||
|
||||
# items:
|
||||
# armor: "Armor"
|
||||
|
@ -416,7 +419,9 @@ module.exports = nativeDescription: "suomi", englishDescription: "Finnish", tran
|
|||
# tome_cast_button_running: "Running"
|
||||
# tome_cast_button_ran: "Ran"
|
||||
# tome_submit_button: "Submit"
|
||||
# tome_select_spell: "Select a Spell"
|
||||
# tome_reload_method: "Reload original code for this method" # Title text for individual method reload button.
|
||||
# tome_select_method: "Select a Method"
|
||||
# tome_see_all_methods: "See all methods you can edit" # Title text for method list selector (shown when there are multiple programmable methdos).
|
||||
# tome_select_a_thang: "Select Someone for "
|
||||
# tome_available_spells: "Available Spells"
|
||||
# tome_your_skills: "Your Skills"
|
||||
|
|
|
@ -117,6 +117,7 @@ module.exports = nativeDescription: "français", englishDescription: "French", t
|
|||
adventurer_forum: "le forum de l'Aventurier"
|
||||
adventurer_suffix: "."
|
||||
campaign_beginner: "Campagne du Débutant"
|
||||
# campaign_old_beginner: "Old Beginner Campaign"
|
||||
campaign_beginner_description: "... dans laquelle vous apprendrez la magie de la programmation."
|
||||
campaign_dev: "Niveaux aléatoires plus difficiles"
|
||||
campaign_dev_description: "... dans lesquels vous apprendrez à utiliser l'interface en faisant quelque chose d'un petit peu plus dur."
|
||||
|
@ -139,6 +140,8 @@ module.exports = nativeDescription: "français", englishDescription: "French", t
|
|||
# next: "Next"
|
||||
# previous: "Previous"
|
||||
# choose_inventory: "Equip Items"
|
||||
# older_campaigns: "Older Campaigns"
|
||||
# anonymous: "Anonymous Player"
|
||||
|
||||
# items:
|
||||
# armor: "Armor"
|
||||
|
@ -416,7 +419,9 @@ module.exports = nativeDescription: "français", englishDescription: "French", t
|
|||
# tome_cast_button_running: "Running"
|
||||
# tome_cast_button_ran: "Ran"
|
||||
# tome_submit_button: "Submit"
|
||||
tome_select_spell: "Choisissez un sort"
|
||||
# tome_reload_method: "Reload original code for this method" # Title text for individual method reload button.
|
||||
# tome_select_method: "Select a Method"
|
||||
# tome_see_all_methods: "See all methods you can edit" # Title text for method list selector (shown when there are multiple programmable methdos).
|
||||
tome_select_a_thang: "Sélectionnez une unité pour"
|
||||
tome_available_spells: "Sorts diponibles"
|
||||
# tome_your_skills: "Your Skills"
|
||||
|
|
|
@ -117,6 +117,7 @@ module.exports = nativeDescription: "עברית", englishDescription: "Hebrew",
|
|||
adventurer_forum: "פורום ההרפתקנים"
|
||||
adventurer_suffix: "."
|
||||
campaign_beginner: "מסע המתחילים"
|
||||
# campaign_old_beginner: "Old Beginner Campaign"
|
||||
campaign_beginner_description: "...שבו תלמד את קסם התכנות."
|
||||
campaign_dev: "שלבים אקראים קשים יותר"
|
||||
campaign_dev_description: "...שבהם תלמד על הממשק בזמן שתעשה משהו קצת קשה יותר."
|
||||
|
@ -139,6 +140,8 @@ module.exports = nativeDescription: "עברית", englishDescription: "Hebrew",
|
|||
# next: "Next"
|
||||
# previous: "Previous"
|
||||
# choose_inventory: "Equip Items"
|
||||
# older_campaigns: "Older Campaigns"
|
||||
# anonymous: "Anonymous Player"
|
||||
|
||||
# items:
|
||||
# armor: "Armor"
|
||||
|
@ -416,7 +419,9 @@ module.exports = nativeDescription: "עברית", englishDescription: "Hebrew",
|
|||
# tome_cast_button_running: "Running"
|
||||
# tome_cast_button_ran: "Ran"
|
||||
# tome_submit_button: "Submit"
|
||||
# tome_select_spell: "Select a Spell"
|
||||
# tome_reload_method: "Reload original code for this method" # Title text for individual method reload button.
|
||||
# tome_select_method: "Select a Method"
|
||||
# tome_see_all_methods: "See all methods you can edit" # Title text for method list selector (shown when there are multiple programmable methdos).
|
||||
# tome_select_a_thang: "Select Someone for "
|
||||
# tome_available_spells: "Available Spells"
|
||||
# tome_your_skills: "Your Skills"
|
||||
|
|
|
@ -117,6 +117,7 @@ module.exports = nativeDescription: "मानक हिन्दी", englishDe
|
|||
# adventurer_forum: "the Adventurer forum"
|
||||
# adventurer_suffix: "."
|
||||
# campaign_beginner: "Beginner Campaign"
|
||||
# campaign_old_beginner: "Old Beginner Campaign"
|
||||
# campaign_beginner_description: "... in which you learn the wizardry of programming."
|
||||
# campaign_dev: "Random Harder Levels"
|
||||
# campaign_dev_description: "... in which you learn the interface while doing something a little harder."
|
||||
|
@ -139,6 +140,8 @@ module.exports = nativeDescription: "मानक हिन्दी", englishDe
|
|||
# next: "Next"
|
||||
# previous: "Previous"
|
||||
# choose_inventory: "Equip Items"
|
||||
# older_campaigns: "Older Campaigns"
|
||||
# anonymous: "Anonymous Player"
|
||||
|
||||
# items:
|
||||
# armor: "Armor"
|
||||
|
@ -416,7 +419,9 @@ module.exports = nativeDescription: "मानक हिन्दी", englishDe
|
|||
# tome_cast_button_running: "Running"
|
||||
# tome_cast_button_ran: "Ran"
|
||||
# tome_submit_button: "Submit"
|
||||
# tome_select_spell: "Select a Spell"
|
||||
# tome_reload_method: "Reload original code for this method" # Title text for individual method reload button.
|
||||
# tome_select_method: "Select a Method"
|
||||
# tome_see_all_methods: "See all methods you can edit" # Title text for method list selector (shown when there are multiple programmable methdos).
|
||||
# tome_select_a_thang: "Select Someone for "
|
||||
# tome_available_spells: "Available Spells"
|
||||
# tome_your_skills: "Your Skills"
|
||||
|
|
|
@ -117,6 +117,7 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t
|
|||
adventurer_forum: "a Kalandozók Fórumán"
|
||||
adventurer_suffix: "."
|
||||
campaign_beginner: "Kezdő Kampány"
|
||||
# campaign_old_beginner: "Old Beginner Campaign"
|
||||
campaign_beginner_description: "... amelyben megtanulhatod a programozás varázslatait."
|
||||
campaign_dev: "Véletlenszerű Nehezebb Pályák"
|
||||
campaign_dev_description: "... amelyekben kicsit nehezebb dolgokkal nézhetsz szembe."
|
||||
|
@ -139,6 +140,8 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t
|
|||
# next: "Next"
|
||||
# previous: "Previous"
|
||||
# choose_inventory: "Equip Items"
|
||||
# older_campaigns: "Older Campaigns"
|
||||
# anonymous: "Anonymous Player"
|
||||
|
||||
# items:
|
||||
# armor: "Armor"
|
||||
|
@ -416,7 +419,9 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t
|
|||
# tome_cast_button_running: "Running"
|
||||
# tome_cast_button_ran: "Ran"
|
||||
# tome_submit_button: "Submit"
|
||||
tome_select_spell: "Válassz egy varázslatot"
|
||||
# tome_reload_method: "Reload original code for this method" # Title text for individual method reload button.
|
||||
# tome_select_method: "Select a Method"
|
||||
# tome_see_all_methods: "See all methods you can edit" # Title text for method list selector (shown when there are multiple programmable methdos).
|
||||
tome_select_a_thang: "Válassz ki valakit "
|
||||
tome_available_spells: "Elérhető varázslatok"
|
||||
# tome_your_skills: "Your Skills"
|
||||
|
|
|
@ -117,6 +117,7 @@ module.exports = nativeDescription: "Bahasa Indonesia", englishDescription: "Ind
|
|||
# adventurer_forum: "the Adventurer forum"
|
||||
# adventurer_suffix: "."
|
||||
# campaign_beginner: "Beginner Campaign"
|
||||
# campaign_old_beginner: "Old Beginner Campaign"
|
||||
# campaign_beginner_description: "... in which you learn the wizardry of programming."
|
||||
# campaign_dev: "Random Harder Levels"
|
||||
# campaign_dev_description: "... in which you learn the interface while doing something a little harder."
|
||||
|
@ -139,6 +140,8 @@ module.exports = nativeDescription: "Bahasa Indonesia", englishDescription: "Ind
|
|||
# next: "Next"
|
||||
# previous: "Previous"
|
||||
# choose_inventory: "Equip Items"
|
||||
# older_campaigns: "Older Campaigns"
|
||||
# anonymous: "Anonymous Player"
|
||||
|
||||
# items:
|
||||
# armor: "Armor"
|
||||
|
@ -416,7 +419,9 @@ module.exports = nativeDescription: "Bahasa Indonesia", englishDescription: "Ind
|
|||
# tome_cast_button_running: "Running"
|
||||
# tome_cast_button_ran: "Ran"
|
||||
# tome_submit_button: "Submit"
|
||||
# tome_select_spell: "Select a Spell"
|
||||
# tome_reload_method: "Reload original code for this method" # Title text for individual method reload button.
|
||||
# tome_select_method: "Select a Method"
|
||||
# tome_see_all_methods: "See all methods you can edit" # Title text for method list selector (shown when there are multiple programmable methdos).
|
||||
# tome_select_a_thang: "Select Someone for "
|
||||
# tome_available_spells: "Available Spells"
|
||||
# tome_your_skills: "Your Skills"
|
||||
|
|
|
@ -117,6 +117,7 @@ module.exports = nativeDescription: "Italiano", englishDescription: "Italian", t
|
|||
adventurer_forum: "forum degli Avventurieri"
|
||||
adventurer_suffix: "."
|
||||
campaign_beginner: "Campagne per principianti"
|
||||
# campaign_old_beginner: "Old Beginner Campaign"
|
||||
campaign_beginner_description: "... nelle quali imparerai i trucchi della programmazione."
|
||||
campaign_dev: "Livelli difficili casuali"
|
||||
campaign_dev_description: "... nei quali imparerai a usare l'interfaccia facendo qualcosa di un po' più difficile."
|
||||
|
@ -139,6 +140,8 @@ module.exports = nativeDescription: "Italiano", englishDescription: "Italian", t
|
|||
# next: "Next"
|
||||
# previous: "Previous"
|
||||
# choose_inventory: "Equip Items"
|
||||
# older_campaigns: "Older Campaigns"
|
||||
# anonymous: "Anonymous Player"
|
||||
|
||||
# items:
|
||||
# armor: "Armor"
|
||||
|
@ -416,7 +419,9 @@ module.exports = nativeDescription: "Italiano", englishDescription: "Italian", t
|
|||
# tome_cast_button_running: "Running"
|
||||
# tome_cast_button_ran: "Ran"
|
||||
# tome_submit_button: "Submit"
|
||||
tome_select_spell: "Seleziona un incantesimo"
|
||||
# tome_reload_method: "Reload original code for this method" # Title text for individual method reload button.
|
||||
# tome_select_method: "Select a Method"
|
||||
# tome_see_all_methods: "See all methods you can edit" # Title text for method list selector (shown when there are multiple programmable methdos).
|
||||
tome_select_a_thang: "Seleziona qualcuno per "
|
||||
tome_available_spells: "Incantesimi disponibili"
|
||||
# tome_your_skills: "Your Skills"
|
||||
|
|
|
@ -117,6 +117,7 @@ module.exports = nativeDescription: "日本語", englishDescription: "Japanese",
|
|||
adventurer_forum: "冒険者の掲示板"
|
||||
# adventurer_suffix: "."
|
||||
campaign_beginner: "初心者のキャンペーン"
|
||||
# campaign_old_beginner: "Old Beginner Campaign"
|
||||
campaign_beginner_description: "プログラミングの魔法を学びましょう"
|
||||
campaign_dev: "いろんな難しいレベル"
|
||||
# campaign_dev_description: "... in which you learn the interface while doing something a little harder."
|
||||
|
@ -139,6 +140,8 @@ module.exports = nativeDescription: "日本語", englishDescription: "Japanese",
|
|||
# next: "Next"
|
||||
# previous: "Previous"
|
||||
# choose_inventory: "Equip Items"
|
||||
# older_campaigns: "Older Campaigns"
|
||||
# anonymous: "Anonymous Player"
|
||||
|
||||
# items:
|
||||
# armor: "Armor"
|
||||
|
@ -416,7 +419,9 @@ module.exports = nativeDescription: "日本語", englishDescription: "Japanese",
|
|||
# tome_cast_button_running: "Running"
|
||||
# tome_cast_button_ran: "Ran"
|
||||
# tome_submit_button: "Submit"
|
||||
tome_select_spell: "呪文を選択"
|
||||
# tome_reload_method: "Reload original code for this method" # Title text for individual method reload button.
|
||||
# tome_select_method: "Select a Method"
|
||||
# tome_see_all_methods: "See all methods you can edit" # Title text for method list selector (shown when there are multiple programmable methdos).
|
||||
tome_select_a_thang: "誰かを選択: "
|
||||
tome_available_spells: "利用できる呪文"
|
||||
# tome_your_skills: "Your Skills"
|
||||
|
|
|
@ -117,6 +117,7 @@ module.exports = nativeDescription: "한국어", englishDescription: "Korean", t
|
|||
adventurer_forum: "모험가들의 포럼"
|
||||
adventurer_suffix: "."
|
||||
campaign_beginner: "초보자 캠페인"
|
||||
# campaign_old_beginner: "Old Beginner Campaign"
|
||||
campaign_beginner_description: "... 이곳에서 당신은 프로그래밍의 마법을 배우게 될 것입니다."
|
||||
campaign_dev: "상급 레벨 랜덤 선택"
|
||||
campaign_dev_description: "... 이곳에서 당신은 조금 더 어려운 레벨에 도전할때 필요한 조작 방법을 배울 것입니다."
|
||||
|
@ -139,6 +140,8 @@ module.exports = nativeDescription: "한국어", englishDescription: "Korean", t
|
|||
# next: "Next"
|
||||
# previous: "Previous"
|
||||
# choose_inventory: "Equip Items"
|
||||
# older_campaigns: "Older Campaigns"
|
||||
# anonymous: "Anonymous Player"
|
||||
|
||||
# items:
|
||||
# armor: "Armor"
|
||||
|
@ -416,7 +419,9 @@ module.exports = nativeDescription: "한국어", englishDescription: "Korean", t
|
|||
# tome_cast_button_running: "Running"
|
||||
# tome_cast_button_ran: "Ran"
|
||||
# tome_submit_button: "Submit"
|
||||
tome_select_spell: "마법을 선택 하세요"
|
||||
# tome_reload_method: "Reload original code for this method" # Title text for individual method reload button.
|
||||
# tome_select_method: "Select a Method"
|
||||
# tome_see_all_methods: "See all methods you can edit" # Title text for method list selector (shown when there are multiple programmable methdos).
|
||||
tome_select_a_thang: "누군가를 선택하세요. "
|
||||
tome_available_spells: "사용 가능한 마법"
|
||||
# tome_your_skills: "Your Skills"
|
||||
|
|
|
@ -117,6 +117,7 @@ module.exports = nativeDescription: "lietuvių kalba", englishDescription: "Lith
|
|||
# adventurer_forum: "the Adventurer forum"
|
||||
# adventurer_suffix: "."
|
||||
# campaign_beginner: "Beginner Campaign"
|
||||
# campaign_old_beginner: "Old Beginner Campaign"
|
||||
# campaign_beginner_description: "... in which you learn the wizardry of programming."
|
||||
# campaign_dev: "Random Harder Levels"
|
||||
# campaign_dev_description: "... in which you learn the interface while doing something a little harder."
|
||||
|
@ -139,6 +140,8 @@ module.exports = nativeDescription: "lietuvių kalba", englishDescription: "Lith
|
|||
# next: "Next"
|
||||
# previous: "Previous"
|
||||
# choose_inventory: "Equip Items"
|
||||
# older_campaigns: "Older Campaigns"
|
||||
# anonymous: "Anonymous Player"
|
||||
|
||||
# items:
|
||||
# armor: "Armor"
|
||||
|
@ -416,7 +419,9 @@ module.exports = nativeDescription: "lietuvių kalba", englishDescription: "Lith
|
|||
# tome_cast_button_running: "Running"
|
||||
# tome_cast_button_ran: "Ran"
|
||||
# tome_submit_button: "Submit"
|
||||
# tome_select_spell: "Select a Spell"
|
||||
# tome_reload_method: "Reload original code for this method" # Title text for individual method reload button.
|
||||
# tome_select_method: "Select a Method"
|
||||
# tome_see_all_methods: "See all methods you can edit" # Title text for method list selector (shown when there are multiple programmable methdos).
|
||||
# tome_select_a_thang: "Select Someone for "
|
||||
# tome_available_spells: "Available Spells"
|
||||
# tome_your_skills: "Your Skills"
|
||||
|
|
|
@ -117,6 +117,7 @@ module.exports = nativeDescription: "Bahasa Melayu", englishDescription: "Bahasa
|
|||
# adventurer_forum: "the Adventurer forum"
|
||||
# adventurer_suffix: "."
|
||||
# campaign_beginner: "Beginner Campaign"
|
||||
# campaign_old_beginner: "Old Beginner Campaign"
|
||||
# campaign_beginner_description: "... in which you learn the wizardry of programming."
|
||||
# campaign_dev: "Random Harder Levels"
|
||||
# campaign_dev_description: "... in which you learn the interface while doing something a little harder."
|
||||
|
@ -139,6 +140,8 @@ module.exports = nativeDescription: "Bahasa Melayu", englishDescription: "Bahasa
|
|||
# next: "Next"
|
||||
# previous: "Previous"
|
||||
# choose_inventory: "Equip Items"
|
||||
# older_campaigns: "Older Campaigns"
|
||||
# anonymous: "Anonymous Player"
|
||||
|
||||
# items:
|
||||
# armor: "Armor"
|
||||
|
@ -416,7 +419,9 @@ module.exports = nativeDescription: "Bahasa Melayu", englishDescription: "Bahasa
|
|||
# tome_cast_button_running: "Running"
|
||||
# tome_cast_button_ran: "Ran"
|
||||
# tome_submit_button: "Submit"
|
||||
# tome_select_spell: "Select a Spell"
|
||||
# tome_reload_method: "Reload original code for this method" # Title text for individual method reload button.
|
||||
# tome_select_method: "Select a Method"
|
||||
# tome_see_all_methods: "See all methods you can edit" # Title text for method list selector (shown when there are multiple programmable methdos).
|
||||
# tome_select_a_thang: "Select Someone for "
|
||||
# tome_available_spells: "Available Spells"
|
||||
# tome_your_skills: "Your Skills"
|
||||
|
|
|
@ -117,6 +117,7 @@ module.exports = nativeDescription: "Norsk Bokmål", englishDescription: "Norweg
|
|||
adventurer_forum: "Adventurer forumet"
|
||||
adventurer_suffix: "."
|
||||
campaign_beginner: "Begynner Felttog"
|
||||
# campaign_old_beginner: "Old Beginner Campaign"
|
||||
campaign_beginner_description: "... hvor du lærer trolldommen bak programmering."
|
||||
campaign_dev: "Tilfeldig Vanskeligere Nivåer"
|
||||
campaign_dev_description: "... hvor du lærer grensesnittet mens du stadig gjør mer vanskeligere utfordringer."
|
||||
|
@ -139,6 +140,8 @@ module.exports = nativeDescription: "Norsk Bokmål", englishDescription: "Norweg
|
|||
# next: "Next"
|
||||
# previous: "Previous"
|
||||
# choose_inventory: "Equip Items"
|
||||
# older_campaigns: "Older Campaigns"
|
||||
# anonymous: "Anonymous Player"
|
||||
|
||||
# items:
|
||||
# armor: "Armor"
|
||||
|
@ -416,7 +419,9 @@ module.exports = nativeDescription: "Norsk Bokmål", englishDescription: "Norweg
|
|||
# tome_cast_button_running: "Running"
|
||||
# tome_cast_button_ran: "Ran"
|
||||
# tome_submit_button: "Submit"
|
||||
tome_select_spell: "Velg et Trylleformular"
|
||||
# tome_reload_method: "Reload original code for this method" # Title text for individual method reload button.
|
||||
# tome_select_method: "Select a Method"
|
||||
# tome_see_all_methods: "See all methods you can edit" # Title text for method list selector (shown when there are multiple programmable methdos).
|
||||
tome_select_a_thang: "Velg Noe for å "
|
||||
tome_available_spells: "Tilgjenglige Trylleformularer"
|
||||
# tome_your_skills: "Your Skills"
|
||||
|
|
|
@ -117,6 +117,7 @@ module.exports = nativeDescription: "Nederlands (België)", englishDescription:
|
|||
adventurer_forum: "het Avonturiersforum"
|
||||
adventurer_suffix: "."
|
||||
campaign_beginner: "Beginnercampagne"
|
||||
# campaign_old_beginner: "Old Beginner Campaign"
|
||||
campaign_beginner_description: "... waarin je de toverkunst van het programmeren leert."
|
||||
campaign_dev: "Willekeurige moeilijkere levels"
|
||||
campaign_dev_description: "... waarin je de interface leert kennen terwijl je wat moeilijkers doet."
|
||||
|
@ -139,6 +140,8 @@ module.exports = nativeDescription: "Nederlands (België)", englishDescription:
|
|||
# next: "Next"
|
||||
# previous: "Previous"
|
||||
# choose_inventory: "Equip Items"
|
||||
# older_campaigns: "Older Campaigns"
|
||||
# anonymous: "Anonymous Player"
|
||||
|
||||
# items:
|
||||
# armor: "Armor"
|
||||
|
@ -416,7 +419,9 @@ module.exports = nativeDescription: "Nederlands (België)", englishDescription:
|
|||
# tome_cast_button_running: "Running"
|
||||
# tome_cast_button_ran: "Ran"
|
||||
# tome_submit_button: "Submit"
|
||||
tome_select_spell: "Selecteer een Spreuk"
|
||||
# tome_reload_method: "Reload original code for this method" # Title text for individual method reload button.
|
||||
# tome_select_method: "Select a Method"
|
||||
# tome_see_all_methods: "See all methods you can edit" # Title text for method list selector (shown when there are multiple programmable methdos).
|
||||
tome_select_a_thang: "Selecteer Iemand voor "
|
||||
tome_available_spells: "Beschikbare spreuken"
|
||||
# tome_your_skills: "Your Skills"
|
||||
|
|
|
@ -117,6 +117,7 @@ module.exports = nativeDescription: "Nederlands (Nederland)", englishDescription
|
|||
adventurer_forum: "het Avonturiersforum"
|
||||
adventurer_suffix: "."
|
||||
campaign_beginner: "Beginnercampagne"
|
||||
# campaign_old_beginner: "Old Beginner Campaign"
|
||||
campaign_beginner_description: "... waarin je de toverkunst van het programmeren leert."
|
||||
campaign_dev: "Willekeurige moeilijkere levels"
|
||||
campaign_dev_description: "... waarin je de interface leert kennen terwijl je wat moeilijkers doet."
|
||||
|
@ -139,6 +140,8 @@ module.exports = nativeDescription: "Nederlands (Nederland)", englishDescription
|
|||
# next: "Next"
|
||||
# previous: "Previous"
|
||||
# choose_inventory: "Equip Items"
|
||||
# older_campaigns: "Older Campaigns"
|
||||
# anonymous: "Anonymous Player"
|
||||
|
||||
# items:
|
||||
# armor: "Armor"
|
||||
|
@ -416,7 +419,9 @@ module.exports = nativeDescription: "Nederlands (Nederland)", englishDescription
|
|||
# tome_cast_button_running: "Running"
|
||||
# tome_cast_button_ran: "Ran"
|
||||
# tome_submit_button: "Submit"
|
||||
tome_select_spell: "Selecteer een Spreuk"
|
||||
# tome_reload_method: "Reload original code for this method" # Title text for individual method reload button.
|
||||
# tome_select_method: "Select a Method"
|
||||
# tome_see_all_methods: "See all methods you can edit" # Title text for method list selector (shown when there are multiple programmable methdos).
|
||||
tome_select_a_thang: "Selecteer Iemand voor "
|
||||
tome_available_spells: "Beschikbare spreuken"
|
||||
# tome_your_skills: "Your Skills"
|
||||
|
|
|
@ -117,6 +117,7 @@ module.exports = nativeDescription: "Norwegian Nynorsk", englishDescription: "No
|
|||
# adventurer_forum: "the Adventurer forum"
|
||||
# adventurer_suffix: "."
|
||||
# campaign_beginner: "Beginner Campaign"
|
||||
# campaign_old_beginner: "Old Beginner Campaign"
|
||||
# campaign_beginner_description: "... in which you learn the wizardry of programming."
|
||||
# campaign_dev: "Random Harder Levels"
|
||||
# campaign_dev_description: "... in which you learn the interface while doing something a little harder."
|
||||
|
@ -139,6 +140,8 @@ module.exports = nativeDescription: "Norwegian Nynorsk", englishDescription: "No
|
|||
# next: "Next"
|
||||
# previous: "Previous"
|
||||
# choose_inventory: "Equip Items"
|
||||
# older_campaigns: "Older Campaigns"
|
||||
# anonymous: "Anonymous Player"
|
||||
|
||||
# items:
|
||||
# armor: "Armor"
|
||||
|
@ -416,7 +419,9 @@ module.exports = nativeDescription: "Norwegian Nynorsk", englishDescription: "No
|
|||
# tome_cast_button_running: "Running"
|
||||
# tome_cast_button_ran: "Ran"
|
||||
# tome_submit_button: "Submit"
|
||||
# tome_select_spell: "Select a Spell"
|
||||
# tome_reload_method: "Reload original code for this method" # Title text for individual method reload button.
|
||||
# tome_select_method: "Select a Method"
|
||||
# tome_see_all_methods: "See all methods you can edit" # Title text for method list selector (shown when there are multiple programmable methdos).
|
||||
# tome_select_a_thang: "Select Someone for "
|
||||
# tome_available_spells: "Available Spells"
|
||||
# tome_your_skills: "Your Skills"
|
||||
|
|
|
@ -117,6 +117,7 @@ module.exports = nativeDescription: "Norsk", englishDescription: "Norwegian", tr
|
|||
adventurer_forum: "Eventyrerforumet"
|
||||
adventurer_suffix: "."
|
||||
campaign_beginner: "Nybegynner brett"
|
||||
# campaign_old_beginner: "Old Beginner Campaign"
|
||||
campaign_beginner_description: "... hvor du lærer trolldommen bak programmering."
|
||||
campaign_dev: "Vanskeligere brett (tilfeldige)"
|
||||
campaign_dev_description: "... hvor du lærer hvordan du bruker skjermbildene mens du stadig løser mer vanskelige utfordringer."
|
||||
|
@ -139,6 +140,8 @@ module.exports = nativeDescription: "Norsk", englishDescription: "Norwegian", tr
|
|||
# next: "Next"
|
||||
# previous: "Previous"
|
||||
# choose_inventory: "Equip Items"
|
||||
# older_campaigns: "Older Campaigns"
|
||||
# anonymous: "Anonymous Player"
|
||||
|
||||
# items:
|
||||
# armor: "Armor"
|
||||
|
@ -416,7 +419,9 @@ module.exports = nativeDescription: "Norsk", englishDescription: "Norwegian", tr
|
|||
# tome_cast_button_running: "Running"
|
||||
# tome_cast_button_ran: "Ran"
|
||||
# tome_submit_button: "Submit"
|
||||
tome_select_spell: "Velg et trylleformular"
|
||||
# tome_reload_method: "Reload original code for this method" # Title text for individual method reload button.
|
||||
# tome_select_method: "Select a Method"
|
||||
# tome_see_all_methods: "See all methods you can edit" # Title text for method list selector (shown when there are multiple programmable methdos).
|
||||
tome_select_a_thang: "Velg noe for å "
|
||||
tome_available_spells: "Tilgjenglige trylleformularer"
|
||||
# tome_your_skills: "Your Skills"
|
||||
|
|
|
@ -117,6 +117,7 @@ module.exports = nativeDescription: "język polski", englishDescription: "Polish
|
|||
adventurer_forum: "forum Podróżników"
|
||||
adventurer_suffix: "."
|
||||
campaign_beginner: "Kampania dla początkujących"
|
||||
# campaign_old_beginner: "Old Beginner Campaign"
|
||||
campaign_beginner_description: "... w której nauczysz się magii programowania"
|
||||
campaign_dev: "Losowe trudniejsze poziomy"
|
||||
campaign_dev_description: "... w których nauczysz się interfejsu robiąc coś trudniejszego."
|
||||
|
@ -139,6 +140,8 @@ module.exports = nativeDescription: "język polski", englishDescription: "Polish
|
|||
# next: "Next"
|
||||
# previous: "Previous"
|
||||
# choose_inventory: "Equip Items"
|
||||
# older_campaigns: "Older Campaigns"
|
||||
# anonymous: "Anonymous Player"
|
||||
|
||||
# items:
|
||||
# armor: "Armor"
|
||||
|
@ -416,7 +419,9 @@ module.exports = nativeDescription: "język polski", englishDescription: "Polish
|
|||
# tome_cast_button_running: "Running"
|
||||
# tome_cast_button_ran: "Ran"
|
||||
# tome_submit_button: "Submit"
|
||||
tome_select_spell: "Wybierz czar"
|
||||
# tome_reload_method: "Reload original code for this method" # Title text for individual method reload button.
|
||||
# tome_select_method: "Select a Method"
|
||||
# tome_see_all_methods: "See all methods you can edit" # Title text for method list selector (shown when there are multiple programmable methdos).
|
||||
tome_select_a_thang: "Wybierz kogoś do "
|
||||
tome_available_spells: "Dostępne czary"
|
||||
# tome_your_skills: "Your Skills"
|
||||
|
|
|
@ -117,6 +117,7 @@ module.exports = nativeDescription: "português do Brasil", englishDescription:
|
|||
adventurer_forum: "Fórum do Aventureiro"
|
||||
adventurer_suffix: "."
|
||||
campaign_beginner: "Campanha Iniciante"
|
||||
# campaign_old_beginner: "Old Beginner Campaign"
|
||||
campaign_beginner_description: "... na qual você aprenderá a magia da programação."
|
||||
campaign_dev: "Fases Difíceis Aleatórias"
|
||||
campaign_dev_description: "... nas quais você aprenderá a interface enquanto faz algo um pouco mais difícil."
|
||||
|
@ -139,6 +140,8 @@ module.exports = nativeDescription: "português do Brasil", englishDescription:
|
|||
# next: "Next"
|
||||
# previous: "Previous"
|
||||
# choose_inventory: "Equip Items"
|
||||
# older_campaigns: "Older Campaigns"
|
||||
# anonymous: "Anonymous Player"
|
||||
|
||||
# items:
|
||||
# armor: "Armor"
|
||||
|
@ -416,7 +419,9 @@ module.exports = nativeDescription: "português do Brasil", englishDescription:
|
|||
# tome_cast_button_running: "Running"
|
||||
# tome_cast_button_ran: "Ran"
|
||||
# tome_submit_button: "Submit"
|
||||
tome_select_spell: "Selecione um Feitiço"
|
||||
# tome_reload_method: "Reload original code for this method" # Title text for individual method reload button.
|
||||
# tome_select_method: "Select a Method"
|
||||
# tome_see_all_methods: "See all methods you can edit" # Title text for method list selector (shown when there are multiple programmable methdos).
|
||||
tome_select_a_thang: "Selecione alguém para "
|
||||
tome_available_spells: "Feitiços Disponíveis"
|
||||
# tome_your_skills: "Your Skills"
|
||||
|
|
|
@ -117,6 +117,7 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription:
|
|||
adventurer_forum: "fórum do Aventureiro"
|
||||
adventurer_suffix: "."
|
||||
campaign_beginner: "Campanha para Iniciantes"
|
||||
# campaign_old_beginner: "Old Beginner Campaign"
|
||||
campaign_beginner_description: "... onde aprendes a magia da programação."
|
||||
campaign_dev: "Níveis mais Difíceis Aleatórios"
|
||||
campaign_dev_description: "... onde aprendes a interface enquanto fazes coisas um bocadinho mais difíceis."
|
||||
|
@ -139,6 +140,8 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription:
|
|||
next: "Seguinte"
|
||||
previous: "Anterior"
|
||||
choose_inventory: "Equipar Itens"
|
||||
# older_campaigns: "Older Campaigns"
|
||||
# anonymous: "Anonymous Player"
|
||||
|
||||
items:
|
||||
armor: "Armadura"
|
||||
|
@ -416,7 +419,9 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription:
|
|||
tome_cast_button_running: "A Correr"
|
||||
tome_cast_button_ran: "Corrido"
|
||||
tome_submit_button: "Submeter"
|
||||
tome_select_spell: "Seleciona um Feitiço"
|
||||
# tome_reload_method: "Reload original code for this method" # Title text for individual method reload button.
|
||||
# tome_select_method: "Select a Method"
|
||||
# tome_see_all_methods: "See all methods you can edit" # Title text for method list selector (shown when there are multiple programmable methdos).
|
||||
tome_select_a_thang: "Seleciona Alguém para "
|
||||
tome_available_spells: "Feitiços Disponíveis"
|
||||
tome_your_skills: "As Tuas Habilidades"
|
||||
|
|
|
@ -117,6 +117,7 @@ module.exports = nativeDescription: "limba română", englishDescription: "Roman
|
|||
adventurer_forum: "forumul Aventurierului"
|
||||
adventurer_suffix: "."
|
||||
campaign_beginner: "Campanie pentru Începători"
|
||||
# campaign_old_beginner: "Old Beginner Campaign"
|
||||
campaign_beginner_description: "... în care se învață tainele programării."
|
||||
campaign_dev: "Nivele aleatoare mai grele"
|
||||
campaign_dev_description: "... în care se învață interfața, cu o dificultate puțin mai mare."
|
||||
|
@ -139,6 +140,8 @@ module.exports = nativeDescription: "limba română", englishDescription: "Roman
|
|||
# next: "Next"
|
||||
# previous: "Previous"
|
||||
# choose_inventory: "Equip Items"
|
||||
# older_campaigns: "Older Campaigns"
|
||||
# anonymous: "Anonymous Player"
|
||||
|
||||
# items:
|
||||
# armor: "Armor"
|
||||
|
@ -416,7 +419,9 @@ module.exports = nativeDescription: "limba română", englishDescription: "Roman
|
|||
# tome_cast_button_running: "Running"
|
||||
# tome_cast_button_ran: "Ran"
|
||||
# tome_submit_button: "Submit"
|
||||
tome_select_spell: "Alege o vrajă"
|
||||
# tome_reload_method: "Reload original code for this method" # Title text for individual method reload button.
|
||||
# tome_select_method: "Select a Method"
|
||||
# tome_see_all_methods: "See all methods you can edit" # Title text for method list selector (shown when there are multiple programmable methdos).
|
||||
tome_select_a_thang: "Alege pe cineva pentru "
|
||||
tome_available_spells: "Vrăjile disponibile"
|
||||
# tome_your_skills: "Your Skills"
|
||||
|
|
|
@ -117,6 +117,7 @@ module.exports = nativeDescription: "русский", englishDescription: "Russi
|
|||
adventurer_forum: "форуме Искателей приключений"
|
||||
adventurer_suffix: "."
|
||||
campaign_beginner: "Кампания для новичков"
|
||||
# campaign_old_beginner: "Old Beginner Campaign"
|
||||
campaign_beginner_description: "... в которой вы познакомитесь с магией программирования."
|
||||
campaign_dev: "Случайные уровни потруднее"
|
||||
campaign_dev_description: "... в которых вы изучите интерфейс и научитесь делать кое-что посложнее."
|
||||
|
@ -139,6 +140,8 @@ module.exports = nativeDescription: "русский", englishDescription: "Russi
|
|||
# next: "Next"
|
||||
# previous: "Previous"
|
||||
# choose_inventory: "Equip Items"
|
||||
# older_campaigns: "Older Campaigns"
|
||||
# anonymous: "Anonymous Player"
|
||||
|
||||
# items:
|
||||
# armor: "Armor"
|
||||
|
@ -416,7 +419,9 @@ module.exports = nativeDescription: "русский", englishDescription: "Russi
|
|||
# tome_cast_button_running: "Running"
|
||||
# tome_cast_button_ran: "Ran"
|
||||
# tome_submit_button: "Submit"
|
||||
tome_select_spell: "Выбрать заклинание"
|
||||
# tome_reload_method: "Reload original code for this method" # Title text for individual method reload button.
|
||||
# tome_select_method: "Select a Method"
|
||||
# tome_see_all_methods: "See all methods you can edit" # Title text for method list selector (shown when there are multiple programmable methdos).
|
||||
tome_select_a_thang: "Выбрать кого-нибудь для "
|
||||
tome_available_spells: "Доступные заклинания"
|
||||
# tome_your_skills: "Your Skills"
|
||||
|
|
|
@ -117,6 +117,7 @@ module.exports = nativeDescription: "slovenčina", englishDescription: "Slovak",
|
|||
adventurer_forum: "fóre pre dobrodruhov"
|
||||
adventurer_suffix: "."
|
||||
campaign_beginner: "Ťaženie pre začiatočníkov"
|
||||
# campaign_old_beginner: "Old Beginner Campaign"
|
||||
campaign_beginner_description: "... v ktorom sa naučíš mágiu programovania."
|
||||
campaign_dev: "Náhodné ťažšie úrovne"
|
||||
campaign_dev_description: "... v ktorych sa naučíš používať rozhranie a čeliť väčším výzvam."
|
||||
|
@ -139,6 +140,8 @@ module.exports = nativeDescription: "slovenčina", englishDescription: "Slovak",
|
|||
# next: "Next"
|
||||
# previous: "Previous"
|
||||
# choose_inventory: "Equip Items"
|
||||
# older_campaigns: "Older Campaigns"
|
||||
# anonymous: "Anonymous Player"
|
||||
|
||||
# items:
|
||||
# armor: "Armor"
|
||||
|
@ -416,7 +419,9 @@ module.exports = nativeDescription: "slovenčina", englishDescription: "Slovak",
|
|||
# tome_cast_button_running: "Running"
|
||||
# tome_cast_button_ran: "Ran"
|
||||
# tome_submit_button: "Submit"
|
||||
# tome_select_spell: "Select a Spell"
|
||||
# tome_reload_method: "Reload original code for this method" # Title text for individual method reload button.
|
||||
# tome_select_method: "Select a Method"
|
||||
# tome_see_all_methods: "See all methods you can edit" # Title text for method list selector (shown when there are multiple programmable methdos).
|
||||
# tome_select_a_thang: "Select Someone for "
|
||||
# tome_available_spells: "Available Spells"
|
||||
# tome_your_skills: "Your Skills"
|
||||
|
|
|
@ -117,6 +117,7 @@ module.exports = nativeDescription: "slovenščina", englishDescription: "Sloven
|
|||
# adventurer_forum: "the Adventurer forum"
|
||||
# adventurer_suffix: "."
|
||||
# campaign_beginner: "Beginner Campaign"
|
||||
# campaign_old_beginner: "Old Beginner Campaign"
|
||||
# campaign_beginner_description: "... in which you learn the wizardry of programming."
|
||||
# campaign_dev: "Random Harder Levels"
|
||||
# campaign_dev_description: "... in which you learn the interface while doing something a little harder."
|
||||
|
@ -139,6 +140,8 @@ module.exports = nativeDescription: "slovenščina", englishDescription: "Sloven
|
|||
# next: "Next"
|
||||
# previous: "Previous"
|
||||
# choose_inventory: "Equip Items"
|
||||
# older_campaigns: "Older Campaigns"
|
||||
# anonymous: "Anonymous Player"
|
||||
|
||||
# items:
|
||||
# armor: "Armor"
|
||||
|
@ -416,7 +419,9 @@ module.exports = nativeDescription: "slovenščina", englishDescription: "Sloven
|
|||
# tome_cast_button_running: "Running"
|
||||
# tome_cast_button_ran: "Ran"
|
||||
# tome_submit_button: "Submit"
|
||||
# tome_select_spell: "Select a Spell"
|
||||
# tome_reload_method: "Reload original code for this method" # Title text for individual method reload button.
|
||||
# tome_select_method: "Select a Method"
|
||||
# tome_see_all_methods: "See all methods you can edit" # Title text for method list selector (shown when there are multiple programmable methdos).
|
||||
# tome_select_a_thang: "Select Someone for "
|
||||
# tome_available_spells: "Available Spells"
|
||||
# tome_your_skills: "Your Skills"
|
||||
|
|
|
@ -117,6 +117,7 @@ module.exports = nativeDescription: "српски", englishDescription: "Serbian
|
|||
adventurer_forum: "форуму Авантуриста"
|
||||
adventurer_suffix: "."
|
||||
campaign_beginner: "Почетничка кампања"
|
||||
# campaign_old_beginner: "Old Beginner Campaign"
|
||||
campaign_beginner_description: "... у којој учиш магију програмирања."
|
||||
campaign_dev: "Насумични тежи нивои"
|
||||
campaign_dev_description: "... у којима учиш о интерфејсу док радиш нешто теже."
|
||||
|
@ -139,6 +140,8 @@ module.exports = nativeDescription: "српски", englishDescription: "Serbian
|
|||
# next: "Next"
|
||||
# previous: "Previous"
|
||||
# choose_inventory: "Equip Items"
|
||||
# older_campaigns: "Older Campaigns"
|
||||
# anonymous: "Anonymous Player"
|
||||
|
||||
# items:
|
||||
# armor: "Armor"
|
||||
|
@ -416,7 +419,9 @@ module.exports = nativeDescription: "српски", englishDescription: "Serbian
|
|||
# tome_cast_button_running: "Running"
|
||||
# tome_cast_button_ran: "Ran"
|
||||
# tome_submit_button: "Submit"
|
||||
tome_select_spell: "Изабери чин"
|
||||
# tome_reload_method: "Reload original code for this method" # Title text for individual method reload button.
|
||||
# tome_select_method: "Select a Method"
|
||||
# tome_see_all_methods: "See all methods you can edit" # Title text for method list selector (shown when there are multiple programmable methdos).
|
||||
tome_select_a_thang: "Изабери неког за "
|
||||
tome_available_spells: "Доступне чини"
|
||||
# tome_your_skills: "Your Skills"
|
||||
|
|
|
@ -117,6 +117,7 @@ module.exports = nativeDescription: "Svenska", englishDescription: "Swedish", tr
|
|||
adventurer_forum: "Äventyrarforumet"
|
||||
adventurer_suffix: "."
|
||||
campaign_beginner: "Nybörjarkampanj"
|
||||
# campaign_old_beginner: "Old Beginner Campaign"
|
||||
campaign_beginner_description: "... i vilken du lär dig programmerandets magi."
|
||||
campaign_dev: "Slumpad svårare nivå"
|
||||
campaign_dev_description: "... där du lär dig att hantera gränssnittet medan du gör något lite svårare."
|
||||
|
@ -139,6 +140,8 @@ module.exports = nativeDescription: "Svenska", englishDescription: "Swedish", tr
|
|||
# next: "Next"
|
||||
# previous: "Previous"
|
||||
# choose_inventory: "Equip Items"
|
||||
# older_campaigns: "Older Campaigns"
|
||||
# anonymous: "Anonymous Player"
|
||||
|
||||
# items:
|
||||
# armor: "Armor"
|
||||
|
@ -416,7 +419,9 @@ module.exports = nativeDescription: "Svenska", englishDescription: "Swedish", tr
|
|||
# tome_cast_button_running: "Running"
|
||||
# tome_cast_button_ran: "Ran"
|
||||
# tome_submit_button: "Submit"
|
||||
tome_select_spell: "Välj en förmåga"
|
||||
# tome_reload_method: "Reload original code for this method" # Title text for individual method reload button.
|
||||
# tome_select_method: "Select a Method"
|
||||
# tome_see_all_methods: "See all methods you can edit" # Title text for method list selector (shown when there are multiple programmable methdos).
|
||||
tome_select_a_thang: "Välj någon för "
|
||||
tome_available_spells: "Tillgängliga förmågor"
|
||||
# tome_your_skills: "Your Skills"
|
||||
|
|
|
@ -117,6 +117,7 @@ module.exports = nativeDescription: "ไทย", englishDescription: "Thai", tra
|
|||
# adventurer_forum: "the Adventurer forum"
|
||||
# adventurer_suffix: "."
|
||||
# campaign_beginner: "Beginner Campaign"
|
||||
# campaign_old_beginner: "Old Beginner Campaign"
|
||||
# campaign_beginner_description: "... in which you learn the wizardry of programming."
|
||||
# campaign_dev: "Random Harder Levels"
|
||||
# campaign_dev_description: "... in which you learn the interface while doing something a little harder."
|
||||
|
@ -139,6 +140,8 @@ module.exports = nativeDescription: "ไทย", englishDescription: "Thai", tra
|
|||
# next: "Next"
|
||||
# previous: "Previous"
|
||||
# choose_inventory: "Equip Items"
|
||||
# older_campaigns: "Older Campaigns"
|
||||
# anonymous: "Anonymous Player"
|
||||
|
||||
# items:
|
||||
# armor: "Armor"
|
||||
|
@ -416,7 +419,9 @@ module.exports = nativeDescription: "ไทย", englishDescription: "Thai", tra
|
|||
# tome_cast_button_running: "Running"
|
||||
# tome_cast_button_ran: "Ran"
|
||||
# tome_submit_button: "Submit"
|
||||
# tome_select_spell: "Select a Spell"
|
||||
# tome_reload_method: "Reload original code for this method" # Title text for individual method reload button.
|
||||
# tome_select_method: "Select a Method"
|
||||
# tome_see_all_methods: "See all methods you can edit" # Title text for method list selector (shown when there are multiple programmable methdos).
|
||||
# tome_select_a_thang: "Select Someone for "
|
||||
# tome_available_spells: "Available Spells"
|
||||
# tome_your_skills: "Your Skills"
|
||||
|
|
|
@ -117,6 +117,7 @@ module.exports = nativeDescription: "Türkçe", englishDescription: "Turkish", t
|
|||
adventurer_forum: "Maceracı forumunda"
|
||||
adventurer_suffix: " tartışabilirsiniz."
|
||||
campaign_beginner: "Acemi Seferi"
|
||||
# campaign_old_beginner: "Old Beginner Campaign"
|
||||
campaign_beginner_description: "Programlama büyüsünü öğrenmek için..."
|
||||
campaign_dev: "Rastgele Daha Zor Seviyeler"
|
||||
campaign_dev_description: "Biraz daha zor işlerle uğraşırken arayüzü öğrenmek için..."
|
||||
|
@ -139,6 +140,8 @@ module.exports = nativeDescription: "Türkçe", englishDescription: "Turkish", t
|
|||
# next: "Next"
|
||||
# previous: "Previous"
|
||||
# choose_inventory: "Equip Items"
|
||||
# older_campaigns: "Older Campaigns"
|
||||
# anonymous: "Anonymous Player"
|
||||
|
||||
# items:
|
||||
# armor: "Armor"
|
||||
|
@ -416,7 +419,9 @@ module.exports = nativeDescription: "Türkçe", englishDescription: "Turkish", t
|
|||
# tome_cast_button_running: "Running"
|
||||
# tome_cast_button_ran: "Ran"
|
||||
# tome_submit_button: "Submit"
|
||||
tome_select_spell: "Bir Büyü Seç"
|
||||
# tome_reload_method: "Reload original code for this method" # Title text for individual method reload button.
|
||||
# tome_select_method: "Select a Method"
|
||||
# tome_see_all_methods: "See all methods you can edit" # Title text for method list selector (shown when there are multiple programmable methdos).
|
||||
tome_select_a_thang: "Birini seç..."
|
||||
tome_available_spells: "Kullanılabilir Büyüler"
|
||||
# tome_your_skills: "Your Skills"
|
||||
|
|
|
@ -117,6 +117,7 @@ module.exports = nativeDescription: "українська мова", englishDesc
|
|||
adventurer_forum: "форумі Шукачів пригод"
|
||||
adventurer_suffix: "."
|
||||
campaign_beginner: "Кампанія для початківців"
|
||||
# campaign_old_beginner: "Old Beginner Campaign"
|
||||
campaign_beginner_description: "... у якій ви навчитеся магії програмування."
|
||||
campaign_dev: "Випадкові складніші рівні"
|
||||
campaign_dev_description: "... в яких ви вивчите інтерфейс, одночасно роблячи щось складніше."
|
||||
|
@ -139,6 +140,8 @@ module.exports = nativeDescription: "українська мова", englishDesc
|
|||
# next: "Next"
|
||||
# previous: "Previous"
|
||||
# choose_inventory: "Equip Items"
|
||||
# older_campaigns: "Older Campaigns"
|
||||
# anonymous: "Anonymous Player"
|
||||
|
||||
# items:
|
||||
# armor: "Armor"
|
||||
|
@ -416,7 +419,9 @@ module.exports = nativeDescription: "українська мова", englishDesc
|
|||
# tome_cast_button_running: "Running"
|
||||
# tome_cast_button_ran: "Ran"
|
||||
# tome_submit_button: "Submit"
|
||||
tome_select_spell: "Оберіть закляття"
|
||||
# tome_reload_method: "Reload original code for this method" # Title text for individual method reload button.
|
||||
# tome_select_method: "Select a Method"
|
||||
# tome_see_all_methods: "See all methods you can edit" # Title text for method list selector (shown when there are multiple programmable methdos).
|
||||
tome_select_a_thang: "Оберіть когось для "
|
||||
tome_available_spells: "Доступні закляття"
|
||||
# tome_your_skills: "Your Skills"
|
||||
|
|
|
@ -117,6 +117,7 @@ module.exports = nativeDescription: "اُردُو", englishDescription: "Urdu",
|
|||
# adventurer_forum: "the Adventurer forum"
|
||||
# adventurer_suffix: "."
|
||||
# campaign_beginner: "Beginner Campaign"
|
||||
# campaign_old_beginner: "Old Beginner Campaign"
|
||||
# campaign_beginner_description: "... in which you learn the wizardry of programming."
|
||||
# campaign_dev: "Random Harder Levels"
|
||||
# campaign_dev_description: "... in which you learn the interface while doing something a little harder."
|
||||
|
@ -139,6 +140,8 @@ module.exports = nativeDescription: "اُردُو", englishDescription: "Urdu",
|
|||
# next: "Next"
|
||||
# previous: "Previous"
|
||||
# choose_inventory: "Equip Items"
|
||||
# older_campaigns: "Older Campaigns"
|
||||
# anonymous: "Anonymous Player"
|
||||
|
||||
# items:
|
||||
# armor: "Armor"
|
||||
|
@ -416,7 +419,9 @@ module.exports = nativeDescription: "اُردُو", englishDescription: "Urdu",
|
|||
# tome_cast_button_running: "Running"
|
||||
# tome_cast_button_ran: "Ran"
|
||||
# tome_submit_button: "Submit"
|
||||
# tome_select_spell: "Select a Spell"
|
||||
# tome_reload_method: "Reload original code for this method" # Title text for individual method reload button.
|
||||
# tome_select_method: "Select a Method"
|
||||
# tome_see_all_methods: "See all methods you can edit" # Title text for method list selector (shown when there are multiple programmable methdos).
|
||||
# tome_select_a_thang: "Select Someone for "
|
||||
# tome_available_spells: "Available Spells"
|
||||
# tome_your_skills: "Your Skills"
|
||||
|
|
|
@ -117,6 +117,7 @@ module.exports = nativeDescription: "Tiếng Việt", englishDescription: "Vietn
|
|||
adventurer_forum: "diễn đàn Adventurer"
|
||||
# adventurer_suffix: "."
|
||||
campaign_beginner: "Bắt đầu chiến dịch"
|
||||
# campaign_old_beginner: "Old Beginner Campaign"
|
||||
# campaign_beginner_description: "... in which you learn the wizardry of programming."
|
||||
campaign_dev: "Các cấp độ khó hơn ngẫu nhiên"
|
||||
# campaign_dev_description: "... in which you learn the interface while doing something a little harder."
|
||||
|
@ -139,6 +140,8 @@ module.exports = nativeDescription: "Tiếng Việt", englishDescription: "Vietn
|
|||
# next: "Next"
|
||||
# previous: "Previous"
|
||||
# choose_inventory: "Equip Items"
|
||||
# older_campaigns: "Older Campaigns"
|
||||
# anonymous: "Anonymous Player"
|
||||
|
||||
# items:
|
||||
# armor: "Armor"
|
||||
|
@ -416,7 +419,9 @@ module.exports = nativeDescription: "Tiếng Việt", englishDescription: "Vietn
|
|||
# tome_cast_button_running: "Running"
|
||||
# tome_cast_button_ran: "Ran"
|
||||
# tome_submit_button: "Submit"
|
||||
# tome_select_spell: "Select a Spell"
|
||||
# tome_reload_method: "Reload original code for this method" # Title text for individual method reload button.
|
||||
# tome_select_method: "Select a Method"
|
||||
# tome_see_all_methods: "See all methods you can edit" # Title text for method list selector (shown when there are multiple programmable methdos).
|
||||
# tome_select_a_thang: "Select Someone for "
|
||||
# tome_available_spells: "Available Spells"
|
||||
# tome_your_skills: "Your Skills"
|
||||
|
|
|
@ -117,6 +117,7 @@ module.exports = nativeDescription: "简体中文", englishDescription: "Chinese
|
|||
adventurer_forum: "冒险者论坛"
|
||||
adventurer_suffix: "。"
|
||||
campaign_beginner: "新手作战"
|
||||
# campaign_old_beginner: "Old Beginner Campaign"
|
||||
campaign_beginner_description: "……在这里你可以学习到编程技巧。"
|
||||
campaign_dev: "随机困难关卡"
|
||||
campaign_dev_description: "……在这里你可以学到做一些复杂功能的接口。"
|
||||
|
@ -139,6 +140,8 @@ module.exports = nativeDescription: "简体中文", englishDescription: "Chinese
|
|||
# next: "Next"
|
||||
# previous: "Previous"
|
||||
# choose_inventory: "Equip Items"
|
||||
# older_campaigns: "Older Campaigns"
|
||||
# anonymous: "Anonymous Player"
|
||||
|
||||
# items:
|
||||
# armor: "Armor"
|
||||
|
@ -416,7 +419,9 @@ module.exports = nativeDescription: "简体中文", englishDescription: "Chinese
|
|||
# tome_cast_button_running: "Running"
|
||||
# tome_cast_button_ran: "Ran"
|
||||
# tome_submit_button: "Submit"
|
||||
tome_select_spell: "选择一个法术"
|
||||
# tome_reload_method: "Reload original code for this method" # Title text for individual method reload button.
|
||||
# tome_select_method: "Select a Method"
|
||||
# tome_see_all_methods: "See all methods you can edit" # Title text for method list selector (shown when there are multiple programmable methdos).
|
||||
tome_select_a_thang: "选择人物来 "
|
||||
tome_available_spells: "可用的法术"
|
||||
# tome_your_skills: "Your Skills"
|
||||
|
|
|
@ -117,6 +117,7 @@ module.exports = nativeDescription: "繁体中文", englishDescription: "Chinese
|
|||
adventurer_forum: "冒險家論壇"
|
||||
adventurer_suffix: "."
|
||||
campaign_beginner: "新手指南"
|
||||
# campaign_old_beginner: "Old Beginner Campaign"
|
||||
campaign_beginner_description: "...在這裡可以學到編程技巧。"
|
||||
campaign_dev: "隨機關卡"
|
||||
campaign_dev_description: "...在這裡你可以學到做一些較複雜的程式技巧。"
|
||||
|
@ -139,6 +140,8 @@ module.exports = nativeDescription: "繁体中文", englishDescription: "Chinese
|
|||
# next: "Next"
|
||||
# previous: "Previous"
|
||||
# choose_inventory: "Equip Items"
|
||||
# older_campaigns: "Older Campaigns"
|
||||
# anonymous: "Anonymous Player"
|
||||
|
||||
# items:
|
||||
# armor: "Armor"
|
||||
|
@ -416,7 +419,9 @@ module.exports = nativeDescription: "繁体中文", englishDescription: "Chinese
|
|||
# tome_cast_button_running: "Running"
|
||||
# tome_cast_button_ran: "Ran"
|
||||
# tome_submit_button: "Submit"
|
||||
tome_select_spell: "選擇一個法術"
|
||||
# tome_reload_method: "Reload original code for this method" # Title text for individual method reload button.
|
||||
# tome_select_method: "Select a Method"
|
||||
# tome_see_all_methods: "See all methods you can edit" # Title text for method list selector (shown when there are multiple programmable methdos).
|
||||
tome_select_a_thang: "選擇一個人物來施放"
|
||||
tome_available_spells: "可用的法術"
|
||||
# tome_your_skills: "Your Skills"
|
||||
|
|
|
@ -117,6 +117,7 @@ module.exports = nativeDescription: "吴语", englishDescription: "Wuu (Simplifi
|
|||
# adventurer_forum: "the Adventurer forum"
|
||||
# adventurer_suffix: "."
|
||||
# campaign_beginner: "Beginner Campaign"
|
||||
# campaign_old_beginner: "Old Beginner Campaign"
|
||||
# campaign_beginner_description: "... in which you learn the wizardry of programming."
|
||||
# campaign_dev: "Random Harder Levels"
|
||||
# campaign_dev_description: "... in which you learn the interface while doing something a little harder."
|
||||
|
@ -139,6 +140,8 @@ module.exports = nativeDescription: "吴语", englishDescription: "Wuu (Simplifi
|
|||
# next: "Next"
|
||||
# previous: "Previous"
|
||||
# choose_inventory: "Equip Items"
|
||||
# older_campaigns: "Older Campaigns"
|
||||
# anonymous: "Anonymous Player"
|
||||
|
||||
# items:
|
||||
# armor: "Armor"
|
||||
|
@ -416,7 +419,9 @@ module.exports = nativeDescription: "吴语", englishDescription: "Wuu (Simplifi
|
|||
# tome_cast_button_running: "Running"
|
||||
# tome_cast_button_ran: "Ran"
|
||||
# tome_submit_button: "Submit"
|
||||
# tome_select_spell: "Select a Spell"
|
||||
# tome_reload_method: "Reload original code for this method" # Title text for individual method reload button.
|
||||
# tome_select_method: "Select a Method"
|
||||
# tome_see_all_methods: "See all methods you can edit" # Title text for method list selector (shown when there are multiple programmable methdos).
|
||||
# tome_select_a_thang: "Select Someone for "
|
||||
# tome_available_spells: "Available Spells"
|
||||
# tome_your_skills: "Your Skills"
|
||||
|
|
|
@ -117,6 +117,7 @@ module.exports = nativeDescription: "吳語", englishDescription: "Wuu (Traditio
|
|||
adventurer_forum: "冒險者論壇"
|
||||
adventurer_suffix: "。"
|
||||
campaign_beginner: "新手打仗"
|
||||
# campaign_old_beginner: "Old Beginner Campaign"
|
||||
campaign_beginner_description: "……徠箇裏爾學得到編程手法。"
|
||||
campaign_dev: "照摸難關"
|
||||
campaign_dev_description: "……徠箇搭爾學得到做一許囉唆功能個接口。"
|
||||
|
@ -139,6 +140,8 @@ module.exports = nativeDescription: "吳語", englishDescription: "Wuu (Traditio
|
|||
# next: "Next"
|
||||
# previous: "Previous"
|
||||
# choose_inventory: "Equip Items"
|
||||
# older_campaigns: "Older Campaigns"
|
||||
# anonymous: "Anonymous Player"
|
||||
|
||||
# items:
|
||||
# armor: "Armor"
|
||||
|
@ -416,7 +419,9 @@ module.exports = nativeDescription: "吳語", englishDescription: "Wuu (Traditio
|
|||
# tome_cast_button_running: "Running"
|
||||
# tome_cast_button_ran: "Ran"
|
||||
# tome_submit_button: "Submit"
|
||||
tome_select_spell: "揀一個法術"
|
||||
# tome_reload_method: "Reload original code for this method" # Title text for individual method reload button.
|
||||
# tome_select_method: "Select a Method"
|
||||
# tome_see_all_methods: "See all methods you can edit" # Title text for method list selector (shown when there are multiple programmable methdos).
|
||||
tome_select_a_thang: "揀人來 "
|
||||
tome_available_spells: "好用個法術"
|
||||
# tome_your_skills: "Your Skills"
|
||||
|
|
|
@ -64,3 +64,15 @@ module.exports = class User extends CocoModel
|
|||
|
||||
level: ->
|
||||
User.levelFromExp(@get('points'))
|
||||
|
||||
gems: ->
|
||||
gemsEarned = @get('earned')?.gems ? 0
|
||||
purchased = @get('purchased') ? {}
|
||||
gemsPurchased = purchased.gems ? 0
|
||||
sum = (arr) -> arr?.reduce((a, b) -> a + b) ? 0
|
||||
gemsSpent = sum(purchased.heroes) + sum(purchased.items) + sum(purchased.levels)
|
||||
gemsEarned + gemsPurchased - gemsSpent
|
||||
|
||||
earnedHero: (heroOriginal) -> heroOriginal in (me.get('earned')?.heroes ? [])
|
||||
earnedItem: (itemOriginal) -> itemOriginal in (me.get('earned')?.items ? [])
|
||||
earnedLevel: (levelOriginal) -> levelOriginal in (me.get('earned')?.levels ? [])
|
||||
|
|
|
@ -45,7 +45,7 @@ _.extend AchievementSchema.properties,
|
|||
query:
|
||||
#type:'object'
|
||||
$ref: '#/definitions/mongoFindQuery'
|
||||
worth: c.float
|
||||
worth: c.float()
|
||||
collection: {type: 'string'}
|
||||
description: c.shortString()
|
||||
userField: c.shortString()
|
||||
|
@ -61,7 +61,7 @@ _.extend AchievementSchema.properties,
|
|||
description: 'For repeatables only. Denotes the field a repeatable achievement needs for its calculations'
|
||||
recalculable:
|
||||
type: 'boolean'
|
||||
description: 'Needs to be set to true before it is elligible for recalculation.'
|
||||
description: 'Needs to be set to true before it is eligible for recalculation.'
|
||||
function:
|
||||
type: 'object'
|
||||
description: 'Function that gives total experience for X amount achieved'
|
||||
|
@ -82,6 +82,8 @@ _.extend AchievementSchema.properties,
|
|||
format: 'i18n'
|
||||
props: ['name', 'description']
|
||||
description: 'Help translate this achievement'
|
||||
rewards: c.RewardSchema 'awarded by this achievement'
|
||||
|
||||
|
||||
_.extend AchievementSchema, # Let's have these on the bottom
|
||||
# TODO We really need some required properties in my opinion but this makes creating new achievements impossible as it is now
|
||||
|
|
|
@ -5,7 +5,7 @@ module.exports =
|
|||
type: 'object'
|
||||
default:
|
||||
previouslyAchievedAmount: 0
|
||||
|
||||
|
||||
properties:
|
||||
user: c.objectId
|
||||
links:
|
||||
|
@ -30,4 +30,5 @@ module.exports =
|
|||
achievedAmount: type: 'number'
|
||||
earnedPoints: type: 'number'
|
||||
previouslyAchievedAmount: {type: 'number'}
|
||||
earnedRewards: c.RewardSchema 'awarded by this achievement to this user'
|
||||
notified: type: 'boolean'
|
||||
|
|
|
@ -23,8 +23,8 @@ LevelSessionSchema = c.object
|
|||
title: 'Session'
|
||||
description: 'A single session for a given level.'
|
||||
default:
|
||||
codeLanguage: 'javascript'
|
||||
submittedCodeLanguage: 'javascript'
|
||||
codeLanguage: 'python'
|
||||
submittedCodeLanguage: 'python'
|
||||
playtime: 0
|
||||
|
||||
_.extend LevelSessionSchema.properties,
|
||||
|
|
|
@ -17,6 +17,8 @@ UserSchema = c.object
|
|||
simulatedBy: 0
|
||||
simulatedFor: 0
|
||||
jobProfile: {}
|
||||
earned: {heroes: [], items: [], levels: [], gems: 0}
|
||||
purchased: {heroes: [], items: [], levels: [], gems: 0}
|
||||
|
||||
c.extendNamedProperties UserSchema # let's have the name be the first property
|
||||
|
||||
|
@ -106,8 +108,8 @@ _.extend UserSchema.properties,
|
|||
wizard: c.object {},
|
||||
colorConfig: c.object {additionalProperties: c.colorConfig()}
|
||||
|
||||
aceConfig: c.object { default: { language: 'javascript', keyBindings: 'default', invisibles: false, indentGuides: false, behaviors: false, liveCompletion: true }},
|
||||
language: {type: 'string', 'enum': ['javascript', 'coffeescript', 'python', 'clojure', 'lua', 'io']}
|
||||
aceConfig: c.object { default: { language: 'python', keyBindings: 'default', invisibles: false, indentGuides: false, behaviors: false, liveCompletion: true }},
|
||||
language: {type: 'string', 'enum': ['python', 'javascript', 'coffeescript', 'clojure', 'lua', 'io']}
|
||||
keyBindings: {type: 'string', 'enum': ['default', 'vim', 'emacs']}
|
||||
invisibles: {type: 'boolean' }
|
||||
indentGuides: {type: 'boolean' }
|
||||
|
@ -265,6 +267,8 @@ _.extend UserSchema.properties,
|
|||
thangTypeTranslationPatches: c.int()
|
||||
thangTypeMiscPatches: c.int()
|
||||
|
||||
earned: c.RewardSchema 'earned by achievements'
|
||||
purchased: c.RewardSchema 'purchased with gems'
|
||||
|
||||
c.extendBasicProperties UserSchema, 'user'
|
||||
|
||||
|
|
|
@ -18,6 +18,7 @@ me.pct = (ext) -> combine({type: 'number', maximum: 1.0, minimum: 0.0}, ext)
|
|||
me.date = (ext) -> combine({type: ['object', 'string'], format: 'date-time'}, ext)
|
||||
# should just be string (Mongo ID), but sometimes mongoose turns them into objects representing those, so we are lenient
|
||||
me.objectId = (ext) -> schema = combine({type: ['object', 'string']}, ext)
|
||||
me.stringID = (ext) -> schema = combine({type: 'string', minLength: 24, maxLength: 24}, ext)
|
||||
me.url = (ext) -> combine({type: 'string', format: 'url', pattern: urlPattern}, ext)
|
||||
me.int = (ext) -> combine {type: 'integer'}, ext
|
||||
me.float = (ext) -> combine {type: 'number'}, ext
|
||||
|
@ -171,7 +172,7 @@ me.FunctionArgumentSchema = me.object {
|
|||
description: 'Examples by code language.',
|
||||
additionalProperties: me.shortString(description: 'Example value for the argument.')
|
||||
format: 'code-languages-object'
|
||||
default: {javascript: ''}
|
||||
default: {javascript: '', python: ''}
|
||||
}
|
||||
me.shortString(title: 'Example', description: 'Example value for the argument.')
|
||||
]
|
||||
|
@ -183,7 +184,7 @@ me.FunctionArgumentSchema = me.object {
|
|||
description: 'Example argument descriptions by code language.',
|
||||
additionalProperties: {type: 'string', description: 'Description of the argument.', maxLength: 1000}
|
||||
format: 'code-languages-object'
|
||||
default: {javascript: ''}
|
||||
default: {javascript: '', python: ''}
|
||||
}
|
||||
{title: 'Description', type: 'string', description: 'Description of the argument.', maxLength: 1000}
|
||||
]
|
||||
|
@ -209,3 +210,16 @@ me.HeroConfigSchema = me.object {description: 'Which hero the player is using, e
|
|||
description: 'The inventory of the hero: slots to item ThangTypes.'
|
||||
additionalProperties: me.objectId(description: 'An item ThangType.')
|
||||
thangType: me.objectId(links: [{rel: 'db', href: '/db/thang.type/{($)}/version'}], title: 'Thang Type', description: 'The ThangType of the hero.', format: 'thang-type')
|
||||
|
||||
me.RewardSchema = (descriptionFragment='earned by achievements') ->
|
||||
type: 'object'
|
||||
additionalProperties: false
|
||||
description: "Rewards #{descriptionFragment}."
|
||||
properties:
|
||||
heroes: me.array {uniqueItems: true, description: "Heroes #{descriptionFragment}."},
|
||||
me.stringID(links: [{rel: 'db', href: '/db/thang.type/{($)}/version'}], title: 'Hero ThangType', description: 'A reference to the earned hero ThangType.', format: 'thang-type')
|
||||
items: me.array {uniqueItems: true, description: "Items #{descriptionFragment}."},
|
||||
me.stringID(links: [{rel: 'db', href: '/db/thang.type/{($)}/version'}], title: 'Item ThangType', description: 'A reference to the earned item ThangType.', format: 'thang-type')
|
||||
levels: me.array {uniqueItems: true, description: "Levels #{descriptionFragment}."},
|
||||
me.stringID(links: [{rel: 'db', href: '/db/level/{($)}/version'}], title: 'Level', description: 'A reference to the earned Level.', format: 'latest-version-original-reference')
|
||||
gems: me.int {description: "Gems #{descriptionFragment}."}
|
||||
|
|
|
@ -314,3 +314,27 @@ kbd
|
|||
background-color: #333
|
||||
border-radius: 3px
|
||||
@include box-shadow(inset 0 -1px 0 rgba(0, 0, 0, .25))
|
||||
|
||||
.gem
|
||||
display: inline-block
|
||||
background: transparent url(/images/common/gem.png) no-repeat center
|
||||
background-size: contain
|
||||
width: 80px
|
||||
height: 80px
|
||||
margin: 0px 2px
|
||||
|
||||
&.gem-20
|
||||
width: 20px
|
||||
height: 20px
|
||||
|
||||
&.gem-25
|
||||
width: 25px
|
||||
height: 25px
|
||||
|
||||
&.gem-40
|
||||
width: 40px
|
||||
height: 40px
|
||||
|
||||
&.gem-60
|
||||
width: 60px
|
||||
height: 60px
|
||||
|
|
|
@ -196,7 +196,7 @@ a.disabled
|
|||
.navbar-toggle
|
||||
display: none
|
||||
|
||||
@media only screen and (max-width: 800px)
|
||||
@media only screen and (max-width: 768px)
|
||||
#top-nav
|
||||
display: inline
|
||||
button.navbar-toggle
|
||||
|
|
|
@ -15,6 +15,7 @@
|
|||
display: block
|
||||
margin: 0 auto
|
||||
@include transition(box-shadow .50s ease-in-out)
|
||||
border-radius: 11px
|
||||
|
||||
text-shadow: 2px 2px 5px black
|
||||
|
||||
|
@ -62,176 +63,12 @@
|
|||
&.inverted
|
||||
filter: invert(100%)
|
||||
-webkit-filter: invert(100%)
|
||||
|
||||
.code-languages
|
||||
margin: 10px 0 30px 0
|
||||
|
||||
&:hover
|
||||
.code-language
|
||||
opacity: 0.6
|
||||
|
||||
.code-language.selected-language:not(:hover)
|
||||
opacity: 0.8
|
||||
|
||||
h2, h3
|
||||
text-shadow: none
|
||||
|
||||
.code-wizard
|
||||
opacity: 0.5
|
||||
|
||||
.language-play-count
|
||||
text-transform: lowercase
|
||||
position: absolute
|
||||
left: 0
|
||||
top: 0
|
||||
|
||||
.code-language
|
||||
cursor: pointer
|
||||
text-align: center
|
||||
position: relative
|
||||
opacity: 0.6
|
||||
|
||||
&:hover
|
||||
opacity: 1
|
||||
|
||||
h2, h3
|
||||
text-shadow: 0px 0px 5px white
|
||||
|
||||
.code-wizard
|
||||
display: block
|
||||
opacity: 1
|
||||
|
||||
&.selected-language
|
||||
opacity: 1
|
||||
|
||||
h2, h3
|
||||
text-shadow: 0px 0px 5px white
|
||||
|
||||
.code-wizard
|
||||
display: block
|
||||
|
||||
.code-wizard
|
||||
position: absolute
|
||||
background: transparent url(/images/pages/home/wizard.png) no-repeat
|
||||
background-size: contain
|
||||
width: 111px
|
||||
height: 97px
|
||||
display: none
|
||||
|
||||
.code-language-beta
|
||||
background: transparent url(/images/pages/home/language_beta_sticker.png) no-repeat
|
||||
background-size: contain
|
||||
width: 100px
|
||||
height: 32px
|
||||
position: absolute
|
||||
right: 20px
|
||||
top: -7px
|
||||
|
||||
.primary-code-languages
|
||||
|
||||
#javascript
|
||||
background: transparent url(/images/pages/home/language_js.png) no-repeat
|
||||
padding-right: 150px
|
||||
|
||||
.language-play-count
|
||||
right: -100px
|
||||
.code-wizard
|
||||
left: 120px
|
||||
|
||||
#python
|
||||
background: transparent url(/images/pages/home/language_python.png) no-repeat
|
||||
padding-left: 150px
|
||||
|
||||
.language-play-count
|
||||
left: 125px
|
||||
.code-wizard
|
||||
right: 120px
|
||||
|
||||
.code-language
|
||||
width: 498px
|
||||
height: 153px
|
||||
padding: 30px
|
||||
margin: 0px 0 0 -6px
|
||||
|
||||
.code-wizard
|
||||
top: -65px
|
||||
|
||||
h2
|
||||
margin: 15px 0 5px
|
||||
|
||||
p
|
||||
overflow: hidden
|
||||
height: 40px
|
||||
|
||||
.secondary-code-languages
|
||||
margin-left: -10px
|
||||
|
||||
.col-md-3
|
||||
padding: 0px
|
||||
|
||||
.language-play-count
|
||||
left: 15px
|
||||
top: -15px
|
||||
|
||||
.code-language
|
||||
background: transparent url(/images/pages/home/language_background_small.png) no-repeat
|
||||
width: 250px
|
||||
height: 80px
|
||||
margin: 20px 0 20px 0
|
||||
padding: 20px 20px 20px 70px
|
||||
|
||||
.code-wizard
|
||||
top: -51px
|
||||
left: 89px
|
||||
height: 63px
|
||||
|
||||
.code-language-logo
|
||||
position: absolute
|
||||
left: 15px
|
||||
top: 17px
|
||||
width: 50px
|
||||
height: 50px
|
||||
|
||||
.code-language-beta
|
||||
right: -15px
|
||||
top: -16px
|
||||
height: 24px
|
||||
|
||||
h3
|
||||
margin: 0
|
||||
padding: 0
|
||||
|
||||
p
|
||||
white-space: nowrap
|
||||
text-overflow: ellipsis
|
||||
overflow: hidden
|
||||
|
||||
#coffeescript .code-language-logo
|
||||
background: transparent url(/images/common/code_languages/coffeescript_small.png) no-repeat center
|
||||
|
||||
#clojure .code-language-logo
|
||||
background: transparent url(/images/common/code_languages/clojure_small.png) no-repeat center
|
||||
|
||||
#lua .code-language-logo
|
||||
background: transparent url(/images/common/code_languages/lua_small.png) no-repeat center
|
||||
|
||||
#io .code-language-logo
|
||||
background: transparent url(/images/common/code_languages/io_small.png) no-repeat center
|
||||
|
||||
|
||||
#mobile-trailer-wrapper
|
||||
display: none
|
||||
|
||||
@media only screen and (max-width: 800px)
|
||||
@media only screen and (max-width: 768px)
|
||||
#home-view
|
||||
#site-slogan
|
||||
font-size: 30px
|
||||
margin-bottom: 30px
|
||||
.code-languages
|
||||
.col-sm-6, .col-sm-3
|
||||
margin-top: 30px
|
||||
.code-language
|
||||
margin: 0px auto
|
||||
.game-mode-wrapper
|
||||
width: 100%
|
||||
img
|
||||
|
@ -244,9 +81,6 @@
|
|||
font-size: 50px
|
||||
font-family: Bangers
|
||||
@include transition(color .10s linear)
|
||||
.code-language-logo
|
||||
right: 0px
|
||||
top: 5px
|
||||
|
||||
h1
|
||||
text-align: center
|
||||
|
|
|
@ -52,9 +52,16 @@ $gameControlMargin: 30px
|
|||
border: 2px groove white
|
||||
@include transition(margin-bottom 0.5s ease)
|
||||
|
||||
&.disabled
|
||||
&.disabled, &.locked
|
||||
background-image: url(/images/pages/game-menu/lock.png)
|
||||
background-size: 75%
|
||||
background-repeat: no-repeat
|
||||
background-position: 50% 50%
|
||||
opacity: 0.7
|
||||
|
||||
a
|
||||
cursor: default
|
||||
|
||||
&.next
|
||||
width: 2 * $levelDotWidth
|
||||
height: 2 * $levelDotHeight
|
||||
|
@ -151,7 +158,7 @@ $gameControlMargin: 30px
|
|||
bottom: 1%
|
||||
z-index: 3
|
||||
|
||||
button.btn
|
||||
.btn
|
||||
&:not(:first-child)
|
||||
margin-left: $gameControlMargin
|
||||
width: $gameControlSize
|
||||
|
@ -180,3 +187,32 @@ $gameControlMargin: 30px
|
|||
|
||||
.tooltip
|
||||
font-size: 24px
|
||||
|
||||
.old-levels
|
||||
position: absolute
|
||||
bottom: 1%
|
||||
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%
|
||||
left: 50%
|
||||
width: 400px
|
||||
margin-left: -200px
|
||||
text-align: center
|
||||
font-size: 24px
|
||||
color: white
|
||||
text-shadow: 1px 1px 0px black
|
||||
|
||||
button
|
||||
margin-left: 10px
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
@import "bootstrap/variables"
|
||||
@import "bootstrap/mixins"
|
||||
@import "base"
|
||||
|
||||
#employers-wrapper
|
||||
background-color: #B4B4B4
|
||||
|
@ -51,5 +50,3 @@
|
|||
#login-button
|
||||
margin-left: 40%
|
||||
width: 20%
|
||||
|
||||
|
|
@ -14,10 +14,6 @@ body
|
|||
img(src="/images/pages/base/logo.png", title="CodeCombat - Learn how to code by playing a game", alt="CodeCombat")
|
||||
|
||||
ul(class='navbar-link-text').nav.navbar-nav.navbar-collapse.collapse
|
||||
li.play
|
||||
a.header-font(href='/play', data-i18n="nav.play") Levels
|
||||
li
|
||||
a.header-font(href='/community', data-i18n="nav.community") Community
|
||||
if me.get('anonymous') === false
|
||||
li.dropdown
|
||||
button.btn.btn-primary.navbuttontext.header-font.dropdown-toggle(href="#", data-toggle="dropdown")
|
||||
|
@ -68,12 +64,14 @@ body
|
|||
.content
|
||||
p.footer-link-text
|
||||
if pathname == "/" || (me.get('permissions', true)).indexOf('employer') != -1
|
||||
a(href='/employers', title='Home', tabindex=-1, data-i18n="nav.employers") Employers
|
||||
a(href='/employers', tabindex=-1, data-i18n="nav.employers") Employers
|
||||
else
|
||||
a(href='/', title='Home', tabindex=-1, data-i18n="nav.home") Home
|
||||
a(href='/contribute', title='Contribute', tabindex=-1, data-i18n="nav.contribute") Contribute
|
||||
a(href='/legal', title='Legal', tabindex=-1, data-i18n="nav.legal") Legal
|
||||
a(href='/about', title='About', tabindex=-1, data-i18n="nav.about") About
|
||||
a(href='/', tabindex=-1, data-i18n="nav.home") Home
|
||||
a(href='/play/ladder', tabindex=-1, data-i18n="home.multiplayer") Multiplayer
|
||||
a(href='/community', tabindex=-1, data-i18n="nav.community") Community
|
||||
a(href='/contribute', tabindex=-1, data-i18n="nav.contribute") Contribute
|
||||
a(href='/legal', tabindex=-1, data-i18n="nav.legal") Legal
|
||||
a(href='/about', tabindex=-1, data-i18n="nav.about") About
|
||||
a(title='Contact', tabindex=-1, data-toggle="coco-modal", data-target="modal/ContactModal", data-i18n="nav.contact") Contact
|
||||
a(href='http://blog.codecombat.com/', data-i18n="nav.blog") Blog
|
||||
a(href='http://discourse.codecombat.com/', data-i18n="nav.forum") Forum
|
||||
|
|
|
@ -2,23 +2,25 @@
|
|||
.carousel-indicator-container
|
||||
ol.carousel-indicators
|
||||
for hero, index in heroes
|
||||
- var info = heroInfo[hero.get('slug')]
|
||||
li(data-hero-id=hero.get('original'), title=hero.get('name'), data-slide-to=index, data-target="#hero-carousel", class="hero-indicator" + (info.status == "Locked" ? " locked" : ""))
|
||||
li(data-hero-id=hero.get('original'), title=hero.get('name'), data-slide-to=index, data-target="#hero-carousel", class="hero-indicator" + (hero.locked ? " locked" : ""))
|
||||
.hero-avatar
|
||||
if info.status == "Locked"
|
||||
if hero.locked
|
||||
img.lock-indicator(src="/images/pages/game-menu/lock.png")
|
||||
|
||||
.carousel-inner
|
||||
for hero in heroes
|
||||
- var info = heroInfo[hero.get('slug')]
|
||||
div(class="item hero-item" + (info.status == "Locked" ? " locked" : ""), data-hero-id=hero.get('original'))
|
||||
div(class="item hero-item" + (hero.locked ? " locked" : ""), data-hero-id=hero.get('original'))
|
||||
canvas.hero-canvas
|
||||
.hero-stats
|
||||
h2= info.fullName
|
||||
p
|
||||
span(data-i18n="choose_hero.status") Status
|
||||
span.spr :
|
||||
| #{info.status}
|
||||
if hero.locked
|
||||
| #{info.status}
|
||||
else
|
||||
| Available
|
||||
p
|
||||
span(data-i18n="choose_hero.weapons") Weapons
|
||||
span.spr :
|
||||
|
|
|
@ -4,86 +4,8 @@ block content
|
|||
|
||||
h1#site-slogan(data-i18n="home.slogan") Learn to Code by Playing a Game
|
||||
|
||||
.code-languages
|
||||
.primary-code-languages.row
|
||||
.col-sm-6
|
||||
.code-language#javascript(data-code-language='javascript')
|
||||
.code-wizard
|
||||
h2 JavaScript
|
||||
p(data-i18n="home.javascript_blurb") The language of the web. Great for writing websites, web apps, HTML5 games, and servers.
|
||||
- var playCount = codeLanguageCountMap.javascript
|
||||
if playCount
|
||||
div.language-play-count
|
||||
span.spr= playCount
|
||||
span(data-i18n="resources.sessions") sessions
|
||||
|
||||
.col-sm-6
|
||||
.code-language.beta#python(data-code-language='python')
|
||||
.code-wizard
|
||||
.code-language-beta
|
||||
h2 Python
|
||||
p(data-i18n="home.python_blurb") Simple yet powerful, Python is a great general purpose programming language.
|
||||
- var playCount = codeLanguageCountMap.python
|
||||
if playCount
|
||||
div.language-play-count
|
||||
span.spr= playCount
|
||||
span(data-i18n="resources.sessions") sessions
|
||||
|
||||
.secondary-code-languages.row
|
||||
.col-sm-3
|
||||
.code-language.beta#coffeescript(data-code-language='coffeescript')
|
||||
.code-language-logo
|
||||
.code-wizard
|
||||
.code-language-beta
|
||||
h3 CoffeeScript
|
||||
p(data-i18n="home.coffeescript_blurb") Nicer JavaScript syntax.
|
||||
- var playCount = codeLanguageCountMap.coffeescript
|
||||
if playCount
|
||||
div.language-play-count
|
||||
span.spr= playCount
|
||||
span(data-i18n="resources.sessions") sessions
|
||||
|
||||
.col-sm-3
|
||||
.code-language.beta#clojure(data-code-language='clojure')
|
||||
.code-language-logo
|
||||
.code-wizard
|
||||
.code-language-beta
|
||||
h3 Clojure
|
||||
p(data-i18n="home.clojure_blurb") A modern Lisp.
|
||||
- var playCount = codeLanguageCountMap.clojure
|
||||
if playCount
|
||||
div.language-play-count
|
||||
span.spr= playCount
|
||||
span(data-i18n="resources.sessions") sessions
|
||||
|
||||
.col-sm-3
|
||||
.code-language.beta#lua(data-code-language='lua')
|
||||
.code-language-logo
|
||||
.code-wizard
|
||||
.code-language-beta
|
||||
h3 Lua
|
||||
p(data-i18n="home.lua_blurb") Game scripting language.
|
||||
- var playCount = codeLanguageCountMap.lua
|
||||
if playCount
|
||||
div.language-play-count
|
||||
span.spr= playCount
|
||||
span(data-i18n="resources.sessions") sessions
|
||||
|
||||
.col-sm-3
|
||||
.code-language.beta#io(data-code-language='io', title="Careful: Io is still quite buggy")
|
||||
.code-language-logo
|
||||
.code-wizard
|
||||
.code-language-beta
|
||||
h3 Io
|
||||
p(data-i18n="home.io_blurb") Simple but obscure.
|
||||
- var playCount = codeLanguageCountMap.io
|
||||
if playCount
|
||||
div.language-play-count
|
||||
span.spr= playCount
|
||||
span(data-i18n="resources.sessions") sessions
|
||||
|
||||
.alert.alert-danger.lt-ie10
|
||||
strong(data-i18n="home.no_ie") CodeCombat does not run in Internet Explorer 9 or older. Sorry!
|
||||
.alert.alert-danger.lt-ie9
|
||||
strong(data-i18n="home.no_ie") CodeCombat does not run in Internet Explorer 8 or older. Sorry!
|
||||
|
||||
if isMobile
|
||||
.alert.alert-danger.mobile
|
||||
|
@ -94,26 +16,11 @@ block content
|
|||
br
|
||||
span(data-i18n="home.old_browser_suffix") You can try anyway, but it probably won't work.
|
||||
|
||||
a#beginner-campaign(href="/play/level/rescue-mission")
|
||||
a#beginner-campaign(href="/play")
|
||||
div.game-mode-wrapper
|
||||
if isEnglish
|
||||
img(src="/images/pages/home/campaign.jpg").img-rounded
|
||||
else
|
||||
img(src="/images/pages/home/campaign_notext.jpg").img-rounded
|
||||
h3(data-i18n="home.campaign") Campaign
|
||||
h4(data-i18n="home.for_beginners") For Beginners
|
||||
img(src="/images/pages/home/play_img.png").img-rounded
|
||||
h3(data-i18n="home.campaign") Campaign
|
||||
h4(data-i18n="home.for_beginners") For Beginners
|
||||
.play-text(data-i18n="home.play") Play
|
||||
.code-language-logo
|
||||
|
||||
a#multiplayer(href="/play/ladder")
|
||||
div.game-mode-wrapper
|
||||
if isEnglish
|
||||
img(src="/images/pages/home/multiplayer.jpg").img-rounded
|
||||
else
|
||||
img(src="/images/pages/home/multiplayer_notext.jpg").img-rounded
|
||||
h3(data-i18n="home.multiplayer") Multiplayer
|
||||
h4(data-i18n="home.for_developers") For Developers
|
||||
.play-text(data-i18n="home.play") Play
|
||||
.code-language-logo
|
||||
|
||||
.clearfix
|
||||
|
|
|
@ -6,12 +6,12 @@
|
|||
each level in campaign.levels
|
||||
- var next = !seenNext && levelStatusMap[level.id] != "complete";
|
||||
- seenNext = seenNext || next;
|
||||
div(style="left: #{level.x}%; bottom: #{level.y}%; background-color: #{campaign.color}", class="level" + (next ? " next" : "") + (level.disabled ? " disabled" : "") + " " + levelStatusMap[level.id] || "", data-level-id=level.id, title=level.name)
|
||||
div(style="left: #{level.x}%; bottom: #{level.y}%; background-color: #{campaign.color}", class="level" + (next ? " next" : "") + (level.disabled ? " disabled" : "") + (level.locked ? " locked" : "") + " " + levelStatusMap[level.id] || "", data-level-id=level.id, title=level.name)
|
||||
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)
|
||||
div(class="level-info " + (levelStatusMap[level.id] || ""))
|
||||
h3= level.name + (level.disabled ? " (Coming soon!)" : "")
|
||||
h3= level.name + (level.disabled ? " (Coming soon!)" : (level.locked ? " (Locked)" : ""))
|
||||
.level-description= level.description
|
||||
span(data-i18n="play.level_difficulty") Difficulty:
|
||||
each i in Array(level.difficulty)
|
||||
|
@ -30,7 +30,27 @@
|
|||
.game-controls.header-font
|
||||
if me.isAdmin()
|
||||
button.btn.items(data-toggle='coco-modal', data-target='play/modal/PlayItemsModal', data-i18n="[title]play.items")
|
||||
button.btn.heroes(data-toggle='coco-modal', data-target='play/modal/PlayHeroesModal', data-i18n="[title]play.heroes")
|
||||
button.btn.achievements(data-toggle='coco-modal', data-target='play/modal/PlayAchievementsModal', data-i18n="[title]play.achievements")
|
||||
button.btn.account(data-toggle='coco-modal', data-target='play/modal/PlayAccountModal', data-i18n="[title]play.account")
|
||||
button.btn.settings(data-toggle='coco-modal', data-target='play/modal/PlaySettingsModal', data-i18n="[title]play.settings")
|
||||
button.btn.heroes(data-toggle='coco-modal', data-target='play/modal/PlayHeroesModal', data-i18n="[title]play.heroes")
|
||||
button.btn.achievements(data-toggle='coco-modal', data-target='play/modal/PlayAchievementsModal', data-i18n="[title]play.achievements")
|
||||
if me.isAdmin()
|
||||
button.btn.account(data-toggle='coco-modal', data-target='play/modal/PlayAccountModal', data-i18n="[title]play.account")
|
||||
button.btn.settings(data-toggle='coco-modal', data-target='play/modal/PlaySettingsModal', data-i18n="[title]play.settings")
|
||||
else if me.get('anonymous')
|
||||
button.btn.settings(data-toggle='coco-modal', data-target='modal/AuthModal', data-i18n="[title]play.settings")
|
||||
else
|
||||
a.btn.achievements(href="/user/#{me.getSlugOrID()}/stats", data-i18n="[title]play.achievements")
|
||||
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.spr= me.gems()
|
||||
if me.get('anonymous')
|
||||
span.spr(data-i18n="play.anonymous_player") Anonymous Player
|
||||
button.btn.btn-default.btn-flat.btn-sm(data-toggle='coco-modal', data-target='modal/AuthModal', data-i18n="login.log_in")
|
||||
else
|
||||
span.spr= me.get('name')
|
||||
button#logout-button.btn.btn-default.btn-flat.btn-sm(data-i18n="login.log_out") Log Out
|
||||
|
|
|
@ -258,7 +258,7 @@ class JavaScriptTreema extends CodeTreema
|
|||
|
||||
class InternationalizationNode extends TreemaNode.nodeMap.object
|
||||
findLanguageName: (languageCode) ->
|
||||
# to get around mongoose emtpy object bug, there's a prop in the object which needs to be ignored
|
||||
# to get around mongoose empty object bug, there's a prop in the object which needs to be ignored
|
||||
return '' if languageCode is '-'
|
||||
locale[languageCode]?.nativeDescription or "#{languageCode} Not Found"
|
||||
|
||||
|
@ -360,11 +360,14 @@ class LatestVersionReferenceNode extends TreemaNode
|
|||
return 'Unknown' unless @settings.supermodel?
|
||||
m = CocoModel.getReferencedModel(@getData(), @workingSchema)
|
||||
data = @getData()
|
||||
m = @settings.supermodel.getModelByOriginalAndMajorVersion(m.constructor, data.original, data.majorVersion)
|
||||
if _.isString data # LatestVersionOriginalReferenceNode just uses original
|
||||
m = @settings.supermodel.getModelByOriginal(m.constructor, data)
|
||||
else
|
||||
m = @settings.supermodel.getModelByOriginalAndMajorVersion(m.constructor, data.original, data.majorVersion)
|
||||
if @instance and not m
|
||||
m = @instance
|
||||
@settings.supermodel.registerModel(m)
|
||||
return 'Unknown' unless m
|
||||
return 'Unknown - ' + (data.original ? data) unless m
|
||||
return @modelToString(m)
|
||||
|
||||
saveChanges: ->
|
||||
|
@ -409,6 +412,15 @@ class LatestVersionReferenceNode extends TreemaNode
|
|||
selected = @getSelectedResultEl()
|
||||
return not selected.length
|
||||
|
||||
class LatestVersionOriginalReferenceNode extends LatestVersionReferenceNode
|
||||
# Just for saving the original, not the major version.
|
||||
saveChanges: ->
|
||||
selected = @getSelectedResultEl()
|
||||
return unless selected.length
|
||||
fullValue = selected.data('value')
|
||||
@data = fullValue.attributes.original
|
||||
@instance = fullValue
|
||||
|
||||
class LevelComponentReferenceNode extends LatestVersionReferenceNode
|
||||
# HACK: this list of properties is needed by the thang components edit view and config views.
|
||||
# need a better way to specify this, or keep the search models from bleeding into those
|
||||
|
@ -436,6 +448,7 @@ module.exports.setup = ->
|
|||
TreemaNode.setNodeSubclass('javascript', JavaScriptTreema)
|
||||
TreemaNode.setNodeSubclass('image-file', ImageFileTreema)
|
||||
TreemaNode.setNodeSubclass('latest-version-reference', LatestVersionReferenceNode)
|
||||
TreemaNode.setNodeSubclass('latest-version-original-reference', LatestVersionOriginalReferenceNode)
|
||||
TreemaNode.setNodeSubclass('component-reference', LevelComponentReferenceNode)
|
||||
TreemaNode.setNodeSubclass('i18n', InternationalizationNode)
|
||||
TreemaNode.setNodeSubclass('sound-file', SoundFileTreema)
|
||||
|
|
|
@ -10,12 +10,7 @@ module.exports = class HomeView extends RootView
|
|||
template: template
|
||||
|
||||
events:
|
||||
'click .code-language': 'onCodeLanguageSelected'
|
||||
|
||||
constructor: ->
|
||||
super(arguments...)
|
||||
ThangType.loadUniversalWizard()
|
||||
@getCodeLanguageCounts()
|
||||
'click #beginner-campaign': 'onClickBeginnerCampaign'
|
||||
|
||||
getRenderData: ->
|
||||
c = super()
|
||||
|
@ -28,61 +23,9 @@ module.exports = class HomeView extends RootView
|
|||
console.warn 'no more jquery browser version...'
|
||||
c.isEnglish = (me.get('preferredLanguage') or 'en').startsWith 'en'
|
||||
c.languageName = me.get('preferredLanguage')
|
||||
c.codeLanguage = (me.get('aceConfig') ? {}).language or 'javascript'
|
||||
c.codeLanguageCountMap = @codeLanguageCountMap
|
||||
c
|
||||
|
||||
afterRender: ->
|
||||
super()
|
||||
@$el.find('.modal').on 'shown.bs.modal', ->
|
||||
$('input:visible:first', @).focus()
|
||||
|
||||
# Try to find latest level and set 'Play' link to go to that level
|
||||
lastLevel = me.get('lastLevel')
|
||||
lastLevel ?= localStorage?['lastLevel'] # Temp, until it's migrated to user property
|
||||
if lastLevel
|
||||
playLink = @$el.find('#beginner-campaign')
|
||||
if playLink[0]?
|
||||
href = playLink.attr('href').split('/')
|
||||
href[href.length-1] = lastLevel if href.length isnt 0
|
||||
href = href.join('/')
|
||||
playLink.attr('href', href)
|
||||
|
||||
codeLanguage = (me.get('aceConfig') ? {}).language or 'javascript'
|
||||
@$el.find(".code-language[data-code-language=#{codeLanguage}]").addClass 'selected-language'
|
||||
@updateLanguageLogos codeLanguage
|
||||
|
||||
updateLanguageLogos: (codeLanguage) ->
|
||||
@$el.find('.game-mode-wrapper .code-language-logo').css('background-image', "url(/images/common/code_languages/#{codeLanguage}_small.png)")
|
||||
|
||||
onCodeLanguageSelected: (e) ->
|
||||
target = $(e.target).closest('.code-language')
|
||||
codeLanguage = target.data('code-language')
|
||||
@$el.find('.code-language').removeClass 'selected-language'
|
||||
target.addClass 'selected-language'
|
||||
aceConfig = me.get('aceConfig') ? {}
|
||||
return if (aceConfig.language or 'javascript') is codeLanguage
|
||||
aceConfig.language = codeLanguage
|
||||
me.set 'aceConfig', aceConfig
|
||||
me.save() # me.patch() doesn't work if aceConfig previously existed and we switched just once
|
||||
|
||||
firstButton = @$el.find('#beginner-campaign .game-mode-wrapper').delay(500).addClass('hovered', 500).delay(500).removeClass('hovered', 500)
|
||||
lastButton = @$el.find('#multiplayer .game-mode-wrapper').delay(1000).addClass('hovered', 500).delay(500).removeClass('hovered', 500)
|
||||
$('#page-container').animate {scrollTop: firstButton.offset().top - 100, easing: 'easeInOutCubic'}, 500
|
||||
@updateLanguageLogos codeLanguage
|
||||
|
||||
getCodeLanguageCounts: ->
|
||||
@codeLanguageCountMap = {}
|
||||
success = (codeLanguageCounts) =>
|
||||
return if @destroyed
|
||||
for codeLanguage in codeLanguageCounts
|
||||
@codeLanguageCountMap[codeLanguage._id] = codeLanguage.sessions
|
||||
@codeLanguageCountMap.javascript += @codeLanguageCountMap[null]
|
||||
@render() if @supermodel.finished()
|
||||
|
||||
codeLanguageCountsRequest = @supermodel.addRequestResource 'play_counts', {
|
||||
url: '/db/level.session/-/code_language_counts'
|
||||
method: 'POST'
|
||||
success: success
|
||||
}, 0
|
||||
codeLanguageCountsRequest.load()
|
||||
onClickBeginnerCampaign: (e) ->
|
||||
e.preventDefault()
|
||||
e.stopImmediatePropagation()
|
||||
window.open '/play', '_blank'
|
||||
|
|
|
@ -15,8 +15,6 @@ module.exports = class AchievementPopup extends CocoView
|
|||
@popup ?= true
|
||||
@className += ' popup' if @popup
|
||||
super options
|
||||
console.debug 'Created an AchievementPopup', @$el
|
||||
|
||||
@render()
|
||||
|
||||
calculateData: ->
|
||||
|
@ -62,7 +60,6 @@ module.exports = class AchievementPopup extends CocoView
|
|||
c
|
||||
|
||||
render: ->
|
||||
console.debug 'render achievement popup'
|
||||
super()
|
||||
@container.prepend @$el
|
||||
if @popup
|
||||
|
|
|
@ -23,7 +23,7 @@ module.exports = class LevelSessionCodeView extends CocoView
|
|||
c.levelSpells = @organizeCode()
|
||||
c.sessionLink = "/play/level/" + (@level.get('slug') or @level.id) + "?team=" + (@session.get('team') || 'humans') + "&session=" + @session.id
|
||||
c
|
||||
|
||||
|
||||
afterRender: ->
|
||||
super()
|
||||
editors = []
|
||||
|
@ -34,9 +34,9 @@ module.exports = class LevelSessionCodeView extends CocoView
|
|||
editor.setReadOnly true
|
||||
editors.push editor
|
||||
aceSession = editor.getSession()
|
||||
aceSession.setMode 'ace/mode/javascript'
|
||||
aceSession.setMode 'ace/mode/javascript' # TODO: they're not all JS
|
||||
@editors = editors
|
||||
|
||||
|
||||
organizeCode: ->
|
||||
team = @session.get('team') or 'humans'
|
||||
teamSpells = @session.get('teamSpells')[team] or []
|
||||
|
@ -50,8 +50,8 @@ module.exports = class LevelSessionCodeView extends CocoView
|
|||
name: spell
|
||||
height: height
|
||||
}
|
||||
filteredSpells
|
||||
|
||||
filteredSpells
|
||||
|
||||
destroy: ->
|
||||
for editor in @editors
|
||||
@editors
|
||||
@editors
|
||||
|
|
|
@ -35,7 +35,7 @@ module.exports = class ComponentsDocumentationView extends CocoView
|
|||
c = super()
|
||||
c.components = @componentDocs.models
|
||||
c.marked = marked
|
||||
c.codeLanguage = me.get('aceConfig')?.language ? 'javascript'
|
||||
c.codeLanguage = me.get('aceConfig')?.language ? 'python'
|
||||
c
|
||||
|
||||
onToggleAllCode: (e) ->
|
||||
|
|
|
@ -35,7 +35,7 @@ module.exports = class SystemsDocumentationView extends CocoView
|
|||
c = super()
|
||||
c.systems = @systemDocs.models
|
||||
c.marked = marked
|
||||
c.codeLanguage = me.get('aceConfig')?.language ? 'javascript'
|
||||
c.codeLanguage = me.get('aceConfig')?.language ? 'python'
|
||||
c
|
||||
|
||||
onToggleAllCode: (e) ->
|
||||
|
|
|
@ -5,6 +5,7 @@ AchievementPopup = require 'views/achievements/AchievementPopup'
|
|||
ConfirmModal = require 'views/modal/ConfirmModal'
|
||||
errors = require 'lib/errors'
|
||||
app = require 'application'
|
||||
nodes = require 'views/editor/level/treema_nodes'
|
||||
|
||||
module.exports = class AchievementEditView extends RootView
|
||||
id: 'editor-achievement-edit-view'
|
||||
|
@ -36,8 +37,13 @@ module.exports = class AchievementEditView extends RootView
|
|||
readOnly: me.get('anonymous')
|
||||
callbacks:
|
||||
change: @pushChangesToPreview
|
||||
nodeClasses:
|
||||
'thang-type': nodes.ThangTypeNode
|
||||
'item-thang-type': nodes.ItemThangTypeNode
|
||||
supermodel: @supermodel
|
||||
@treema = @$el.find('#achievement-treema').treema(options)
|
||||
@treema.build()
|
||||
@treema.childrenTreemas.rewards?.open(3)
|
||||
@pushChangesToPreview()
|
||||
|
||||
getRenderData: (context={}) ->
|
||||
|
|
|
@ -36,6 +36,7 @@ module.exports = class ChooseHeroView extends CocoView
|
|||
getRenderData: (context={}) ->
|
||||
context = super(context)
|
||||
context.heroes = @heroes.models
|
||||
hero.locked = temporaryHeroInfo[hero.get('slug')].status is 'Locked' and not me.earnedHero hero.get('original') for hero in context.heroes
|
||||
context.level = @options.level
|
||||
context.codeLanguages = [
|
||||
{id: 'python', name: 'Python'}
|
||||
|
@ -76,7 +77,7 @@ module.exports = class ChooseHeroView extends CocoView
|
|||
size = 100 - (50 / 3) * distance
|
||||
$(@).css width: size, height: size, top: -(100 - size) / 2
|
||||
heroInfo = temporaryHeroInfo[hero.get('slug')]
|
||||
locked = heroInfo.status is 'Locked'
|
||||
locked = heroInfo.status is 'Locked' and not me.earnedHero ThangType.heroes[hero.get('slug')]
|
||||
hero = @loadHero hero, heroIndex
|
||||
@preloadHero heroIndex + 1
|
||||
@preloadHero heroIndex - 1
|
||||
|
|
|
@ -311,7 +311,7 @@ module.exports = class InventoryView extends CocoView
|
|||
'the-final-kithmaze': {feet: 'simple-boots', 'right-hand': 'longsword', torso: 'leather-tunic', 'programming-book': 'programmaticon-i', eyes: 'crude-glasses'}
|
||||
'kithgard-gates': {feet: 'simple-boots', 'right-hand': 'builders-hammer', torso: 'leather-tunic', 'programming-book': 'programmaticon-i', eyes: 'crude-glasses'}
|
||||
'defence-of-plainswood': {feet: 'simple-boots', 'right-hand': 'builders-hammer', torso: 'leather-tunic', 'programming-book': 'programmaticon-i', eyes: 'crude-glasses'}
|
||||
necessaryGear = gearByLevel[@options.levelID]
|
||||
return unless necessaryGear = gearByLevel[@options.levelID]
|
||||
for slot, item of necessaryGear ? {}
|
||||
@equipment[slot] ?= gear[item]
|
||||
|
||||
|
@ -321,6 +321,8 @@ module.exports = class InventoryView extends CocoView
|
|||
for slot, item of items
|
||||
@allowedItems.push gear[item] unless gear[item] in @allowedItems
|
||||
break if level is @options.levelID
|
||||
for item in me.get('earned')?.items ? [] when not (item in @allowedItems)
|
||||
@allowedItems.push item
|
||||
|
||||
onHeroSelectionUpdated: (e) ->
|
||||
@selectedHero = e.hero
|
||||
|
|
|
@ -43,6 +43,7 @@ module.exports = class AuthModal extends ModalView
|
|||
afterInsert: ->
|
||||
super()
|
||||
_.delay application.router.renderLoginButtons, 500
|
||||
_.delay (=> $('input:visible:first', @$el).focus()), 500
|
||||
|
||||
onSignupInstead: (e) ->
|
||||
@mode = 'signup'
|
||||
|
|
|
@ -54,11 +54,6 @@ module.exports = class MainPlayView extends RootView
|
|||
context.levelPlayCountMap = @levelPlayCountMap
|
||||
context
|
||||
|
||||
afterRender: ->
|
||||
super()
|
||||
@$el.find('.modal').on 'shown.bs.modal', ->
|
||||
$('input:visible:first', @).focus()
|
||||
|
||||
|
||||
tutorials = [
|
||||
{
|
||||
|
@ -327,7 +322,7 @@ playerCreated = [
|
|||
]
|
||||
|
||||
campaigns = [
|
||||
{id: 'beginner', name: 'Beginner Campaign', description: '... in which you learn the wizardry of programming.', levels: tutorials}
|
||||
{id: 'old_beginner', name: 'Old Beginner Campaign', description: '... in which you learn the wizardry of programming.', levels: tutorials}
|
||||
{id: 'multiplayer', name: 'Multiplayer Arenas', description: '... in which you code head-to-head against other players.', levels: arenas}
|
||||
{id: 'dev', name: 'Random Harder Levels', description: '... in which you learn the interface while doing something a little harder.', levels: experienced}
|
||||
{id: 'classic' ,name: 'Classic Algorithms', description: '... in which you learn the most popular algorithms in Computer Science.', levels: classicAlgorithms}
|
||||
|
|
|
@ -33,9 +33,13 @@ module.exports = class WorldMapView extends RootView
|
|||
@listenToOnce @sessions, 'sync', @onSessionsLoaded
|
||||
@getLevelPlayCounts()
|
||||
$(window).on 'resize', @onWindowResize
|
||||
@playAmbientSound()
|
||||
|
||||
destroy: ->
|
||||
$(window).off 'resize', @onWindowResize
|
||||
if ambientSound = @ambientSound
|
||||
# Doesn't seem to work; stops immediately.
|
||||
createjs.Tween.get(ambientSound).to({volume: 0.0}, 1500).call -> ambientSound.stop()
|
||||
super()
|
||||
|
||||
getLevelPlayCounts: ->
|
||||
|
@ -61,9 +65,11 @@ module.exports = class WorldMapView extends RootView
|
|||
context = super(context)
|
||||
context.campaigns = campaigns
|
||||
for campaign in context.campaigns
|
||||
for level in campaign.levels
|
||||
for level, index in campaign.levels
|
||||
level.x ?= 10 + 80 * Math.random()
|
||||
level.y ?= 10 + 80 * Math.random()
|
||||
#level.locked = index > 0 and not me.earnedLevel level.original
|
||||
level.locked = false # Not working yet, but time for sleep.
|
||||
context.levelStatusMap = @levelStatusMap
|
||||
context.levelPlayCountMap = @levelPlayCountMap
|
||||
context.isIPadApp = application.isIPadApp
|
||||
|
@ -73,7 +79,7 @@ module.exports = class WorldMapView extends RootView
|
|||
super()
|
||||
@onWindowResize()
|
||||
unless application.isIPadApp
|
||||
_.defer => @$el.find('.game-controls button').tooltip() # Have to defer or i18n doesn't take effect.
|
||||
_.defer => @$el.find('.game-controls .btn').tooltip() # Have to defer or i18n doesn't take effect.
|
||||
@$el.find('.level').tooltip()
|
||||
|
||||
onSessionsLoaded: (e) ->
|
||||
|
@ -92,7 +98,7 @@ module.exports = class WorldMapView extends RootView
|
|||
e.preventDefault()
|
||||
e.stopPropagation()
|
||||
@$levelInfo?.hide()
|
||||
return if $(e.target).attr('disabled')
|
||||
return if $(e.target).attr('disabled') or $(e.target).parent().hasClass 'locked'
|
||||
if application.isIPadApp
|
||||
levelID = $(e.target).parents('.level').data('level-id')
|
||||
@$levelInfo = @$el.find(".level-info-container[data-level-id=#{levelID}]").show()
|
||||
|
@ -156,6 +162,19 @@ module.exports = class WorldMapView extends RootView
|
|||
resultingMarginY = (pageHeight - resultingHeight) / 2
|
||||
@$el.find('.map').css(width: resultingWidth, height: resultingHeight, 'margin-left': resultingMarginX, 'margin-top': resultingMarginY)
|
||||
|
||||
playAmbientSound: ->
|
||||
return if @ambientSound
|
||||
terrain = 'Grass'
|
||||
return unless file = {Dungeon: 'ambient-map-dungeon', Grass: 'ambient-map-grass'}[terrain]
|
||||
src = "/file/interface/#{file}#{AudioPlayer.ext}"
|
||||
unless AudioPlayer.getStatus(src)?.loaded
|
||||
AudioPlayer.preloadSound src
|
||||
Backbone.Mediator.subscribeOnce 'audio-player:loaded', @playAmbientSound, @
|
||||
return
|
||||
@ambientSound = createjs.Sound.play src, loop: -1, volume: 0.1
|
||||
createjs.Tween.get(@ambientSound).to({volume: 1.0}, 1000)
|
||||
|
||||
|
||||
tutorials = [
|
||||
{
|
||||
name: 'Rescue Mission'
|
||||
|
@ -498,6 +517,7 @@ hero = [
|
|||
type: 'hero'
|
||||
difficulty: 1
|
||||
id: 'dungeons-of-kithgard'
|
||||
original: '528110f30268d018e3000001'
|
||||
description: 'Grab the gem, but touch nothing else. Start here.'
|
||||
x: 17.23
|
||||
y: 36.94
|
||||
|
@ -507,6 +527,7 @@ hero = [
|
|||
type: 'hero'
|
||||
difficulty: 1
|
||||
id: 'gems-in-the-deep'
|
||||
original: '54173c90844506ae0195a0b4'
|
||||
description: 'Quickly collect the gems; you will need them.'
|
||||
x: 22.6
|
||||
y: 35.1
|
||||
|
@ -516,6 +537,7 @@ hero = [
|
|||
type: 'hero'
|
||||
difficulty: 1
|
||||
id: 'shadow-guard'
|
||||
original: '54174347844506ae0195a0b8'
|
||||
description: 'Evade the Kithgard minion.'
|
||||
x: 27.74
|
||||
y: 35.17
|
||||
|
@ -525,6 +547,7 @@ hero = [
|
|||
type: 'hero'
|
||||
difficulty: 1
|
||||
id: 'true-names'
|
||||
original: '541875da4c16460000ab990f'
|
||||
description: 'Learn an enemy\'s true name to defeat it.'
|
||||
x: 32.7
|
||||
y: 36.7
|
||||
|
@ -534,6 +557,7 @@ hero = [
|
|||
type: 'hero'
|
||||
difficulty: 1
|
||||
id: 'the-raised-sword'
|
||||
original: '5418aec24c16460000ab9aa6'
|
||||
description: 'Learn to equip yourself for combat.'
|
||||
x: 36.6
|
||||
y: 39.5
|
||||
|
@ -543,6 +567,7 @@ hero = [
|
|||
type: 'hero'
|
||||
difficulty: 1
|
||||
id: 'the-first-kithmaze'
|
||||
original: '5418b9d64c16460000ab9ab4'
|
||||
description: 'The builders of Kith constructed many mazes to confuse travelers.'
|
||||
x: 38.4
|
||||
y: 43.5
|
||||
|
@ -552,6 +577,7 @@ hero = [
|
|||
type: 'hero'
|
||||
difficulty: 1
|
||||
id: 'the-second-kithmaze'
|
||||
original: '5418cf256bae62f707c7e1c3'
|
||||
description: 'Many have tried, few have found their way through this maze.'
|
||||
x: 38.9
|
||||
y: 48.1
|
||||
|
@ -561,6 +587,7 @@ hero = [
|
|||
type: 'hero'
|
||||
difficulty: 1
|
||||
id: 'new-sight'
|
||||
original: '5418d40f4c16460000ab9ac2'
|
||||
description: 'A true name can only be seen with the correct lenses.'
|
||||
x: 39.3
|
||||
y: 53.1
|
||||
|
@ -570,6 +597,7 @@ hero = [
|
|||
type: 'hero'
|
||||
difficulty: 1
|
||||
id: 'lowly-kithmen'
|
||||
original: '541b24511ccc8eaae19f3c1f'
|
||||
description: 'Use your glasses to seek out and attack the Kithmen.'
|
||||
x: 39.4
|
||||
y: 57.7
|
||||
|
@ -579,6 +607,7 @@ hero = [
|
|||
type: 'hero'
|
||||
difficulty: 1
|
||||
id: 'a-bolt-in-the-dark'
|
||||
original: '541b288e1ccc8eaae19f3c25'
|
||||
description: 'Kithmen are not the only ones to stand in your way.'
|
||||
x: 40.0
|
||||
y: 63.2
|
||||
|
@ -588,6 +617,7 @@ hero = [
|
|||
type: 'hero'
|
||||
difficulty: 1
|
||||
id: 'the-final-kithmaze'
|
||||
original: '541b434e1ccc8eaae19f3c33'
|
||||
description: 'To escape you must find your way through an Elder Kithman\'s maze.'
|
||||
x: 42.67
|
||||
y: 67.98
|
||||
|
@ -597,18 +627,22 @@ hero = [
|
|||
type: 'hero'
|
||||
difficulty: 1
|
||||
id: 'kithgard-gates'
|
||||
original: '541c9a30c6362edfb0f34479'
|
||||
description: 'Escape the Kithgard dungeons and don\'t let the guardians get you.'
|
||||
x: 47.38
|
||||
y: 70.55
|
||||
disabled: true
|
||||
}
|
||||
{
|
||||
name: 'Defence of Plainswood'
|
||||
type: 'hero'
|
||||
difficulty: 1
|
||||
id: 'defence-of-plainswood'
|
||||
original: '541b67f71ccc8eaae19f3c62'
|
||||
description: 'Protect the peasants from the pursuing ogres.'
|
||||
x: 52.66
|
||||
y: 69.66
|
||||
disabled: true
|
||||
}
|
||||
#{
|
||||
# name: ''
|
||||
|
|
|
@ -89,9 +89,9 @@ module.exports = class LadderPlayModal extends ModalView
|
|||
ctx.otherTeamID = @otherTeam
|
||||
ctx.tutorialLevelExists = @tutorialLevelExists
|
||||
ctx.languages = [
|
||||
{id: 'python', name: 'Python'}
|
||||
{id: 'javascript', name: 'JavaScript'}
|
||||
{id: 'coffeescript', name: 'CoffeeScript'}
|
||||
{id: 'python', name: 'Python (Experimental)'}
|
||||
{id: 'clojure', name: 'Clojure (Experimental)'}
|
||||
{id: 'lua', name: 'Lua (Experimental)'}
|
||||
{id: 'io', name: 'Io (Experimental)'}
|
||||
|
|
|
@ -54,11 +54,6 @@ module.exports = class LadderHomeView extends RootView
|
|||
context.campaigns = campaigns
|
||||
context
|
||||
|
||||
afterRender: ->
|
||||
super()
|
||||
@$el.find('.modal').on 'shown.bs.modal', ->
|
||||
$('input:visible:first', @).focus()
|
||||
|
||||
|
||||
arenas = [
|
||||
{
|
||||
|
|
|
@ -60,7 +60,7 @@ module.exports = class ControlBarView extends CocoView
|
|||
@homeViewClass = require 'views/play/ladder/LadderView'
|
||||
@homeViewArgs.push levelID
|
||||
else if @level.get('type', true) is 'hero'
|
||||
@homeLink = c.homeLink = '/play-hero'
|
||||
@homeLink = c.homeLink = '/play'
|
||||
@homeViewClass = require 'views/play/WorldMapView'
|
||||
else
|
||||
@homeLink = c.homeLink = '/'
|
||||
|
|
|
@ -8,7 +8,7 @@ module.exports = class EditorConfigModal extends ModalView
|
|||
aceConfig: {}
|
||||
|
||||
defaultConfig:
|
||||
language: 'javascript'
|
||||
language: 'python'
|
||||
keyBindings: 'default'
|
||||
invisibles: false
|
||||
indentGuides: false
|
||||
|
@ -32,9 +32,9 @@ module.exports = class EditorConfigModal extends ModalView
|
|||
@aceConfig = _.defaults @aceConfig, @defaultConfig
|
||||
c = super()
|
||||
c.languages = [
|
||||
{id: 'python', name: 'Python'}
|
||||
{id: 'javascript', name: 'JavaScript'}
|
||||
{id: 'coffeescript', name: 'CoffeeScript'}
|
||||
{id: 'python', name: 'Python (Experimental)'}
|
||||
{id: 'clojure', name: 'Clojure (Experimental)'}
|
||||
{id: 'lua', name: 'Lua (Experimental)'}
|
||||
{id: 'io', name: 'Io (Experimental)'}
|
||||
|
|
|
@ -68,7 +68,7 @@ module.exports = class VictoryModal extends ModalView
|
|||
onClickWorldMap: (e) ->
|
||||
e.preventDefault()
|
||||
e.stopImmediatePropagation()
|
||||
Backbone.Mediator.publish 'router:navigate', route: '/play-hero', viewClass: require('views/play/WorldMapView'), viewArgs: [{supermodel: @supermodel}]
|
||||
Backbone.Mediator.publish 'router:navigate', route: '/play', viewClass: require('views/play/WorldMapView'), viewArgs: [{supermodel: @supermodel}]
|
||||
|
||||
onGameSubmitted: (e) ->
|
||||
ladderURL = "/play/ladder/#{@level.get('slug')}#my-matches"
|
||||
|
|
|
@ -36,8 +36,6 @@ ThangListView = require './ThangListView'
|
|||
SpellPaletteView = require './SpellPaletteView'
|
||||
CastButtonView = require './CastButtonView'
|
||||
|
||||
window.SHIM_WORKER_PATH = '/javascripts/workers/catiline_worker_shim.js'
|
||||
|
||||
module.exports = class TomeView extends CocoView
|
||||
id: 'tome-view'
|
||||
template: template
|
||||
|
@ -108,7 +106,7 @@ module.exports = class TomeView extends CocoView
|
|||
return teamSpellMap
|
||||
|
||||
createSpells: (programmableThangs, world) ->
|
||||
language = @options.session.get('codeLanguage') ? me.get('aceConfig')?.language ? 'javascript'
|
||||
language = @options.session.get('codeLanguage') ? me.get('aceConfig')?.language ? 'python'
|
||||
pathPrefixComponents = ['play', 'level', @options.levelID, @options.session.id, 'code']
|
||||
@spells ?= {}
|
||||
@thangSpells ?= {}
|
||||
|
|
|
@ -37,7 +37,7 @@
|
|||
"firebase": "~1.0.2",
|
||||
"catiline": "~2.9.3",
|
||||
"d3": "~3.4.4",
|
||||
"jsondiffpatch": "~0.1.5",
|
||||
"jsondiffpatch": "0.1.8",
|
||||
"nanoscroller": "~0.8.0",
|
||||
"treema": "https://github.com/codecombat/treema.git#master",
|
||||
"jquery.tablesorter": "~2",
|
||||
|
|
|
@ -75,7 +75,7 @@
|
|||
"javascript-brunch": "> 1.0 < 1.8",
|
||||
"coffee-script-brunch": "https://github.com/brunch/coffee-script-brunch/tarball/master",
|
||||
"coffeelint-brunch": "> 1.0 < 1.8",
|
||||
"sass-brunch": "1.7.0",
|
||||
"sass-brunch": "1.8.3",
|
||||
"css-brunch": "> 1.0 < 1.8",
|
||||
"jade-brunch": "> 1.0 < 1.8",
|
||||
"uglify-js-brunch": "~1.7.4",
|
||||
|
@ -86,7 +86,7 @@
|
|||
"marked": "0.2.x",
|
||||
"telepath-brunch": "https://github.com/nwinter/telepath-brunch/tarball/master",
|
||||
"bower": "~1.3.8",
|
||||
"bless-brunch": "~1.6.1",
|
||||
"bless-brunch": "https://github.com/ThomasConner/bless-brunch/tarball/master",
|
||||
"karma-script-launcher": "~0.1.0",
|
||||
"karma-chrome-launcher": "~0.1.2",
|
||||
"karma-firefox-launcher": "~0.1.3",
|
||||
|
|
|
@ -5,7 +5,7 @@ class AchievementHandler extends Handler
|
|||
modelClass: Achievement
|
||||
|
||||
# Used to determine which properties requests may edit
|
||||
editableProperties: ['name', 'query', 'worth', 'collection', 'description', 'userField', 'proportionalTo', 'icon', 'function', 'related', 'difficulty', 'category', 'recalculable']
|
||||
editableProperties: ['name', 'query', 'worth', 'collection', 'description', 'userField', 'proportionalTo', 'icon', 'function', 'related', 'difficulty', 'category', 'recalculable', 'rewards']
|
||||
allowedMethods: ['GET', 'POST', 'PUT', 'PATCH', 'DELETE']
|
||||
jsonSchema = require '../../app/schemas/models/achievement.coffee'
|
||||
|
||||
|
|
|
@ -77,15 +77,21 @@ class EarnedAchievementHandler extends Handler
|
|||
EarnedAchievement.find {user: userID}, (err, alreadyEarned) ->
|
||||
alreadyEarnedIDs = []
|
||||
previousPoints = 0
|
||||
previousRewards = heroes: [], items: [], levels: [], gems: 0
|
||||
async.each alreadyEarned, ((earned, doneWithEarned) ->
|
||||
if (_.find achievements, (single) -> earned.get('achievement') is single.get('_id').toHexString()) # if already earned
|
||||
alreadyEarnedIDs.push earned.get('achievement')
|
||||
previousPoints += earned.get 'earnedPoints'
|
||||
for rewardType in ['heroes', 'items', 'levels']
|
||||
previousRewards[rewardType] = previousRewards[rewardType].concat(earned.get('earnedRewards')?[rewardType] ? [])
|
||||
previousRewards.gems += earned.get('earnedRewards')?.gems ? 0
|
||||
doneWithEarned()
|
||||
), -> # After checking already achieved
|
||||
), (err) -> # After checking already achieved
|
||||
log.error err if err
|
||||
# TODO maybe also delete earned? Make sure you don't delete too many
|
||||
|
||||
newTotalPoints = 0
|
||||
newTotalRewards = heroes: [], items: [], levels: [], gems: 0
|
||||
|
||||
async.each achievements, ((achievement, doneWithAchievement) ->
|
||||
return doneWithAchievement() unless achievement.isRecalculable()
|
||||
|
@ -122,17 +128,43 @@ class EarnedAchievementHandler extends Handler
|
|||
earned.earnedPoints = newPoints
|
||||
newTotalPoints += newPoints
|
||||
|
||||
earned.earnedRewards = achievement.get('rewards')
|
||||
for rewardType in ['heroes', 'items', 'levels']
|
||||
newTotalRewards[rewardType] = newTotalRewards[rewardType].concat(achievement.get('rewards')?[rewardType] ? [])
|
||||
newTotalRewards.gems += achievement.get('rewards')?.gems ? 0
|
||||
|
||||
EarnedAchievement.update {achievement:earned.achievement, user:earned.user}, earned, {upsert: true}, (err) ->
|
||||
doneWithAchievement err
|
||||
), -> # Wrap up a user, save points
|
||||
), (err) -> # Wrap up a user, save points
|
||||
log.error err if err
|
||||
# Since some achievements cannot be recalculated it's important to deduct the old amount of exp
|
||||
# and add the new amount, instead of just setting to the new amount
|
||||
return doneWithUser(user) unless newTotalPoints
|
||||
#console.log 'User', user.get('name'), 'had newTotalPoints', newTotalPoints, 'and newTotalRewards', newTotalRewards
|
||||
return doneWithUser(user) unless newTotalPoints or newTotalRewards.gems or _.some(newTotalRewards, (r) -> r.length)
|
||||
# log.debug "Matched a total of #{newTotalPoints} new points"
|
||||
# log.debug "Incrementing score for these achievements with #{newTotalPoints - previousPoints}"
|
||||
pctDone = (100 * usersFinished / total).toFixed(2)
|
||||
console.log "Updated points to #{newTotalPoints}(+#{newTotalPoints - previousPoints}) for #{user.get('name') or '???'} (#{user.get('_id')}) (#{pctDone}%)"
|
||||
User.update {_id: userID}, {$inc: points: newTotalPoints - previousPoints}, {}, (err) ->
|
||||
update = {$inc: {points: newTotalPoints - previousPoints}}
|
||||
for rewardType, rewards of newTotalRewards
|
||||
if rewardType is 'gems'
|
||||
update.$inc['earned.gems'] = rewards - previousRewards.gems
|
||||
else
|
||||
previousCounts = _.countBy previousRewards[rewardType]
|
||||
newCounts = _.countBy rewards
|
||||
relevantRewards = _.union _.keys(previousCounts), _.keys(newCounts)
|
||||
for reward in relevantRewards
|
||||
[previousCount, newCount] = [previousCounts[reward], newCounts[reward]]
|
||||
if newCount and not previousCount
|
||||
update.$addToSet ?= {}
|
||||
update.$addToSet["earned.#{rewardType}"] ?= {$each: []}
|
||||
update.$addToSet["earned.#{rewardType}"].$each.push reward
|
||||
else if previousCount and not newCount
|
||||
# Might $pull $each also work here?
|
||||
update.$pullAll ?= {}
|
||||
update.$pullAll["earned.#{rewardType}"] ?= []
|
||||
update.$pullAll["earned.#{rewardType}"].push reward
|
||||
User.update {_id: userID}, update, {}, (err) ->
|
||||
log.error err if err?
|
||||
doneWithUser(user)
|
||||
|
||||
|
|
|
@ -93,7 +93,7 @@ LevelHandler = class LevelHandler extends Handler
|
|||
access: 'write'
|
||||
}
|
||||
]
|
||||
initVals.codeLanguage = req.user.get('aceConfig')?.language ? 'javascript'
|
||||
initVals.codeLanguage = req.user.get('aceConfig')?.language ? 'python'
|
||||
session = new Session(initVals)
|
||||
|
||||
session.save (err) =>
|
||||
|
|
|
@ -50,12 +50,20 @@ AchievablePlugin = (schema, options) ->
|
|||
user: userID
|
||||
achievement: achievement._id.toHexString()
|
||||
achievementName: achievement.get 'name'
|
||||
earnedRewarsd: achievement.get 'rewards'
|
||||
|
||||
worth = achievement.get('worth') ? 10
|
||||
earnedPoints = 0
|
||||
wrapUp = ->
|
||||
# Update user's experience points
|
||||
User.update {_id: userID}, {$inc: {points: earnedPoints}}, {}, (err, count) ->
|
||||
update = {$inc: {points: earnedPoints}}
|
||||
for rewardType, rewards of achievement.get('rewards') ? {}
|
||||
if rewardType is 'gems'
|
||||
update.$inc['earned.gems'] = rewards if rewards
|
||||
else if rewards.length
|
||||
update.$addToSet ?= {}
|
||||
update.$addToSet["earned.#{rewardType}"] = $each: rewards
|
||||
User.update {_id: userID}, update, {}, (err, count) ->
|
||||
log.error err if err?
|
||||
|
||||
if isRepeatable
|
||||
|
|
|
@ -9,7 +9,7 @@ thangTypes = [
|
|||
|
||||
describe 'InventoryView', ->
|
||||
inventoryView = null
|
||||
|
||||
|
||||
beforeEach (done) ->
|
||||
equipment = { 'feet':'boots', 'eyes': 'crude-glasses' }
|
||||
inventoryView = new InventoryView({ equipment: equipment })
|
||||
|
@ -19,53 +19,23 @@ describe 'InventoryView', ->
|
|||
_.defer ->
|
||||
inventoryView.render()
|
||||
done()
|
||||
|
||||
|
||||
it 'selects a slot when you click it', ->
|
||||
inventoryView.getSlot('eyes').click()
|
||||
expect(inventoryView.getSelectedSlot().data('slot')).toBe('eyes')
|
||||
|
||||
|
||||
it 'unselects a selected slot when you click it', ->
|
||||
inventoryView.getSlot('eyes').click().click()
|
||||
expect(inventoryView.getSelectedSlot().data('slot')).toBeUndefined()
|
||||
|
||||
|
||||
it 'selects an available item when you click it', ->
|
||||
inventoryView.getAvailableItemContainer('boots-of-leaping-id').click()
|
||||
expect(inventoryView.getSelectedAvailableItemContainer().data('item-id')).toBe('boots-of-leaping-id')
|
||||
|
||||
inventoryView.getAvailableItemContainer('boots-of-leaping').click()
|
||||
expect(inventoryView.getSelectedAvailableItemContainer().data('item-id')).toBe('boots-of-leaping')
|
||||
|
||||
it 'equips an available item when you double click it', ->
|
||||
inventoryView.getAvailableItemContainer('crossbow-id').click().dblclick()
|
||||
inventoryView.getAvailableItemContainer('crossbow').click().dblclick()
|
||||
expect(inventoryView.getCurrentEquipmentConfig()['right-hand']).toBeTruthy()
|
||||
|
||||
it 'unequips an itm when you double click it', ->
|
||||
|
||||
it 'unequips an item when you double click it', ->
|
||||
inventoryView.getSlot('eyes').find('.item-view').click().dblclick()
|
||||
expect(inventoryView.getCurrentEquipmentConfig().eyes).toBeUndefined()
|
||||
|
||||
describe 'swap button', ->
|
||||
it 'does nothing if nothing is selected', ->
|
||||
inventoryView.$el.find('#swap-button').click()
|
||||
expect(inventoryView.getSelectedSlot()[0]).toBeFalsy()
|
||||
expect(inventoryView.getSelectedAvailableItemContainer()[0]).toBeFalsy()
|
||||
|
||||
it 'unequips and selects the unequipped item if just an equipped slot is chosen', ->
|
||||
expect(inventoryView.getCurrentEquipmentConfig().eyes).toBeTruthy()
|
||||
slot = inventoryView.getSlot('eyes')
|
||||
inventoryView.selectSlot(slot)
|
||||
inventoryView.$el.find('#swap-button').click()
|
||||
expect(inventoryView.getCurrentEquipmentConfig().eyes).toBeUndefined()
|
||||
expect(inventoryView.getSelectedAvailableItemContainer().data('item-id')).toBe('crude-glasses-id')
|
||||
|
||||
it 'equips the selected item if just an available item is selected', ->
|
||||
expect(inventoryView.getCurrentEquipmentConfig()['right-hand']).toBeUndefined()
|
||||
inventoryView.getAvailableItemContainer('crossbow-id').click()
|
||||
inventoryView.$el.find('#swap-button').click()
|
||||
expect(inventoryView.getCurrentEquipmentConfig()['right-hand']).toBeTruthy()
|
||||
expect(inventoryView.getSelectedAvailableItemContainer().data('item-id')).toBeUndefined()
|
||||
expect(inventoryView.getSelectedSlot().data('slot')).toBe('right-hand')
|
||||
|
||||
it 'swaps items if both a slot and item are selected, and keeps them selected', ->
|
||||
inventoryView.getAvailableItemContainer('boots-of-leaping-id').click()
|
||||
inventoryView.getSlot('feet').click()
|
||||
inventoryView.$el.find('#swap-button').click()
|
||||
expect(inventoryView.getCurrentEquipmentConfig()['feet']).toBe('boots-of-leaping')
|
||||
expect(inventoryView.getSelectedAvailableItemContainer().data('item-id')).toBe('boots-id')
|
||||
expect(inventoryView.getSelectedSlot().data('slot')).toBe('feet')
|
Loading…
Add table
Reference in a new issue