This commit is contained in:
Scott Erickson 2014-04-15 09:02:03 -07:00
commit b59e974a2e
20 changed files with 295 additions and 205 deletions

View file

@ -104,7 +104,7 @@ module.exports = class LevelLoader extends CocoClass
onSupermodelLoadedOne: (e) -> onSupermodelLoadedOne: (e) ->
@buildSpriteSheetsForThangType e.model if not @headless and e.model instanceof ThangType @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 # Things to do when either the Session or Supermodel load
@ -160,7 +160,7 @@ module.exports = class LevelLoader extends CocoClass
buildSpriteSheetsForThangType: (thangType) -> buildSpriteSheetsForThangType: (thangType) ->
@grabThangTypeTeams() unless @thangTypeTeams @grabThangTypeTeams() unless @thangTypeTeams
for team in @thangTypeTeams[thangType.get('original')] ? [null] for team in @thangTypeTeams[thangType.get('original')] ? [null]
spriteOptions = {resolutionFactor: 4, async: true} spriteOptions = {resolutionFactor: 4, async: false}
if thangType.get('kind') is 'Floor' if thangType.get('kind') is 'Floor'
spriteOptions.resolutionFactor = 2 spriteOptions.resolutionFactor = 2
if team and color = @teamConfigs[team]?.color if team and color = @teamConfigs[team]?.color
@ -174,10 +174,14 @@ module.exports = class LevelLoader extends CocoClass
return unless building return unless building
#console.log 'Building:', thangType.get('name'), options #console.log 'Building:', thangType.get('name'), options
@spriteSheetsToBuild += 1 @spriteSheetsToBuild += 1
thangType.once 'build-complete', => onBuildComplete = =>
return if @destroyed return if @destroyed
@spriteSheetsBuilt += 1 @spriteSheetsBuilt += 1
@notifyProgress() @notifyProgress()
if options.async
thangType.once 'build-complete', onBuildComplete
else
onBuildComplete()
# World init # World init

View file

@ -455,7 +455,7 @@ module.exports = CocoSprite = class CocoSprite extends CocoClass
allProps = allProps.concat (@thang.moreProgrammableProperties ? []) allProps = allProps.concat (@thang.moreProgrammableProperties ? [])
for property in allProps 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 if @thang[m[0]]? and @thang[m[0]] < 9001
@ranges.push @ranges.push
name: m[0] name: m[0]

View file

@ -54,7 +54,7 @@ module.exports = class Mark extends CocoClass
if @name is 'bounds' then @buildBounds() if @name is 'bounds' then @buildBounds()
else if @name is 'shadow' then @buildShadow() else if @name is 'shadow' then @buildShadow()
else if @name is 'debug' then @buildDebug() 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 if @thangType then @buildSprite()
else console.error "Don't know how to build mark for", @name else console.error "Don't know how to build mark for", @name
@mark?.mouseEnabled = false @mark?.mouseEnabled = false

View file

@ -291,6 +291,9 @@
time_current: "Now:" time_current: "Now:"
time_total: "Max:" time_total: "Max:"
time_goto: "Go to:" 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: admin:
av_title: "Admin Views" av_title: "Admin Views"

View file

