mirror of
https://github.com/codeninjasllc/codecombat.git
synced 2025-03-14 07:00:01 -04:00
Merge branch 'master' into feature/jsondiffpatch
This commit is contained in:
commit
c395a3414e
29 changed files with 316 additions and 232 deletions
|
@ -104,7 +104,7 @@ module.exports = class LevelLoader extends CocoClass
|
|||
|
||||
onSupermodelLoadedOne: (e) ->
|
||||
@buildSpriteSheetsForThangType e.model if not @headless and e.model instanceof ThangType
|
||||
@update()
|
||||
@update() unless @destroyed
|
||||
|
||||
# Things to do when either the Session or Supermodel load
|
||||
|
||||
|
@ -160,7 +160,7 @@ module.exports = class LevelLoader extends CocoClass
|
|||
buildSpriteSheetsForThangType: (thangType) ->
|
||||
@grabThangTypeTeams() unless @thangTypeTeams
|
||||
for team in @thangTypeTeams[thangType.get('original')] ? [null]
|
||||
spriteOptions = {resolutionFactor: 4, async: true}
|
||||
spriteOptions = {resolutionFactor: 4, async: false}
|
||||
if thangType.get('kind') is 'Floor'
|
||||
spriteOptions.resolutionFactor = 2
|
||||
if team and color = @teamConfigs[team]?.color
|
||||
|
@ -174,10 +174,14 @@ module.exports = class LevelLoader extends CocoClass
|
|||
return unless building
|
||||
#console.log 'Building:', thangType.get('name'), options
|
||||
@spriteSheetsToBuild += 1
|
||||
thangType.once 'build-complete', =>
|
||||
onBuildComplete = =>
|
||||
return if @destroyed
|
||||
@spriteSheetsBuilt += 1
|
||||
@notifyProgress()
|
||||
if options.async
|
||||
thangType.once 'build-complete', onBuildComplete
|
||||
else
|
||||
onBuildComplete()
|
||||
|
||||
# World init
|
||||
|
||||
|
|
|
@ -455,7 +455,7 @@ module.exports = CocoSprite = class CocoSprite extends CocoClass
|
|||
allProps = allProps.concat (@thang.moreProgrammableProperties ? [])
|
||||
|
||||
for property in allProps
|
||||
if m = property.match /.*Range$/
|
||||
if m = property.match /.*(Range|Distance|Radius)$/
|
||||
if @thang[m[0]]? and @thang[m[0]] < 9001
|
||||
@ranges.push
|
||||
name: m[0]
|
||||
|
|
|
@ -54,7 +54,7 @@ module.exports = class Mark extends CocoClass
|
|||
if @name is 'bounds' then @buildBounds()
|
||||
else if @name is 'shadow' then @buildShadow()
|
||||
else if @name is 'debug' then @buildDebug()
|
||||
else if @name.match(/.+Range$/) then @buildRadius(@name)
|
||||
else if @name.match(/.+(Range|Distance|Radius)$/) then @buildRadius(@name)
|
||||
else if @thangType then @buildSprite()
|
||||
else console.error "Don't know how to build mark for", @name
|
||||
@mark?.mouseEnabled = false
|
||||
|
|
|
@ -293,6 +293,9 @@
|
|||
time_current: "Now:"
|
||||
time_total: "Max:"
|
||||
time_goto: "Go to:"
|
||||
infinite_loop_try_again: "Try Again"
|
||||
infinite_loop_reset_level: "Reset Level"
|
||||
infinite_loop_comment_out: "Comment Out My Code"
|
||||
|
||||
admin:
|
||||
av_title: "Admin Views"
|
||||
|
|
|
@ -3,7 +3,7 @@ module.exports = nativeDescription: "Nederlands (België)", englishDescription:
|
|||
loading: "Aan het laden..."
|
||||
saving: "Opslaan..."
|
||||
sending: "Verzenden..."
|
||||
# send: "Send"
|
||||
send: "Verzend"
|
||||
cancel: "Annuleren"
|
||||
save: "Opslagen"
|
||||
# publish: "Publish"
|
||||
|
@ -114,8 +114,8 @@ module.exports = nativeDescription: "Nederlands (België)", englishDescription:
|
|||
forum_page: "ons forum"
|
||||
forum_suffix: "."
|
||||
send: "Feedback Verzonden"
|
||||
# contact_candidate: "Contact Candidate"
|
||||
# recruitment_reminder: "Use this form to reach out to candidates you are interested in interviewing. Remember that CodeCombat charges 18% 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."
|
||||
contact_candidate: "Contacteer Kandidaat"
|
||||
recruitment_reminder: "Gebruik dit formulier om kandidaten te contacteren voor wie je een interesse hebt om te interviewen. Vergeet niet dat CodeCombat een honorarium vraagt van 18% op het eerste-jaarssalaris. Dit honorarium moet betaald worden als de kandidaat wordt aangenomen en kon tot na 90 dagen terugbetaald worden als deze ontslagen wordt in deze periode. Deeltijds-, contract- en thuiswerkers worden van dit honorarium vrijgesteld, alsook interims."
|
||||
|
||||
diplomat_suggestion:
|
||||
title: "Help CodeCombat vertalen!"
|
||||
|
@ -128,13 +128,13 @@ module.exports = nativeDescription: "Nederlands (België)", englishDescription:
|
|||
wizard_settings:
|
||||
title: "Tovenaar instellingen"
|
||||
customize_avatar: "Bewerk je avatar"
|
||||
# active: "Active"
|
||||
# color: "Color"
|
||||
# group: "Group"
|
||||
active: "Actief"
|
||||
color: "Kleur"
|
||||
group: "Groep"
|
||||
clothes: "Kleren"
|
||||
trim: "Trim"
|
||||
cloud: "Wolk"
|
||||
# team: "Team"
|
||||
team: "Team"
|
||||
spell: "Spreuk"
|
||||
boots: "Laarzen"
|
||||
hue: "Hue"
|
||||
|
@ -167,37 +167,37 @@ module.exports = nativeDescription: "Nederlands (België)", englishDescription:
|
|||
error_saving: "Fout Tijdens Het Opslaan"
|
||||
saved: "Aanpassingen Opgeslagen"
|
||||
password_mismatch: "Het wachtwoord komt niet overeen."
|
||||
# job_profile: "Job Profile"
|
||||
# job_profile_approved: "Your job profile has been approved by CodeCombat. Employers will be able to see it until you either mark it inactive or it has not been changed for four weeks."
|
||||
# job_profile_explanation: "Hi! Fill this out, and we will get in touch about finding you a software developer job."
|
||||
job_profile: "Job Profiel"
|
||||
job_profile_approved: "Jouw job profiel werd goedgekeurd door CodeCombat. Werkgevers zullen het kunnen bekijken totdat je het inactief zet of als er geen verandering in komt voor vier weken."
|
||||
job_profile_explanation: "Hey! Vul dit in en we zullen je contacteren om je een job als softwareontwikkelaar te helpen vinden."
|
||||
|
||||
account_profile:
|
||||
edit_settings: "Instellingen Aanpassen"
|
||||
profile_for_prefix: "Profiel voor "
|
||||
profile_for_suffix: ""
|
||||
# approved: "Approved"
|
||||
# not_approved: "Not Approved"
|
||||
# looking_for: "Looking for:"
|
||||
# last_updated: "Last updated:"
|
||||
# contact: "Contact"
|
||||
# work_experience: "Work Experience"
|
||||
# education: "Education"
|
||||
# our_notes: "Our Notes"
|
||||
# projects: "Projects"
|
||||
approved: "Goedgekeurd"
|
||||
not_approved: "Niet goedgekeurd"
|
||||
looking_for: "Zoekt naar:"
|
||||
last_updated: "Laatst aangepast:"
|
||||
contact: "Contact"
|
||||
work_experience: "Werk ervaring"
|
||||
education: "Opleiding"
|
||||
our_notes: "Onze notities"
|
||||
projects: "Projecten"
|
||||
|
||||
# employers:
|
||||
# want_to_hire_our_players: "Want to hire expert CodeCombat players?"
|
||||
# contact_george: "Contact George to see our candidates"
|
||||
# candidates_count_prefix: "We currently have "
|
||||
# candidates_count_many: "many"
|
||||
# candidates_count_suffix: "highly skilled and vetted developers looking for work."
|
||||
# candidate_name: "Name"
|
||||
# candidate_location: "Location"
|
||||
# candidate_looking_for: "Looking For"
|
||||
# candidate_role: "Role"
|
||||
# candidate_top_skills: "Top Skills"
|
||||
# candidate_years_experience: "Yrs Exp"
|
||||
# candidate_last_updated: "Last Updated"
|
||||
employers:
|
||||
want_to_hire_our_players: "Wil je expert CodeCombat spelers aanwerven? "
|
||||
contact_george: "Contacteer George om onze kandidaten te zien"
|
||||
candidates_count_prefix: "Momenteel hebben we "
|
||||
candidates_count_many: "veel"
|
||||
candidates_count_suffix: "zeer getalenteerde en ervaren ontwikkelaars die werk zoeken."
|
||||
candidate_name: "Naam"
|
||||
candidate_location: "Locatie"
|
||||
candidate_looking_for: "Zoekt naar"
|
||||
candidate_role: "Rol"
|
||||
candidate_top_skills: "Beste vaardigheden"
|
||||
candidate_years_experience: "Jaren ervaring"
|
||||
candidate_last_updated: "Laatst aangepast"
|
||||
|
||||
play_level:
|
||||
level_load_error: "Level kon niet geladen worden: "
|
||||
|
@ -316,14 +316,14 @@ module.exports = nativeDescription: "Nederlands (België)", englishDescription:
|
|||
contact_us: "contacteer ons!"
|
||||
hipchat_prefix: "Je kan ons ook vinden in ons"
|
||||
hipchat_url: "(Engelstalig) HipChat kanaal."
|
||||
# back: "Back"
|
||||
back: "Terug"
|
||||
revert: "Keer wijziging terug"
|
||||
revert_models: "keer wijziging model terug"
|
||||
# fork_title: "Fork New Version"
|
||||
# fork_creating: "Creating Fork..."
|
||||
# more: "More"
|
||||
# wiki: "Wiki"
|
||||
# live_chat: "Live Chat"
|
||||
fork_title: "Kloon naar nieuwe versie"
|
||||
fork_creating: "Kloon aanmaken..."
|
||||
more: "Meer"
|
||||
wiki: "Wiki"
|
||||
live_chat: "Live Chat"
|
||||
level_some_options: "Enkele opties?"
|
||||
level_tab_thangs: "Elementen"
|
||||
level_tab_scripts: "Scripts"
|
||||
|
@ -331,11 +331,11 @@ module.exports = nativeDescription: "Nederlands (België)", englishDescription:
|
|||
level_tab_components: "Componenten"
|
||||
level_tab_systems: "Systemen"
|
||||
level_tab_thangs_title: "Huidige Elementen"
|
||||
# level_tab_thangs_all: "All"
|
||||
level_tab_thangs_all: "Alles"
|
||||
level_tab_thangs_conditions: "Start Condities"
|
||||
level_tab_thangs_add: "Voeg element toe"
|
||||
# delete: "Delete"
|
||||
# duplicate: "Duplicate"
|
||||
delete: "Verwijder"
|
||||
duplicate: "Dupliceer"
|
||||
level_settings_title: "Instellingen"
|
||||
level_component_tab_title: "Huidige Componenten"
|
||||
level_component_btn_new: "Maak een nieuwe component aan"
|
||||
|
@ -357,7 +357,7 @@ module.exports = nativeDescription: "Nederlands (België)", englishDescription:
|
|||
article_search_title: "Zoek Artikels Hier"
|
||||
thang_search_title: "Zoek Thang Types Hier"
|
||||
level_search_title: "Zoek Levels Hier"
|
||||
# signup_to_create: "Sign Up to Create a New Content"
|
||||
signup_to_create: "Registreer je om nieuwe content te maken"
|
||||
# read_only_warning2: "Note: you can't save any edits here, because you're not logged in."
|
||||
|
||||
article:
|
||||
|
@ -370,13 +370,13 @@ module.exports = nativeDescription: "Nederlands (België)", englishDescription:
|
|||
body: "Inhoud"
|
||||
version: "Versie"
|
||||
commit_msg: "Commit Bericht"
|
||||
# version_history: "Version History"
|
||||
version_history: "Versie geschiedenis"
|
||||
version_history_for: "Versie geschiedenis voor: "
|
||||
result: "Resultaat"
|
||||
results: "Resultaten"
|
||||
description: "Beschrijving"
|
||||
or: "of"
|
||||
# subject: "Subject"
|
||||
subject: "Onderwerp"
|
||||
email: "Email"
|
||||
password: "Wachtwoord"
|
||||
message: "Bericht"
|
||||
|
@ -662,6 +662,6 @@ module.exports = nativeDescription: "Nederlands (België)", englishDescription:
|
|||
gplus_friends: "G+ vrienden"
|
||||
gplus_friend_sessions: "Sessies van G+ vrienden"
|
||||
leaderboard: "Scorebord"
|
||||
# user_schema: "User Schema"
|
||||
# user_profile: "User Profile"
|
||||
user_schema: "Gebruikersschema"
|
||||
user_profile: "Gebruikersprofiel"
|
||||
# patches: "Patches"
|
||||
|
|
|
@ -3,7 +3,7 @@ module.exports = nativeDescription: "Nederlands (Nederland)", englishDescription
|
|||
loading: "Aan het laden..."
|
||||
saving: "Opslaan..."
|
||||
sending: "Verzenden..."
|
||||
# send: "Send"
|
||||
send: "Verzend"
|
||||
cancel: "Annuleren"
|
||||
save: "Opslagen"
|
||||
# publish: "Publish"
|
||||
|
@ -114,8 +114,8 @@ module.exports = nativeDescription: "Nederlands (Nederland)", englishDescription
|
|||
forum_page: "ons forum"
|
||||
forum_suffix: "."
|
||||
send: "Feedback Verzonden"
|
||||
# contact_candidate: "Contact Candidate"
|
||||
# recruitment_reminder: "Use this form to reach out to candidates you are interested in interviewing. Remember that CodeCombat charges 18% 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."
|
||||
contact_candidate: "Contacteer Kandidaat"
|
||||
recruitment_reminder: "Gebruik dit formulier om kandidaten te contacteren voor wie je een interesse hebt om te interviewen. Vergeet niet dat CodeCombat een honorarium vraagt van 18% op het eerste-jaarssalaris. Dit honorarium moet betaald worden als de kandidaat wordt aangenomen en kon tot na 90 dagen terugbetaald worden als deze ontslagen wordt in deze periode. Deeltijds-, contract- en thuiswerkers worden van dit honorarium vrijgesteld, alsook interims."
|
||||
|
||||
diplomat_suggestion:
|
||||
title: "Help CodeCombat vertalen!"
|
||||
|
@ -128,13 +128,13 @@ module.exports = nativeDescription: "Nederlands (Nederland)", englishDescription
|
|||
wizard_settings:
|
||||
title: "Tovenaar instellingen"
|
||||
customize_avatar: "Bewerk je avatar"
|
||||
# active: "Active"
|
||||
# color: "Color"
|
||||
# group: "Group"
|
||||
active: "Actief"
|
||||
color: "Kleur"
|
||||
group: "Groep"
|
||||
clothes: "Kleren"
|
||||
trim: "Trim"
|
||||
cloud: "Wolk"
|
||||
# team: "Team"
|
||||
team: "Team"
|
||||
spell: "Spreuk"
|
||||
boots: "Laarzen"
|
||||
hue: "Hue"
|
||||
|
@ -167,37 +167,37 @@ module.exports = nativeDescription: "Nederlands (Nederland)", englishDescription
|
|||
error_saving: "Fout Tijdens Het Opslaan"
|
||||
saved: "Aanpassingen Opgeslagen"
|
||||
password_mismatch: "Het wachtwoord komt niet overeen."
|
||||
# job_profile: "Job Profile"
|
||||
# job_profile_approved: "Your job profile has been approved by CodeCombat. Employers will be able to see it until you either mark it inactive or it has not been changed for four weeks."
|
||||
# job_profile_explanation: "Hi! Fill this out, and we will get in touch about finding you a software developer job."
|
||||
job_profile: "Job Profiel"
|
||||
job_profile_approved: "Jouw job profiel werd goedgekeurd door CodeCombat. Werkgevers zullen het kunnen bekijken totdat je het inactief zet of als er geen verandering in komt voor vier weken."
|
||||
job_profile_explanation: "Hey! Vul dit in en we zullen je contacteren om je een job als softwareontwikkelaar te helpen vinden."
|
||||
|
||||
account_profile:
|
||||
edit_settings: "Instellingen Aanpassen"
|
||||
profile_for_prefix: "Profiel voor "
|
||||
profile_for_suffix: ""
|
||||
# approved: "Approved"
|
||||
# not_approved: "Not Approved"
|
||||
# looking_for: "Looking for:"
|
||||
# last_updated: "Last updated:"
|
||||
# contact: "Contact"
|
||||
# work_experience: "Work Experience"
|
||||
# education: "Education"
|
||||
# our_notes: "Our Notes"
|
||||
# projects: "Projects"
|
||||
approved: "Goedgekeurd"
|
||||
not_approved: "Niet goedgekeurd"
|
||||
looking_for: "Zoekt naar:"
|
||||
last_updated: "Laatst aangepast:"
|
||||
contact: "Contact"
|
||||
work_experience: "Werk ervaring"
|
||||
education: "Opleiding"
|
||||
our_notes: "Onze notities"
|
||||
projects: "Projecten"
|
||||
|
||||
# employers:
|
||||
# want_to_hire_our_players: "Want to hire expert CodeCombat players?"
|
||||
# contact_george: "Contact George to see our candidates"
|
||||
# candidates_count_prefix: "We currently have "
|
||||
# candidates_count_many: "many"
|
||||
# candidates_count_suffix: "highly skilled and vetted developers looking for work."
|
||||
# candidate_name: "Name"
|
||||
# candidate_location: "Location"
|
||||
# candidate_looking_for: "Looking For"
|
||||
# candidate_role: "Role"
|
||||
# candidate_top_skills: "Top Skills"
|
||||
# candidate_years_experience: "Yrs Exp"
|
||||
# candidate_last_updated: "Last Updated"
|
||||
employers:
|
||||
want_to_hire_our_players: "Wil je expert CodeCombat spelers aanwerven? "
|
||||
contact_george: "Contacteer George om onze kandidaten te zien"
|
||||
candidates_count_prefix: "Momenteel hebben we "
|
||||
candidates_count_many: "veel"
|
||||
candidates_count_suffix: "zeer getalenteerde en ervaren ontwikkelaars die werk zoeken."
|
||||
candidate_name: "Naam"
|
||||
candidate_location: "Locatie"
|
||||
candidate_looking_for: "Zoekt naar"
|
||||
candidate_role: "Rol"
|
||||
candidate_top_skills: "Beste vaardigheden"
|
||||
candidate_years_experience: "Jaren ervaring"
|
||||
candidate_last_updated: "Laatst aangepast"
|
||||
|
||||
play_level:
|
||||
level_load_error: "Level kon niet geladen worden: "
|
||||
|
@ -316,14 +316,14 @@ module.exports = nativeDescription: "Nederlands (Nederland)", englishDescription
|
|||
contact_us: "contacteer ons!"
|
||||
hipchat_prefix: "Je kan ons ook vinden in ons"
|
||||
hipchat_url: "(Engelstalig) HipChat kanaal."
|
||||
# back: "Back"
|
||||
back: "Terug"
|
||||
revert: "Keer wijziging terug"
|
||||
revert_models: "keer wijziging model terug"
|
||||
# fork_title: "Fork New Version"
|
||||
# fork_creating: "Creating Fork..."
|
||||
# more: "More"
|
||||
# wiki: "Wiki"
|
||||
# live_chat: "Live Chat"
|
||||
fork_title: "Kloon naar nieuwe versie"
|
||||
fork_creating: "Kloon aanmaken..."
|
||||
more: "Meer"
|
||||
wiki: "Wiki"
|
||||
live_chat: "Live Chat"
|
||||
level_some_options: "Enkele opties?"
|
||||
level_tab_thangs: "Elementen"
|
||||
level_tab_scripts: "Scripts"
|
||||
|
@ -331,11 +331,11 @@ module.exports = nativeDescription: "Nederlands (Nederland)", englishDescription
|
|||
level_tab_components: "Componenten"
|
||||
level_tab_systems: "Systemen"
|
||||
level_tab_thangs_title: "Huidige Elementen"
|
||||
# level_tab_thangs_all: "All"
|
||||
level_tab_thangs_all: "Alles"
|
||||
level_tab_thangs_conditions: "Start Condities"
|
||||
level_tab_thangs_add: "Voeg element toe"
|
||||
# delete: "Delete"
|
||||
# duplicate: "Duplicate"
|
||||
delete: "Verwijder"
|
||||
duplicate: "Dupliceer"
|
||||
level_settings_title: "Instellingen"
|
||||
level_component_tab_title: "Huidige Componenten"
|
||||
level_component_btn_new: "Maak een nieuwe component aan"
|
||||
|
@ -357,8 +357,8 @@ module.exports = nativeDescription: "Nederlands (Nederland)", englishDescription
|
|||
article_search_title: "Zoek Artikels Hier"
|
||||
thang_search_title: "Zoek Thang Types Hier"
|
||||
level_search_title: "Zoek Levels Hier"
|
||||
# signup_to_create: "Sign Up to Create a New Content"
|
||||
# read_only_warning2: "Note: you can't save any edits here, because you're not logged in."
|
||||
signup_to_create: "Registreer je om nieuwe content te maken"
|
||||
read_only_warning: "Herinnering: Je kunt hier geen aanpassingen opslaan, want je bent niet ingelogd als administrator."
|
||||
|
||||
article:
|
||||
edit_btn_preview: "Voorbeeld"
|
||||
|
@ -370,13 +370,13 @@ module.exports = nativeDescription: "Nederlands (Nederland)", englishDescription
|
|||
body: "Inhoud"
|
||||
version: "Versie"
|
||||
commit_msg: "Commit Bericht"
|
||||
# version_history: "Version History"
|
||||
version_history: "Versie geschiedenis"
|
||||
version_history_for: "Versie geschiedenis voor: "
|
||||
result: "Resultaat"
|
||||
results: "Resultaten"
|
||||
description: "Beschrijving"
|
||||
or: "of"
|
||||
# subject: "Subject"
|
||||
subject: "Onderwerp"
|
||||
email: "Email"
|
||||
password: "Wachtwoord"
|
||||
message: "Bericht"
|
||||
|
@ -662,6 +662,6 @@ module.exports = nativeDescription: "Nederlands (Nederland)", englishDescription
|
|||
gplus_friends: "G+ vrienden"
|
||||
gplus_friend_sessions: "Sessies van G+ vrienden"
|
||||
leaderboard: "Scorebord"
|
||||
# user_schema: "User Schema"
|
||||
# user_profile: "User Profile"
|
||||
user_schema: "Gebruikersschema"
|
||||
user_profile: "Gebruikersprofiel"
|
||||
# patches: "Patches"
|
||||
|
|
|
@ -3,7 +3,7 @@ module.exports = nativeDescription: "Nederlands", englishDescription: "Dutch", t
|
|||
loading: "Aan het laden..."
|
||||
saving: "Opslaan..."
|
||||
sending: "Verzenden..."
|
||||
# send: "Send"
|
||||
send: "Verzend"
|
||||
cancel: "Annuleren"
|
||||
save: "Opslagen"
|
||||
# publish: "Publish"
|
||||
|
@ -114,8 +114,8 @@ module.exports = nativeDescription: "Nederlands", englishDescription: "Dutch", t
|
|||
forum_page: "ons forum"
|
||||
forum_suffix: "."
|
||||
send: "Feedback Verzonden"
|
||||
# contact_candidate: "Contact Candidate"
|
||||
# recruitment_reminder: "Use this form to reach out to candidates you are interested in interviewing. Remember that CodeCombat charges 18% 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."
|
||||
contact_candidate: "Contacteer Kandidaat"
|
||||
recruitment_reminder: "Gebruik dit formulier om kandidaten te contacteren voor wie je een interesse hebt om te interviewen. Vergeet niet dat CodeCombat een honorarium vraagt van 18% op het eerste-jaarssalaris. Dit honorarium moet betaald worden als de kandidaat wordt aangenomen en kon tot na 90 dagen terugbetaald worden als deze ontslagen wordt in deze periode. Deeltijds-, contract- en thuiswerkers worden van dit honorarium vrijgesteld, alsook interims."
|
||||
|
||||
diplomat_suggestion:
|
||||
title: "Help CodeCombat vertalen!"
|
||||
|
@ -128,13 +128,13 @@ module.exports = nativeDescription: "Nederlands", englishDescription: "Dutch", t
|
|||
wizard_settings:
|
||||
title: "Tovenaar instellingen"
|
||||
customize_avatar: "Bewerk je avatar"
|
||||
# active: "Active"
|
||||
# color: "Color"
|
||||
# group: "Group"
|
||||
active: "Actief"
|
||||
color: "Kleur"
|
||||
group: "Groep"
|
||||
clothes: "Kleren"
|
||||
trim: "Trim"
|
||||
cloud: "Wolk"
|
||||
# team: "Team"
|
||||
team: "Team"
|
||||
spell: "Spreuk"
|
||||
boots: "Laarzen"
|
||||
hue: "Hue"
|
||||
|
@ -167,37 +167,37 @@ module.exports = nativeDescription: "Nederlands", englishDescription: "Dutch", t
|
|||
error_saving: "Fout Tijdens Het Opslaan"
|
||||
saved: "Aanpassingen Opgeslagen"
|
||||
password_mismatch: "Het wachtwoord komt niet overeen."
|
||||
# job_profile: "Job Profile"
|
||||
# job_profile_approved: "Your job profile has been approved by CodeCombat. Employers will be able to see it until you either mark it inactive or it has not been changed for four weeks."
|
||||
# job_profile_explanation: "Hi! Fill this out, and we will get in touch about finding you a software developer job."
|
||||
job_profile: "Job Profiel"
|
||||
job_profile_approved: "Jouw job profiel werd goedgekeurd door CodeCombat. Werkgevers zullen het kunnen bekijken totdat je het inactief zet of als er geen verandering in komt voor vier weken."
|
||||
job_profile_explanation: "Hey! Vul dit in en we zullen je contacteren om je een job als softwareontwikkelaar te helpen vinden."
|
||||
|
||||
account_profile:
|
||||
edit_settings: "Instellingen Aanpassen"
|
||||
profile_for_prefix: "Profiel voor "
|
||||
profile_for_suffix: ""
|
||||
# approved: "Approved"
|
||||
# not_approved: "Not Approved"
|
||||
# looking_for: "Looking for:"
|
||||
# last_updated: "Last updated:"
|
||||
# contact: "Contact"
|
||||
# work_experience: "Work Experience"
|
||||
# education: "Education"
|
||||
# our_notes: "Our Notes"
|
||||
# projects: "Projects"
|
||||
approved: "Goedgekeurd"
|
||||
not_approved: "Niet goedgekeurd"
|
||||
looking_for: "Zoekt naar:"
|
||||
last_updated: "Laatst aangepast:"
|
||||
contact: "Contact"
|
||||
work_experience: "Werk ervaring"
|
||||
education: "Opleiding"
|
||||
our_notes: "Onze notities"
|
||||
projects: "Projecten"
|
||||
|
||||
# employers:
|
||||
# want_to_hire_our_players: "Want to hire expert CodeCombat players?"
|
||||
# contact_george: "Contact George to see our candidates"
|
||||
# candidates_count_prefix: "We currently have "
|
||||
# candidates_count_many: "many"
|
||||
# candidates_count_suffix: "highly skilled and vetted developers looking for work."
|
||||
# candidate_name: "Name"
|
||||
# candidate_location: "Location"
|
||||
# candidate_looking_for: "Looking For"
|
||||
# candidate_role: "Role"
|
||||
# candidate_top_skills: "Top Skills"
|
||||
# candidate_years_experience: "Yrs Exp"
|
||||
# candidate_last_updated: "Last Updated"
|
||||
employers:
|
||||
want_to_hire_our_players: "Wil je expert CodeCombat spelers aanwerven? "
|
||||
contact_george: "Contacteer George om onze kandidaten te zien"
|
||||
candidates_count_prefix: "Momenteel hebben we "
|
||||
candidates_count_many: "veel"
|
||||
candidates_count_suffix: "zeer getalenteerde en ervaren ontwikkelaars die werk zoeken."
|
||||
candidate_name: "Naam"
|
||||
candidate_location: "Locatie"
|
||||
candidate_looking_for: "Zoekt naar"
|
||||
candidate_role: "Rol"
|
||||
candidate_top_skills: "Beste vaardigheden"
|
||||
candidate_years_experience: "Jaren ervaring"
|
||||
candidate_last_updated: "Laatst aangepast"
|
||||
|
||||
play_level:
|
||||
level_load_error: "Level kon niet geladen worden: "
|
||||
|
@ -316,14 +316,14 @@ module.exports = nativeDescription: "Nederlands", englishDescription: "Dutch", t
|
|||
contact_us: "contacteer ons!"
|
||||
hipchat_prefix: "Je kan ons ook vinden in ons"
|
||||
hipchat_url: "(Engelstalig) HipChat kanaal."
|
||||
# back: "Back"
|
||||
back: "Terug"
|
||||
revert: "Keer wijziging terug"
|
||||
revert_models: "keer wijziging model terug"
|
||||
# fork_title: "Fork New Version"
|
||||
# fork_creating: "Creating Fork..."
|
||||
# more: "More"
|
||||
# wiki: "Wiki"
|
||||
# live_chat: "Live Chat"
|
||||
fork_title: "Kloon naar nieuwe versie"
|
||||
fork_creating: "Kloon aanmaken..."
|
||||
more: "Meer"
|
||||
wiki: "Wiki"
|
||||
live_chat: "Live Chat"
|
||||
level_some_options: "Enkele opties?"
|
||||
level_tab_thangs: "Elementen"
|
||||
level_tab_scripts: "Scripts"
|
||||
|
@ -331,11 +331,11 @@ module.exports = nativeDescription: "Nederlands", englishDescription: "Dutch", t
|
|||
level_tab_components: "Componenten"
|
||||
level_tab_systems: "Systemen"
|
||||
level_tab_thangs_title: "Huidige Elementen"
|
||||
# level_tab_thangs_all: "All"
|
||||
level_tab_thangs_all: "Alles"
|
||||
level_tab_thangs_conditions: "Start Condities"
|
||||
level_tab_thangs_add: "Voeg element toe"
|
||||
# delete: "Delete"
|
||||
# duplicate: "Duplicate"
|
||||
delete: "Verwijder"
|
||||
duplicate: "Dupliceer"
|
||||
level_settings_title: "Instellingen"
|
||||
level_component_tab_title: "Huidige Componenten"
|
||||
level_component_btn_new: "Maak een nieuwe component aan"
|
||||
|
@ -357,7 +357,7 @@ module.exports = nativeDescription: "Nederlands", englishDescription: "Dutch", t
|
|||
article_search_title: "Zoek Artikels Hier"
|
||||
thang_search_title: "Zoek Thang Types Hier"
|
||||
level_search_title: "Zoek Levels Hier"
|
||||
# signup_to_create: "Sign Up to Create a New Content"
|
||||
signup_to_create: "Registreer je om nieuwe content te maken"
|
||||
# read_only_warning2: "Note: you can't save any edits here, because you're not logged in."
|
||||
|
||||
article:
|
||||
|
@ -370,13 +370,13 @@ module.exports = nativeDescription: "Nederlands", englishDescription: "Dutch", t
|
|||
body: "Inhoud"
|
||||
version: "Versie"
|
||||
commit_msg: "Commit Bericht"
|
||||
# version_history: "Version History"
|
||||
version_history: "Versie geschiedenis"
|
||||
version_history_for: "Versie geschiedenis voor: "
|
||||
result: "Resultaat"
|
||||
results: "Resultaten"
|
||||
description: "Beschrijving"
|
||||
or: "of"
|
||||
# subject: "Subject"
|
||||
subject: "Onderwerp"
|
||||
email: "Email"
|
||||
password: "Wachtwoord"
|
||||
message: "Bericht"
|
||||
|
@ -662,6 +662,6 @@ module.exports = nativeDescription: "Nederlands", englishDescription: "Dutch", t
|
|||
gplus_friends: "G+ vrienden"
|
||||
gplus_friend_sessions: "Sessies van G+ vrienden"
|
||||
leaderboard: "Scorebord"
|
||||
# user_schema: "User Schema"
|
||||
# user_profile: "User Profile"
|
||||
user_schema: "Gebruikersschema"
|
||||
user_profile: "Gebruikersprofiel"
|
||||
# patches: "Patches"
|
||||
|
|
|
@ -59,7 +59,7 @@ UserSchema = c.object {},
|
|||
lookingFor: {title: 'Looking For', type: 'string', enum: ['Full-time', 'Part-time', 'Remote', 'Contracting', 'Internship'], default: 'Full-time', description: 'What kind of developer position do you want?'}
|
||||
jobTitle: {type: 'string', maxLength: 50, title: 'Desired Job Title', description: 'What role are you looking for? Ex.: "Full Stack Engineer", "Front-End Developer", "iOS Developer"', default: 'Software Developer'}
|
||||
active: {title: 'Active', type: 'boolean', description: 'Want interview offers right now?'}
|
||||
updated: c.date {title: 'Last Updated', description: 'How fresh your profile appears to employers. The fresher, the better. Profiles go inactive after 30 days.'}
|
||||
updated: c.date {title: 'Last Updated', description: 'How fresh your profile appears to employers. Profiles go inactive after 4 weeks.'}
|
||||
name: c.shortString {title: 'Name', description: 'Name you want employers to see, like "Nick Winter".'}
|
||||
city: c.shortString {title: 'City', description: 'City you want to work in (or live in now), like "San Francisco" or "Lubbock, TX".', default: 'Defaultsville, CA', format: 'city'}
|
||||
country: c.shortString {title: 'Country', description: 'Country you want to work in (or live in now), like "USA" or "France".', default: 'USA', format: 'country'}
|
||||
|
@ -74,12 +74,13 @@ UserSchema = c.object {},
|
|||
employer: c.shortString {title: 'Employer', description: 'Name of your employer.'}
|
||||
role: c.shortString {title: 'Job Title', description: 'What was your job title or role?'}
|
||||
duration: c.shortString {title: 'Duration', description: 'When did you hold this gig? Ex.: "Feb 2013 - present".'}
|
||||
description: {type: 'string', title: 'Description', description: 'What did you do there? (140 chars)', maxLength: 140}
|
||||
education: c.array {title: 'Education', description: 'List your academic ordeals.'},
|
||||
c.object {title: 'Ordeal', description: 'Some education that befell you.', required: ['school', 'degree', 'duration']},
|
||||
school: c.shortString {title: 'School', description: 'Name of your school.'}
|
||||
degree: c.shortString {title: 'Degree', description: 'What was your degree and field of study? Ex. Ph.D. Human-Computer Interaction (incomplete)'}
|
||||
duration: c.shortString {title: 'Dates', description: 'When? Ex.: "Aug 2004 - May 2008".'}
|
||||
projects: c.array {title: 'Projects', description: 'Highlight your projects to amaze employers.'},
|
||||
projects: c.array {title: 'Projects', description: 'Highlight your projects to amaze employers.', maxItems: 3},
|
||||
c.object {title: 'Project', description: 'A project you created.', required: ['name', 'description', 'picture'], default: {name: 'My Project', description: 'A project I worked on.', link: 'http://example.com', picture: ''}},
|
||||
name: c.shortString {title: 'Project Name', description: 'What was the project called?', default: 'My Project'}
|
||||
description: {type: 'string', title: 'Description', description: 'Briefly describe the project.', maxLength: 400, default: 'A project I worked on.', format: 'markdown'}
|
||||
|
|
|
@ -2,11 +2,21 @@ module.exports =
|
|||
"application:idle-changed":
|
||||
{} # TODO schema
|
||||
|
||||
"fbapi-loaded":
|
||||
{} # TODO schema
|
||||
|
||||
"logging-in-with-facebook":
|
||||
{} # TODO schema
|
||||
|
||||
"facebook-logged-in":
|
||||
{} # TODO schema
|
||||
title: "Facebook logged in"
|
||||
$schema: "http://json-schema.org/draft-04/schema#"
|
||||
description: "Published when you successfully logged in with facebook"
|
||||
type: "object"
|
||||
properties:
|
||||
response:
|
||||
type: "string"
|
||||
required: ["response"]
|
||||
|
||||
"gapi-loaded":
|
||||
{} # TODO schema
|
||||
|
@ -15,4 +25,11 @@ module.exports =
|
|||
{} # TODO schema
|
||||
|
||||
"gplus-logged-in":
|
||||
{} # TODO schema
|
||||
title: "G+ logged in"
|
||||
$schema: "http://json-schema.org/draft-04/schema#"
|
||||
description: "Published when you successfully logged in with G+"
|
||||
type: "object"
|
||||
properties:
|
||||
authResult:
|
||||
type: "string"
|
||||
required: ["authResult"]
|
||||
|
|
|
@ -9,19 +9,63 @@ module.exports =
|
|||
$ref: "bus"
|
||||
|
||||
"bus:connected":
|
||||
{} # TODO schema
|
||||
title: "Bus Connected"
|
||||
$schema: "http://json-schema.org/draft-04/schema#"
|
||||
description: "Published when a Bus has connected"
|
||||
type: "object"
|
||||
properties:
|
||||
bus:
|
||||
$ref: "bus"
|
||||
|
||||
"bus:disconnected":
|
||||
{} # TODO schema
|
||||
title: "Bus Disconnected"
|
||||
$schema: "http://json-schema.org/draft-04/schema#"
|
||||
description: "Published when a Bus has disconnected"
|
||||
type: "object"
|
||||
properties:
|
||||
bus:
|
||||
$ref: "bus"
|
||||
|
||||
"bus:new-message":
|
||||
{} # TODO schema
|
||||
title: "Message sent"
|
||||
$schema: "http://json-schema.org/draft-04/schema#"
|
||||
description: "A new message was sent"
|
||||
type: "object"
|
||||
properties:
|
||||
message:
|
||||
type: "string"
|
||||
bus:
|
||||
$ref: "bus"
|
||||
|
||||
"bus:player-joined":
|
||||
{} # TODO schema
|
||||
title: "Player joined"
|
||||
$schema: "http://json-schema.org/draft-04/schema#"
|
||||
description: "A new player has joined"
|
||||
type: "object"
|
||||
properties:
|
||||
player:
|
||||
type: "object"
|
||||
bus:
|
||||
$ref: "bus"
|
||||
|
||||
"bus:player-left":
|
||||
{} # TODO schema
|
||||
title: "Player left"
|
||||
$schema: "http://json-schema.org/draft-04/schema#"
|
||||
description: "A player has left"
|
||||
type: "object"
|
||||
properties:
|
||||
player:
|
||||
type: "object"
|
||||
bus:
|
||||
$ref: "bus"
|
||||
|
||||
"bus:player-states-changed":
|
||||
{} # TODO schema
|
||||
title: "Player state changes"
|
||||
$schema: "http://json-schema.org/draft-04/schema#"
|
||||
description: "State of the players has changed"
|
||||
type: "object"
|
||||
properties:
|
||||
player:
|
||||
type: "array"
|
||||
bus:
|
||||
$ref: "bus"
|
||||
|
|
|
@ -33,6 +33,7 @@
|
|||
.job-profile-container
|
||||
width: 100%
|
||||
height: 100%
|
||||
min-height: 600px
|
||||
padding: 0
|
||||
display: table
|
||||
|
||||
|
|
|
@ -157,7 +157,8 @@ block content
|
|||
|
||||
.col-sm-8
|
||||
|
||||
h3 Glen De Cauwsemaecker
|
||||
h3
|
||||
a(href="http://www.glendc.com/") Glen De Cauwsemaecker
|
||||
|
||||
p(data-i18n="about.glen_description")
|
||||
| Programmer and passionate game developer,
|
||||
|
|
|
@ -13,7 +13,7 @@ block content
|
|||
button.btn.edit-settings-button#toggle-job-profile-approved
|
||||
i.icon-cog
|
||||
span(data-i18n='account_profile.approved').approved Approved
|
||||
span(data-i18n='account_profile.approved').not-approved Not Approved
|
||||
span(data-i18n='account_profile.not_approved').not-approved Not Approved
|
||||
|
||||
if user.get('jobProfile')
|
||||
- var profile = user.get('jobProfile');
|
||||
|
@ -64,11 +64,13 @@ block content
|
|||
div.duration.pull-right= job.duration
|
||||
| #{job.role} at #{job.employer}
|
||||
.clearfix
|
||||
if job.description
|
||||
div!= marked(job.description)
|
||||
|
||||
if profile.education.length
|
||||
h3.experience-header
|
||||
img.header-icon(src="/images/pages/account/profile/education.png", alt="")
|
||||
span(data-i18n="account_profile.work_experience") Education
|
||||
span(data-i18n="account_profile.education") Education
|
||||
each school in profile.education
|
||||
div.duration.pull-right= school.duration
|
||||
| #{school.degree} at #{school.school}
|
||||
|
|
|
@ -8,5 +8,6 @@ block modal-body-content
|
|||
p(data-i18n="play_level.infinite_loop_explanation") 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.
|
||||
|
||||
block modal-footer-content
|
||||
a(href='#', data-dismiss="modal", aria-hidden="true", data-i18n="play_level.infinite_loop_wait").btn#restart-level-infinite-loop-retry-button Try Again
|
||||
a(href='#', data-dismiss="modal", aria-hidden="true", data-i18n="play_level.infinite_loop_reload").btn.btn-primary#restart-level-infinite-loop-confirm-button Reset Level
|
||||
a(href='#', data-dismiss="modal", aria-hidden="true", data-i18n="play_level.infinite_loop_try_again").btn#restart-level-infinite-loop-retry-button Try Again
|
||||
a(href='#', data-dismiss="modal", aria-hidden="true", data-i18n="play_level.infinite_loop_reset_level").btn.btn-danger#restart-level-infinite-loop-confirm-button Reset Level
|
||||
a(href='#', data-dismiss="modal", aria-hidden="true", data-i18n="play_level.infinite_loop_comment_out").btn.btn-primary#restart-level-infinite-loop-comment-button Comment Out My Code
|
||||
|
|
|
@ -10,14 +10,12 @@ module.exports = class JobProfileView extends CocoView
|
|||
'lookingFor', 'active', 'name', 'city', 'country', 'skills', 'experience', 'shortDescription', 'longDescription',
|
||||
'work', 'education', 'visa', 'projects', 'links', 'jobTitle', 'photoURL'
|
||||
]
|
||||
readOnlySettings: [
|
||||
'updated'
|
||||
]
|
||||
readOnlySettings: [] #['updated']
|
||||
|
||||
afterRender: ->
|
||||
super()
|
||||
return if @loading()
|
||||
@buildJobProfileTreema()
|
||||
_.defer => @buildJobProfileTreema() # Not sure why, but the Treemas don't fully build without this if you reload the page.
|
||||
|
||||
buildJobProfileTreema: ->
|
||||
visibleSettings = @editableSettings.concat @readOnlySettings
|
||||
|
|
|
@ -43,7 +43,7 @@ module.exports = class SettingsView extends View
|
|||
@jobProfileView = new JobProfileView()
|
||||
@listenTo @jobProfileView, 'change', @save
|
||||
@insertSubView @jobProfileView
|
||||
@buildPictureTreema()
|
||||
_.defer => @buildPictureTreema() # Not sure why, but the Treemas don't fully build without this if you reload the page.
|
||||
|
||||
chooseTab: (category) ->
|
||||
id = "##{category}-pane"
|
||||
|
@ -81,7 +81,6 @@ module.exports = class SettingsView extends View
|
|||
schema = _.cloneDeep me.schema()
|
||||
schema.properties = _.pick me.schema().properties, 'photoURL'
|
||||
schema.required = ['photoURL']
|
||||
console.log 'have data', data, 'schema', schema
|
||||
treemaOptions =
|
||||
filePath: "db/user/#{me.id}"
|
||||
schema: schema
|
||||
|
@ -94,6 +93,7 @@ module.exports = class SettingsView extends View
|
|||
@$el.find('.gravatar-fallback').toggle not me.get 'photoURL'
|
||||
|
||||
onPictureChanged: (e) =>
|
||||
console.log "on Picture TChoinagaegd"
|
||||
@trigger 'change'
|
||||
@$el.find('.gravatar-fallback').toggle not me.get 'photoURL'
|
||||
|
||||
|
|
|
@ -84,7 +84,6 @@ module.exports = class EditorLevelView extends View
|
|||
afterRender: ->
|
||||
return if @startsLoading
|
||||
super()
|
||||
new LevelSystem # temp; trigger the LevelSystem schema to be loaded, if it isn't already
|
||||
@$el.find('a[data-toggle="tab"]').on 'shown.bs.tab', (e) =>
|
||||
Backbone.Mediator.publish 'level:view-switched', e
|
||||
@thangsTab = @insertSubView new ThangsTabView world: @world, supermodel: @supermodel
|
||||
|
@ -130,4 +129,4 @@ module.exports = class EditorLevelView extends View
|
|||
toggleWatchLevel: ->
|
||||
button = @$el.find('#watch-button')
|
||||
@level.watch(button.find('.watch').is(':visible'))
|
||||
button.find('> span').toggleClass('secret')
|
||||
button.find('> span').toggleClass('secret')
|
||||
|
|
|
@ -179,6 +179,7 @@ module.exports = class ThangsTabView extends View
|
|||
destroy: ->
|
||||
@selectAddThangType null
|
||||
@surface.destroy()
|
||||
$(document).unbind 'contextmenu', @preventDefaultContextMenu
|
||||
super()
|
||||
|
||||
onViewSwitched: (e) ->
|
||||
|
@ -254,6 +255,7 @@ module.exports = class ThangsTabView extends View
|
|||
# @thangsTreema.deselectAll()
|
||||
|
||||
selectAddThang: (e) =>
|
||||
return unless $(e.target).closest('.editor-level-thangs-tab-view').length
|
||||
if e then target = $(e.target) else target = @$el.find('.add-thangs-palette') # pretend to click on background if no event
|
||||
return true if target.attr('id') is 'surface'
|
||||
target = target.closest('.add-thang-palette-icon')
|
||||
|
@ -426,6 +428,7 @@ module.exports = class ThangsTabView extends View
|
|||
@$el.find('.thangs-column').show()
|
||||
|
||||
preventDefaultContextMenu: (e) ->
|
||||
return unless $(e.target).closest('#canvas-wrapper').length
|
||||
e.preventDefault()
|
||||
|
||||
onSpriteContextMenu: (e) ->
|
||||
|
|
|
@ -20,7 +20,7 @@ module.exports = class HomeView extends View
|
|||
majorVersion = $.browser.versionNumber
|
||||
c.isOldBrowser = true if $.browser.mozilla && majorVersion < 21
|
||||
c.isOldBrowser = true if $.browser.chrome && majorVersion < 17
|
||||
c.isOldBrowser = true if $.browser.safari && majorVersion < 536
|
||||
c.isOldBrowser = true if $.browser.safari && majorVersion < 6
|
||||
else
|
||||
console.warn 'no more jquery browser version...'
|
||||
c.isEnglish = (me.get('preferredLanguage') or 'en').startsWith 'en'
|
||||
|
|
|
@ -8,3 +8,4 @@ module.exports = class InfiniteLoopModal extends View
|
|||
events:
|
||||
'click #restart-level-infinite-loop-retry-button': -> Backbone.Mediator.publish 'tome:cast-spell'
|
||||
'click #restart-level-infinite-loop-confirm-button': -> Backbone.Mediator.publish 'restart-level'
|
||||
'click #restart-level-infinite-loop-comment-button': -> Backbone.Mediator.publish 'tome:comment-my-code'
|
||||
|
|
|
@ -90,8 +90,10 @@ module.exports = class Spell
|
|||
problems:
|
||||
jshint_W040: {level: "ignore"}
|
||||
jshint_W030: {level: "ignore"} # aether_NoEffect instead
|
||||
jshint_W038: {level: "ignore"} #eliminates hoisting problems
|
||||
jshint_W091: {level: "ignore"} #eliminates more hoisting problems
|
||||
jshint_W038: {level: "ignore"} # eliminates hoisting problems
|
||||
jshint_W091: {level: "ignore"} # eliminates more hoisting problems
|
||||
jshint_E043: {level: "ignore"} # https://github.com/codecombat/codecombat/issues/813 -- since we can't actually tell JSHint to really ignore things
|
||||
jshint_Unknown: {level: "ignore"} # E043 also triggers Unknown, so ignore that, too
|
||||
aether_MissingThis: {level: (if thang.requiresThis then 'error' else 'warning')}
|
||||
language: aceConfig.language ? 'javascript'
|
||||
functionName: @name
|
||||
|
|
|
@ -82,7 +82,7 @@ module.exports = class SpellView extends View
|
|||
@ace.setShowPrintMargin false
|
||||
@ace.setShowInvisibles aceConfig.invisibles
|
||||
@ace.setBehavioursEnabled aceConfig.behaviors
|
||||
@ace.setAnimatedScroll true
|
||||
@ace.setAnimatedScroll true
|
||||
@ace.setKeyboardHandler @keyBindings[aceConfig.keyBindings ? 'default']
|
||||
@toggleControls null, @writable
|
||||
@aceSession.selection.on 'changeCursor', @onCursorActivity
|
||||
|
|
|
@ -51,6 +51,7 @@ module.exports = class TomeView extends View
|
|||
'tome:change-language': 'updateLanguageForAllSpells'
|
||||
'surface:sprite-selected': 'onSpriteSelected'
|
||||
'god:new-world-created': 'onNewWorld'
|
||||
'tome:comment-my-code': 'onCommentMyCode'
|
||||
|
||||
events:
|
||||
'click #spell-view': 'onSpellViewClick'
|
||||
|
@ -78,6 +79,14 @@ module.exports = class TomeView extends View
|
|||
@thangList.adjustThangs @spells, thangs
|
||||
@spellList.adjustSpells @spells
|
||||
|
||||
onCommentMyCode: (e) ->
|
||||
for spellKey, spell of @spells when spell.canWrite()
|
||||
console.log "Commenting out", spellKey
|
||||
commentedSource = 'return; // Commented out to stop infinite loop.\n' + spell.getSource()
|
||||
spell.view.updateACEText commentedSource
|
||||
spell.view.recompile false
|
||||
@cast()
|
||||
|
||||
createWorker: ->
|
||||
return
|
||||
# In progress
|
||||
|
|
|
@ -204,6 +204,14 @@ module.exports = class PlayView extends View
|
|||
image: '/file/db/level/526fd3043c637ece50001bb2/the_herd_icon.png'
|
||||
description: "Transfer a stack of ogres while preserving their honor. - by Alexandru"
|
||||
}
|
||||
{
|
||||
name: 'Find the Spy'
|
||||
difficulty: 2
|
||||
id: 'find-the-spy'
|
||||
image: '/file/db/level/526ae95c1e5cd30000000008/zone_of_danger_icon.png'
|
||||
description: "Identify the spies hidden among your soldiers - by Nathan Gossett"
|
||||
}
|
||||
|
||||
#{
|
||||
# name: 'Enemy Artillery'
|
||||
# difficulty: 1
|
||||
|
|
|
@ -7,23 +7,24 @@
|
|||
|
||||
=============================================================================
|
||||
|
||||
Congratulations, you are now part of the CodeCombat community.
|
||||
Now that your Develop Environment has been setup, you are ready to start
|
||||
contributing and help us make this world a better place.
|
||||
|
||||
Do you have questions or would you like to meet us?
|
||||
Talk with us on hipchat @ https://www.hipchat.com/g3plnOKqa
|
||||
|
||||
Another way to reach is, is by visiting our forum.
|
||||
You can find it @ http://discourse.codecombat.com/
|
||||
|
||||
You can read about the latest developments on our blog site.
|
||||
This one can be found @ http://blog.codecombat.com/
|
||||
|
||||
Last but not least, you can find most of our documentation
|
||||
and information on our wiki @ https://github.com/codecombat/codecombat/wiki
|
||||
|
||||
We hope you'll enjoy yourself within our community, just as much as us.
|
||||
Gefeliciteerd, je bent nu een deel van de CodeCombat gemeenschap.
|
||||
Nu dat je ontwikkelingsomgeving volledig klaar is kun je beginnen met bijdragen
|
||||
en ons helpen de wereld een betere plek te maken.
|
||||
|
||||
Heb je enige vragen of wil je ons ontmoeten?
|
||||
Praat met ons op hipchat @ https://www.hipchat.com/g3plnOKqa
|
||||
|
||||
Je kunt ons ook bereiken via de forums.
|
||||
Deze zijn te vinden @ http://discourse.codecombat.com/
|
||||
|
||||
De laatste ontwikkelingen kun je ook altijd volgen op onze blog.
|
||||
Deze is te vinden @ http://blog.codecombat.com/
|
||||
|
||||
Tenslotte kun je de meeste documentatie en informatie vinden
|
||||
op onze wiki @ https://github.com/codecombat/codecombat/wiki
|
||||
|
||||
We hopen dat je het naar je zin zult hebben en net zoveel plezier zult beleven als wij.
|
||||
|
||||
|
||||
- Nick, George, Scott, Michael, Jeremy and Glen
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@ SessionHandler = require('./sessions/level_session_handler')
|
|||
Feedback = require('./feedbacks/LevelFeedback')
|
||||
Handler = require('../commons/Handler')
|
||||
mongoose = require('mongoose')
|
||||
|
||||
async = require 'async'
|
||||
LevelHandler = class LevelHandler extends Handler
|
||||
modelClass: Level
|
||||
jsonSchema: require '../../app/schemas/models/level'
|
||||
|
@ -220,7 +220,7 @@ LevelHandler = class LevelHandler extends Handler
|
|||
userMap[u._id] = u[serviceProperty] for u in userResults
|
||||
session[serviceProperty] = userMap[session.creator] for session in sessionResults
|
||||
res.send(sessionResults)
|
||||
|
||||
|
||||
getRandomSessionPair: (req, res, slugOrID) ->
|
||||
findParameters = {}
|
||||
if Handler.isID slugOrID
|
||||
|
@ -235,32 +235,34 @@ LevelHandler = class LevelHandler extends Handler
|
|||
query.exec (err, level) =>
|
||||
return @sendDatabaseError(res, err) if err
|
||||
return @sendNotFoundError(res) unless level?
|
||||
|
||||
|
||||
sessionsQueryParameters =
|
||||
level:
|
||||
original: level.original.toString()
|
||||
majorVersion: level.version.major
|
||||
submitted:true
|
||||
|
||||
query = Session
|
||||
.find(sessionsQueryParameters)
|
||||
.select('team')
|
||||
.lean()
|
||||
|
||||
query.exec (err, resultSessions) =>
|
||||
return @sendDatabaseError res, err if err? or not resultSessions
|
||||
|
||||
teamSessions = _.groupBy resultSessions, 'team'
|
||||
sessions = []
|
||||
numberOfTeams = 0
|
||||
for team of teamSessions
|
||||
numberOfTeams += 1
|
||||
sessions.push _.sample(teamSessions[team])
|
||||
if numberOfTeams != 2 then return @sendDatabaseError res, "There aren't sessions of 2 teams, so cannot choose random opponents!"
|
||||
|
||||
@sendSuccess res, sessions
|
||||
|
||||
|
||||
|
||||
query = Session.find(sessionsQueryParameters).distinct("team")
|
||||
query.exec (err, teams) =>
|
||||
return @sendDatabaseError res, err if err? or not teams
|
||||
findTop20Players = (sessionQueryParams, team, cb) ->
|
||||
sessionQueryParams["team"] = team
|
||||
Session.aggregate [
|
||||
{$match: sessionQueryParams}
|
||||
{$project: {"totalScore":1}}
|
||||
{$sort: {"totalScore":-1}}
|
||||
{$limit: 20}
|
||||
], cb
|
||||
|
||||
async.map teams, findTop20Players.bind(@, sessionsQueryParameters), (err, map) =>
|
||||
if err? then return @sendDatabaseError(res, err)
|
||||
sessions = []
|
||||
for mapItem in map
|
||||
sessions.push _.sample(mapItem)
|
||||
if map.length != 2 then return @sendDatabaseError res, "There aren't sessions of 2 teams, so cannot choose random opponents!"
|
||||
@sendSuccess res, sessions
|
||||
|
||||
|
||||
getFeedback: (req, res, id) ->
|
||||
return @sendNotFoundError(res) unless req.user
|
||||
@fetchLevelByIDAndHandleErrors id, req, res, (err, level) =>
|
||||
|
|
|
@ -62,7 +62,7 @@ UserSchema.statics.updateMailChimp = (doc, callback) ->
|
|||
doc.updatedMailChimp = true
|
||||
callback?()
|
||||
|
||||
mc.lists.subscribe params, onSuccess, onFailure
|
||||
mc?.lists.subscribe params, onSuccess, onFailure
|
||||
|
||||
|
||||
UserSchema.pre('save', (next) ->
|
||||
|
|
|
@ -156,7 +156,7 @@ UserHandler = class UserHandler extends Handler
|
|||
|
||||
getSimulatorLeaderboard: (req, res) ->
|
||||
@validateSimulateLeaderboardRequestParameters(req)
|
||||
|
||||
|
||||
query = {}
|
||||
sortOrder = -1
|
||||
limit = if req.query.limit > 30 then 30 else req.query.limit
|
||||
|
@ -165,13 +165,11 @@ UserHandler = class UserHandler extends Handler
|
|||
simulatedByQuery[if req.query.order is 1 then "$gt" else "$lte"] = req.query.scoreOffset
|
||||
query.simulatedBy = simulatedByQuery
|
||||
sortOrder = 1 if req.query.order is 1
|
||||
aggregation = User.aggregate [
|
||||
{$match: query}
|
||||
{$project:{"name":1, "simulatedBy": 1, "simulatedFor":1}}
|
||||
{$sort: {"simulatedBy":sortOrder}}
|
||||
{$limit: limit}
|
||||
]
|
||||
aggregation.exec (err, otherUsers) ->
|
||||
else
|
||||
query.simulatedBy = {"$exists": true}
|
||||
|
||||
leaderboardQuery = User.find(query).select("name simulatedBy simulatedFor").sort({"simulatedBy":sortOrder}).limit(limit)
|
||||
leaderboardQuery.exec (err, otherUsers) ->
|
||||
otherUsers = _.reject otherUsers, _id: req.user._id if req.query.scoreOffset isnt -1
|
||||
otherUsers ?= []
|
||||
res.send(otherUsers)
|
||||
|
@ -250,8 +248,7 @@ UserHandler = class UserHandler extends Handler
|
|||
getCandidates: (req, res) ->
|
||||
authorized = req.user.isAdmin() or ('employer' in req.user.get('permissions'))
|
||||
since = (new Date((new Date()) - 2 * 30.4 * 86400 * 1000)).toISOString()
|
||||
#query = {'jobProfileApproved': true, 'jobProfile.active': true, 'jobProfile.updated': {$gt: since}}
|
||||
query = {'jobProfile.active': true, 'jobProfile.updated': {$gt: since}} # testing
|
||||
query = {'jobProfile.active': true, 'jobProfile.updated': {$gt: since}}
|
||||
query.jobProfileApproved = true unless req.user.isAdmin()
|
||||
selection = 'jobProfile'
|
||||
selection += ' email' if authorized
|
||||
|
@ -265,7 +262,6 @@ UserHandler = class UserHandler extends Handler
|
|||
fields = if authorized then ['jobProfile', 'jobProfileApproved', 'photoURL', '_id'] else ['jobProfile']
|
||||
obj = _.pick document.toObject(), fields
|
||||
obj.photoURL ||= obj.jobProfile.photoURL if authorized
|
||||
obj.photoURL ||= @buildGravatarURL document if authorized
|
||||
subfields = ['country', 'city', 'lookingFor', 'jobTitle', 'skills', 'experience', 'updated']
|
||||
if authorized
|
||||
subfields = subfields.concat ['name']
|
||||
|
|
|
@ -27,15 +27,6 @@ describe '/file', ->
|
|||
dropGridFS ->
|
||||
done()
|
||||
|
||||
it 'can\'t be created by ordinary users.', (done) ->
|
||||
func = (err, res, body) ->
|
||||
expect(res.statusCode).toBe(403)
|
||||
expect(body.metadata).toBeUndefined()
|
||||
done()
|
||||
|
||||
loginJoe ->
|
||||
request.post(options, func)
|
||||
|
||||
it 'can\'t be created if invalid (property path is required)', (done) ->
|
||||
func = (err, res, body) ->
|
||||
expect(res.statusCode).toBe(422)
|
||||
|
|
Loading…
Reference in a new issue