Merge branch 'master' into codecombat/master

This commit is contained in:
sake12 2015-09-02 20:59:04 +02:00
commit b098d0d685
19 changed files with 369 additions and 183 deletions

View file

@ -58,7 +58,7 @@ module.exports = class CocoRouter extends Backbone.Router
'contribute/diplomat': go('contribute/DiplomatView')
'contribute/scribe': go('contribute/ScribeView')
'courses': go('courses/mock1/CoursesView')
'courses': go('courses/CoursesView')
'courses/mock1': go('courses/mock1/CoursesView')
'courses/mock1/enroll/:courseID': go('courses/mock1/CourseEnrollView')
'courses/mock1/:courseID': go('courses/mock1/CourseDetailsView')

View file

@ -62,6 +62,11 @@ module.exports = class LevelSetupManager extends CocoClass
@session.set 'heroConfig', {"thangType":sorcerer,"inventory":{"misc-0":"53e2396a53457600003e3f0f","programming-book":"546e266e9df4a17d0d449be5","minion":"54eb5dbc49fa2d5c905ddf56","feet":"53e214f153457600003e3eab","right-hand":"54eab7f52b7506e891ca7202","left-hand":"5463758f3839c6e02811d30f","wrists":"54693797a2b1f53ce79443e9","gloves":"5469425ca2b1f53ce7944421","torso":"546d4a549df4a17d0d449a97","neck":"54693274a2b1f53ce79443c9","eyes":"546941fda2b1f53ce794441d","head":"546d4ca19df4a17d0d449abf"}}
@onInventoryModalPlayClicked()
return
if @level.get('slug') is 'ace-of-coders'
goliath = '55e1a6e876cb0948c96af9f8'
@session.set 'heroConfig', {"thangType":goliath,"inventory":{"eyes":"53eb99f41a100989a40ce46e","neck":"54693274a2b1f53ce79443c9","wrists":"54693797a2b1f53ce79443e9","feet":"546d4d8e9df4a17d0d449acd","minion":"54eb5bf649fa2d5c905ddf4a","programming-book":"557871261ff17fef5abee3ee"}}
@onInventoryModalPlayClicked()
return
if @level.get('type', true) in ['course', 'course-ladder']
@onInventoryModalPlayClicked()
return

View file