@ -3,7 +3,7 @@ module.exports = nativeDescription: "Nederlands (België)", englishDescription:
loading: "Aan het laden..." loading: "Aan het laden..."
saving: "Opslaan..." saving: "Opslaan..."
sending: "Verzenden..." sending: "Verzenden..."
# send: "Send" send: "Verzend"
cancel: "Annuleren" cancel: "Annuleren"
save: "Opslagen" save: "Opslagen"
# publish: "Publish" # publish: "Publish"
@ -114,8 +114,8 @@ module.exports = nativeDescription: "Nederlands (België)", englishDescription:
forum_page: "ons forum" forum_page: "ons forum"
forum_suffix: "." forum_suffix: "."
send: "Feedback Verzonden" send: "Feedback Verzonden"
# contact_candidate: "Contact Candidate" contact_candidate: "Contacteer Kandidaat"
# 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." 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: diplomat_suggestion:
title: "Help CodeCombat vertalen!" title: "Help CodeCombat vertalen!"
@ -128,13 +128,13 @@ module.exports = nativeDescription: "Nederlands (België)", englishDescription:
wizard_settings: wizard_settings:
title: "Tovenaar instellingen" title: "Tovenaar instellingen"
customize_avatar: "Bewerk je avatar" customize_avatar: "Bewerk je avatar"
# active: "Active" active: "Actief"
# color: "Color" color: "Kleur"
# group: "Group" group: "Groep"
clothes: "Kleren" clothes: "Kleren"
trim: "Trim" trim: "Trim"
cloud: "Wolk" cloud: "Wolk"
# team: "Team" team: "Team"
spell: "Spreuk" spell: "Spreuk"
boots: "Laarzen" boots: "Laarzen"
hue: "Hue" hue: "Hue"
@ -167,37 +167,37 @@ module.exports = nativeDescription: "Nederlands (België)", englishDescription:
error_saving: "Fout Tijdens Het Opslaan" error_saving: "Fout Tijdens Het Opslaan"
saved: "Aanpassingen Opgeslagen" saved: "Aanpassingen Opgeslagen"
password_mismatch: "Het wachtwoord komt niet overeen." password_mismatch: "Het wachtwoord komt niet overeen."
# job_profile: "Job Profile" job_profile: "Job Profiel"
# 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_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: "Hi! Fill this out, and we will get in touch about finding you a software developer job." job_profile_explanation: "Hey! Vul dit in en we zullen je contacteren om je een job als softwareontwikkelaar te helpen vinden."
account_profile: account_profile:
edit_settings: "Instellingen Aanpassen" edit_settings: "Instellingen Aanpassen"
profile_for_prefix: "Profiel voor " profile_for_prefix: "Profiel voor "
profile_for_suffix: "" profile_for_suffix: ""
# approved: "Approved" approved: "Goedgekeurd"
# not_approved: "Not Approved" not_approved: "Niet goedgekeurd"
# looking_for: "Looking for:" looking_for: "Zoekt naar:"
# last_updated: "Last updated:" last_updated: "Laatst aangepast:"
# contact: "Contact" contact: "Contact"
# work_experience: "Work Experience" work_experience: "Werk ervaring"
# education: "Education" education: "Opleiding"
# our_notes: "Our Notes" our_notes: "Onze notities"
# projects: "Projects" projects: "Projecten"
# employers: employers:
# want_to_hire_our_players: "Want to hire expert CodeCombat players?" want_to_hire_our_players: "Wil je expert CodeCombat spelers aanwerven? "
# contact_george: "Contact George to see our candidates" contact_george: "Contacteer George om onze kandidaten te zien"
# candidates_count_prefix: "We currently have " candidates_count_prefix: "Momenteel hebben we "
# candidates_count_many: "many" candidates_count_many: "veel"
# candidates_count_suffix: "highly skilled and vetted developers looking for work." candidates_count_suffix: "zeer getalenteerde en ervaren ontwikkelaars die werk zoeken."
# candidate_name: "Name" candidate_name: "Naam"
# candidate_location: "Location" candidate_location: "Locatie"
# candidate_looking_for: "Looking For" candidate_looking_for: "Zoekt naar"
# candidate_role: "Role" candidate_role: "Rol"
# candidate_top_skills: "Top Skills" candidate_top_skills: "Beste vaardigheden"
# candidate_years_experience: "Yrs Exp" candidate_years_experience: "Jaren ervaring"
# candidate_last_updated: "Last Updated" candidate_last_updated: "Laatst aangepast"
play_level: play_level:
level_load_error: "Level kon niet geladen worden: " level_load_error: "Level kon niet geladen worden: "
@ -316,14 +316,14 @@ module.exports = nativeDescription: "Nederlands (België)", englishDescription:
contact_us: "contacteer ons!" contact_us: "contacteer ons!"
hipchat_prefix: "Je kan ons ook vinden in ons" hipchat_prefix: "Je kan ons ook vinden in ons"
hipchat_url: "(Engelstalig) HipChat kanaal." hipchat_url: "(Engelstalig) HipChat kanaal."
# back: "Back" back: "Terug"
revert: "Keer wijziging terug" revert: "Keer wijziging terug"
revert_models: "keer wijziging model terug" revert_models: "keer wijziging model terug"
# fork_title: "Fork New Version" fork_title: "Kloon naar nieuwe versie"
# fork_creating: "Creating Fork..." fork_creating: "Kloon aanmaken..."
# more: "More" more: "Meer"
# wiki: "Wiki" wiki: "Wiki"
# live_chat: "Live Chat" live_chat: "Live Chat"
level_some_options: "Enkele opties?" level_some_options: "Enkele opties?"
level_tab_thangs: "Elementen" level_tab_thangs: "Elementen"
level_tab_scripts: "Scripts" level_tab_scripts: "Scripts"
@ -331,11 +331,11 @@ module.exports = nativeDescription: "Nederlands (België)", englishDescription:
level_tab_components: "Componenten" level_tab_components: "Componenten"
level_tab_systems: "Systemen" level_tab_systems: "Systemen"
level_tab_thangs_title: "Huidige Elementen" 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_conditions: "Start Condities"
level_tab_thangs_add: "Voeg element toe" level_tab_thangs_add: "Voeg element toe"
# delete: "Delete" delete: "Verwijder"
# duplicate: "Duplicate" duplicate: "Dupliceer"
level_settings_title: "Instellingen" level_settings_title: "Instellingen"
level_component_tab_title: "Huidige Componenten" level_component_tab_title: "Huidige Componenten"
level_component_btn_new: "Maak een nieuwe component aan" 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" article_search_title: "Zoek Artikels Hier"
thang_search_title: "Zoek Thang Types Hier" thang_search_title: "Zoek Thang Types Hier"
level_search_title: "Zoek Levels 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." # read_only_warning2: "Note: you can't save any edits here, because you're not logged in."
article: article:
@ -370,13 +370,13 @@ module.exports = nativeDescription: "Nederlands (België)", englishDescription:
body: "Inhoud" body: "Inhoud"
version: "Versie" version: "Versie"
commit_msg: "Commit Bericht" commit_msg: "Commit Bericht"
# version_history: "Version History" version_history: "Versie geschiedenis"
version_history_for: "Versie geschiedenis voor: " version_history_for: "Versie geschiedenis voor: "
result: "Resultaat" result: "Resultaat"
results: "Resultaten" results: "Resultaten"
description: "Beschrijving" description: "Beschrijving"
or: "of" or: "of"
# subject: "Subject" subject: "Onderwerp"
email: "Email" email: "Email"
password: "Wachtwoord" password: "Wachtwoord"
message: "Bericht" message: "Bericht"
@ -662,6 +662,6 @@ module.exports = nativeDescription: "Nederlands (België)", englishDescription:
gplus_friends: "G+ vrienden" gplus_friends: "G+ vrienden"
gplus_friend_sessions: "Sessies van G+ vrienden" gplus_friend_sessions: "Sessies van G+ vrienden"
leaderboard: "Scorebord" leaderboard: "Scorebord"
# user_schema: "User Schema" user_schema: "Gebruikersschema"
# user_profile: "User Profile" user_profile: "Gebruikersprofiel"
# patches: "Patches" # patches: "Patches"

