First big fix for issue #23. The issue is as good as fixed besides some details I think.

This commit is contained in:
GlenDC 2014-01-11 17:25:04 +01:00
parent 6323ba4965
commit 683b72f67a
32 changed files with 982 additions and 471 deletions

View file

@ -68,6 +68,13 @@ module.exports = nativeDescription: "français", englishDescription: "French", t
# campaign_player_created_description: "... in which you battle against the creativity of your fellow <a href=\"/contribute#artisan\">Artisan Wizards</a>."
# level_difficulty: "Difficulty: "
contribute:
character_classes_title: "Classes de personnages"
page_title: "Contribuer"
introduction_desc_intro: "Nous avons de grands espoirs pour CodeCombat."
alert_account_message_intro: "Salut!"
archmage_subscribe_descr: "Recevoir des courriels sur de nouvelles opportunités et des annonces de programmation."
contact:
contact_us: "Contacter CodeCombat"
# welcome: "Good to hear from you! Use this form to send us email."
@ -88,7 +95,10 @@ module.exports = nativeDescription: "français", englishDescription: "French", t
learn_more: "Apprenez en plus sur comment devenir un diplomate!"
# subscribe_as_diplomat: "Subscribe as a Diplomat"
#
# account_settings:
account_settings:
archmage_title_pref: "Archmage"
archmage_title_suf: "(Codeur)"
archmage_desc: "Obtenez des courriels au sujet des nouvelles et des annonces sur les CodeCombat général."
# title: "Account Settings"
# not_logged_in: "Log in or create an account to change your settings."
# autosave: "Changes Save Automatically"
@ -181,4 +191,10 @@ module.exports = nativeDescription: "français", englishDescription: "French", t
# hud_continue: "Continue (press shift-space)"
editor:
new_component_title: "creér un composant"
new_component_title: "Créer un nouveau composant"
new_component_field_system: "Système"
new_component_field_name: "Nom"
new_component_btn_cancel: "Annuler"
new_component_btn_create: "Créer"
level_btn_save: "Sauver"
level_component_edit_title: "Editer le composant"

View file