@ -4,8 +4,8 @@ module.exports = nativeDescription: "polski", englishDescription: "Polish", tran
no_ie: "CodeCombat nie działa na Internet Explorer 8 i starszych. Przepraszamy!" # Warning that only shows up in IE8 and older
no_mobile: "CodeCombat nie został zaprojektowany dla urządzeń przenośnych, więc mogą występować pewne problemy w jego działaniu!" # Warning that shows up on mobile devices
play: "Graj" # The big play button that opens up the campaign view.
old_browser: "Wygląda na to, że twoja przeglądarka jest zbyt stara, by obsłużyć CodeCombat. Wybacz!" # Warning that shows up on really old Firefox/Chrome/Safari
old_browser_suffix: "Mimo tego możesz spróbowac, ale prawdopodobnie gra nie będzie działać."
old_browser: "Wygląda na to, że twoja przeglądarka jest zbyt stara, by obsłużyć CodeCombat. Wybacz..." # Warning that shows up on really old Firefox/Chrome/Safari
old_browser_suffix: "Mimo tego możesz spróbować, ale prawdopodobnie gra nie będzie działać."
ipad_browser: "Zła wiadomość: CodeCombat nie działa na przeglądarce w iPadzie. Dobra wiadomość: nasza aplikacja na iPada czeka na akceptację od Apple."
campaign: "Kampania"
for_beginners: "Dla początkujących"
@ -79,8 +79,8 @@ module.exports = nativeDescription: "polski", englishDescription: "Polish", tran
adjust_volume: "Dopasuj głośność"
campaign_multiplayer: "Kampania dla wielu graczy"
campaign_multiplayer_description: "... w której konkurujesz z innymi graczami."
# campaign_old_multiplayer: "(Deprecated) Old Multiplayer Arenas"
# campaign_old_multiplayer_description: "Relics of a more civilized age. No simulations are run for these older, hero-less multiplayer arenas."
campaign_old_multiplayer: "(Nie używane) Stare areny multiplayer"
campaign_old_multiplayer_description: "Relikt bardziej cywilizowanej epoki. Nie są już prowadzone żadne symulacje dla tych starych aren."
share_progress_modal:
blurb: "Robisz coraz to większe postępy! Pokaż swoim rodzicom jak wiele nauczyłeś się z CodeCombat."
@ -99,8 +99,8 @@ module.exports = nativeDescription: "polski", englishDescription: "Polish", tran
authenticate_gplus: "Autoryzuj G+"
load_profile: "Wczytaj Profil G+"
finishing: "Kończenie"
sign_in_with_facebook: "Saloguj się używając Facebooka"
sign_in_with_gplus: "Zaloguj się używając G+"
sign_in_with_facebook: "Logowanie z Facebookiem"
sign_in_with_gplus: "Logowanie z Google+"
signup_switch: "Chcesz stworzyć konto?"
signup:
@ -194,7 +194,7 @@ module.exports = nativeDescription: "polski", englishDescription: "Polish", tran
player: "Gracz"
player_level: "Poziom" # Like player level 5, not like level: Dungeons of Kithgard
warrior: "Wojownik"
# ranger: "Ranger"
ranger: "Łucznik"
wizard: "Czarodziej"
units:
@ -247,13 +247,13 @@ module.exports = nativeDescription: "polski", englishDescription: "Polish", tran
victory_saving_progress: "Zapisywanie postępów"
victory_go_home: "Powrót do strony głównej"
victory_review: "Powiedz nam coś więcej!"
# victory_review_placeholder: "How was the level?"
victory_review_placeholder: "Jak ci się podobał poziom?"
victory_hour_of_code_done: "Skończyłeś już?"
victory_hour_of_code_done_yes: "Tak, skończyłem moją Godzinę Kodu."
victory_experience_gained: "Doświadczenie zdobyte"
victory_gems_gained: "Klejnoty zdobyte"
victory_new_item: "Nowy przedmiot"
# victory_viking_code_school: "Holy smokes, that was a hard level you just beat! If you aren't already a software developer, you should be. You just got fast-tracked for acceptance with Viking Code School, where you can take your skills to the next level and become a professional web developer in 14 weeks."
victory_viking_code_school: "O jejku, trudny był ten poziom, co? Jeśli jeszcze nie jesteś twórcą oprogramowania, możesz nim już zostać. Złóż swoje podanie o przyjęcie do Viking Code School, a z ich pomocą w zostaniesz na pewno w pełni profesjonalnym programistą."
victory_become_a_viking: "Zostań wikingiem"
guide_title: "Przewodnik"
tome_minion_spells: "Czary twojego podopiecznego" # Only in old-style levels.
@ -263,14 +263,14 @@ module.exports = nativeDescription: "polski", englishDescription: "Polish", tran
tome_cast_button_running: "Uruchomiono"
tome_cast_button_ran: "Uruchomiono"
tome_submit_button: "Prześlij"
# 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 methods).
tome_reload_method: "Wczytaj oryginalny kod dla tej metody" # Title text for individual method reload button.
tome_select_method: "Wybierz metode"
tome_see_all_methods: "Zobacz wszystkie metody możliwe do edycji" # Title text for method list selector (shown when there are multiple programmable methods).
tome_select_a_thang: "Wybierz kogoś do "
tome_available_spells: "Dostępne czary"
tome_your_skills: "Twoje umiejętności"
tome_help: "Pomoc"
# tome_current_method: "Current Method"
tome_current_method: "Obecna Metoda"
hud_continue_short: "Kontynuuj"
code_saved: "Kod zapisano"
skip_tutorial: "Pomiń (esc)"
@ -284,8 +284,8 @@ module.exports = nativeDescription: "polski", englishDescription: "Polish", tran
time_goto: "Idź do:"
non_user_code_problem_title: "Błąd podczas ładowania poziomu"
infinite_loop_title: "Wykryto niekończącą się pętlę"
# infinite_loop_description: "The initial code to build the world never finished running. It's probably either really slow or has an infinite loop. Or there might be a bug. You can either try running this code again or reset the code to the default state. If that doesn't fix it, please let us know."
# check_dev_console: "You can also open the developer console to see what might be going wrong."
infinite_loop_description: "Kod źródłowy, który miał stworzył ten świat nigdy nie przestał działać. Albo działa bardzo wolno, albo ma w sobie niekończącą sie pętlę. Albo też gdzieś jest błąd systemu. Możesz spróbować uruchomić go jeszcze raz, albo przywrócić domyślny kod. Jeśli nic nie pomoże daj nam o tym znać."
check_dev_console: "Możesz też otworzyć konsolę deweloperska i sprawdzić w czym tkwi problem."
check_dev_console_link: "(instrukcje)"
infinite_loop_try_again: "Próbuj ponownie"
infinite_loop_reset_level: "Resetuj poziom"
@ -294,7 +294,7 @@ module.exports = nativeDescription: "polski", englishDescription: "Polish", tran
tip_scrub_shortcut: "Ctrl+[ i Ctrl+] przesuwają czas." # {change}
tip_guide_exists: "Klikając Przewodnik u góry strony uzyskasz przydatne informacje."
tip_open_source: "CodeCombat ma w 100% otwarty kod!"
# tip_tell_friends: "Enjoying CodeCombat? Tell your friends about us!"
tip_tell_friends: "Podoba ci się CodeCombat? Opowiedz o nas swoim znajomym!"
tip_beta_launch: "CodeCombat uruchomił fazę beta w październiku 2013."
tip_think_solution: "Myśl nad rozwiązaniem, nie problemem."
tip_theory_practice: "W teorii nie ma różnicy między teorią a praktyką. W praktyce jednak, jest. - Yogi Berra"
@ -305,7 +305,7 @@ module.exports = nativeDescription: "polski", englishDescription: "Polish", tran
tip_morale_improves: "Ładowanie będzie kontynuowane gdy wzrośnie morale."
tip_all_species: "Wierzymy w równe szanse nauki programowania dla wszystkich gatunków."
tip_reticulating: "Siatkowanie kolców."
# tip_harry: "Yer a Wizard, "
tip_harry: "Jesteś czarodziejem "
tip_great_responsibility: "Z wielką mocą programowania wiąże się wielka odpowiedzialność debugowania."
tip_munchkin: "Jeśli nie będziesz jadł warzyw, Munchkin przyjdzie po Ciebie w nocy."
tip_binary: "Jest tylko 10 typów ludzi na świecie: Ci którzy rozumieją kod binarny i ci którzy nie."
@ -317,7 +317,7 @@ module.exports = nativeDescription: "polski", englishDescription: "Polish", tran
tip_talk_is_cheap: "Gadać jest łatwo. Pokażcie mi kod. - Linus Torvalds"
tip_first_language: "Najbardziej zgubną rzeczą jakiej możesz się nauczyć jest twój pierwszy język programowania. - Alan Kay"
tip_hardware_problem: "P: Ilu programistów potrzeba by wymienić żarówkę? O: Żadnego,to problem sprzętowy."
# tip_hofstadters_law: "Hofstadter's Law: It always takes longer than you expect, even when you take into account Hofstadter's Law."
tip_hofstadters_law: "Prawo Hofstadtera: Każdy projekt zabiera więcej czasu, niż planujesz, nawet jeśli przy planowaniu uwzględnisz prawo Hofstadtera."
# tip_premature_optimization: "Premature optimization is the root of all evil. - Donald Knuth"
# tip_brute_force: "When in doubt, use brute force. - Ken Thompson"
# tip_extrapolation: "There are only two kinds of people: those that can extrapolate from incomplete data..."
@ -326,7 +326,7 @@ module.exports = nativeDescription: "polski", englishDescription: "Polish", tran
# tip_no_code: "No code is faster than no code."
# tip_code_never_lies: "Code never lies, comments sometimes do. — Ron Jeffries"
# tip_reusable_software: "Before software can be reusable it first has to be usable."
# tip_optimization_operator: "Every language has an optimization operator. In most languages that operator is //"
tip_optimization_operator: "Każdy język programowania ma operator optymalizujący. W większości z nich tym operatorem jest //"
# tip_lines_of_code: "Measuring programming progress by lines of code is like measuring aircraft building progress by weight. — Bill Gates"
# tip_source_code: "I want to change the world but they would not give me the source code."
# tip_javascript_java: "Java is to JavaScript what Car is to Carpet. - Chris Heilmann"
@ -384,37 +384,37 @@ module.exports = nativeDescription: "polski", englishDescription: "Polish", tran
equip: "Załóż"
unequip: "Zdejmij"
# buy_gems:
# few_gems: "A few gems"
# pile_gems: "Pile of gems"
# chest_gems: "Chest of gems"
# purchasing: "Purchasing..."
# declined: "Your card was declined"
# retrying: "Server error, retrying."
# prompt_title: "Not Enough Gems"
# prompt_body: "Do you want to get more?"
# prompt_button: "Enter Shop"
# recovered: "Previous gems purchase recovered. Please refresh the page."
# price: "x3500 / mo"
buy_gems:
few_gems: "Kilka klejnotów"
pile_gems: "Stos klejnotów"
chest_gems: "Skrzynia z klejnotami"
purchasing: "Kupowanie..."
declined: "Karta została odrzucona"
retrying: "Błąd serwera, ponawiam."
prompt_title: "Za mało klejnotów"
prompt_body: "Chcesz zdobyć więcej?"
prompt_button: "Wejdź do sklepu"
recovered: "Przywrócono poprzednie zakupy. Prosze odświeżyć stronę."
price: "x3500 / mieś."
subscribe:
# comparison_blurb: "Sharpen your skills with a CodeCombat subscription!"
# feature1: "100+ basic levels across 4 worlds"
# feature2: "10 powerful <strong>new heroes</strong> with unique skills!"
# feature3: "70+ bonus levels"
# feature4: "<strong>3500 bonus gems</strong> every month!"
comparison_blurb: "Popraw swoje umiejętności z subskrypcją CodeCombat!"
feature1: "Ponad 100 poziomów w 4 różnych śwoatach"
feature2: "10 potężnych, <strong>nowych bohaterów</strong> z unikalnymi umiejętnościami!"
feature3: "Ponad 70 bonusowych poziomów"
feature4: "Dodatkowe <strong>3500 klejnotów</strong> co miesiąc!"
feature5: "Poradniki wideo"
# feature6: "Premium email support"
feature6: "Priorytetowe wsparcie przez e-mail"
feature7: "Prywatne <strong>Klany</strong>"
free: "Za darmo"
free: "Darmowo"
month: "miesięcznie"
# subscribe_title: "Subscribe"
# unsubscribe: "Unsubscribe"
# confirm_unsubscribe: "Confirm Unsubscribe"
# never_mind: "Never Mind, I Still Love You"
# thank_you_months_prefix: "Thank you for supporting us these last"
# thank_you_months_suffix: "months."
# thank_you: "Thank you for supporting CodeCombat."
subscribe_title: "Zapisz się"
unsubscribe: "Wypisz się"
confirm_unsubscribe: "Potwierdź wypisanie się"
never_mind: "Nie ważne, i tak cię kocham"
thank_you_months_prefix: ""
thank_you_months_suffix: " - przez tyle miesięcy nas wspierałeś. Dziękujemy!"
thank_you: "Dziękujemy za wsparcie CodeCombat."
# sorry_to_see_you_go: "Sorry to see you go! Please let us know what we could have done better."
# unsubscribe_feedback_placeholder: "O, what have we done?"
# parent_button: "Ask your parent"
@ -490,7 +490,7 @@ module.exports = nativeDescription: "polski", englishDescription: "Polish", tran
regeneration: "Regenaracja"
range: "Zasięg" # As in "attack or visual range"
blocks: "Blok" # As in "this shield blocks this much damage"
# backstab: "Backstab" # As in "this dagger does this much backstab damage"
backstab: "Cios" # As in "this dagger does this much backstab damage"
skills: "Umiejętności"
attack_1: "Zadaje"
# attack_2: "of listed"
@ -500,16 +500,16 @@ module.exports = nativeDescription: "polski", englishDescription: "Polish", tran
# health_3: "armor health."
speed_1: "Idzie do"
speed_2: "metrów na sekundę."
# available_for_purchase: "Available for Purchase" # Shows up when you have unlocked, but not purchased, a hero in the hero store
available_for_purchase: "Można wynająć" # Shows up when you have unlocked, but not purchased, a hero in the hero store
level_to_unlock: "Musisz odblokować poziom:" # Label for which level you have to beat to unlock a particular hero (click a locked hero in the store to see)
restricted_to_certain_heroes: "Tylko nieliczni bohaterowie mogą brać udział w tym poziomie."
skill_docs:
# writable: "writable" # Hover over "attack" in Your Skills while playing a level to see most of this
writable: "zapisywalny" # Hover over "attack" in Your Skills while playing a level to see most of this
read_only: "tylko do odczytu"
action_name: "nazwa"
# action_cooldown: "Takes"
# action_specific_cooldown: "Cooldown"
action_cooldown: "Zajmuje"
action_specific_cooldown: "Odpoczynek"
action_damage: "Obrażenia"
action_range: "Zasięg"
action_radius: "Promień"
@ -558,29 +558,29 @@ module.exports = nativeDescription: "polski", englishDescription: "Polish", tran
why_paragraph_2_italic_caps: "NIE MAMO, MUSZĘ DOKOŃCZYĆ TEN POZIOM!"
why_paragraph_2_suffix: "Dlatego właśnie CodeCombat to gra multiplayer, a nie kurs oparty na zgamifikowanych lekcjach. Nie przestaniemy, dopóki ty nie będziesz mógł przestać--tym razem jednak w pozytywnym sensie."
why_paragraph_3: "Jeśli planujesz uzależnić się od jakiejś gry, uzależnij się od tej i zostań jednym z czarodziejów czasu technologii."
# press_title: "Bloggers/Press"
# press_paragraph_1_prefix: "Want to write about us? Feel free to download and use all of the resources included in our"
# press_paragraph_1_link: "press packet"
# press_paragraph_1_suffix: ". All logos and images may be used without contacting us directly."
press_title: "Blogerzy/Prasa"
press_paragraph_1_prefix: "Chcesz o nas napisać? Śmiało możesz pobrać iu wykorzystać wszystkie informację dostępne w naszym"
press_paragraph_1_link: "pakiecie prasowym "
press_paragraph_1_suffix: ". Wszystkie loga i obrazki mogą zostać wykorzystane bez naszej wiedzy."
team: "Zespół"
george_title: "Współzałożyciel"
# george_blurb: "Businesser"
george_blurb: "Pan Prezes"
scott_title: "Współzałożyciel"
# scott_blurb: "Reasonable One"
scott_blurb: "Jedyny Rozsądny"
nick_title: "Współzałożyciel"
# nick_blurb: "Motivation Guru"
nick_blurb: "Guru Motywacji"
michael_title: "Programista"
# michael_blurb: "Sys Admin"
matt_title: "Programista" # {change}
michael_blurb: "Sys Admin"
matt_title: "Programista"
matt_blurb: "Rowerzysta"
# cat_title: "Chief Artisan"
# cat_blurb: "Airbender"
# josh_title: "Game Designer"
cat_title: "Główny Rzemieślnik"
cat_blurb: "Airbender"
josh_title: "Projektant Gier"
josh_blurb: "Podłoga to lawa"
jose_title: "Muzyka"
# jose_blurb: "Taking Off"
# retrostyle_title: "Illustration"
# retrostyle_blurb: "RetroStyle Games"
jose_blurb: "Odnosi Sukces"
retrostyle_title: "Ilustracje"
retrostyle_blurb: "RetroStyle Games"
# teachers:
# title: "CodeCombat: Info for Teachers"
@ -679,11 +679,11 @@ module.exports = nativeDescription: "polski", englishDescription: "Polish", tran
forum_suffix: "."
faq_prefix: "Jest też"
faq: "FAQ"
# subscribe_prefix: "If you need help figuring out a level, please"
# subscribe: "buy a CodeCombat subscription"
# subscribe_suffix: "and we'll be happy to help you with your code."
# subscriber_support: "Since you're a CodeCombat subscriber, your email will get our priority support."
# screenshot_included: "Screenshot included."
subscribe_prefix: "Jeśli masz jakiś problem z rozwiązaniem poziomu,"
subscribe: "wykup subskrypcję CodeCombat,"
subscribe_suffix: "a my z radością ci pomożemy."
subscriber_support: "Jako, że będziesz subskrybentem CodeCombat, twoje e-maile będą miały najwyższy priorytet."
screenshot_included: "Dołączymy zrzuty ekranu."
where_reply: "Gdzie mamy odpisać?"
send: "Wyślij wiadomość"
contact_candidate: "Kontakt z kandydatem" # Deprecated
@ -700,7 +700,7 @@ module.exports = nativeDescription: "polski", englishDescription: "Polish", tran
wrong_password: "Błędne zdjęcie"
upload_picture: "Wgraj zdjęcie"
delete_this_account: "Usuń to konto całkowicie"
# god_mode: "God Mode"
god_mode: "TRYB BOGA"
password_tab: "Hasło"
emails_tab: "Powiadomienia"
admin: "Administrator"
@ -744,7 +744,7 @@ module.exports = nativeDescription: "polski", englishDescription: "Polish", tran
run_code: "Uruchom obecny kod."
run_real_time: "Uruchom \"na żywo\"."
continue_script: "Kontynuuj ostatni skrypt."
# skip_scripts: "Skip past all skippable scripts."
skip_scripts: "Pomiń wszystkie pomijalne skrypty."
toggle_playback: "Graj/pauzuj."
# scrub_playback: "Scrub back and forward through time."
# single_scrub_playback: "Scrub back and forward through time by a single frame."
@ -753,7 +753,7 @@ module.exports = nativeDescription: "polski", englishDescription: "Polish", tran
# toggle_grid: "Toggle grid overlay."
# toggle_pathfinding: "Toggle pathfinding overlay."
# beautify: "Beautify your code by standardizing its formatting."
# maximize_editor: "Maximize/minimize code editor."
maximize_editor: "Maksymalizuj/minimalizuj edytor kodu."
community:
main_title: "Społeczność CodeCombat"
@ -765,14 +765,14 @@ module.exports = nativeDescription: "polski", englishDescription: "Polish", tran
# article_editor_prefix: "See a mistake in some of our docs? Want to make some instructions for your own creations? Check out the"
# article_editor_suffix: "and help CodeCombat players get the most out of their playtime."
find_us: "Znajdź nas na tych stronach"
# social_github: "Check out all our code on GitHub"
# social_blog: "Read the CodeCombat blog on Sett"
social_github: "Przejrzyj cały nasz kod na platformie GitHub"
social_blog: "Przeczytaj blog CodeCombat na Sett"
social_discource: "Dołącz do dyskusji na naszym forum"
social_facebook: "Polub CodeCombat na Facebooku"
social_twitter: "Obserwuj CodeCombat na Twitterze"
social_gplus: "Dołącz do CodeCombat na Google+"
# social_hipchat: "Chat with us in the public CodeCombat HipChat room"
# contribute_to_the_project: "Contribute to the project"
social_hipchat: "Pogadaj z nami na pblicznym czacie HipChat"
contribute_to_the_project: "Zostań współtwórcą CodeCombat"
clans:
clan: "Klan"
@ -807,14 +807,14 @@ module.exports = nativeDescription: "polski", englishDescription: "Polish", tran
not_started_1: "nierozpoczęty"
started_1: "rozpoczęty"
complete_1: "ukończony"
# exp_levels: "Expand levels"
exp_levels: "Rozwiń poziomy"
rem_hero: "Usuń bohatera"
status: "Status"
# complete_2: "Complete"
# started_2: "Started"
# not_started_2: "Not Started"
# view_solution: "Click to view solution."
# latest_achievement: "Latest Achievement"
complete_2: "Ukończony"
started_2: "Rozpoczęto"
not_started_2: "Nie rozpoczęto"
view_solution: "Kliknij, aby obejrzeć rozwiązanie."
latest_achievement: "Ostatnie osiągnięcia"
playtime: "Czas gyr"
last_played: "Ostatnio grany"
@ -853,19 +853,19 @@ module.exports = nativeDescription: "polski", englishDescription: "Polish", tran
indoor: "Wnętrze"
desert: "Pustynia"
grassy: "Trawa"
# mountain: "Mountain"
# glacier: "Glacier"
mountain: "Góry"
glacier: "Lodowiec"
small: "Mały"
large: "Duży"
# fork_title: "Fork New Version"
# fork_creating: "Creating Fork..."
# generate_terrain: "Generate Terrain"
fork_title: "Forkuj nowa wersję"
fork_creating: "Tworzenie Forka..."
generate_terrain: "Generuj teren"
more: "Więcej"
# wiki: "Wiki"
# live_chat: "Live Chat"
# thang_main: "Main"
wiki: "Wiki"
live_chat: "Czat na żywo"
thang_main: "Główna"
# thang_spritesheets: "Spritesheets"
# thang_colors: "Colors"
thang_colors: "Kolory"
level_some_options: "Trochę opcji?"
level_tab_thangs: "Obiekty"
level_tab_scripts: "Skrypty"
@ -877,10 +877,10 @@ module.exports = nativeDescription: "polski", englishDescription: "Polish", tran
level_tab_thangs_all: "Wszystkie"
level_tab_thangs_conditions: "Warunki początkowe"
level_tab_thangs_add: "Dodaj obiekty"
# level_tab_thangs_search: "Search thangs"
# add_components: "Add Components"
# component_configs: "Component Configurations"
# config_thang: "Double click to configure a thang"
level_tab_thangs_search: "Przeszukaj obiekty"
add_components: "Dodaj komponenty"
component_configs: "Konfiguracja komponentów"
config_thang: "Kliknij dwukrotnie, aby skonfigurować obiekt"
delete: "Usuń"
duplicate: "Powiel"
stop_duplicate: "Przestań powielać"
@ -903,26 +903,26 @@ module.exports = nativeDescription: "polski", englishDescription: "Polish", tran
new_article_title: "Stwórz nowy artykuł"
new_thang_title: "Stwórz nowy typ obiektu"
new_level_title: "Stwórz nowy poziom"
# new_article_title_login: "Log In to Create a New Article"
# 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_article_title_login: "Zaloguj się, aby stworzyć nowy artykuł"
new_thang_title_login: "Zaloguj się, aby stworzyć nowy typ obiektu"
new_level_title_login: "Zaloguj się, aby stworzyć nowy poziom"
new_achievement_title: "Stwórz nowe osiągnięcie"
new_achievement_title_login: "Zaloguj się, aby stworzyć nowy osiągnięcie"
new_poll_title: "Stwórz nową ankietę"
new_poll_title_login: "Zaloguj się aby stworzyć nową ankietę"
article_search_title: "Przeszukaj artykuły"
thang_search_title: "Przeszukaj typy obiektów"
thang_search_title: "Przeszukaj obiekty"
level_search_title: "Przeszukaj poziomy"
achievement_search_title: "Szukaj osiągnięcia"
poll_search_title: "Szukaj ankiety"
# read_only_warning2: "Note: you can't save any edits here, because you're not logged in."
# no_achievements: "No achievements have been added for this level yet."
read_only_warning2: "Uwaga: nie możesz zapisać żadnych zmian, ponieważ nie jesteś zalogowany."
no_achievements: "Dla tego poziomu nie ma żadnych osiągnięć."
# achievement_query_misc: "Key achievement off of miscellanea"
# achievement_query_goals: "Key achievement off of level goals"
# level_completion: "Level Completion"
# pop_i18n: "Populate I18N"
level_completion: "Ukończenie poziomu"
pop_i18n: "Uzupełnij I18N"
tasks: "Zadania"
# clear_storage: "Clear your local changes"
clear_storage: "Usuń swoje lokalne zmiany"
# add_system_title: "Add Systems to Level"
done_adding: "Zakończono dodawanie"
@ -937,7 +937,7 @@ module.exports = nativeDescription: "polski", englishDescription: "Polish", tran
page_title: "Współpraca"
# intro_blurb: "CodeCombat is 100% open source! Hundreds of dedicated players have helped us build the game into what it is today. Join us and write the next chapter in CodeCombat's quest to teach the world to code!"
alert_account_message_intro: "Hej tam!"
# alert_account_message: "To subscribe for class emails, you'll need to be logged in first."
alert_account_message: "Musisz się najpierw zalogować, jeśli chcesz zapisać się na klasowe e-maile."
archmage_introduction: "Jedną z najlepszych rzeczy w tworzeniu gier jest to, że syntetyzują one tak wiele różnych spraw. Grafika, dźwięk, łączność w czasie rzeczywistym, social networking i oczywiście wiele innych, bardziej popularnych, aspektów programowania, od niskopoziomowego zarządzania bazami danych i administracji serwerem do interfejsu użytkownika i jego tworzenia. Jest wiele do zrobienia i jeśli jesteś doświadczonym programistą z zacięciem, by zajrzeć do sedna CodeCombat, ta klasa może być dla ciebie. Bylibyśmy niezmiernie szczęśliwi mając twoją pomoc przy budowaniu najlepszej programistycznej gry wszech czasów."
class_attributes: "Atrybuty klasowe"
archmage_attribute_1_pref: "Znajomość "
@ -1039,14 +1039,14 @@ module.exports = nativeDescription: "polski", englishDescription: "Polish", tran
tutorial_play_first: "Rozegraj najpierw samouczek."
simple_ai: "Proste AI"
warmup: "Rozgrzewka"
# friends_playing: "Friends Playing"
friends_playing: "Przyjaciele w grze"
log_in_for_friends: "Zaloguj się by grać ze swoimi znajomymi!"
# social_connect_blurb: "Connect and play against your friends!"
# invite_friends_to_battle: "Invite your friends to join you in battle!"
# fight: "Fight!"
social_connect_blurb: "Połącz konta i rywalizuj z przyjaciółmi!"
invite_friends_to_battle: "Zaproś przyjaciół do wspólnej walki!"
fight: "Walcz!"
watch_victory: "Obejrzyj swoje zwycięstwo"
defeat_the: "Pokonaj"
# tournament_started: ", started"
tournament_started: ", rozpoczęto"
# tournament_ends: "Tournament ends"
# tournament_ended: "Tournament ended"
# tournament_rules: "Tournament Rules"
@ -1077,65 +1077,65 @@ module.exports = nativeDescription: "polski", englishDescription: "Polish", tran
last_earned: "Ostatnio zdobyty"
amount_achieved: "Ilość"
achievement: "Osiągnięcie"
# category_contributor: "Contributor"
# category_ladder: "Ladder"
category_contributor: "Współtwórca"
category_ladder: "Drabinka"
category_level: "Poziom"
# category_miscellaneous: "Miscellaneous"
category_miscellaneous: "Różne"
category_levels: "Poziomy"
# category_undefined: "Uncategorized"
category_undefined: "Poza kategorią"
# current_xp_prefix: ""
# current_xp_postfix: " in total"
# new_xp_prefix: ""
# new_xp_postfix: " earned"
# left_xp_prefix: ""
# left_xp_infix: " until level "
# left_xp_postfix: ""
new_xp_prefix: "zdobyto "
new_xp_postfix: ""
left_xp_prefix: ""
left_xp_infix: " brakuje do poziomu "
left_xp_postfix: ""
# account:
account:
# recently_played: "Recently Played"
# no_recent_games: "No games played during the past two weeks."
# payments: "Payments"
# purchased: "Purchased"
# subscription: "Subscription"
# invoices: "Invoices"
payments: "Płatności"
purchased: "Zakupiono"
subscription: "Subskrypcje"
invoices: "Faktury"
# service_apple: "Apple"
# service_web: "Web"
# paid_on: "Paid On"
# service: "Service"
# price: "Price"
# gems: "Gems"
# active: "Active"
# subscribed: "Subscribed"
# unsubscribed: "Unsubscribed"
# active_until: "Active Until"
# cost: "Cost"
# next_payment: "Next Payment"
# card: "Card"
price: "Cena"
gems: "Klejnoty"
active: "Aktywna"
subscribed: "Subskrybujesz"
unsubscribed: "Anulowano"
active_until: "Aktywna do"
cost: "Koszt"
next_payment: "Następna płatność"
card: "Karta"
# status_unsubscribed_active: "You're not subscribed and won't be billed, but your account is still active for now."
# status_unsubscribed: "Get access to new levels, heroes, items, and bonus gems with a CodeCombat subscription!"
# account_invoices:
# amount: "Amount in US dollars"
# declined: "Your card was declined"
# invalid_amount: "Please enter a US dollar amount."
# not_logged_in: "Log in or create an account to access invoices."
# pay: "Pay Invoice"
# purchasing: "Purchasing..."
# retrying: "Server error, retrying."
# success: "Successfully paid. Thanks!"
account_invoices:
amount: "Kwota w dolarach"
declined: "Karta została odrzucona"
invalid_amount: "Proszę podać kwotę w dolarach."
not_logged_in: "Zaloguj się, albo stwórz konto, żeby przejrzeć faktury."
pay: "Opłać fakturę"
purchasing: "Kupowanie..."
retrying: "Błąd serwera, ponawiam."
success: "Zapłacono. Dziękujemy!"
# loading_error:
# could_not_load: "Error loading from server"
# connection_failure: "Connection failed."
# unauthorized: "You need to be signed in. Do you have cookies disabled?"
# forbidden: "You do not have the permissions."
# not_found: "Not found."
# not_allowed: "Method not allowed."
# timeout: "Server timeout."
# conflict: "Resource conflict."
# bad_input: "Bad input."
# server_error: "Server error."
# unknown: "Unknown error."
loading_error:
could_not_load: "Błąd podczas ładowania danych z serwera"
connection_failure: "Błąd połączenia."
unauthorized: "Musisz być zalogowany. Masz może wyłączone ciasteczka?"
forbidden: "Brak autoryzacji."
not_found: "Nie znaleziono."
not_allowed: "Metoda nie dozwolona."
timeout: "Serwer nie odpowiada."
conflict: "Błąd zasobów."
bad_input: "Złe dane wejściowe."
server_error: "Błąd serwera."
unknown: "Nieznany błąd."
resources:
sessions: "Sesje"
@ -1158,17 +1158,17 @@ module.exports = nativeDescription: "polski", englishDescription: "Polish", tran
# systems: "Systems"
# component: "Component"
# components: "Components"
# thang: "Thang"
# thangs: "Thangs"
thang: "Obiekt"
thangs: "Obiekty"
# level_session: "Your Session"
# opponent_session: "Opponent Session"
article: "Artykuł"
# user_names: "User Names"
# thang_names: "Thang Names"
# files: "Files"
user_names: "Nazwy użytkowników"
thang_names: "Nazwy obiektów"
files: "Pliki"
top_simulators: "Najlepsi symulatorzy"
# source_document: "Source Document"
# document: "Document"
source_document: "Dokument źródłowy"
document: "Dokument"
# sprite_sheet: "Sprite Sheet"
employers: "Pracodawcy"
candidates: "Kandydaci"
@ -1181,9 +1181,9 @@ module.exports = nativeDescription: "polski", englishDescription: "Polish", tran
heroes: "Bohaterowie"
achievement: "Osiągnięcie"
# clas: "CLAs"
# play_counts: "Play Counts"
play_counts: "Liczba gier"
feedback: "Wsparcie"
# payment_info: "Payment Info"
payment_info: "Info o płatnościach"
campaigns: "Kampanie"
poll: "Ankieta"
user_polls_record: "Historia oddanych głosów"
@ -1196,14 +1196,14 @@ module.exports = nativeDescription: "polski", englishDescription: "Polish", tran
arrays: "Tablice"
basic_syntax: "Podstawy składni"
boolean_logic: "Algebra Boole'a"
# break_statements: "Break Statements"
break_statements: "Klauzula 'break'"
classes: "Klasy"
for_loops: "Pętle for"
for_loops: "Pętle 'for'"
functions: "Funkcje"
if_statements: "Wyrażenia warunkowe"
# input_handling: "Input Handling"
# math_operations: "Math Operations"
# object_literals: "Object Literals"
input_handling: "Zarządzanie wejściami"
math_operations: "Operacje matematyczne"
object_literals: "Operacje na obiektach"
strings: "Ciągi znaków"
variables: "Zmienne"
vectors: "Wektory"
@ -1213,9 +1213,9 @@ module.exports = nativeDescription: "polski", englishDescription: "Polish", tran
delta:
added: "Dodano"
modified: "Zmieniono"
# not_modified: "Not Modified"
not_modified: "Nie zmianiono"
deleted: "Usunięto"
# moved_index: "Moved Index"
moved_index: "Przesunięto Index"
# text_diff: "Text Diff"
# merge_conflict_with: "MERGE CONFLICT WITH"
no_changes: "Brak zmian"
@ -1318,14 +1318,14 @@ module.exports = nativeDescription: "polski", englishDescription: "Polish", tran
# not_featured: "Not Featured"
# looking_for: "Looking for:"
# last_updated: "Last updated:"
# contact: "Contact"
contact: "Kontakt"
# active: "Looking for interview offers now"
# inactive: "Not looking for offers right now"
# complete: "complete"
# next: "Next"
# next_city: "city?"
# next_country: "pick your country."
# next_name: "name?"
next: "Nastepny"
next_city: "miasto?"
next_country: "wybierz kraj."
next_name: "imię?"
# next_short_description: "write a short description."
# next_long_description: "describe your desired position."
# next_skills: "list at least five skills."