View file

@ -3,7 +3,7 @@ module.exports = nativeDescription: "Nederlands (Nederland)", englishDescription
loading: "Aan het laden..." loading: "Aan het laden..."
saving: "Opslaan..." saving: "Opslaan..."
sending: "Verzenden..." sending: "Verzenden..."
# send: "Send" send: "Verzend"
cancel: "Annuleren" cancel: "Annuleren"
save: "Opslagen" save: "Opslagen"
# publish: "Publish" # publish: "Publish"
@ -114,8 +114,8 @@ module.exports = nativeDescription: "Nederlands (Nederland)", englishDescription
forum_page: "ons forum" forum_page: "ons forum"
forum_suffix: "." forum_suffix: "."
send: "Feedback Verzonden" send: "Feedback Verzonden"
# contact_candidate: "Contact Candidate" contact_candidate: "Contacteer Kandidaat"
# 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." 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: diplomat_suggestion:
title: "Help CodeCombat vertalen!" title: "Help CodeCombat vertalen!"
@ -128,13 +128,13 @@ module.exports = nativeDescription: "Nederlands (Nederland)", englishDescription
wizard_settings: wizard_settings:
title: "Tovenaar instellingen" title: "Tovenaar instellingen"
customize_avatar: "Bewerk je avatar" customize_avatar: "Bewerk je avatar"
# active: "Active" active: "Actief"
# color: "Color" color: "Kleur"
# group: "Group" group: "Groep"
clothes: "Kleren" clothes: "Kleren"
trim: "Trim" trim: "Trim"
cloud: "Wolk" cloud: "Wolk"
# team: "Team" team: "Team"
spell: "Spreuk" spell: "Spreuk"
boots: "Laarzen" boots: "Laarzen"
hue: "Hue" hue: "Hue"
@ -167,37 +167,37 @@ module.exports = nativeDescription: "Nederlands (Nederland)", englishDescription
error_saving: "Fout Tijdens Het Opslaan" error_saving: "Fout Tijdens Het Opslaan"
saved: "Aanpassingen Opgeslagen" saved: "Aanpassingen Opgeslagen"
password_mismatch: "Het wachtwoord komt niet overeen." password_mismatch: "Het wachtwoord komt niet overeen."
# job_profile: "Job Profile" job_profile: "Job Profiel"
# 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_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: "Hi! Fill this out, and we will get in touch about finding you a software developer job." job_profile_explanation: "Hey! Vul dit in en we zullen je contacteren om je een job als softwareontwikkelaar te helpen vinden."
account_profile: account_profile:
edit_settings: "Instellingen Aanpassen" edit_settings: "Instellingen Aanpassen"
profile_for_prefix: "Profiel voor " profile_for_prefix: "Profiel voor "
profile_for_suffix: "" profile_for_suffix: ""
# approved: "Approved" approved: "Goedgekeurd"
# not_approved: "Not Approved" not_approved: "Niet goedgekeurd"
# looking_for: "Looking for:" looking_for: "Zoekt naar:"
# last_updated: "Last updated:" last_updated: "Laatst aangepast:"
# contact: "Contact" contact: "Contact"
# work_experience: "Work Experience" work_experience: "Werk ervaring"
# education: "Education" education: "Opleiding"
# our_notes: "Our Notes" our_notes: "Onze notities"
# projects: "Projects" projects: "Projecten"
# employers: employers:
# want_to_hire_our_players: "Want to hire expert CodeCombat players?" want_to_hire_our_players: "Wil je expert CodeCombat spelers aanwerven? "
# contact_george: "Contact George to see our candidates" contact_george: "Contacteer George om onze kandidaten te zien"
# candidates_count_prefix: "We currently have " candidates_count_prefix: "Momenteel hebben we "
# candidates_count_many: "many" candidates_count_many: "veel"
# candidates_count_suffix: "highly skilled and vetted developers looking for work." candidates_count_suffix: "zeer getalenteerde en ervaren ontwikkelaars die werk zoeken."
# candidate_name: "Name" candidate_name: "Naam"
# candidate_location: "Location" candidate_location: "Locatie"
# candidate_looking_for: "Looking For" candidate_looking_for: "Zoekt naar"
# candidate_role: "Role" candidate_role: "Rol"
# candidate_top_skills: "Top Skills" candidate_top_skills: "Beste vaardigheden"
# candidate_years_experience: "Yrs Exp" candidate_years_experience: "Jaren ervaring"
# candidate_last_updated: "Last Updated" candidate_last_updated: "Laatst aangepast"
play_level: play_level:
level_load_error: "Level kon niet geladen worden: " level_load_error: "Level kon niet geladen worden: "
@ -316,14 +316,14 @@ module.exports = nativeDescription: "Nederlands (Nederland)", englishDescription
contact_us: "contacteer ons!" contact_us: "contacteer ons!"
hipchat_prefix: "Je kan ons ook vinden in ons" hipchat_prefix: "Je kan ons ook vinden in ons"
hipchat_url: "(Engelstalig) HipChat kanaal." hipchat_url: "(Engelstalig) HipChat kanaal."
# back: "Back" back: "Terug"
revert: "Keer wijziging terug" revert: "Keer wijziging terug"
revert_models: "keer wijziging model terug" revert_models: "keer wijziging model terug"
# fork_title: "Fork New Version" fork_title: "Kloon naar nieuwe versie"
# fork_creating: "Creating Fork..." fork_creating: "Kloon aanmaken..."
# more: "More" more: "Meer"
# wiki: "Wiki" wiki: "Wiki"
# live_chat: "Live Chat" live_chat: "Live Chat"
level_some_options: "Enkele opties?" level_some_options: "Enkele opties?"
level_tab_thangs: "Elementen" level_tab_thangs: "Elementen"
level_tab_scripts: "Scripts" level_tab_scripts: "Scripts"
@ -331,11 +331,11 @@ module.exports = nativeDescription: "Nederlands (Nederland)", englishDescription
level_tab_components: "Componenten" level_tab_components: "Componenten"
level_tab_systems: "Systemen" level_tab_systems: "Systemen"
level_tab_thangs_title: "Huidige Elementen" 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_conditions: "Start Condities"
level_tab_thangs_add: "Voeg element toe" level_tab_thangs_add: "Voeg element toe"
# delete: "Delete" delete: "Verwijder"
# duplicate: "Duplicate" duplicate: "Dupliceer"
level_settings_title: "Instellingen" level_settings_title: "Instellingen"
level_component_tab_title: "Huidige Componenten" level_component_tab_title: "Huidige Componenten"
level_component_btn_new: "Maak een nieuwe component aan" 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" article_search_title: "Zoek Artikels Hier"
thang_search_title: "Zoek Thang Types Hier" thang_search_title: "Zoek Thang Types Hier"
level_search_title: "Zoek Levels 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." read_only_warning: "Herinnering: Je kunt hier geen aanpassingen opslaan, want je bent niet ingelogd als administrator."
article: article:
edit_btn_preview: "Voorbeeld" edit_btn_preview: "Voorbeeld"
@ -370,13 +370,13 @@ module.exports = nativeDescription: "Nederlands (Nederland)", englishDescription
body: "Inhoud" body: "Inhoud"
version: "Versie" version: "Versie"
commit_msg: "Commit Bericht" commit_msg: "Commit Bericht"
# version_history: "Version History" version_history: "Versie geschiedenis"
version_history_for: "Versie geschiedenis voor: " version_history_for: "Versie geschiedenis voor: "
result: "Resultaat" result: "Resultaat"
results: "Resultaten" results: "Resultaten"
description: "Beschrijving" description: "Beschrijving"
or: "of" or: "of"
# subject: "Subject" subject: "Onderwerp"
email: "Email" email: "Email"
password: "Wachtwoord" password: "Wachtwoord"
message: "Bericht" message: "Bericht"
@ -662,6 +662,6 @@ module.exports = nativeDescription: "Nederlands (Nederland)", englishDescription
gplus_friends: "G+ vrienden" gplus_friends: "G+ vrienden"
gplus_friend_sessions: "Sessies van G+ vrienden" gplus_friend_sessions: "Sessies van G+ vrienden"
leaderboard: "Scorebord" leaderboard: "Scorebord"
# user_schema: "User Schema" user_schema: "Gebruikersschema"
# user_profile: "User Profile" user_profile: "Gebruikersprofiel"
# patches: "Patches" # patches: "Patches"