@ -6,26 +6,74 @@ block content
.span5
h2 Who is CodeCombat?
h2(data-i18n="about.who_is_codecombat")
| Who is CodeCombat?
:markdown
[George](http://georgesaines.com/), [Scott](http://scotterickson.info), and [Nick](http://www.nickwinter.net) together started CodeCombat in 2013. We also created [Skritter](http://www.skritter.com/) in 2008, growing it to the #1 web and iOS application for learning to write Chinese and Japanese characters.
p
a(href="http://georgesaines.com/") George
span ,
a(href="http://scotterickson.info/") Scott
span ,
span(data-i18n="general.and") and
span
a(href="http://scotterickson.info/") Nick
span
span(data-i18n="about.who_description_prefix")
| together started CodeCombat in 2013. We also created
a(href="http://www.skritter.com/") Skritter
span
span(data-i18n="about.who_description_sufix")
| in 2008, growing it to the #1 web and iOS application
| for learning to write Chinese and Japanese characters.
p Now it's time to teach people to write code.
p(data-i18n="about.who_description_ending")
| Now it's time to teach people to write code.
h2 Why CodeCombat?
h2(data-i18n="about.why_codecombat")
| Why CodeCombat?
p When making Skritter, George didn't know how to program and was constantly frustrated by his inability to implement his ideas. Afterwards, he tried learning, but the lessons were too slow. His housemate, wanting to reskill and stop teaching, tried Codecademy, but "got bored." Each week another friend started Codecademy, then dropped off. We realized it was the same problem we'd solved with Skritter: people learning a skill via slow, intensive lessons when what they need is fast, extensive practice. We know how to fix that.
p(data-i18n="about.why_paragraph_1")
| When making Skritter, George didn't know how to program and was constantly
| frustrated by his inability to implement his ideas. Afterwards,
| he tried learning, but the lessons were too slow. His housemate,
| wanting to reskill and stop teaching, tried Codecademy, but "got bored."
| Each week another friend started Codecademy, then dropped off.
| We realized it was the same problem we'd solved with Skritter:
| people learning a skill via slow, intensive lessons when what they need is fast,
| extensive practice. We know how to fix that.
p Need to learn to code? You don't need lessons. You need to write a lot of code and have a great time doing it.
p(data-i18n="about.why_paragraph_2")
| Need to learn to code? You don't need lessons.
| You need to write a lot of code and have a great time doing it.
:markdown
That's what programming is about. It's gotta be fun. Not fun like _yay a badge_ but fun like _NO MOM I HAVE TO FINISH THE LEVEL!_ That's why CodeCombat is a multiplayer game, not a gamified lesson course. We *won't* stop until you *can't* stop--but this time, that's a good thing.
p
span(data-i18n="about.why_paragraph_3_prefix")
| That's what programming is about. It's gotta be fun.
| Not fun like
span
i(data-i18n="about.why_paragraph_3_italic")
| yay a badge
span
span(data-i18n="about.why_paragraph_3_center")
| but fun like
span
i(data-i18n="about.why_paragraph_3_italic_caps")
| NO MOM I HAVE TO FINISH THE LEVEL!
span
span(data-i18n="about.why_paragraph_3_sufix")
| That's why CodeCombat is a multiplayer game,
| not a gamified lesson course. We won't stop
| until you can't stop--but this time, that's a good thing.
p If you're going to get addicted to some game, get addicted to this one and become one of the wizards of the tech age.
p(data-i18n="about.why_paragraph_4")
| If you're going to get addicted to some game,
| get addicted to this one and become one of the wizards of the tech age.
p.lead And hey, it's free.
a(href="/") Start wizarding now!
p.lead
span(data-i18n="about.why_ending")
| And hey, it's free.
a(href="/", data-i18n="about.why_ending_url")
| Start wizarding now!
ul.span5.team-column
@ -41,7 +89,9 @@ block content
h3
a(href="http://georgesaines.com") George Saines
p CEO, business guy, web designer, game designer, and champion of beginning programmers everywhere.
p(data-i18n="about.george_description")
| CEO, business guy, web designer, game designer,
| and champion of beginning programmers everywhere.
li
@ -52,7 +102,10 @@ block content
h3
a(href="http://scotterickson.info") Scott Erickson
p Programmer extraordinaire, software architect, kitchen wizard, and master of finances. Scott is the reasonable one.
p(data-i18n="about.scott_description")
| Programmer extraordinaire, software architect,
| kitchen wizard, and master of finances.
| Scott is the reasonable one.
li
@ -63,7 +116,10 @@ block content
h3
a(href="http://www.nickwinter.net") Nick Winter
p Programming wizard, eccentric motivation mage, and upside-down experimenter. Nick can do anything and chooses to build CodeCombat.
p(data-i18n="about.nick_description")
| Programming wizard, eccentric motivation mage,
| and upside-down experimenter.
| Nick can do anything and chooses to build CodeCombat.
li
@ -74,7 +130,10 @@ block content
h3
Jeremy Arns
p Customer support mage, usability tester, and community organizer, you've probably already spoken with Jeremy.
p(data-i18n="about.jeremy_description")
| Customer support mage, usability tester,
| and community organizer, you've probably
| already spoken with Jeremy.
li
@ -85,6 +144,8 @@ block content
h3
a(href="http://michaelschmatz.com/") Michael Schmatz
p Programmer, sys admin, and undergrad technical wunderkind, Michael is the person keeping our servers online.
p(data-i18n="about.michael_description")
| Programmer, sys admin, and undergrad technical wunderkind,
| Michael is the person keeping our servers online.

View file

@ -100,51 +100,69 @@ block content
br
.control-group
label.control-label(for="email_developer") Archmage
label.control-label(for="email_developer")
span(data-i18n="account_settings.archmage_title_pref")
| Archmage
br
| (Coder)
span(data-i18n="account_settings.archmage_title_suf")
| (Coder)
.controls
input#email_developer(name="email_developer", type="checkbox", checked=subs.developer)
span.help-inline Get emails about general news and announcements about CodeCombat.
span(data-i18n="account_settings.archmage_desc").help-inline Get emails about general news and announcements about CodeCombat.
.control-group
label.control-label(for="email_level_creator") Artisan
label.control-label(for="email_level_creator")
span(data-i18n="account_settings.artisan_title_pref")
| Artisan
br
| (Level Builder)
span(data-i18n="account_settings.artisan_title_suf")
| (Level Builder)
.controls
input#email_level_creator(name="email_level_creator", type="checkbox", checked=subs.level_creator)
span.help-inline Get emails on level editor updates and announcements.
span(data-i18n="account_settings.artisan_desc").help-inline Get emails on level editor updates and announcements.
.control-group
label.control-label(for="email_tester") Adventurer
label.control-label(for="email_tester")
span(data-i18n="account_settings.adventurer_title_pref")
| Adventurer
br
| (Level Playtester)
span(data-i18n="account_settings.adventurer_title_suf")
| (Level Playtester)
.controls
input#email_tester(name="email_tester", type="checkbox", checked=subs.tester)
span.help-inline Get emails when there are new levels to test.
span(data-i18n="account_settings.adventurer_desc").help-inline Get emails when there are new levels to test.
.control-group
label.control-label(for="email_article_editor") Scribe
label.control-label(for="email_article_editor")
span(data-i18n="account_settings.scribe_title_pref")
| Scribe
br
| (Artile Editor)
span(data-i18n="account_settings.scribe_title_suf")
| (Article Editor)
.controls
input#email_article_editor(name="email_article_editor", type="checkbox", checked=subs.article_editor)
span.help-inline Get emails about article writing announcements.
span(data-i18n="account_settings.scribe_desc").help-inline Get emails about article writing announcements.
.control-group
label.control-label(for="email_translator") Diplomat
label.control-label(for="email_translator")
span(data-i18n="account_settings.diplomat_title_pref")
| Diplomat
br
| (Translator)
span(data-i18n="account_settings.diplomat_title_suf")
| (Translator)
.controls
input#email_translator(name="email_translator", type="checkbox", checked=subs.translator)
span.help-inline Get emails about i18n developments and, eventually, levels to translate.
span(data-i18n="account_settings.diplomat_title_pref").help-inline Get emails about i18n developments and, eventually, levels to translate.
.control-group
label.control-label(for="email_support") Ambassador
label.control-label(for="email_support")
span(data-i18n="account_settings.ambassador_title_pref")
| Ambassador
br
| (Support)
span(data-i18n="account_settings.ambassador_title_suf")
| (Support)
.controls
input#email_support(name="email_support", type="checkbox", checked=subs.support)
span.help-inline Get emails on support updates and multiplayer developments.
span(data-i18n="account_settings.ambassador_desc").help-inline Get emails on support updates and multiplayer developments.
button.btn#toggle-all-button(data-i18n="account_settings.email_toggle") Toggle All

View file

@ -2,18 +2,18 @@ extends /templates/base
block content
h3 Admin Views
h3(data-i18n="admin.av_title") Admin Views
h4 Entities
h4(data-i18n="admin.av_entities_sub_title") Entities
ul
li
a(href='/admin/users') Users
a(href="/admin/users", data-i18n="admin.av_entities_users_url") Users
li
a(href='/admin/level_sessions') Active Instances
a(href="/admin/level_sessions", data-i18n="admin.av_entities_active_instances_url") Active Instances
h4 Other
h4(data-i18n="admin.av_other_sub_title") Other
ul
li
a(href='/admin/base') Base (for debugging base.jade)
a(href="/admin/base", data-i18n="admin.av_other_debug_base_url") Base (for debugging base.jade)

View file

@ -2,7 +2,7 @@ extends /templates/base
block content
h1 Latest Games
h1(data-i18n="admin.lg_title") Latest Games
each session in sessions
- var url = '/play/level/'+session.get('levelID')+'?session='+session.id

View file

@ -2,7 +2,7 @@ extends /templates/base
block content
h1 User List
h1(data-i18n="admin.u_title") User List
table.table.table-striped.table-bordered.table-condensed#users
tbody

View file

@ -11,49 +11,73 @@ block content
.class_image
img(src="/images/pages/contribute/adventurer.png", alt="")
h2 Adventurer (Level Playtester)
p Let's be clear about your role: you are the tank. You're going to take heavy damage.
h2
span(data-i18n="account_settings.adventurer_title_pref") Adventurer
span
span(data-i18n="account_settings.adventurer_title_suf") (Level Playtester)
p(data-i18n="account_settings.adventurer_introduction")
| Let's be clear about your role: you are the tank. You're going to take heavy damage.
| We need people to try out brand-new levels and help identify how to make things better.
| The pain will be enormous; making good games is a long process and no one gets
| it right the first time.
| If you can endure and have a high constitution score, then this class might be for you.
h4 Class Attributes
h4(data-i18n="contribute.class_attributes") Class Attributes
ul
li A thirst for learning. You want to learn how to code and we want to teach you how to code.
li(data-i18n="account_settings.adventurer_attribute_1")
| A thirst for learning. You want to learn how to code and we want to teach you how to code.
| You'll probably be doing most of the teaching in this case, though.
li Charismatic. Be gentle but articulate about what needs improving, and offer suggestions
li(data-i18n="account_settings.adventurer_attribute_2")
| Charismatic. Be gentle but articulate about what needs improving, and offer suggestions
| on how to improve.
h4 How To Join
p Either get together with (or recruit!) an Artisan and work with them, or
| check the box below to receive emails when there are new levels to test.
| We'll also be posting about levels to review on our networks like
a(href="http://discourse.codecombat.com/category/adventurer") our forum
| ,
a(href="https://www.facebook.com/codecombat") Facebook
| ,
a(href="https://twitter.com/CodeCombat") Twitter
| , and
a(href="https://plus.google.com/115285980638641924488/posts") Google+
| , so if you prefer to be notified those ways, sign up there!
h4(data-i18n="contribute.how_to_join") How To Join
p
span(data-i18n="contribute.adventurer_join_pref")
| Either get together with (or recruit!) an Artisan and work with them, or
| check the box below to receive emails when there are new levels to test.
| We'll also be posting about levels to review on our networks like
span
a(href="http://discourse.codecombat.com/category/adventurer", data-i18n="contribute.adventurer_forum_url")
| our forum
span ,
a(href="https://www.facebook.com/codecombat", data-i18n="contribute.adventurer_facebook_url")
| Facebook
span ,
a(href="https://twitter.com/CodeCombat", data-i18n="contribute.adventurer_twitter_url")
| Twitter
span , and
a(href="https://plus.google.com/115285980638641924488/posts", data-i18n="contribute.adventurer_gplus_url")
| Google+
span ,
span(data-i18n="contribute.adventurer_join_suf")
| so if you prefer to be notified those ways, sign up there!
if me.attributes.anonymous
div#sign-up.alert.alert-info
strong Hey there!
| To subscribe for class emails, you'll need to
a(data-toggle="coco-modal", data-target="modal/signup") create an account
| first .
strong(data-i18n="contribute.alert_account_message_intro")
| Hey there!
span
span(data-i18n="contribute.alert_account_message_pref")
| To subscribe for class emails, you'll need to
a(data-toggle="coco-modal", data-target="modal/signup", data-i18n="contribute.alert_account_message_create_url")
| create an account
span
span(data-i18n="contribute.alert_account_message_suf")
| first.
label.checkbox(for="tester").well
input(type='checkbox', name="tester", id="tester")
| Get emails when there are new levels to test.
span(data-i18n="contribute.adventurer_subscribe_desc")
| Get emails when there are new levels to test.
.saved-notification ✓ Saved
h4 Changes are saved automatically when you toggle checkboxes.
h4(data-i18n="contribute.changes_auto_save")
| Changes are saved automatically when you toggle checkboxes.
#Contributors
h3 Our Brave Adventurers:
h3(data-i18n="contribute.brave_adventurers")
| Our Brave Adventurers:
ul.adventurers
li Kieizroe

View file

@ -11,43 +11,62 @@ block content
.class_image
img(src="/images/pages/contribute/ambassador.png", alt="")
h2 Ambassador (Support)
p This is a community we're building, and you are the connections.
h2
span(data-i18n="account_settings.ambassador_title_pref") Ambassador
span
span(data-i18n="account_settings.ambassador_title_suf") (Support)
p(data-i18n="contribute.ambassador_introduction")
| This is a community we're building, and you are the connections.
| We've got Olark chats, emails, and social networks with lots of people to talk with
| and help get acquainted with the game and learn from.
| If you want to help people get involved and have fun, and get a good feel of the pulse of
| CodeCombat and where we're going, then this class might be for you.
h4 Class Attributes
h4(data-i18n="contribute.class_attributes") Class Attributes
ul
li Communication skills. Be able to identify the problems players are having
li(data-i18n="contribute.ambassador_attribute_1")
| Communication skills. Be able to identify the problems players are having
| and help them solve them. Also, keep the rest of us informed about what
| players are saying, what they like and don't like and want more of!
h4 How to Join
h4(data-i18n="contribute.how_to_join") How to Join
p
a(title='Contact', tabindex=-1, data-toggle="coco-modal", data-target="modal/contact") Contact us
| , tell us a little about yourself, what you've done and what you'd
| be interested in doing. We'll go from there!
a(title='Contact', tabindex=-1, data-toggle="coco-modal", data-target="modal/contact", data-i18n="contact_us_url")
| Contact us
span ,
span(data-i18n="contribute.ambassador_join_desc")
| tell us a little about yourself, what you've done and what you'd
| be interested in doing. We'll go from there!
p
strong Note
| : One of our top priorities is to build multiplayer where players having difficulty
| solving levels can summon higher level wizards to help them.
| This will be a great way for ambassadors to do their thing. We'll keep you posted!
strong(data-i18n="contribute.ambassador_join_note_strong")
| Note
span :
span(data-i18n="contribute.ambassador_join_note_desc")
| One of our top priorities is to build multiplayer where players having difficulty
| solving levels can summon higher level wizards to help them.
| This will be a great way for ambassadors to do their thing. We'll keep you posted!
if me.attributes.anonymous
div#sign-up.alert.alert-info
strong Hey there!
| To subscribe for class emails, you'll need to
a(data-toggle="coco-modal", data-target="modal/signup") create an account
| first .
strong(data-i18n="contribute.alert_account_message_intro")
| Hey there!
span
span(data-i18n="contribute.alert_account_message_pref")
| To subscribe for class emails, you'll need to
a(data-toggle="coco-modal", data-target="modal/signup", data-i18n="contribute.alert_account_message_create_url")
| create an account
span
span(data-i18n="contribute.alert_account_message_suf")
| first.
label.checkbox(for="support").well
input(type='checkbox', name="support", id="support")
| Get emails on support updates and multiplayer developments.
span(data-i18n="contribute.ambassador_subscribe_desc")
| Get emails on support updates and multiplayer developments.
.saved-notification ✓ Saved
h4 Changes are saved automatically when you toggle checkboxes.
h4(data-i18n="contribute.changes_auto_save")
| Changes are saved automatically when you toggle checkboxes.
div.clearfix

View file

@ -11,62 +11,82 @@ block content
.class_image
img(src="/images/pages/contribute/archmage.png", alt="")
h2 Archmage (Coder)
p One of the best parts about building games is they synthesize so many different things.
h2
span(data-i18n="account_settings.archmage_title_pref") Archmage
span
span(data-i18n="account_settings.archmage_title_suf") (Coder)
p(data-i18n="contribute.archmage_introduction")
| One of the best parts about building games is they synthesize so many different things.
| Graphics, sound, real-time networking, social networking, and of course many of the
| more common aspects of programming, from low-level database management,
| and server administration to user facing design and interface building.
| There's a lot to do, and if you're an experienced programmer with a hankering
| to really dive into the nitty-gritty of CodeCombat, this class might be for you.
| We would love to have your help building the best programming game ever.
p Right now we have open-sourced two of our tools on the project:
a(href="https://github.com/codecombat/aether") Aether
| and
a(href="https://github.com/codecombat/treema") Treema
| . We are also open sourcing everything momentarily, so stay tuned for access to the main repo!
| We would love to have your help building out the best programming game ever.
h4 Class Attributes
h4(data-i18n="contribute.class_attributes") Class Attributes
ul
li Knowledge in
li
span(data-i18n="contribute.archmage_attribute_1_pref") Knowledge in
a(href="http://coffeescript.org/") CoffeeScript
| , or a desire to learn. Most of our code is in this language.
| If you're a fan of Ruby or Python, you'll feel right at home.
| It's just JavaScript, but with a nicer syntax.
li Some experience in programming and personal initiative.
span(data-i18n="contribute.archmage_attribute_1_suf")
| , or a desire to learn. Most of our code is in this language.
| If you're a fan of Ruby or Python, you'll feel right at home.
| It's just JavaScript, but with a nicer syntax.
li(data-i18n="contribute.archmage_attribute_2")
| Some experience in programming and personal initiative.
| We'll help you get oriented, but we can't spend much time training you.
h4 How To Join
h4(data-i18n="contribute.how_to_join") How To Join
p
| Anyone can help out! Just check out our
a(title='GitHub', tabindex=-1) GitHub
| to get started, and check the box below to mark yourself as a brave Archmage.
| Want to chat about what to do or how to get more deeply involved?
a(title='Contact', tabindex=-1, data-toggle="coco-modal", data-target="modal/contact") Contact us
| , tell us a little about yourself, what you've done and what you'd
| be interested in working on. We'll go from there!
span(data-i18n="contribute.join_desc_1")
| Anyone can help out! Just check out our
a(title='GitHub', href="https://github.com/codecombat/codecombat", tabindex=-1, data-i18n="contribute.join_url_github")
| GitHub
span
span(data-i18n="contribute.join_desc_2")
| to get started, and check the box below to mark yourself as a brave Archmage and get the latest news by email.
| Want to chat about what to do or how to get more deeply involved?
a(title='Contact', tabindex=-1, data-toggle="coco-modal", data-target="modal/contact", data-i18n="contribute.join_url_email")
| Email us
span(data-i18n="contribute.join_desc_3")
| , or find us in our
a(href="http://www.hipchat.com/g3plnOKqa", data-i18n="contribute.join_url_hipchat") public HipChat room
span
span(data-i18n="contribute.join_desc_4")
| and we'll go from there!
if me.attributes.anonymous
div#sign-up.alert.alert-info
strong Hey there!
| To subscribe for class emails, you'll need to
a(data-toggle="coco-modal", data-target="modal/signup") create an account
| first .
strong(data-i18n="contribute.alert_account_message_intro")
| Hey there!
span
span(data-i18n="contribute.alert_account_message_pref")
| To subscribe for class emails, you'll need to
a(data-toggle="coco-modal", data-target="modal/signup", data-i18n="contribute.alert_account_message_create_url")
| create an account
span
span(data-i18n="contribute.alert_account_message_suf")
| first.
label.checkbox(for="developer").well
input(type='checkbox', name="developer", id="developer")
input(type='checkbox', name="developer", id="developer")
span(data-i18n="contribute.archmage_subscribe_desc")
| Get emails on new coding opportunities and announcements.
.saved-notification ✓ Saved
.saved-notification ✓ Saved
h4 Changes are saved automatically when you toggle checkboxes.
h4(data-i18n="contribute.changes_auto_save")
| Changes are saved automatically when you toggle checkboxes.
#Contributors
h3 Our Magical Archmages:
h3(data-i18n="contribute.magical_archmages")
| Our Magical Archmages:
ul.archmages
li David Golds
li Zach Martin
li Tom Steinbrecher
li Glen De Cauwsemaecker
li Mischa Lewis-Norelle
li Sébastien Moratinos
li Chloe Fan

View file

@ -11,49 +11,76 @@ block content
.class_image
img(src="/images/pages/contribute/artisan.png", alt="")
h2 Artisan (Level Builder)
p We must construct additional levels!
| People be clamoring for more content, and we can only build so many ourselves.
| Right now your workstation is level one; our level editor is barely
| usable even by its creators, so be wary.
| If you have visions of campaigns spanning for-loops to
a(href="http://stackoverflow.com/questions/758088/seeking-contrived-example-code-continuations/758105#758105") Mondo Bizzaro
| to then this class might be for you.
h2
span(data-i18n="account_settings.artisan_title_pref") Artisan
span
span(data-i18n="account_settings.artisan_title_suf") (Level Builder)
p
span(data-i18n="contribute.artisan_introduction_pref")
| We must construct additional levels!
| People be clamoring for more content, and we can only build so many ourselves.
| Right now your workstation is level one; our level editor is barely
| usable even by its creators, so be wary.
| If you have visions of campaigns spanning for-loops to
span
a(href="http://stackoverflow.com/questions/758088/seeking-contrived-example-code-continuations/758105#758105")
| Mondo Bizzaro
span
span(data-i18n="contribute.artisan_introduction_suf")
| to then this class might be for you.
h4 Class Attributes
h4(data-i18n="contribute.class_attributes") Class Attributes
ul
li Any experience in building content like this would be nice, such as using
li(data-i18n="contribute.artisan_attribute_1")
| Any experience in building content like this would be nice, such as using
| Blizzard's level editors. But not required!
li A hankering to do a whole lot of testing and iteration.
li(data-i18n="contribute.artisan_attribute_2")
| A hankering to do a whole lot of testing and iteration.
| To make good levels, you need to take it to others and watch them play it,
| and be prepared to find a lot of things to fix.
li For the time being, endurance en par with an Adventurer.
li(data-i18n="contribute.artisan_attribute_3")
| For the time being, endurance en par with an Adventurer.
| Our Level Editor is super preliminary and frustrating to use. You have been warned!
h4 How To Join
p The Level Editor is live! Go forth and fiddle with it.
| Right now for the sake of security, you can't make Components (the most powerful part of level building)
| but be in touch with us and we'll see if we can make what you need.
| See the
a(href="https://docs.google.com/document/d/117tMcL95T1KY8BDisr0iGi5Frb2ZvBJTC0us5hyQkJY/edit?usp=sharing") preliminary documentation
| for more info, and please comment on it so we can make the whole system better.
h4(data-i18n="contribute.how_to_join") How To Join
p
span(data-i18n="contribute.artisan_join_desc_pref")
| The Level Editor is live! Go forth and fiddle with it.
| Right now for the sake of security, you can't make Components (the most powerful part of level building)
| but be in touch with us and we'll see if we can make what you need.
| See the
span
a(href="https://docs.google.com/document/d/117tMcL95T1KY8BDisr0iGi5Frb2ZvBJTC0us5hyQkJY/edit?usp=sharing", data-i18n="contribute.artisan_url_documentation")
| preliminary documentation
span
span(data-i18n="contribute.artisan_join_desc_suf")
| for more info, and please comment on it so we can make the whole system better.
if me.attributes.anonymous
div#sign-up.alert.alert-info
strong Hey there!
| To subscribe for class emails, you'll need to
a(data-toggle="coco-modal", data-target="modal/signup") create an account
| first .
strong(data-i18n="contribute.alert_account_message_intro")
| Hey there!
span
span(data-i18n="contribute.alert_account_message_pref")
| To subscribe for class emails, you'll need to
a(data-toggle="coco-modal", data-target="modal/signup", data-i18n="contribute.alert_account_message_create_url")
| create an account
span
span(data-i18n="contribute.alert_account_message_suf")
| first.
label.checkbox(for="level_creator").well
input(type='checkbox', name="level_creator", id="level_creator")
| Get emails on level editor updates and announcements.
span(data-i18n="contribute.artisan_subscribe_desc")
| Get emails on level editor updates and announcements.
.saved-notification ✓ Saved
h4 Changes are saved automatically when you toggle checkboxes.
h4(data-i18n="contribute.changes_auto_save")
| Changes are saved automatically when you toggle checkboxes.
#Contributors
h3 Our Creative Artisans:
h3(data-i18n="contribute.creative_artisans")
| Our Creative Artisans:
ul.artisans
li Sootn
li Zach Martin

View file

@ -9,40 +9,57 @@ block content
div#contribute-main.class-main
div#intro
h2 Contributing
h2(data-i18n="contribute.page_title") Contributing
#homepage_screenshot
img(src="/images/pages/contribute/contribute_header.png", alt="")
p
strong We have high hopes for CodeCombat.
| We want to be where programmers of all stripes come to learn and play together,
| introduce others to the wonderful world of coding,
| and reflect the best parts of the community.
| We can't and don't want to do that alone;
| what makes projects like GitHub, Stack Overflow and Linux great are the people who
| use them and build on them.
| To that end,
a(href="https://github.com/codecombat/codecombat") CodeCombat is totally open source
| , and we aim to provide as many ways as possible for you to take part and
| make this project as much yours as ours.
p We hope you'll join our party!
p.signature - Nick, George, Scott, Michael, and Jeremy
strong(data-i18n="contribute.introduction_desc_intro")
| We have high hopes for CodeCombat.
|
span(data-i18n="contribute.introduction_desc_pref")
| We want to be where programmers of all stripes come to learn and play together,
| introduce others to the wonderful world of coding,
| and reflect the best parts of the community.
| We can't and don't want to do that alone;
| what makes projects like GitHub, Stack Overflow and Linux great are the people who
| use them and build on them.
| To that end,
a(href="https://github.com/codecombat/codecombat", data-i18n="contribute.introduction_desc_github_url")
| CodeCombat is totally open source
span(data-i18n="contribute.introduction_desc_suf")
| , and we aim to provide as many ways as possible for you to take part and
| make this project as much yours as ours.
p(data-i18n="contribute.introduction_desc_ending")
| We hope you'll join our party!
p(data-i18n="contribute.introduction_desc_signature").signature
| - Nick, George, Scott, Michael, and Jeremy
hr
if me.attributes.anonymous
div#sign-up.alert.alert-info
strong Hey there!
| To subscribe for class emails, you'll need to
a(data-toggle="coco-modal", data-target="modal/signup") create an account
| first .
strong(data-i18n="contribute.alert_account_message_intro")
| Hey there!
span
span(data-i18n="contribute.alert_account_message_pref")
| To subscribe for class emails, you'll need to
a(data-toggle="coco-modal", data-target="modal/signup", data-i18n="contribute.alert_account_message_create_url")
| create an account
span
span(data-i18n="contribute.alert_account_message_suf")
| first.
#archmage
.class_image.header-scrolling-fix
img(src="/images/pages/contribute/archmage.png", alt="")
h3.header-scrolling-fix Archmage (Coder)
p One of the best parts about building games is they synthesize so many different things.
h3.header-scrolling-fix
span(data-i18n="account_settings.archmage_title_pref") Archmage
span
span(data-i18n="account_settings.archmage_title_suf") (Coder)
p(data-i18n="contribute.archmage_introduction")
| One of the best parts about building games is they synthesize so many different things.
| Graphics, sound, real-time networking, social networking, and of course many of the
| more common aspects of programming, from low-level database management,
| and server administration to user facing design and interface building.
@ -50,34 +67,47 @@ block content
| to really dive into the nitty-gritty of CodeCombat, this class might be for you.
| We would love to have your help building the best programming game ever.
h4 Class Attributes
h4(data-i18n="contribute.class_attributes") Class Attributes
ul
li Knowledge in
li
span(data-i18n="contribute.archmage_attribute_1_pref") Knowledge in
a(href="http://coffeescript.org/") CoffeeScript
| , or a desire to learn. Most of our code is in this language.
| If you're a fan of Ruby or Python, you'll feel right at home.
| It's just JavaScript, but with a nicer syntax.
li Some experience in programming and personal initiative.
span(data-i18n="contribute.archmage_attribute_1_suf")
| , or a desire to learn. Most of our code is in this language.
| If you're a fan of Ruby or Python, you'll feel right at home.
| It's just JavaScript, but with a nicer syntax.
li(data-i18n="contribute.archmage_attribute_2")
| Some experience in programming and personal initiative.
| We'll help you get oriented, but we can't spend much time training you.
h4 How To Join
h4(data-i18n="contribute.how_to_join") How To Join
p
| Anyone can help out! Just check out our
a(title='GitHub', href="https://github.com/codecombat/codecombat", tabindex=-1) GitHub
| to get started, and check the box below to mark yourself as a brave Archmage and get the latest news by email.
| Want to chat about what to do or how to get more deeply involved?
a(title='Contact', tabindex=-1, data-toggle="coco-modal", data-target="modal/contact") Email us
| , or find us in our
a(href="http://www.hipchat.com/g3plnOKqa") public HipChat room
| and we'll go from there!
span(data-i18n="contribute.join_desc_1")
| Anyone can help out! Just check out our
a(title='GitHub', href="https://github.com/codecombat/codecombat", tabindex=-1, data-i18n="contribute.join_url_github")
| GitHub
span
span(data-i18n="contribute.join_desc_2")
| to get started, and check the box below to mark yourself as a brave Archmage and get the latest news by email.
| Want to chat about what to do or how to get more deeply involved?
a(title='Contact', tabindex=-1, data-toggle="coco-modal", data-target="modal/contact", data-i18n="contribute.join_url_email")
| Email us
span(data-i18n="contribute.join_desc_3")
| , or find us in our
a(href="http://www.hipchat.com/g3plnOKqa", data-i18n="contribute.join_url_hipchat") public HipChat room
span
span(data-i18n="contribute.join_desc_4")
| and we'll go from there!
a(href="/contribute/archmage")
h3 Learn More About Becoming A Powerful Archmage
h3(data-i18n="contribute.more_about_archmage")
| Learn More About Becoming A Powerful Archmage
label.checkbox(for="developer").well
input(type='checkbox', name="developer", id="developer")
| Get emails on new coding opportunities and announcements.
span(data-i18n="contribute.archmage_subscribe_desc")
| Get emails on new coding opportunities and announcements.
.saved-notification ✓ Saved
@ -86,115 +116,163 @@ block content
.class_image.header-scrolling-fix
img(src="/images/pages/contribute/artisan.png", alt="")
h3.header-scrolling-fix Artisan (Level Builder)
p We must construct additional levels!
| People be clamoring for more content, and we can only build so many ourselves.
| Right now your workstation is level one; our level editor is barely
| usable even by its creators, so be wary.
| If you have visions of campaigns spanning for-loops to
a(href="http://stackoverflow.com/questions/758088/seeking-contrived-example-code-continuations/758105#758105") Mondo Bizzaro
| to then this class might be for you.
h3.header-scrolling-fix
span(data-i18n="account_settings.artisan_title_pref") Artisan
span
span(data-i18n="account_settings.artisan_title_suf") (Level Builder)
p
span(data-i18n="contribute.artisan_introduction_pref")
| We must construct additional levels!
| People be clamoring for more content, and we can only build so many ourselves.
| Right now your workstation is level one; our level editor is barely
| usable even by its creators, so be wary.
| If you have visions of campaigns spanning for-loops to
span
a(href="http://stackoverflow.com/questions/758088/seeking-contrived-example-code-continuations/758105#758105")
| Mondo Bizzaro
span
span(data-i18n="contribute.artisan_introduction_suf")
| to then this class might be for you.
h4 Class Attributes
h4(data-i18n="contribute.class_attributes") Class Attributes
ul
li Any experience in building content like this would be nice, such as using
li(data-i18n="contribute.artisan_attribute_1")
| Any experience in building content like this would be nice, such as using
| Blizzard's level editors. But not required!
li A hankering to do a whole lot of testing and iteration.
li(data-i18n="contribute.artisan_attribute_2")
| A hankering to do a whole lot of testing and iteration.
| To make good levels, you need to take it to others and watch them play it,
| and be prepared to find a lot of things to fix.
li For the time being, endurance en par with an Adventurer.
li(data-i18n="contribute.artisan_attribute_3")
| For the time being, endurance en par with an Adventurer.
| Our Level Editor is super preliminary and frustrating to use. You have been warned!
h4 How To Join
p The Level Editor is live! Go forth and fiddle with it.
| Right now for the sake of security, you can't make Components (the most powerful part of level building)
| but be in touch with us and we'll see if we can make what you need.
| See the
a(href="https://docs.google.com/document/d/117tMcL95T1KY8BDisr0iGi5Frb2ZvBJTC0us5hyQkJY/edit?usp=sharing") preliminary documentation
| for more info, and please comment on it so we can make the whole system better.
h4(data-i18n="contribute.how_to_join") How To Join
p
span(data-i18n="contribute.artisan_join_desc_pref")
| The Level Editor is live! Go forth and fiddle with it.
| Right now for the sake of security, you can't make Components (the most powerful part of level building)
| but be in touch with us and we'll see if we can make what you need.
| See the
span
a(href="https://docs.google.com/document/d/117tMcL95T1KY8BDisr0iGi5Frb2ZvBJTC0us5hyQkJY/edit?usp=sharing", data-i18n="contribute.artisan_url_documentation")
| preliminary documentation
span
span(data-i18n="contribute.artisan_join_desc_suf")
| for more info, and please comment on it so we can make the whole system better.
a(href="/contribute/artisan")
h3 Learn More About Becoming A Creative Artisan
h3(data-i18n="contribute.more_about_artisan")
| Learn More About Becoming A Creative Artisan
label.checkbox(for="level_creator").well
input(type='checkbox', name="level_creator", id="level_creator")
| Get emails on level editor updates and announcements.
span(data-i18n="contribute.artisan_subscribe_desc")
| Get emails on level editor updates and announcements.
.saved-notification ✓ Saved
#adventurer
.class_image.header-scrolling-fix
img(src="/images/pages/contribute/adventurer.png", alt="")
h3.header-scrolling-fix Adventurer (Level Playtester)
p Let's be clear about your role: you are the tank. You're going to take heavy damage.
h3.header-scrolling-fix
span(data-i18n="account_settings.adventurer_title_pref") Adventurer
span
span(data-i18n="account_settings.adventurer_title_suf") (Level Playtester)
p(data-i18n="account_settings.adventurer_introduction")
| Let's be clear about your role: you are the tank. You're going to take heavy damage.
| We need people to try out brand-new levels and help identify how to make things better.
| The pain will be enormous; making good games is a long process and no one gets
| it right the first time.
| If you can endure and have a high constitution score, then this class might be for you.
h4 Class Attributes
h4(data-i18n="contribute.class_attributes") Class Attributes
ul
li A thirst for learning. You want to learn how to code and we want to teach you how to code.
li(data-i18n="account_settings.adventurer_attribute_1")
| A thirst for learning. You want to learn how to code and we want to teach you how to code.
| You'll probably be doing most of the teaching in this case, though.
li Charismatic. Be gentle but articulate about what needs improving, and offer suggestions
li(data-i18n="account_settings.adventurer_attribute_2")
| Charismatic. Be gentle but articulate about what needs improving, and offer suggestions
| on how to improve.
h4 How To Join
p Either get together with (or recruit!) an Artisan and work with them, or
| check the box below to receive emails when there are new levels to test.
| We'll also be posting about levels to review on our networks like
a(href="http://discourse.codecombat.com/category/adventurer") our forum
| ,
a(href="https://www.facebook.com/codecombat") Facebook
| ,
a(href="https://twitter.com/CodeCombat") Twitter
| , and
a(href="https://plus.google.com/115285980638641924488/posts") Google+
| , so if you prefer to be notified those ways, sign up there!
h4(data-i18n="contribute.how_to_join") How To Join
p
span(data-i18n="contribute.adventurer_join_pref")
| Either get together with (or recruit!) an Artisan and work with them, or
| check the box below to receive emails when there are new levels to test.
| We'll also be posting about levels to review on our networks like
span
a(href="http://discourse.codecombat.com/category/adventurer", data-i18n="contribute.adventurer_forum_url")
| our forum
span ,
a(href="https://www.facebook.com/codecombat", data-i18n="contribute.adventurer_facebook_url")
| Facebook
span ,
a(href="https://twitter.com/CodeCombat", data-i18n="contribute.adventurer_twitter_url")
| Twitter
span , and
a(href="https://plus.google.com/115285980638641924488/posts", data-i18n="contribute.adventurer_gplus_url")
| Google+
span ,
span(data-i18n="contribute.adventurer_join_suf")
| so if you prefer to be notified those ways, sign up there!
a(href="/contribute/adventurer")
h3 Learn More About Becoming A Brave Adventurer
h3(data-i18n="contribute.more_about_adventurer")
| Learn More About Becoming A Brave Adventurer
label.checkbox(for="tester").well
input(type='checkbox', name="tester", id="tester")
| Get emails when there are new levels to test.
span(data-i18n="contribute.adventurer_subscribe_desc")
| Get emails when there are new levels to test.
.saved-notification ✓ Saved
#scribe
.class_image.header-scrolling-fix
img(src="/images/pages/contribute/scribe.png", alt="")
h3.header-scrolling-fix Scribe (Article Editor)
p CodeCombat isn't just going to be a bunch of levels.
| It will also include a resource for knowledge, a wiki of programming concepts that levels can hook into.
| That way rather than each Artisan having to describe in detail what a comparison operator is, they
| can simply link their level to the Article describing them that is already written for the player's edification.
| Something along the lines of what the
a(href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide") Mozilla Developer Network
| has built. If your idea of fun is articulating the concepts of programming in Markdown form,
| then this class might be for you.
h3.header-scrolling-fix
span(data-i18n="account_settings.scribe_title_pref") Scribe
span
span(data-i18n="account_settings.scribe_title_suf") (Article Editor)
p
span(data-i18n="account_settings.scribe_introduction_pref")
| CodeCombat isn't just going to be a bunch of levels.
| It will also include a resource for knowledge, a wiki of programming concepts that levels can hook into.
| That way rather than each Artisan having to describe in detail what a comparison operator is, they
| can simply link their level to the Article describing them that is already written for the player's edification.
| Something along the lines of what the
a(href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide", data-i18n="contribute.scribe_introduction_url_mozilla")
| Mozilla Developer Network
span(data-i18n="account_settings.scribe_introduction_suf")
| has built. If your idea of fun is articulating the concepts of programming in Markdown form,
| then this class might be for you.
h4 Class Attributes
h4(data-i18n="contribute.class_attributes") Class Attributes
ul
li Skill in words is pretty much all you need.
li(data-i18n="contribute.scribe_attribute_1")
| Skill in words is pretty much all you need.
| Not only grammar and spelling, but able to convey complicated ideas to others.
h4 How To Join
h4(data-i18n="contribute.how_to_join") How To Join
p
a(title='Contact', tabindex=-1, data-toggle="coco-modal", data-target="modal/contact") Contact us
| , tell us a little about yourself, your experience with programming and
| what sort of things you'd like to write about. We'll go from there!
a(title='Contact', tabindex=-1, data-toggle="coco-modal", data-target="modal/contact", data-i18n="contribute.contact_us_url")
| Contact us
span ,
span(data-i18n="contribute.scribe_join_description")
| tell us a little about yourself, your experience with programming and
| what sort of things you'd like to write about. We'll go from there!
a(href="/contribute/scribe")
h3 Learn More About Becoming A Diligent Scribe
h3(data-i18n="contribute.more_about_scribe")
| Learn More About Becoming A Diligent Scribe
label.checkbox(for="article_editor").well
input(type='checkbox', name="article_editor", id="article_editor")
| Get emails about article writing announcements.
span(data-i18n="contribute.scribe_subscribe_desc")
| Get emails about article writing announcements.
.saved-notification ✓ Saved
@ -204,82 +282,113 @@ block content
.class_image.header-scrolling-fix
img(src="/images/pages/contribute/diplomat.png", alt="")
h3.header-scrolling-fix Diplomat (Translator)
p So, if there's one thing we learned from the
a(href="blog.codecombat.com/post/64658141307/codecombat-in-y-combinator") launch in October
| , it's that there
| is sizeable interest in CodeCombat in other countries, particularly Brazil!
| We're building a corps of translators eager to turn one set of words into
| another set of words to get CodeCombat as accessible across the world as possible.
| If you like getting sneak peeks at upcoming content and getting these levels to
| your fellow nationals ASAP, then this class might be for you.
h3.header-scrolling-fix
span(data-i18n="account_settings.diplomat_title_pref") Diplomat
span
span(data-i18n="account_settings.diplomat_title_suf") (Translator)
p
span(data-i18n="contribute.diplomat_introduction_pref")
| So, if there's one thing we learned from the
a(href="blog.codecombat.com/post/64658141307/codecombat-in-y-combinator", data-i18n="contribute.diplomat_launch_url")
| launch in October
span ,
span(data-i18n="contribute.diplomat_introduction_suf")
| it's that there
| is sizeable interest in CodeCombat in other countries, particularly Brazil!
| We're building a corps of translators eager to turn one set of words into
| another set of words to get CodeCombat as accessible across the world as possible.
| If you like getting sneak peeks at upcoming content and getting these levels to
| your fellow nationals ASAP, then this class might be for you.
h4 Class Attributes
h4(data-i18n="contribute.class_attributes") Class Attributes
ul
li Fluency in English and the language you would like to translate to.
li(data-i18n="contribute.diplomat_attribute_1")
| Fluency in English and the language you would like to translate to.
| When conveying complicated ideas, it's important to have a strong grasp in both!
h4 How to Join
p We've started a lot of initial translations at
a(href="https://docs.google.com/a/codecombat.com/spreadsheet/ccc?key=0AjsR1nOoMQ4MdFBqS1NqUmRTVG1hbEMxWTZEd1JrNXc&usp=drive_web#gid=0") this Google Doc
| , so check it out and add things for your language. Also, check this box below to
| keep up-to-date on new internationalization developments!
h4(data-i18n="contribute.how_to_join") How to Join
p
span(data-i18n="contribute.diplomat_join_pref")
| We've started a lot of initial translations at
a(href="https://docs.google.com/a/codecombat.com/spreadsheet/ccc?key=0AjsR1nOoMQ4MdFBqS1NqUmRTVG1hbEMxWTZEd1JrNXc&usp=drive_web#gid=0", data-i18n="contribute.diplomat_doc_url")
| this Google Doc
span ,
span(data-i18n="contribute.diplomat_join_suf")
| so check it out and add things for your language. Also, check this box below to
| keep up-to-date on new internationalization developments!
a(href="/contribute/diplomat")
h3 Learn More About Becoming A Great Diplomat
h3(data-i18n="contribute.more_about_diplomat")
| Learn More About Becoming A Great Diplomat
label.checkbox(for="translator").well
input(type='checkbox', name="translator", id="translator")
| Get emails about i18n developments and levels to translate.
span(data-i18n="contribute.diplomat_subscribe_desc")
| Get emails about i18n developments and levels to translate.
.saved-notification ✓ Saved
#ambassador
.class_image.header-scrolling-fix
img(src="/images/pages/contribute/ambassador.png", alt="")
h3.header-scrolling-fix Ambassador (Support)
p This is a community we're building, and you are the connections.
h3.header-scrolling-fix
span(data-i18n="account_settings.ambassador_title_pref") Ambassador
span
span(data-i18n="account_settings.ambassador_title_suf") (Support)
p(data-i18n="contribute.ambassador_introduction")
| This is a community we're building, and you are the connections.
| We've got Olark chats, emails, and social networks with lots of people to talk with
| and help get acquainted with the game and learn from.
| If you want to help people get involved and have fun, and get a good feel of the pulse of
| CodeCombat and where we're going, then this class might be for you.
h4 Class Attributes
h4(data-i18n="contribute.class_attributes") Class Attributes
ul
li Communication skills. Be able to identify the problems players are having
li(data-i18n="contribute.ambassador_attribute_1")
| Communication skills. Be able to identify the problems players are having
| and help them solve them. Also, keep the rest of us informed about what
| players are saying, what they like and don't like and want more of!
h4 How to Join
h4(data-i18n="contribute.how_to_join") How to Join
p
a(title='Contact', tabindex=-1, data-toggle="coco-modal", data-target="modal/contact") Contact us
| , tell us a little about yourself, what you've done and what you'd
| be interested in doing. We'll go from there!
a(title='Contact', tabindex=-1, data-toggle="coco-modal", data-target="modal/contact", data-i18n="contact_us_url")
| Contact us
span ,
span(data-i18n="contribute.ambassador_join_desc")
| tell us a little about yourself, what you've done and what you'd
| be interested in doing. We'll go from there!
p
strong Note
| : One of our top priorities is to build multiplayer where players having difficulty
| solving levels can summon higher level wizards to help them.
| This will be a great way for ambassadors to do their thing. We'll keep you posted!
strong(data-i18n="contribute.ambassador_join_note_strong")
| Note
span :
span(data-i18n="contribute.ambassador_join_note_desc")
| One of our top priorities is to build multiplayer where players having difficulty
| solving levels can summon higher level wizards to help them.
| This will be a great way for ambassadors to do their thing. We'll keep you posted!
a(href="/contribute/ambassador")
h3 Learn More About Becoming A Helpful Ambassador
h3(data-i18n="contribute.more_about_ambassador")
| Learn More About Becoming A Helpful Ambassador
label.checkbox(for="support").well
input(type='checkbox', name="support", id="support")
| Get emails on support updates and multiplayer developments.
span(data-i18n="contribute.ambassador_subscribe_desc")
| Get emails on support updates and multiplayer developments.
.saved-notification ✓ Saved
#counselor
.class_image.header-scrolling-fix
img(src="/images/pages/contribute/counselor.png", alt="")
h3.header-scrolling-fix Counselor (Expert)
p Do you have life experience?
h3.header-scrolling-fix
span(data-i18n="account_settings.counselor_title_pref") Counselor
span
span(data-i18n="account_settings.counselor_title_suf") (Expert/Teacher)
p(data-i18n="contribute.counselor_introduction_1")
| Do you have life experience?
| A different perspective on things that can help us decide how to shape CodeCombat?
| Of all these roles, this will probably take the least time, but
| individually you may make the most difference.
@ -287,23 +396,30 @@ block content
| game development, open source project management, technical recruiting, entrepreneurship,
| or design.
p Or really anything that is relevant to the development of CodeCombat.
p(data-i18n="contribute.counselor_introduction_2")
| Or really anything that is relevant to the development of CodeCombat.
| If you have knowledge and want to share it to help grow this project, then
| this class might be for you.
h4 Class Attributes
h4(data-i18n="contribute.class_attributes") Class Attributes
ul
li Experience, in any of the areas above or something you think might be helpful.
li A little bit of free time!
li(data-i18n="contribute.counselor_attribute_1")
| Experience, in any of the areas above or something you think might be helpful.
li(data-i18n="contribute.counselor_attribute_2")
| A little bit of free time!
h4 How to Join
h4(data-i18n="contribute.how_to_join") How to Join
p
a(title='Contact', tabindex=-1, data-toggle="coco-modal", data-target="modal/contact") Contact us
| , tell us a little about yourself, what you've done and what you'd
| be interested in doing. We'll put you in our contact list and be in touch
| when we could use advice (not too often).
a(title='Contact', tabindex=-1, data-toggle="coco-modal", data-target="modal/contact", data-i18n="contact_us_url")
| Contact us
span ,
span(data-i18n="contribute.counselor_join_desc")
| tell us a little about yourself, what you've done and what you'd
| be interested in doing. We'll put you in our contact list and be in touch
| when we could use advice (not too often).
a(href="/contribute/counselor")
h3 Learn More About Becoming A Valuable Counselor
h3(data-i18n="contribute.more_about_counselor")
| Learn More About Becoming A Valuable Counselor
div.clearfix

View file

@ -1,17 +1,38 @@
ul.contribute_class.affix.nav.nav-list.nav-pills#contribute-nav
li
h3 Character Classes
h3(data-i18n="contribute.character_classes_title") Character Classes
li
a(href=navPrefix + "#archmage") Archmage (Coder)
a(href=navPrefix + "#archmage")
span(data-i18n="account_settings.archmage_title_pref") Archmage
span
span(data-i18n="account_settings.archmage_title_suf") (Coder)
li
a(href=navPrefix + "#artisan") Artisan (Level Builder)
a(href=navPrefix + "#artisan")
span(data-i18n="account_settings.artisan_title_pref") Artisan
span
span(data-i18n="account_settings.artisan_title_suf") (Level Builder)
li
a(href=navPrefix + "#adventurer") Adventurer (Level Playtester)
a(href=navPrefix + "#adventurer")
span(data-i18n="account_settings.adventurer_title_pref") Adventurer
span
span(data-i18n="account_settings.adventurer_title_suf") (Level Playtester)
li
a(href=navPrefix + "#scribe") Scribe (Article Editor)
a(href=navPrefix + "#scribe")
span(data-i18n="account_settings.scribe_title_pref") Scribe
span
span(data-i18n="account_settings.scribe_title_suf") (Article Editor)
li
a(href=navPrefix + "#diplomat") Diplomat (Translator)
a(href=navPrefix + "#diplomat")
span(data-i18n="account_settings.diplomat_title_pref") Diplomat
span
span(data-i18n="account_settings.diplomat_title_suf") (Translator)
li
a(href=navPrefix + "#ambassador") Ambassador (Support)
a(href=navPrefix + "#ambassador")
span(data-i18n="account_settings.ambassador_title_pref") Ambassador
span
span(data-i18n="account_settings.ambassador_title_suf") (Support)
li
a(href=navPrefix + "#counselor") Counselor (Expert/Teacher)
a(href=navPrefix + "#counselor")
span(data-i18n="account_settings.counselor_title_pref") Counselor
span
span(data-i18n="account_settings.counselor_title_suf") (Expert/Teacher)

View file

@ -11,8 +11,12 @@ block content
.class_image
img(src="/images/pages/contribute/counselor.png", alt="")
h2 Counselor (Expert)
p Do you have life experience?
h2
span(data-i18n="account_settings.counselor_title_pref") Counselor
span
span(data-i18n="account_settings.counselor_title_suf") (Expert/Teacher)
p(data-i18n="contribute.counselor_introduction_1")
| Do you have life experience?
| A different perspective on things that can help us decide how to shape CodeCombat?
| Of all these roles, this will probably take the least time, but
| individually you may make the most difference.
@ -20,20 +24,26 @@ block content
| game development, open source project management, technical recruiting, entrepreneurship,
| or design.
p Or really anything that is relevant to the development of CodeCombat.
p(data-i18n="contribute.counselor_introduction_2")
| Or really anything that is relevant to the development of CodeCombat.
| If you have knowledge and want to share it to help grow this project, then
| this class might be for you.
h4 Class Attributes
h4(data-i18n="contribute.class_attributes") Class Attributes
ul
li Experience, in any of the areas above or something you think might be helpful.
li A little bit of free time!
li(data-i18n="contribute.counselor_attribute_1")
| Experience, in any of the areas above or something you think might be helpful.
li(data-i18n="contribute.counselor_attribute_2")
| A little bit of free time!
h4 How to Join
h4(data-i18n="contribute.how_to_join") How to Join
p
a(title='Contact', tabindex=-1, data-toggle="coco-modal", data-target="modal/contact") Contact us
| , tell us a little about yourself, what you've done and what you'd
| be interested in doing. We'll put you in our contact list and be in touch
| when we could use advice (not too often).
a(title='Contact', tabindex=-1, data-toggle="coco-modal", data-target="modal/contact", data-i18n="contact_us_url")
| Contact us
span ,
span(data-i18n="contribute.counselor_join_desc")
| tell us a little about yourself, what you've done and what you'd
| be interested in doing. We'll put you in our contact list and be in touch
| when we could use advice (not too often).
div.clearfix

View file

@ -11,49 +11,73 @@ block content
.class_image
img(src="/images/pages/contribute/diplomat.png", alt="")
h2 Diplomat (Translator)
p So, if there's one thing we learned from the
a(href="blog.codecombat.com/post/64658141307/codecombat-in-y-combinator") launch in October
| , it's that there
| is sizeable interest in CodeCombat in other countries, particularly Brazil!
| We're building a corps of translators eager to turn one set of words into
| another set of words to get CodeCombat as accessible across the world as possible.
| If you like getting sneak peeks at upcoming content and getting these levels to
| your fellow nationals ASAP, then this class might be for you.
h2
span(data-i18n="account_settings.diplomat_title_pref") Diplomat
span
span(data-i18n="account_settings.diplomat_title_suf") (Translator)
p
span(data-i18n="contribute.diplomat_introduction_pref")
| So, if there's one thing we learned from the
a(href="blog.codecombat.com/post/64658141307/codecombat-in-y-combinator", data-i18n="contribute.diplomat_launch_url")
| launch in October
span ,
span(data-i18n="contribute.diplomat_introduction_suf")
| it's that there
| is sizeable interest in CodeCombat in other countries, particularly Brazil!
| We're building a corps of translators eager to turn one set of words into
| another set of words to get CodeCombat as accessible across the world as possible.
| If you like getting sneak peeks at upcoming content and getting these levels to
| your fellow nationals ASAP, then this class might be for you.
h4 Class Attributes
h4(data-i18n="contribute.class_attributes") Class Attributes
ul
li Fluency in English and the language you would like to translate to.
li(data-i18n="contribute.diplomat_attribute_1")
| Fluency in English and the language you would like to translate to.
| When conveying complicated ideas, it's important to have a strong grasp in both!
h4 How to Join
p We've started a lot of initial translations at
a(href="https://docs.google.com/a/codecombat.com/spreadsheet/ccc?key=0AjsR1nOoMQ4MdFBqS1NqUmRTVG1hbEMxWTZEd1JrNXc&usp=drive_web#gid=0") this Google Doc
| , so check it out and add things for your language. Also, check this box below to
| keep up-to-date on new internationalization developments!
h4(data-i18n="contribute.how_to_join") How to Join
p
span(data-i18n="contribute.diplomat_join_pref")
| We've started a lot of initial translations at
a(href="https://docs.google.com/a/codecombat.com/spreadsheet/ccc?key=0AjsR1nOoMQ4MdFBqS1NqUmRTVG1hbEMxWTZEd1JrNXc&usp=drive_web#gid=0", data-i18n="contribute.diplomat_doc_url")
| this Google Doc
span ,
span(data-i18n="contribute.diplomat_join_suf")
| so check it out and add things for your language. Also, check this box below to
| keep up-to-date on new internationalization developments!
if me.attributes.anonymous
div#sign-up.alert.alert-info
strong Hey there!
| To subscribe for class emails, you'll need to
a(data-toggle="coco-modal", data-target="modal/signup") create an account
| first .
strong(data-i18n="contribute.alert_account_message_intro")
| Hey there!
span
span(data-i18n="contribute.alert_account_message_pref")
| To subscribe for class emails, you'll need to
a(data-toggle="coco-modal", data-target="modal/signup", data-i18n="contribute.alert_account_message_create_url")
| create an account
span
span(data-i18n="contribute.alert_account_message_suf")
| first.
label.checkbox(for="translator").well
input(type='checkbox', name="translator", id="translator")
| Get emails about i18n developments and levels to translate.
span(data-i18n="contribute.diplomat_subscribe_desc")
| Get emails about i18n developments and levels to translate.
.saved-notification ✓ Saved
h4 Changes are saved automatically when you toggle checkboxes.
h4(data-i18n="contribute.changes_auto_save")
| Changes are saved automatically when you toggle checkboxes.
#Contributors
h3 Our Translating Diplomats:
h3(data-i18n="contribute.translating_diplomates")
| Our Translating Diplomats:
ul.diplomats
li Turkish - Nazım Gediz Aydındoğmuş
li Brazilian Portuguese - Gutenberg Barros, Kieizroe, Matthew Burt
li Portugal Portuguese - Matthew Burt
li German - Dirk, Anon
li Thai - Kamolchanok Jittrepit
li Vietnamese - An Nguyen Hoang Thien
li Greek - Stergios
li Latin American Spanish - Jesús Ruppel, Matthew Burt, Mariano Luzza
li Spain Spanish - Matthew Burt, Anon

View file

@ -11,44 +11,66 @@ block content
.class_image
img(src="/images/pages/contribute/scribe.png", alt="")
h2 Scribe (Article Editor)
p CodeCombat isn't just going to be a bunch of levels.
| It will also include a resource for knowledge, a wiki of programming concepts that levels can hook into.
| That way rather than each Artisan having to describe in detail what a comparison operator is, they
| can simply link their level to the Article describing them that is already written for the player's edification.
| Something along the lines of what the
a(href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide") Mozilla Developer Network
| has built. If your idea of fun is articulating the concepts of programming in Markdown form,
| then this class might be for you.
h2
span(data-i18n="account_settings.scribe_title_pref") Scribe
span
span(data-i18n="account_settings.scribe_title_suf") (Article Editor)
p
span(data-i18n="account_settings.scribe_introduction_pref")
| CodeCombat isn't just going to be a bunch of levels.
| It will also include a resource for knowledge, a wiki of programming concepts that levels can hook into.
| That way rather than each Artisan having to describe in detail what a comparison operator is, they
| can simply link their level to the Article describing them that is already written for the player's edification.
| Something along the lines of what the
a(href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide", data-i18n="contribute.scribe_introduction_url_mozilla")
| Mozilla Developer Network
span(data-i18n="account_settings.scribe_introduction_suf")
| has built. If your idea of fun is articulating the concepts of programming in Markdown form,
| then this class might be for you.
h4 Class Attributes
h4(data-i18n="contribute.class_attributes")
| Class Attributes
ul
li Skill in words is pretty much all you need.
li(data-i18n="contribute.scribe_attribute_1")
| Skill in words is pretty much all you need.
| Not only grammar and spelling, but able to convey complicated ideas to others.
h4 How To Join
h4(data-i18n="contribute.how_to_join") How To Join
p
a(title='Contact', tabindex=-1, data-toggle="coco-modal", data-target="modal/contact") Contact us
| , tell us a little about yourself, your experience with programming and
| what sort of things you'd like to write about. We'll go from there!
a(title='Contact', tabindex=-1, data-toggle="coco-modal", data-target="modal/contact", data-i18n="contribute.contact_us_url")
| Contact us
span ,
span(data-i18n="contribute.scribe_join_description")
| tell us a little about yourself, your experience with programming and
| what sort of things you'd like to write about. We'll go from there!
if me.attributes.anonymous
div#sign-up.alert.alert-info
strong Hey there!
| To subscribe for class emails, you'll need to
a(data-toggle="coco-modal", data-target="modal/signup") create an account
| first .
strong(data-i18n="contribute.alert_account_message_intro")
| Hey there!
span
span(data-i18n="contribute.alert_account_message_pref")
| To subscribe for class emails, you'll need to
a(data-toggle="coco-modal", data-target="modal/signup", data-i18n="contribute.alert_account_message_create_url")
| create an account
span
span(data-i18n="contribute.alert_account_message_suf")
| first.
label.checkbox(for="article_editor").well
input(type='checkbox', name="article_editor", id="article_editor")
| Get emails about article writing announcements.
span(data-i18n="contribute.scribe_subscribe_desc")
| Get emails about article writing announcements.
.saved-notification ✓ Saved
h4 Changes are saved automatically when you toggle checkboxes.
h4(data-i18n="contribute.changes_auto_save")
| Changes are saved automatically when you toggle checkboxes.
#Contributors
h3 Our Diligent Scribes:
h3(data-i18n="contribute.diligent_scribes")
| Our Diligent Scribes:
ul.scribes
li Ryan Faidley
li Glen De Cauwsemaecker
div.clearfix

View file

@ -2,61 +2,67 @@ extends /templates/base
block content
h3 Introducing The CodeCombat Level Editor
h3(data-i18n="editor.ep_intro_title") Introducing The CodeCombat Level Editor
p
| Since we launched the prototype in June, 2013, we've been hard at work making
| systems for producing much, much more content.
| The centerpiece of these efforts is the new
strong Level Editor
| , which makes building levels and their many constituent parts a snap.
span(data-i18n="editor.ep_intro_desc_top_pref")
| Since we launched the prototype in June, 2013, we've been hard at work making
| systems for producing much, much more content.
| The centerpiece of these efforts is the new
strong
span(data-i18n="editor.ep_intro_desc_top_strong_editor")
| Level Editor
span(data-i18n="editor.ep_intro_desc_top_suf")
| , which makes building levels and their many constituent parts a snap.
div.images
div
img(src="/file/52602a6ba36ab808aa000007", alt="Articles").img-polaroid
br
span.label.label-info Write Articles
span(data-i18n="editor.ep_img_desc_articles").label.label-info Write Articles
div
img(src="/file/526032dca36ab808aa000009", alt="Map").img-polaroid
br
span.label.label-info Construct Maps
span(data-i18n="editor.ep_img_desc_maps").label.label-info Construct Maps
div
img(src="/file/52603311a36ab808aa00000c", alt="Scripting").img-polaroid
br
span.label.label-info Build Scripts
span(data-i18n="editor.ep_img_desc_scripts").label.label-info Build Scripts
div
img(src="/file/52603434a36ab808aa00000e", alt="Units").img-polaroid
br
span.label.label-info Configure Units
span(data-i18n="editor.ep_img_desc_units").label.label-info Configure Units
p#after-images
p(data-i18n="editor.ep_intro_desc_bottom")#after-images
| Eventually, you'll be able to build all manners of challenges, with custom sounds,
| music, artwork, units, maps, scripts, documentation, and yes, even code.
| It's got a long way to go, but it's just starting to get usable and we're itching to use it.
| Expect (and demand!) new levels at regular intervals as we continue to grow.
h3 Watch it In Action
h3(data-i18n="editor.ep_watch_title") Watch it In Action
div.screencast-wrapper
<object width="640" height="400"><param name="movie" value="//www.youtube.com/v/H5u5ga5dHm8?hl=en_US&amp;version=3&amp;hd=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="//www.youtube.com/v/H5u5ga5dHm8?hl=en_US&amp;version=3&amp;hd=1" type="application/x-shockwave-flash" width="640" height="400" allowscriptaccess="always" allowfullscreen="true"></embed></object>
h3 When Can I Use It?
h3(data-i18n="editor.ep_use_title") When Can I Use It?
p
span(data-i18n="editor.ep_use_desc_pref")
| Now! We've opened it for general use, possibly against our better judgment.
| It's still very broken, but we're seeking people to try it out and help us make it better,
| so we're throwing it out there.
| Learn more about the role of
a(href="/contribute#artisan") Artisan
a(href="/contribute#artisan", data-i18n="editor.ep_use_artisan_url") Artisan
span(data-i18n="editor.ep_use_desc_suf")
| in the
a(href="/contribute") contribute page
a(href="/contribute", data-i18n="editor.ep_use_contribute_url") contribute page
| .
hr
div#editor-links
a(href="/editor/level").btn Edit Levels
a(href="/editor/level", data-i18n="editor.ep_url_edit_levels").btn Edit Levels
if me.isAdmin()
a(href="/editor/article").btn Edit Articles
a(href="/editor/article", data-i18n="editor.ep_url_edit_articles").btn Edit Articles
.modal.hide.fade#image-modal
.modal-body

View file

@ -1,10 +1,12 @@
extends /templates/base
block content
button.btn.btn-primary#preview-button Preview
button.btn.btn-primary#save-button(data-toggle="coco-modal", data-target="modal/save_version") Save
button(data-i18n="article.edit_btn_preview").btn.btn-primary#preview-button Preview
button(data-i18n="article.edit_btn_save").btn.btn-primary#save-button(data-toggle="coco-modal", data-target="modal/save_version") Save
h3 Edit Article: "#{article.attributes.name}"
h3(data-i18n="article.edit_article_title") Edit Article
span
|: "#{article.attributes.name}"
#article-treema

View file

@ -1,11 +1,15 @@
table.table
tr
th(colspan=3) Results: #{documents.length}
th(colspan=3)
span(data-i18n="article.index_table_results")
| Results
span
|: #{documents.length}
tr
th Name
th Body
th Version
th(data-i18n="article.index_table_name") Name
th(data-i18n="article.index_table_body") Body
th(data-i18n="article.index_table_version") Version
for article in documents
- article = article.attributes;

View file

@ -1,3 +1,7 @@
h3.edit-component-name= editTitle
h3.edit-component-name
span(data-i18n="editor.level_component_edit_title")
| Edit Component
span :
| "#{editTitle}"
#edit-component-treema

View file

@ -6,14 +6,14 @@ block modal-header-content
block modal-body-content
form.form-horizontal
.control-group
label.control-label(for="level-component-system") System
label(data-i18n="editor.new_component_field_system").control-label(for="level-component-system") System
.controls
input#level-component-system.input-large(name="system", type="text")
.control-group
label.control-label(for="level-component-name") Name
label(data-i18n="editor.new_component_field_name").control-label(for="level-component-name") Name
.controls
input#level-component-name.input-large(name="name", type="text")
block modal-footer-content
button.btn(data-dismiss="modal") Cancel
button.btn.btn-primary#new-level-component-submit Create
button(data-i18n="editor.new_component_btn_cancel").btn(data-dismiss="modal") Cancel
button(data-i18n="editor.new_component_btn_create").btn.btn-primary#new-level-component-submit Create

View file

@ -1,9 +1,9 @@
.components-container
h3 Current Components
h3(data-i18n="editor.level_component_tab_title") Current Components
#components-treema
.edit-component-container
if me.isAdmin()
button.btn.btn-primary#create-new-component-button Create New Component
button(data-i18n="editor.level_component_btn_new").btn.btn-primary#create-new-component-button Create New Component
#editor-level-component-edit-view

View file

@ -5,39 +5,40 @@ block outer_content
.top-controls-area
h2.level-title-header
span Level Editor:
span(data-i18n="editor.level_title") Level Editor
span :
span.level-title #{level.attributes.name}
.level-control-buttons
button.btn.btn-primary#commit-level-start-button Save
button.btn.btn-primary#fork-level-start-button Fork
button(data-i18n="editor.level_btn_save").btn.btn-primary#commit-level-start-button Save
button(data-i18n="editor.level_btn_fork").btn.btn-primary#fork-level-start-button Fork
.btn-group.play-button-group
button#play-button.btn.btn-inverse.banner(title="⌃↩ or ⌘↩: Play preview of current level") Play!
button(data-i18n="editor.level_btn_play")#play-button.btn.btn-inverse.banner(title="⌃↩ or ⌘↩: Play preview of current level") Play!
button.btn.btn-inverse.banner.dropdown-toggle(data-toggle="dropdown")
i.icon-cog.icon-white
ul.dropdown-menu
li
span.dropdown-menu-header Some Options?
span(data-i18n="editor.level_some_options").dropdown-menu-header Some Options?
li.divider
li
a(data-delay="1000", href="#") 1 second
a(data-delay="3000", href="#") 3 seconds
a(data-delay="5000", href="#") 5 seconds
a(data-delay="90019001", href="#") Manual
a(data-delay="1000", href="#", data-i18n="editor.level_options_1_second") 1 second
a(data-delay="3000", href="#", data-i18n="editor.level_options_3_seconds") 3 seconds
a(data-delay="5000", href="#", data-i18n="editor.level_options_5_seconds") 5 seconds
a(data-delay="90019001", href="#", data-i18n="editor.level_options_manual") Manual
.clearfix
ul.nav.nav-tabs
li.active
a(href="#editor-level-thangs-tab-view", data-toggle="tab") Thangs
a(href="#editor-level-thangs-tab-view", data-toggle="tab", data-i18n="editor.level_tab_thangs") Thangs
li
a(href="#editor-level-scripts-tab-view", data-toggle="tab") Scripts
a(href="#editor-level-scripts-tab-view", data-toggle="tab", data-i18n="editor.level_tab_scripts") Scripts
li
a(href="#editor-level-settings-tab-view", data-toggle="tab") Settings
a(href="#editor-level-settings-tab-view", data-toggle="tab", data-i18n="editor.level_tab_settings") Settings
li
a(href="#editor-level-components-tab-view", data-toggle="tab") Components
a(href="#editor-level-components-tab-view", data-toggle="tab", data-i18n="editor.level_tab_components") Components
li
a(href="#editor-level-systems-tab-view", data-toggle="tab") Systems
a(href="#editor-level-systems-tab-view", data-toggle="tab", data-i18n="editor.level_tab_systems") Systems
div.tab-content
div.tab-pane.active#editor-level-thangs-tab-view

View file

@ -1,2 +1,2 @@
h3 Settings
h3(data-i18n="editor.level_settings_title") Settings
#settings-treema

View file

@ -1,3 +1,7 @@
h3.edit-system-name= editTitle
h3.edit-system-name
span(data-i18n="editor.level_system_edit_title")
| Edit System
span :
| "#{editTitle}"
#edit-system-treema

View file

@ -6,10 +6,10 @@ block modal-header-content
block modal-body-content
form.form-horizontal
.control-group
label.control-label(for="level-system-name") Name
label(data-i18n="editor.create_system_field_name").control-label(for="level-system-name") Name
.controls
input#level-system-name.input-large(name="name", type="text")
block modal-footer-content
button.btn(data-dismiss="modal") Cancel
button.btn.btn-primary#new-level-system-submit Create
button(data-i18n="editor.create_system_btn_cancel").btn(data-dismiss="modal") Cancel
button(data-i18n="editor.create_system_btn_create").btn.btn-primary#new-level-system-submit Create

View file

@ -1,11 +1,11 @@
.systems-container
h3 Current Systems
h3(data-i18n="editor.level_systems_tab_title") Current Systems
#systems-treema
.edit-system-container
if me.isAdmin()
button.btn.btn-primary#create-new-system-button Create New System
button(data-i18n="editor.level_systems_btn_new").btn.btn-primary#create-new-system-button Create New System
#editor-level-system-edit-view
button.btn.btn-primary#add-system-button Add System
button(data-i18n="editor.level_systems_btn_add").btn.btn-primary#add-system-button Add System

View file

@ -1,11 +1,15 @@
table.table
tr
th(colspan=3) Results: #{documents.length}
th(colspan=3)
span(data-i18n="level.index_table_results")
| Results
span
|: #{documents.length}
tr
th Name
th Description
th Version
th(data-i18n="level.index_table_name") Name
th(data-i18n="level.index_table_description") Description
th(data-i18n="level.index_table_version") Version
for level in documents
- level = level.attributes;

View file

@ -1,10 +1,12 @@
div.well
a#all-thangs-link Back To All Thangs
a(data-i18n="editor.level_components_title")#all-thangs-link Back To All Thangs
span#thang-props
a#thang-name-link
span= thang.id
input.hide(value=thang.id)
| ( Type:
| (
span(data-i18n="editor.level_components_type") Type
| :
a#thang-type-link
span= thang.thangType
input.hide(value=thang.thangType)

View file

@ -1,16 +1,16 @@
.thangs-container.thangs-column
h3 Current Thangs
h3(data-i18n="editor.level_tab_thangs_title") Current Thangs
#thangs-treema(title="Double click to configure a thang")
.world-container.thangs-column
h3 World Starting Conditions
h3(data-i18n="editor.level_tab_thangs_conditions") World Starting Conditions
#canvas-wrapper
canvas(width=924, height=589)#surface
#canvas-left-gradient.gradient
#canvas-top-gradient.gradient
.add-thangs-palette.thangs-column
h3 Add Thangs
h3(data-i18n="editor.level_tab_thangs_add") Add Thangs
#thangs-list
for thangType in thangTypes
div.add-thang-palette-icon(data-thang-type=thangType.name)

View file

@ -2,83 +2,189 @@ extends /templates/base
block content
h1 Legal
h1(data-i18n="legal.page_title")
| Legal
hr
p.lead CodeCombat is free to play and completely open source.
p Check out
a(href="https://github.com/codecombat/codecombat") our GitHub
| , and help out if you like! CodeCombat is built on dozens of open source projects, and we love them. See
a(href="https://github.com/codecombat/codecombat/wiki/Third-party-software-and-services") our Archmage wiki
| for a list of the software that makes this game possible.
p(data-i18n="legal.opensource_intro").lead
| CodeCombat is free to play and completely open source.
p
span(data-i18n="legal.opensource_description_prefix")
| Check out
a(href="https://github.com/codecombat/codecombat", data-i18n="github_url")
| our GitHub
span ,
span(data-i18n="legal.opensource_description_center")
| and help out if you like! CodeCombat is built on
| dozens of open source projects, and we love them. See
a(href="https://github.com/codecombat/codecombat/wiki/Third-party-software-and-services", data-i18n="archmage_wiki_url")
| our Archmage wiki
span
span(data-i18n="legal.opensource_description_sufix")
| for a list of the software that makes this game possible.
hr
div.aside.well
h3 Respectful Best Practices
p These are our promises to you, the player, in slightly less legalese.
h4 Privacy
p We will not sell any of your personal information. We intend to make money through recruitment eventually, but rest assured we will not distribute your personal information to interested companies without your explicit consent.
h4 Security
p We strive to keep your personal information safe. As an open source project, our site is freely open to anyone to review and improve our security systems.
h4 Email
p We will not inundate you with spam. Through
a(href='/account/settings') your email settings
| or through links in the emails we send, you can change your preferences and easily unsubscribe at any time.
h4 Cost
p Currently, CodeCombat is 100% free! One of our main goals is to keep it that way, so that as many people can play as possible, regardless of place in life. If the sky darkens, we might have to charge subscriptions or for some content, but we'd rather not. With any luck, we'll be able to sustain the company with:
h4 Recruitment
:markdown
Here on CodeCombat, you're going to become a powerful wizard--not just in the game, but also in real life. [No one can hire programmers fast enough](http://code.org/stats), so once you've sharpened your skills and if you agree, we will demo your best coding accomplishments to the thousands of employers who are drooling for the chance to hire you. They pay us a little, they pay you *a lot*, the site remains free and everybody's happy. That's the plan.
h3(data-i18n="legal.practices_title")
| Respectful Best Practices
p(data-i18n="legal.practices_description")
| These are our promises to you, the player, in slightly less legalese.
h4(data-i18n="legal.privacy_title")
| Privacy
p(data-i18n="legal.privacy_description")
| We will not sell any of your personal information.
| We intend to make money through recruitment eventually,
| but rest assured we will not distribute your personal
| information to interested companies without your explicit consent.
h4(data-i18n="legal.security_title")
| Security
p(data-i18n="legal.security_description")
| We strive to keep your personal information safe.
| As an open source project, our site is freely open
| to anyone to review and improve our security systems.
h4(data-i18n="legal.email_title")
| Email
p
span(data-i18n="legal.email_description_prefix")
| We will not inundate you with spam. Through
span
a(href='/account/settings', data-i18n="legal.email_settings_url")
| your email settings
span
span(data-i18n="legal.email_description_sufix")
| or through links in the emails we send,
| you can change your preferences and easily unsubscribe at any time.
h4(data-i18n="legal.cost_title")
| Cost
p(data-i18n="legal.cost_description")
| Currently, CodeCombat is 100% free! One of our main goals is to keep
| it that way, so that as many people can play as possible,
| regardless of place in life. If the sky darkens,
| we might have to charge subscriptions or for some content,
| but we'd rather not. With any luck, we'll be able to sustain the company with:
h4(data-i18n="legal.recruitment_title")
| Recruitment
span(data-i18n="legal.recruitment_description_prefix")
| Here on CodeCombat, you're going to become a powerful wizard--not
| just in the game, but also in real life.
span
a(href="", data-i18n="legal.url_hire_programmers")
| No one can hire programmers fast enough
span ,
span(data-i18n="legal.recruitment_description_sufix")
| so once you've sharpened your skills and if you agree,
| we will demo your best coding accomplishments to the thousands of
| employers who are drooling for the chance to hire you.
| They pay us a little, they pay you
span
i(data-i18n="legal.recruitment_description_italic")
| a lot
span ,
span(data-i18n="legal.recruitment_description_ending")
| the site remains free and everybody's happy. That's the plan.
h2 Copyrights and Licenses
h2(data-i18n="legal.copyrights_title")
| Copyrights and Licenses
h3 Contributor License Agreement
h3(data-i18n="legal.contributor_title")
| Contributor License Agreement
p All contributions, both on the site and on our GitHub repository, are subject to our
a(href="/cla") CLA
| , to which you should agree before contributing.
p
span(data-i18n="legal.contributor_description_prefix")
| All contributions, both on the site and on our GitHub repository, are subject to our
span
a(href="/cla", data-i18n="legal.cla_url")
| CLA
span ,
span(data-i18n="legal.contributor_description_sufix")
| to which you should agree before contributing.
h3 Code - MIT
h3(data-i18n="legal.code_title")
| Code - MIT
p All code owned by CodeCombat or hosted on codecombat.com, both in the GitHub repository or in the codecombat.com database, is licensed under the
a(href="http://opensource.org/licenses/MIT") MIT license
| . This includes all code in Systems and Components that are made available by CodeCombat for the purpose of creating levels.
p
span(data-i18n="legal.code_description_prefix")
| All code owned by CodeCombat or hosted on codecombat.com,
| both in the GitHub repository or in the codecombat.com database,
| is licensed under the
span
a(href="http://opensource.org/licenses/MIT", data-i18n="legal.mit_license_url")
| MIT license
span .
span(data-i18n="legal.code_description_sufix")
| This includes all code in Systems and Components that are
| made available by CodeCombat for the purpose of creating levels.
h3 Art/Music - Creative Commons
h3(data-i18n="legal.art_title")
| Art/Music - Creative Commons
a(rel='license', href='http://creativecommons.org/licenses/by/4.0/').cc-license-link
img(alt='Creative Commons License', style='border-width: 0; margin-left: 10px', src='http://i.creativecommons.org/l/by/4.0/88x31.png')
p All common content is available under the
a(href="http://creativecommons.org/licenses/by/4.0/") Creative Commons Attribution 4.0 International License
| . Common content is anything made generally available by CodeCombat for the purpose of creating Levels. This includes:
p
span(data-i18n="legal.art_description_prefix")
| All common content is available under the
span
a(href="http://creativecommons.org/licenses/by/4.0/", data-i18n="legal.cc_license_url")
| Creative Commons Attribution 4.0 International License
span .
span(data-i18n="legal.art_description_sufix")
| Common content is anything made generally available by CodeCombat
| for the purpose of creating Levels. This includes:
ul
li Music
li Sound
li Artwork
li Sprites
li Any and all other non-code creative works that are made available when creating Levels.
li(data-i18n="legal.art_music") Music
li(data-i18n="legal.art_sound") Sound
li(data-i18n="legal.art_artwork") Artwork
li(data-i18n="legal.art_sprites") Sprites
li(data-i18n="legal.art_other")
| Any and all other non-code creative works that
| are made available when creating Levels.
p For attribution, please name and link to codecombat.com near where the source is used or where appropriate for the medium. For example:
p(data-i18n="legal.art_paragraph_1")
| For attribution, please name and link to codecombat.com near
| where the source is used or where appropriate for the medium. For example:
ul
li If used in a movie or another game, include codecombat.com in the credits.
li If used on a website, include a link near the usage, for example underneath an image, or in a general attributions page where you might also mention other Creative Commons works and open source software being used on the site. Something that's already clearly referencing CodeCombat, such as a blog post mentioning CodeCombat, does not need some separate attribution.
li(data-i18n="legal.use_list_1")
| If used in a movie or another game, include codecombat.com in the credits.
li(data-i18n="legal.use_list_2")
| If used on a website, include a link near the usage,
| for example underneath an image, or in a general attributions
| page where you might also mention other Creative Commons works
| and open source software being used on the site. Something that's
| already clearly referencing CodeCombat, such as a blog post mentioning
| CodeCombat, does not need some separate attribution.
p If the content being used is created not by CodeCombat but instead by a user of codecombat.com, attribute them instead, and follow attribution directions provided in that resource's description if there are any.
p(data-i18n="legal.art_paragraph_2")
| If the content being used is created not by CodeCombat
| but instead by a user of codecombat.com,
| attribute them instead, and follow attribution directions
| provided in that resource's description if there are any.
h3 Rights Reserved
h3(data-i18n="legal.rights_title")
| Rights Reserved
p All rights are reserved for Levels themselves. This includes
p(data-i18n="legal.rights_desc")
| All rights are reserved for Levels themselves. This includes
ul
li Scripts
li Unit configuration
li Description
li Writings
li Media (sounds, music) and any other creative content made specifically for that Level and not made generally available when creating Levels.
li(data-i18n="legal.rights_scripts") Scripts
li(data-i18n="legal.rights_unit") Unit configuration
li(data-i18n="legal.rights_description") Description
li(data-i18n="legal.rights_writings") Writings
li(data-i18n="legal.rights_media")
| Media (sounds, music) and any other creative
| content made specifically for that Level and
| not made generally available when creating Levels.
h3 In a Nutshell
h3(data-i18n="legal.nutshell_title")
| In a Nutshell
p Any resources we provide in the Level Editor are free to use as you like for creating Levels. But we reserve the right to restrict distribution of the Levels themselves (that are created on codecombat.com) so that they may be charged for in the future, if that's what ends up happening.
p(data-i18n="legal.nutshell_description")
| Any resources we provide in the Level Editor are
| free to use as you like for creating Levels.
| But we reserve the right to restrict distribution of
| the Levels themselves (that are created on codecombat.com)
| so that they may be charged for in the future,
| if that's what ends up happening.

View file

@ -16,7 +16,7 @@ module.exports = class LevelComponentEditView extends View
getRenderData: (context={}) =>
context = super(context)
context.editTitle = "Edit Component: #{@levelComponent.get('system')}.#{@levelComponent.get('name')}"
context.editTitle = "#{@levelComponent.get('system')}.#{@levelComponent.get('name')}"
context
afterRender: ->

View file

@ -16,7 +16,7 @@ module.exports = class LevelSystemEditView extends View
getRenderData: (context={}) =>
context = super(context)
context.editTitle = "Edit System: #{@levelSystem.get('name')}"
context.editTitle = "#{@levelSystem.get('name')}"
context
afterRender: ->