7
app/models/Course.coffee Normal file
View file

@ -0,0 +1,7 @@
CocoModel = require './CocoModel'
schema = require 'schemas/models/course.schema'
module.exports = class Course extends CocoModel
@className: 'Course'
@schema: schema
urlRoot: '/db/course'

View file

@ -0,0 +1,7 @@
CocoModel = require './CocoModel'
schema = require 'schemas/models/course_instance.schema'
module.exports = class CourseInstance extends CocoModel
@className: 'CourseInstance'
@schema: schema
urlRoot: '/db/course_instance'

View file

@ -14,7 +14,7 @@ module.exports = class ThangType extends CocoModel
knight: '529ffbf1cf1818f2be000001'
samurai: '53e12be0d042f23505c3023b'
raider: '55527eb0b8abf4ba1fe9a107'
goliath: ''
goliath: '55e1a6e876cb0948c96af9f8'
guardian: ''
ninja: '52fc0ed77e01835453bd8f6c'
'forest-archer': '5466d4f2417c8b48a9811e87'
@ -384,7 +384,7 @@ module.exports = class ThangType extends CocoModel
absolute: rawNumbers.speed
description: "#{$.i18n.t 'choose_hero.speed_1'} #{rawNumbers.speed} #{$.i18n.t 'choose_hero.speed_2'}"
stats.skills = (_.string.titleize(_.string.humanize(skill)) for skill in programmableConfig.programmableProperties when skill isnt 'say')
stats.skills = (_.string.titleize(_.string.humanize(skill)) for skill in programmableConfig.programmableProperties when skill isnt 'say' and not /(Range|Pos|Radius|Damage)$/.test(skill))
stats