View file

@ -3,7 +3,7 @@ module.exports = nativeDescription: "Nederlands", englishDescription: "Dutch", t
loading: "Aan het laden..." loading: "Aan het laden..."
saving: "Opslaan..." saving: "Opslaan..."
sending: "Verzenden..." sending: "Verzenden..."
# send: "Send" send: "Verzend"
cancel: "Annuleren" cancel: "Annuleren"
save: "Opslagen" save: "Opslagen"
# publish: "Publish" # publish: "Publish"
@ -114,8 +114,8 @@ module.exports = nativeDescription: "Nederlands", englishDescription: "Dutch", t
forum_page: "ons forum" forum_page: "ons forum"
forum_suffix: "." forum_suffix: "."
send: "Feedback Verzonden" send: "Feedback Verzonden"
# contact_candidate: "Contact Candidate" contact_candidate: "Contacteer Kandidaat"
# 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." 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: diplomat_suggestion:
title: "Help CodeCombat vertalen!" title: "Help CodeCombat vertalen!"
@ -128,13 +128,13 @@ module.exports = nativeDescription: "Nederlands", englishDescription: "Dutch", t
wizard_settings: wizard_settings:
title: "Tovenaar instellingen" title: "Tovenaar instellingen"
customize_avatar: "Bewerk je avatar" customize_avatar: "Bewerk je avatar"
# active: "Active" active: "Actief"
# color: "Color" color: "Kleur"
# group: "Group" group: "Groep"
clothes: "Kleren" clothes: "Kleren"
trim: "Trim" trim: "Trim"
cloud: "Wolk" cloud: "Wolk"
# team: "Team" team: "Team"
spell: "Spreuk" spell: "Spreuk"
boots: "Laarzen" boots: "Laarzen"
hue: "Hue" hue: "Hue"
@ -167,37 +167,37 @@ module.exports = nativeDescription: "Nederlands", englishDescription: "Dutch", t
error_saving: "Fout Tijdens Het Opslaan" error_saving: "Fout Tijdens Het Opslaan"
saved: "Aanpassingen Opgeslagen" saved: "Aanpassingen Opgeslagen"
password_mismatch: "Het wachtwoord komt niet overeen." password_mismatch: "Het wachtwoord komt niet overeen."
# job_profile: "Job Profile" job_profile: "Job Profiel"
# 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_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: "Hi! Fill this out, and we will get in touch about finding you a software developer job." job_profile_explanation: "Hey! Vul dit in en we zullen je contacteren om je een job als softwareontwikkelaar te helpen vinden."
account_profile: account_profile:
edit_settings: "Instellingen Aanpassen" edit_settings: "Instellingen Aanpassen"
profile_for_prefix: "Profiel voor " profile_for_prefix: "Profiel voor "
profile_for_suffix: "" profile_for_suffix: ""
# approved: "Approved" approved: "Goedgekeurd"
# not_approved: "Not Approved" not_approved: "Niet goedgekeurd"
# looking_for: "Looking for:" looking_for: "Zoekt naar:"
# last_updated: "Last updated:" last_updated: "Laatst aangepast:"
# contact: "Contact" contact: "Contact"
# work_experience: "Work Experience" work_experience: "Werk ervaring"
# education: "Education" education: "Opleiding"
# our_notes: "Our Notes" our_notes: "Onze notities"
# projects: "Projects" projects: "Projecten"
# employers: employers:
# want_to_hire_our_players: "Want to hire expert CodeCombat players?" want_to_hire_our_players: "Wil je expert CodeCombat spelers aanwerven? "
# contact_george: "Contact George to see our candidates" contact_george: "Contacteer George om onze kandidaten te zien"
# candidates_count_prefix: "We currently have " candidates_count_prefix: "Momenteel hebben we "
# candidates_count_many: "many" candidates_count_many: "veel"
# candidates_count_suffix: "highly skilled and vetted developers looking for work." candidates_count_suffix: "zeer getalenteerde en ervaren ontwikkelaars die werk zoeken."
# candidate_name: "Name" candidate_name: "Naam"
# candidate_location: "Location" candidate_location: "Locatie"
# candidate_looking_for: "Looking For" candidate_looking_for: "Zoekt naar"
# candidate_role: "Role" candidate_role: "Rol"
# candidate_top_skills: "Top Skills" candidate_top_skills: "Beste vaardigheden"
# candidate_years_experience: "Yrs Exp" candidate_years_experience: "Jaren ervaring"
# candidate_last_updated: "Last Updated" candidate_last_updated: "Laatst aangepast"
play_level: play_level:
level_load_error: "Level kon niet geladen worden: " level_load_error: "Level kon niet geladen worden: "
@ -316,14 +316,14 @@ module.exports = nativeDescription: "Nederlands", englishDescription: "Dutch", t
contact_us: "contacteer ons!" contact_us: "contacteer ons!"
hipchat_prefix: "Je kan ons ook vinden in ons" hipchat_prefix: "Je kan ons ook vinden in ons"
hipchat_url: "(Engelstalig) HipChat kanaal." hipchat_url: "(Engelstalig) HipChat kanaal."
# back: "Back" back: "Terug"
revert: "Keer wijziging terug" revert: "Keer wijziging terug"
revert_models: "keer wijziging model terug" revert_models: "keer wijziging model terug"
# fork_title: "Fork New Version" fork_title: "Kloon naar nieuwe versie"
# fork_creating: "Creating Fork..." fork_creating: "Kloon aanmaken..."
# more: "More" more: "Meer"
# wiki: "Wiki" wiki: "Wiki"
# live_chat: "Live Chat" live_chat: "Live Chat"
level_some_options: "Enkele opties?" level_some_options: "Enkele opties?"
level_tab_thangs: "Elementen" level_tab_thangs: "Elementen"
level_tab_scripts: "Scripts" level_tab_scripts: "Scripts"
@ -331,11 +331,11 @@ module.exports = nativeDescription: "Nederlands", englishDescription: "Dutch", t
level_tab_components: "Componenten" level_tab_components: "Componenten"
level_tab_systems: "Systemen" level_tab_systems: "Systemen"
level_tab_thangs_title: "Huidige Elementen" 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_conditions: "Start Condities"
level_tab_thangs_add: "Voeg element toe" level_tab_thangs_add: "Voeg element toe"
# delete: "Delete" delete: "Verwijder"
# duplicate: "Duplicate" duplicate: "Dupliceer"
level_settings_title: "Instellingen" level_settings_title: "Instellingen"
level_component_tab_title: "Huidige Componenten" level_component_tab_title: "Huidige Componenten"
level_component_btn_new: "Maak een nieuwe component aan" 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" article_search_title: "Zoek Artikels Hier"
thang_search_title: "Zoek Thang Types Hier" thang_search_title: "Zoek Thang Types Hier"
level_search_title: "Zoek Levels 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." # read_only_warning2: "Note: you can't save any edits here, because you're not logged in."
article: article:
@ -370,13 +370,13 @@ module.exports = nativeDescription: "Nederlands", englishDescription: "Dutch", t
body: "Inhoud" body: "Inhoud"
version: "Versie" version: "Versie"
commit_msg: "Commit Bericht" commit_msg: "Commit Bericht"
# version_history: "Version History" version_history: "Versie geschiedenis"
version_history_for: "Versie geschiedenis voor: " version_history_for: "Versie geschiedenis voor: "
result: "Resultaat" result: "Resultaat"
results: "Resultaten" results: "Resultaten"
description: "Beschrijving" description: "Beschrijving"
or: "of" or: "of"
# subject: "Subject" subject: "Onderwerp"
email: "Email" email: "Email"
password: "Wachtwoord" password: "Wachtwoord"
message: "Bericht" message: "Bericht"
@ -662,6 +662,6 @@ module.exports = nativeDescription: "Nederlands", englishDescription: "Dutch", t
gplus_friends: "G+ vrienden" gplus_friends: "G+ vrienden"
gplus_friend_sessions: "Sessies van G+ vrienden" gplus_friend_sessions: "Sessies van G+ vrienden"
leaderboard: "Scorebord" leaderboard: "Scorebord"
# user_schema: "User Schema" user_schema: "Gebruikersschema"
# user_profile: "User Profile" user_profile: "Gebruikersprofiel"
# patches: "Patches" # patches: "Patches"

View file

@ -2,11 +2,21 @@ module.exports =
"application:idle-changed": "application:idle-changed":
{} # TODO schema {} # TODO schema
"fbapi-loaded":
{} # TODO schema
"logging-in-with-facebook": "logging-in-with-facebook":
{} # TODO schema {} # TODO schema
"facebook-logged-in": "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": "gapi-loaded":
{} # TODO schema {} # TODO schema
@ -15,4 +25,11 @@ module.exports =
{} # TODO schema {} # TODO schema
"gplus-logged-in": "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"]

View file

@ -9,19 +9,63 @@ module.exports =
$ref: "bus" $ref: "bus"
"bus:connected": "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": "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": "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": "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": "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": "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"

View file

@ -33,6 +33,7 @@
.job-profile-container .job-profile-container
width: 100% width: 100%
height: 100% height: 100%
min-height: 600px
padding: 0 padding: 0
display: table display: table

View file

@ -157,7 +157,8 @@ block content
.col-sm-8 .col-sm-8
h3 Glen De Cauwsemaecker h3
a(href="http://www.glendc.com/") Glen De Cauwsemaecker
p(data-i18n="about.glen_description") p(data-i18n="about.glen_description")
| Programmer and passionate game developer, | Programmer and passionate game developer,

View file

@ -13,7 +13,7 @@ block content
button.btn.edit-settings-button#toggle-job-profile-approved button.btn.edit-settings-button#toggle-job-profile-approved
i.icon-cog i.icon-cog
span(data-i18n='account_profile.approved').approved Approved 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') if user.get('jobProfile')
- var profile = user.get('jobProfile'); - var profile = user.get('jobProfile');
@ -68,7 +68,7 @@ block content
if profile.education.length if profile.education.length
h3.experience-header h3.experience-header
img.header-icon(src="/images/pages/account/profile/education.png", alt="") 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 each school in profile.education
div.duration.pull-right= school.duration div.duration.pull-right= school.duration
| #{school.degree} at #{school.school} | #{school.degree} at #{school.school}