View file

@ -0,0 +1,14 @@
c = require './../schemas'
CourseSchema = c.object {title: 'Course', required: ['name']}
c.extendNamedProperties CourseSchema # name first
_.extend CourseSchema.properties,
campaignID: c.objectId()
concepts: c.array {title: 'Programming Concepts', uniqueItems: true}, c.concept
description: {type: 'string'}
screenshot: c.url {title: 'URL', description: 'Link to course screenshot.'}
c.extendBasicProperties CourseSchema, 'Course'
module.exports = CourseSchema

View file

@ -0,0 +1,14 @@
c = require './../schemas'
CourseInstanceSchema = c.object {title: 'Course Instance'}
c.extendNamedProperties CourseInstanceSchema # name first
_.extend CourseInstanceSchema.properties,
description: {type: 'string'}
members: c.array {title: 'Members'}, c.objectId()
ownerID: c.objectId()
prepaidID: c.objectId()
c.extendBasicProperties CourseInstanceSchema, 'CourseInstance'
module.exports = CourseInstanceSchema

View file

@ -0,0 +1,26 @@
extends /templates/base
block content
//- DO NOT localize / i18n
div(style='border-bottom: 1px solid black')
span *UNDER CONSTRUCTION, please send feedback to
a.spl(href='mailto:team@codecombat.com') team@codecombat.com
h1(style='text-align: center;') Courses
.container-fluid
.row(style='font-size: 20px;')
.col-md-3
.col-md-3 Name
.col-md-3 Description
.col-md-3 Concepts
each course in courses
.row(style='border-top: 1px solid gray; padding: 10px;')
.col-md-3
img(src="#{course.get('screenshot')}", style="width: 100%;")
.col-md-3
p= course.get('name')
a(href="/editor/campaign/#{course.get('campaignID')}") Campaign (levels)
.col-md-3= course.get('description')
.col-md-3= course.get('concepts').join(' ')

View file

@ -0,0 +1,18 @@
RootView = require 'views/core/RootView'
template = require 'templates/courses/courses'
CocoCollection = require 'collections/CocoCollection'
Course = require 'models/Course'
module.exports = class CoursesView extends RootView
id: 'courses-view'
template: template
constructor: (options) ->
super options
@courses = new CocoCollection([], { url: "/db/course", model: Course})
@supermodel.loadCollection(@courses, 'courses')
getRenderData: ->
context = super()
context.courses = @courses.models ? []
context

View file

@ -278,6 +278,9 @@ module.exports = class PlayLevelView extends RootView
if e.session.get('creator') is '532dbc73a622924444b68ed9' # Wizard Dude gets his own avatar
sorcerer = '53e126a4e06b897606d38bef'
e.session.set 'heroConfig', {"thangType":sorcerer,"inventory":{"misc-0":"53e2396a53457600003e3f0f","programming-book":"546e266e9df4a17d0d449be5","minion":"54eb5dbc49fa2d5c905ddf56","feet":"53e214f153457600003e3eab","right-hand":"54eab7f52b7506e891ca7202","left-hand":"5463758f3839c6e02811d30f","wrists":"54693797a2b1f53ce79443e9","gloves":"5469425ca2b1f53ce7944421","torso":"546d4a549df4a17d0d449a97","neck":"54693274a2b1f53ce79443c9","eyes":"546941fda2b1f53ce794441d","head":"546d4ca19df4a17d0d449abf"}}
else if e.level.get('slug') is 'ace-of-coders'
goliath = '55e1a6e876cb0948c96af9f8'
e.session.set 'heroConfig', {"thangType":goliath,"inventory":{"eyes":"53eb99f41a100989a40ce46e","neck":"54693274a2b1f53ce79443c9","wrists":"54693797a2b1f53ce79443e9","feet":"546d4d8e9df4a17d0d449acd","minion":"54eb5bf649fa2d5c905ddf4a","programming-book":"557871261ff17fef5abee3ee"}}
else if e.level.get('type', true) in ['hero', 'hero-ladder', 'hero-coop'] and not _.size e.session.get('heroConfig')?.inventory ? {}
@setupManager?.destroy()
@setupManager = new LevelSetupManager({supermodel: @supermodel, level: @level, levelID: @levelID, parent: @, session: @session})