View file

@ -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. 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 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_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_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_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

View file

@ -20,7 +20,7 @@ module.exports = class HomeView extends View
majorVersion = $.browser.versionNumber majorVersion = $.browser.versionNumber
c.isOldBrowser = true if $.browser.mozilla && majorVersion < 21 c.isOldBrowser = true if $.browser.mozilla && majorVersion < 21
c.isOldBrowser = true if $.browser.chrome && majorVersion < 17 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 else
console.warn 'no more jquery browser version...' console.warn 'no more jquery browser version...'
c.isEnglish = (me.get('preferredLanguage') or 'en').startsWith 'en' c.isEnglish = (me.get('preferredLanguage') or 'en').startsWith 'en'

View file

@ -8,3 +8,4 @@ module.exports = class InfiniteLoopModal extends View
events: events:
'click #restart-level-infinite-loop-retry-button': -> Backbone.Mediator.publish 'tome:cast-spell' '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-confirm-button': -> Backbone.Mediator.publish 'restart-level'
'click #restart-level-infinite-loop-comment-button': -> Backbone.Mediator.publish 'tome:comment-my-code'

View file

@ -51,6 +51,7 @@ module.exports = class TomeView extends View
'tome:change-language': 'updateLanguageForAllSpells' 'tome:change-language': 'updateLanguageForAllSpells'
'surface:sprite-selected': 'onSpriteSelected' 'surface:sprite-selected': 'onSpriteSelected'
'god:new-world-created': 'onNewWorld' 'god:new-world-created': 'onNewWorld'
'tome:comment-my-code': 'onCommentMyCode'
events: events:
'click #spell-view': 'onSpellViewClick' 'click #spell-view': 'onSpellViewClick'
@ -78,6 +79,14 @@ module.exports = class TomeView extends View
@thangList.adjustThangs @spells, thangs @thangList.adjustThangs @spells, thangs
@spellList.adjustSpells @spells @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: -> createWorker: ->
return return
# In progress # In progress