View file

@ -42,7 +42,7 @@ module.exports = class GameMenuModal extends ModalView
'guide': 'list'
'save-load': 'floppy-disk'
'multiplayer': 'globe'
context.showsChooseHero = (@level?.get('type') not in ['course', 'course-ladder']) and (@options.levelID not in ['zero-sum'])
context.showsChooseHero = (@level?.get('type') not in ['course', 'course-ladder']) and (@options.levelID not in ['zero-sum', 'ace-of-coders'])
context
afterRender: ->

View file

@ -174,12 +174,13 @@ module.exports = class PlayHeroesModal extends ModalView
#- maybe put some more normalization here?
m = multiplier
m *= 0.75 if fullHero.get('slug') in ['knight', 'samurai', 'librarian', 'sorcerer', 'necromancer'] # These heroes are larger for some reason. Shrink 'em.
m *= 0.4 if fullHero.get('slug') is 'goliath' # Just too big!
layer.container.scaleX = layer.container.scaleY = m
layer.container.children[0].x = 160/m
layer.container.children[0].y = 250/m
if fullHero.get('slug') in ['forest-archer', 'librarian', 'sorcerer', 'potion-master', 'necromancer']
layer.container.children[0].y -= 3
if fullHero.get('slug') in ['librarian', 'sorcerer', 'potion-master', 'necromancer']
if fullHero.get('slug') in ['librarian', 'sorcerer', 'potion-master', 'necromancer', 'goliath']
layer.container.children[0].x -= 3
stage = new createjs.SpriteStage(canvas[0])

View file

@ -0,0 +1,27 @@
// Update course data
// Usage:
// mongo <address>:<port>/<database> <script file> -u <username> -p <password>
// NOTE: uses name as unique identifier, so changing the name will insert a new course
var documents =
[
{
name: "Introduction to Computer Science",
slug: "introduction-to-computer-science",
campaignID: ObjectId("55b29efd1cd6abe8ce07db0d"),
concepts: ['basic_syntax', 'arguments', 'while_loops', 'strings', 'variables'],
description: "Learn basic syntax, while loops, and the CodeCombat environment.",
screenshot: "/images/pages/courses/101_info.png"
}
];
for (var i = 0; i < documents.length; i++) {
var doc = documents[i];
db.courses.update({name: doc.name}, doc, {upsert: true});
}
function log(str) {
print(new Date().toISOString() + " " + str);
}

View file

@ -8,6 +8,8 @@ module.exports.handlers =
'article': 'articles/article_handler'
'campaign': 'campaigns/campaign_handler'
'clan': 'clans/clan_handler'
'course': 'courses/course_handler'
'course_instance': 'courses/course_instance_handler'
'level': 'levels/level_handler'
'level_component': 'levels/components/level_component_handler'
'level_feedback': 'levels/feedbacks/level_feedback_handler'