View file

@ -204,6 +204,14 @@ module.exports = class PlayView extends View
image: '/file/db/level/526fd3043c637ece50001bb2/the_herd_icon.png' image: '/file/db/level/526fd3043c637ece50001bb2/the_herd_icon.png'
description: "Transfer a stack of ogres while preserving their honor. - by Alexandru" 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' # name: 'Enemy Artillery'
# difficulty: 1 # difficulty: 1

View file

@ -7,23 +7,24 @@
============================================================================= =============================================================================
Congratulations, you are now part of the CodeCombat community. Gefeliciteerd, je bent nu een deel van de CodeCombat gemeenschap.
Now that your Develop Environment has been setup, you are ready to start Nu dat je ontwikkelingsomgeving volledig klaar is kun je beginnen met bijdragen
contributing and help us make this world a better place. en ons helpen de wereld een betere plek te maken.
Do you have questions or would you like to meet us? Heb je enige vragen of wil je ons ontmoeten?
Talk with us on hipchat @ https://www.hipchat.com/g3plnOKqa Praat met ons op hipchat @ https://www.hipchat.com/g3plnOKqa
Another way to reach is, is by visiting our forum. Je kunt ons ook bereiken via de forums.
You can find it @ http://discourse.codecombat.com/ Deze zijn te vinden @ http://discourse.codecombat.com/
You can read about the latest developments on our blog site. De laatste ontwikkelingen kun je ook altijd volgen op onze blog.
This one can be found @ http://blog.codecombat.com/ Deze is te vinden @ http://blog.codecombat.com/
Last but not least, you can find most of our documentation Tenslotte kun je de meeste documentatie en informatie vinden
and information on our wiki @ https://github.com/codecombat/codecombat/wiki op onze wiki @ https://github.com/codecombat/codecombat/wiki
We hope you'll enjoy yourself within our community, just as much as us. 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 - Nick, George, Scott, Michael, Jeremy and Glen