View file

@ -0,0 +1,16 @@
mongoose = require 'mongoose'
config = require '../../server_config'
plugins = require '../plugins/plugins'
jsonSchema = require '../../app/schemas/models/course.schema'
CourseSchema = new mongoose.Schema {}, {strict: false, minimize: false, read:config.mongo.readpref}
CourseSchema.plugin plugins.NamedPlugin
CourseSchema.plugin plugins.SearchablePlugin, {searchable: ['name', 'description']}
CourseSchema.statics.privateProperties = []
CourseSchema.statics.editableProperties = []
CourseSchema.statics.jsonSchema = jsonSchema
module.exports = Course = mongoose.model 'course', CourseSchema, 'courses'

View file

@ -0,0 +1,20 @@
mongoose = require 'mongoose'
config = require '../../server_config'
plugins = require '../plugins/plugins'
jsonSchema = require '../../app/schemas/models/course_instance.schema'
CourseInstanceSchema = new mongoose.Schema {}, {strict: false, minimize: false, read:config.mongo.readpref}
CourseInstanceSchema.plugin plugins.NamedPlugin
CourseInstanceSchema.plugin plugins.SearchablePlugin, {searchable: ['name', 'description']}
CourseInstanceSchema.statics.privateProperties = []
CourseInstanceSchema.statics.editableProperties = [
'description'
'members'
'name'
]
CourseInstanceSchema.statics.jsonSchema = jsonSchema
module.exports = CourseInstance = mongoose.model 'course.instance', CourseInstanceSchema, 'course.instances'

View file

@ -0,0 +1,13 @@
mongoose = require 'mongoose'
Handler = require '../commons/Handler'
Course = require './Course'
CourseHandler = class CourseHandler extends Handler
modelClass: Course
jsonSchema: require '../../app/schemas/models/course.schema'
allowedMethods: ['GET']
hasAccess: (req) ->
req.method in @allowedMethods or req.user?.isAdmin()
module.exports = new CourseHandler()

View file

@ -0,0 +1,13 @@
mongoose = require 'mongoose'
Handler = require '../commons/Handler'
CourseInstance = require './CourseInstance'
CourseInstanceHandler = class CourseInstanceHandler extends Handler
modelClass: CourseInstance
jsonSchema: require '../../app/schemas/models/course_instance.schema'
allowedMethods: ['GET', 'POST', 'PUT', 'DELETE']
hasAccess: (req) ->
req.method is 'GET' or req.user?.isAdmin()
module.exports = new CourseInstanceHandler()