View file

@ -5,7 +5,7 @@ SessionHandler = require('./sessions/level_session_handler')
Feedback = require('./feedbacks/LevelFeedback') Feedback = require('./feedbacks/LevelFeedback')
Handler = require('../commons/Handler') Handler = require('../commons/Handler')
mongoose = require('mongoose') mongoose = require('mongoose')
async = require 'async'
LevelHandler = class LevelHandler extends Handler LevelHandler = class LevelHandler extends Handler
modelClass: Level modelClass: Level
jsonSchema: require '../../app/schemas/models/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 userMap[u._id] = u[serviceProperty] for u in userResults
session[serviceProperty] = userMap[session.creator] for session in sessionResults session[serviceProperty] = userMap[session.creator] for session in sessionResults
res.send(sessionResults) res.send(sessionResults)
getRandomSessionPair: (req, res, slugOrID) -> getRandomSessionPair: (req, res, slugOrID) ->
findParameters = {} findParameters = {}
if Handler.isID slugOrID if Handler.isID slugOrID
@ -235,32 +235,34 @@ LevelHandler = class LevelHandler extends Handler
query.exec (err, level) => query.exec (err, level) =>
return @sendDatabaseError(res, err) if err return @sendDatabaseError(res, err) if err
return @sendNotFoundError(res) unless level? return @sendNotFoundError(res) unless level?
sessionsQueryParameters = sessionsQueryParameters =
level: level:
original: level.original.toString() original: level.original.toString()
majorVersion: level.version.major majorVersion: level.version.major
submitted:true submitted:true
query = Session query = Session.find(sessionsQueryParameters).distinct("team")
.find(sessionsQueryParameters) query.exec (err, teams) =>
.select('team') return @sendDatabaseError res, err if err? or not teams
.lean() findTop20Players = (sessionQueryParams, team, cb) ->
sessionQueryParams["team"] = team
query.exec (err, resultSessions) => Session.aggregate [
return @sendDatabaseError res, err if err? or not resultSessions {$match: sessionQueryParams}
{$project: {"totalScore":1}}
teamSessions = _.groupBy resultSessions, 'team' {$sort: {"totalScore":-1}}
sessions = [] {$limit: 20}
numberOfTeams = 0 ], cb
for team of teamSessions
numberOfTeams += 1 async.map teams, findTop20Players.bind(@, sessionsQueryParameters), (err, map) =>
sessions.push _.sample(teamSessions[team]) if err? then return @sendDatabaseError(res, err)
if numberOfTeams != 2 then return @sendDatabaseError res, "There aren't sessions of 2 teams, so cannot choose random opponents!" sessions = []
for mapItem in map
@sendSuccess res, sessions 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) -> getFeedback: (req, res, id) ->
return @sendNotFoundError(res) unless req.user return @sendNotFoundError(res) unless req.user
@fetchLevelByIDAndHandleErrors id, req, res, (err, level) => @fetchLevelByIDAndHandleErrors id, req, res, (err, level) =>

View file

@ -165,13 +165,11 @@ UserHandler = class UserHandler extends Handler
simulatedByQuery[if req.query.order is 1 then "$gt" else "$lte"] = req.query.scoreOffset simulatedByQuery[if req.query.order is 1 then "$gt" else "$lte"] = req.query.scoreOffset
query.simulatedBy = simulatedByQuery query.simulatedBy = simulatedByQuery
sortOrder = 1 if req.query.order is 1 sortOrder = 1 if req.query.order is 1
aggregation = User.aggregate [ else
{$match: query} query.simulatedBy = {"$exists": true}
{$project:{"name":1, "simulatedBy": 1, "simulatedFor":1}}
{$sort: {"simulatedBy":sortOrder}} leaderboardQuery = User.find(query).select("name simulatedBy simulatedFor").sort({"simulatedBy":sortOrder}).limit(limit)
{$limit: limit} leaderboardQuery.exec (err, otherUsers) ->
]
aggregation.exec (err, otherUsers) ->
otherUsers = _.reject otherUsers, _id: req.user._id if req.query.scoreOffset isnt -1 otherUsers = _.reject otherUsers, _id: req.user._id if req.query.scoreOffset isnt -1
otherUsers ?= [] otherUsers ?= []
res.send(otherUsers) res.send(otherUsers)