mirror of
https://github.com/codeninjasllc/codecombat.git
synced 2024-11-24 08:08:15 -05:00
Merge branch 'master' of https://github.com/codecombat/codecombat
This commit is contained in:
commit
dc27f25a37
25 changed files with 242 additions and 82 deletions
|
@ -698,7 +698,7 @@ module.exports = CocoSprite = class CocoSprite extends CocoClass
|
|||
AudioPlayer.playInterfaceSound 'coin_1', 0.25
|
||||
if @thang.actionActivated and (action = @thang.getActionName()) isnt 'say'
|
||||
@playSound action, withDelay, volume
|
||||
if @thang.sayMessage and withDelay # don't play sayMessages while scrubbing, annoying
|
||||
if @thang.sayMessage and withDelay and not @thang.silent # don't play sayMessages while scrubbing, annoying
|
||||
offsetFrames = Math.abs(@thang.sayStartTime - @thang.world.age) / @thang.world.dt
|
||||
if offsetFrames <= 2 # or (not withDelay and offsetFrames < 30)
|
||||
sound = AudioPlayer.soundForDialogue @thang.sayMessage, @thangType.get 'soundTriggers'
|
||||
|
|
|
@ -235,7 +235,7 @@ module.exports = nativeDescription: "français", englishDescription: "French", t
|
|||
basics_city_help: "Ville dans laquelle vous souhaitez travailler (ou dans laquelle vous vivez actuellement)."
|
||||
basics_country: "Pays"
|
||||
basics_country_help: "Pays dans lequel vous souhaitez travailler (ou dans lequel vous vivez actuellement)."
|
||||
basics_visa: "Status de travail aux Etats-Unis"
|
||||
basics_visa: "Statut de travail aux Etats-Unis"
|
||||
basics_visa_help: "Etes vous autorisé à travailler aux Etats-Unis ou avez vous besoin d'un parrainage pour le visa ?"
|
||||
basics_looking_for: "Recherche"
|
||||
basics_looking_for_full_time: "Temps plein"
|
||||
|
@ -248,60 +248,60 @@ module.exports = nativeDescription: "français", englishDescription: "French", t
|
|||
name_anonymous: "Developpeur Anonyme"
|
||||
name_help: "Le nom que vous souhaitez que l'employeur voie, par exemple 'Chuck Norris'."
|
||||
short_description_header: "Décrivez vous en quelques mots"
|
||||
# short_description_blurb: "Add a tagline to help an employer quickly learn more about you."
|
||||
short_description_blurb: "Ajoutez une phrase d'accroche pour permettre à un employeur d'en savoir plus sur vous."
|
||||
short_description: "Description courte"
|
||||
short_description_help: "Qui êtes vous et que recherchez vous ? 140 caractères max."
|
||||
skills_header: "Compétences"
|
||||
skills_help: "Notez vos compétence de développement par ordre de maitrise."
|
||||
long_description_header: "Détaillez votre poste souhaité"
|
||||
# long_description_blurb: "Tell employers how awesome you are and what role you want."
|
||||
# long_description: "Self Description"
|
||||
# long_description_help: "Describe yourself to potential employers. Keep it short and to the point. We recommend outlining the position that would most interest you. Tasteful markdown okay; 600 characters max."
|
||||
long_description_blurb: "Faites savoir aux employeurs combien vous êtes génial et quel poste vous voulez."
|
||||
long_description: "Biographie"
|
||||
long_description_help: "Décrivez-vous aux potentiels employeurs. Soyez bref et direct. Nous vous recommandons de bien indiquer quel poste vous intéresse le plus. 600 caractères max."
|
||||
work_experience: "Experience de travail"
|
||||
# work_header: "Chronicle your work history"
|
||||
# work_years: "Years of Experience"
|
||||
# work_years_help: "How many years of professional experience (getting paid) developing software do you have?"
|
||||
# work_blurb: "List your relevant work experience, most recent first."
|
||||
# work_employer: "Employer"
|
||||
# work_employer_help: "Name of your employer."
|
||||
# work_role: "Job Title"
|
||||
# work_role_help: "What was your job title or role?"
|
||||
# work_duration: "Duration"
|
||||
work_header: "Présentez votre parcours professionnel"
|
||||
work_years: "Années d'expérience"
|
||||
work_years_help: "Combien d'années d'expérience professionnelle (salarié) avez-vous dans le développement logiciel ?"
|
||||
work_blurb: "Lister vos missions les plus pertinentes, les plus récentes en premier."
|
||||
work_employer: "Employeur"
|
||||
work_employer_help: "Nom de votre employeur."
|
||||
work_role: "Titre du poste"
|
||||
work_role_help: "Quel était l'intitulé de votre mission ou votre poste ?"
|
||||
work_duration: "Durée"
|
||||
# work_duration_help: "When did you hold this gig?"
|
||||
# work_description: "Description"
|
||||
# work_description_help: "What did you do there? (140 chars; optional)"
|
||||
work_description: "Description"
|
||||
work_description_help: "Qu'est-ce que vous y avez fait ? (140 carac.; optionel)"
|
||||
education: "Education"
|
||||
# education_header: "Recount your academic ordeals"
|
||||
# education_blurb: "List your academic ordeals."
|
||||
# education_school: "School"
|
||||
# education_school_help: "Name of your school."
|
||||
# education_degree: "Degree"
|
||||
# education_degree_help: "What was your degree and field of study?"
|
||||
# education_duration: "Dates"
|
||||
# education_duration_help: "When?"
|
||||
# education_description: "Description"
|
||||
# education_description_help: "Highlight anything about this educational experience. (140 chars; optional)"
|
||||
education_header: "Racontez vos exploits scolaires"
|
||||
education_blurb: "Lister vos exploits scolaires."
|
||||
education_school: "Etablissement"
|
||||
education_school_help: "Nom de l'établissement."
|
||||
education_degree: "Diplôme"
|
||||
education_degree_help: "Quel était votre diplôme et votre domaine d'étude ?"
|
||||
education_duration: "Dates"
|
||||
education_duration_help: "Quand ?"
|
||||
education_description: "Description"
|
||||
education_description_help: "Mettez en avant ce que vous voulez à propos de votre parcours scolaire. (140 carac.; optionel)"
|
||||
our_notes: "Notes"
|
||||
projects: "Projets"
|
||||
# projects_header: "Add 3 projects"
|
||||
# projects_header_2: "Projects (Top 3)"
|
||||
# projects_blurb: "Highlight your projects to amaze employers."
|
||||
# project_name: "Project Name"
|
||||
# project_name_help: "What was the project called?"
|
||||
# project_description: "Description"
|
||||
# project_description_help: "Briefly describe the project."
|
||||
# project_picture: "Picture"
|
||||
# project_picture_help: "Upload a 230x115px or larger image showing off the project."
|
||||
# project_link: "Link"
|
||||
# project_link_help: "Link to the project."
|
||||
projects_header: "Ajoutez 3 projets"
|
||||
projects_header_2: "Projets (Top 3)"
|
||||
projects_blurb: "Mettez en avant vos projets pour épater les employeurs."
|
||||
project_name: "Nom du projet"
|
||||
project_name_help: "Comment avez-vous appelé votre projet ?"
|
||||
project_description: "Description"
|
||||
project_description_help: "Décrivez brièvement le projet."
|
||||
project_picture: "Image"
|
||||
project_picture_help: "Chargez une image de 230x115px oou plus grande pour présenter votre projet."
|
||||
project_link: "Lien"
|
||||
project_link_help: "Lien vers le projet."
|
||||
# player_code: "Player Code"
|
||||
|
||||
employers:
|
||||
# want_to_hire_our_players: "Hire CodeCombat Players"
|
||||
# what: "What is CodeCombat?"
|
||||
# what_blurb: "CodeCombat is a multiplayer browser programming game. Players write code to control their forces in battle against other developers. We support JavaScript, Python, Lua, Clojure, CoffeeScript, and Io."
|
||||
# who: "Who Are the Players?"
|
||||
# who_blurb: "CodeCombateers are software developers who enjoy using their programming skills to play games. They range from college seniors at top 20 engineering programs to 20-year industry veterans."
|
||||
want_to_hire_our_players: "Embaucher un Joueur CodeCombat"
|
||||
what: "Qu'est-ce que CodeCombat?"
|
||||
what_blurb: "CodeCombat est un jeu de programmation multijoueur par navigateur. Les Joueurs écrivent le code pour contrôler leurs troupes dans des batailles contre d'autres développeurs. Nous prenons en charge JavaScript, Python, Lua, Clojure, CoffeeScript, et Io."
|
||||
who: "Qui sont les Joueurs ?"
|
||||
who_blurb: "CodeCombatants sont des développeurs logiciel qui aiment utiliser leurs compétences en programmation pour jouer. Ils sont tout aussi bien des étudiants issus des 20 meilleures écoles d'ingénieurs que des vétérans dans le milieu depuis plus de 20 ans."
|
||||
# how: "How Do We Find Developers?"
|
||||
# how_blurb: "We host competitive tournaments to attract competitive software engieneers. We then use in-house algorithms to identify the best players among the top 5% of tournament winners."
|
||||
# why: "Why Hire Through Us?"
|
||||
|
|
|
@ -27,27 +27,29 @@ PropertyDocumentationSchema = c.object {
|
|||
type: c.shortString(title: 'Type', description: 'Intended type of the property.')
|
||||
description:
|
||||
oneOf: [
|
||||
{title: 'Description', type: 'string', description: 'Description of the property.', maxLength: 1000, format: 'markdown'}
|
||||
{
|
||||
type: 'object',
|
||||
title: 'Language Descriptions',
|
||||
description: 'Property descriptions by code language.',
|
||||
additionalProperties: {type: 'string', description: 'Description of the property.', maxLength: 1000, format: 'markdown'}
|
||||
format: 'code-languages-object'
|
||||
default: {javascript: ''}
|
||||
}
|
||||
{title: 'Description', type: 'string', description: 'Description of the property.', maxLength: 1000, format: 'markdown'}
|
||||
]
|
||||
args: c.array {title: 'Arguments', description: 'If this property has type "function", then provide documentation for any function arguments.'}, c.FunctionArgumentSchema
|
||||
owner: {title: 'Owner', type: 'string', description: 'Owner of the property, like "this" or "Math".'}
|
||||
example:
|
||||
oneOf: [
|
||||
{title: 'Example', type: 'string', description: 'An optional example code block.', format: 'javascript'}
|
||||
{
|
||||
type: 'object',
|
||||
title: 'Language Examples',
|
||||
description: 'Examples by code language.',
|
||||
additionalProperties: {type: 'string', description: 'An example code block.', format: 'code'}
|
||||
format: 'code-languages-object'
|
||||
default: {javascript: ''}
|
||||
}
|
||||
{title: 'Example', type: 'string', description: 'An optional example code block.', format: 'javascript'}
|
||||
]
|
||||
snippets: {type: 'object', title: 'Snippets', description: 'List of snippets for the respective programming languages', additionalProperties: c.codeSnippet, format: 'code-languages-object'}
|
||||
returns: c.object {
|
||||
|
@ -59,25 +61,27 @@ PropertyDocumentationSchema = c.object {
|
|||
type: c.shortString(title: 'Type', description: 'Type of the return value')
|
||||
example:
|
||||
oneOf: [
|
||||
c.shortString(title: 'Example', description: 'Example return value')
|
||||
{
|
||||
type: 'object',
|
||||
title: 'Language Examples',
|
||||
description: 'Example return values by code language.',
|
||||
additionalProperties: c.shortString(description: 'Example return value.', format: 'code')
|
||||
format: 'code-languages-object'
|
||||
default: {javascript: ''}
|
||||
}
|
||||
c.shortString(title: 'Example', description: 'Example return value')
|
||||
]
|
||||
description:
|
||||
oneOf: [
|
||||
{title: 'Description', type: 'string', description: 'Description of the return value.', maxLength: 1000}
|
||||
{
|
||||
type: 'object',
|
||||
title: 'Language Descriptions',
|
||||
description: 'Example return values by code language.',
|
||||
additionalProperties: {type: 'string', description: 'Description of the return value.', maxLength: 1000}
|
||||
format: 'code-languages-object'
|
||||
default: {javascript: ''}
|
||||
}
|
||||
{title: 'Description', type: 'string', description: 'Description of the return value.', maxLength: 1000}
|
||||
]
|
||||
|
||||
DependencySchema = c.object {
|
||||
|
|
|
@ -163,30 +163,34 @@ me.FunctionArgumentSchema = me.object {
|
|||
type: me.shortString(title: 'Type', description: 'Intended type of the argument.')
|
||||
example:
|
||||
oneOf: [
|
||||
me.shortString(title: 'Example', description: 'Example value for the argument.')
|
||||
{
|
||||
type: 'object',
|
||||
title: 'Language Examples',
|
||||
description: 'Examples by code language.',
|
||||
additionalProperties: me.shortString(description: 'Example value for the argument.')
|
||||
format: 'code-languages-object'
|
||||
default: {javascript: ''}
|
||||
}
|
||||
me.shortString(title: 'Example', description: 'Example value for the argument.')
|
||||
]
|
||||
description:
|
||||
oneOf: [
|
||||
{title: 'Description', type: 'string', description: 'Description of the argument.', maxLength: 1000}
|
||||
{
|
||||
type: 'object',
|
||||
title: 'Language Descriptions',
|
||||
description: 'Example argument descriptions by code language.',
|
||||
additionalProperties: {type: 'string', description: 'Description of the argument.', maxLength: 1000}
|
||||
format: 'code-languages-object'
|
||||
default: {javascript: ''}
|
||||
}
|
||||
{title: 'Description', type: 'string', description: 'Description of the argument.', maxLength: 1000}
|
||||
]
|
||||
'default':
|
||||
title: 'Default'
|
||||
description: 'Default value of the argument. (Your code should set this.)'
|
||||
'default': null
|
||||
|
||||
me.codeSnippet =
|
||||
me.codeSnippet = me.object {description: 'A language-specific code snippet'},
|
||||
code: {type: 'string', title: 'Snippet', default: '', description: 'Code snippet. Use ${1:defaultValue} syntax to add flexible arguments'}
|
||||
tab: {type: 'string', title: 'Tab Trigger', description: 'Tab completion text. Will be expanded to the snippet if typed and hit tab.'}
|
||||
|
||||
|
|
|
@ -1,2 +1,18 @@
|
|||
#docs-components-view
|
||||
color: saddlebrown
|
||||
color: saddlebrown
|
||||
|
||||
.row
|
||||
|
||||
.index-column, .documentation-column
|
||||
overflow-y: scroll
|
||||
overflow-x: hidden
|
||||
min-height: 600px
|
||||
|
||||
> ul
|
||||
padding: 0px 20px 20px 20px
|
||||
|
||||
|
||||
.documentation-column
|
||||
|
||||
.specialList
|
||||
list-style-type: none
|
||||
|
|
|
@ -37,6 +37,12 @@ body.is-playing
|
|||
right: 0
|
||||
top: 0px
|
||||
bottom: 0
|
||||
transition: width 0.5s ease-in-out
|
||||
&.fullscreen-editor
|
||||
position: fixed
|
||||
width: 100%
|
||||
height: 100%
|
||||
z-index: 20
|
||||
|
||||
#pointer
|
||||
position: absolute
|
||||
|
|
|
@ -6,13 +6,14 @@
|
|||
bottom: -120px
|
||||
left: 10px
|
||||
right: 10px
|
||||
background: transparent url(/images/level/code_editor_error_background.png) no-repeat
|
||||
background-size: 100% 100%
|
||||
background: transparent
|
||||
border: 0
|
||||
padding: 18px 35px 18px 14px
|
||||
text-shadow: none
|
||||
color: white
|
||||
word-wrap: break-word
|
||||
border-image: url(/images/level/code_editor_error_background.png) 16 20 fill round
|
||||
border-width: 16px 20px
|
||||
|
||||
.close
|
||||
@include opacity(0.80)
|
||||
|
@ -30,11 +31,28 @@
|
|||
//&.alert-error
|
||||
|
||||
&.alert-warning
|
||||
background-image: url(/images/level/code_editor_warning_background.png)
|
||||
border-image-source: url(/images/level/code_editor_warning_background.png)
|
||||
|
||||
&.alert-info
|
||||
background-image: url(/images/level/code_editor_info_background.png)
|
||||
border-image-source: url(/images/level/code_editor_info_background.png)
|
||||
|
||||
&.alert-style
|
||||
// Do we ever want to do this for style?
|
||||
background-image: url(/images/level/code_editor_info_background.png)
|
||||
border-image-source: url(/images/level/code_editor_info_background.png)
|
||||
|
||||
html.no-borderimage
|
||||
.problem-alert
|
||||
border-width: 0
|
||||
border-image: none
|
||||
background: transparent url(/images/level/code_editor_error_background.png) no-repeat
|
||||
background-size: 100% 100%
|
||||
|
||||
&.alert-warning
|
||||
background-image: url(/images/level/code_editor_warning_background.png)
|
||||
|
||||
&.alert-info
|
||||
background-image: url(/images/level/code_editor_info_background.png)
|
||||
|
||||
&.alert-style
|
||||
// Do we ever want to do this for style?
|
||||
background-image: url(/images/level/code_editor_info_background.png)
|
|
@ -26,6 +26,13 @@
|
|||
top: 0
|
||||
height: 100%
|
||||
width: 100%
|
||||
|
||||
span.code-background
|
||||
border-width: 22px
|
||||
border-image: url(/images/level/code_editor_background.png) 22 fill round
|
||||
|
||||
img.code-background
|
||||
display: none
|
||||
|
||||
.save-status
|
||||
display: none
|
||||
|
@ -64,7 +71,7 @@
|
|||
|
||||
.ace_gutter
|
||||
background-color: rgba(255, 255, 255, 0.25)
|
||||
width: 40px
|
||||
width: 47px
|
||||
margin-left: 4px
|
||||
border-bottom: 1px dotted #2f261d
|
||||
|
||||
|
@ -133,3 +140,11 @@
|
|||
|
||||
.ace_searchbtn, .ace_replacebtn
|
||||
padding: 0px 4px
|
||||
|
||||
html.no-borderimage
|
||||
#spell-view
|
||||
span.code-background
|
||||
display: none
|
||||
img.code-background
|
||||
display: block
|
||||
|
||||
|
|
|
@ -6,8 +6,8 @@
|
|||
min-width: 250px
|
||||
max-width: 400px
|
||||
padding: 10px
|
||||
background: transparent url(/images/level/popover_background.png)
|
||||
background-size: 100% 100%
|
||||
border-image: url(/images/level/popover_background.png) 18 fill round
|
||||
border-width: 8px
|
||||
.progress
|
||||
position: relative
|
||||
span
|
||||
|
@ -15,4 +15,10 @@
|
|||
display: block
|
||||
color: black
|
||||
width: 100%
|
||||
|
||||
html.no-borderimage
|
||||
.spell-debug-view
|
||||
background: transparent url(/images/level/popover_background.png)
|
||||
background-size: 100% 100%
|
||||
border: 0
|
||||
|
||||
|
|
|
@ -8,6 +8,11 @@
|
|||
left: 0%
|
||||
right: 10%
|
||||
padding: 4%
|
||||
background: transparent url(/images/level/popover_background.png)
|
||||
background-size: 100% 100%
|
||||
border-image: url(/images/level/popover_background.png) 18 fill round
|
||||
border-width: 15px
|
||||
|
||||
html.no-borderimage
|
||||
#spell-list-view
|
||||
background: transparent url(/images/level/popover_background.png)
|
||||
background-size: 100% 100%
|
||||
border: 0
|
|
@ -17,15 +17,15 @@
|
|||
width: -webkit-calc(100% - 100px)
|
||||
width: calc(100% - 100px)
|
||||
padding: 0px 8px
|
||||
background: transparent url(/images/level/code_editor_tab_background.png) no-repeat
|
||||
background-size: 100% 100%
|
||||
border-width: 3px
|
||||
border-image: url(/images/level/code_editor_tab_background.png) 4 fill repeat
|
||||
text-align: center
|
||||
|
||||
&.read-only
|
||||
background: linear-gradient(to bottom, rgba(0,0,0,0.2) 0%,rgba(0,0,0,0.2) 100%), url(/images/level/code_editor_tab_background.png)
|
||||
background-size: 100% 100%
|
||||
|
||||
.spell-list-button, .thang-avatar-wrapper, .reload-code, .beautify-code
|
||||
.spell-list-button, .thang-avatar-wrapper, .reload-code, .beautify-code, .fullscreen-code
|
||||
width: $childSize
|
||||
height: $childSize
|
||||
margin: $childMargin
|
||||
|
@ -41,6 +41,15 @@
|
|||
.beautify-code
|
||||
float: right
|
||||
|
||||
.fullscreen-code
|
||||
float: right
|
||||
&:not(.maximized)
|
||||
.icon-resize-small
|
||||
display: none
|
||||
&.maximized
|
||||
.icon-fullscreen
|
||||
display: none
|
||||
|
||||
.btn.btn-small
|
||||
background: transparent
|
||||
padding: 0
|
||||
|
@ -49,7 +58,7 @@
|
|||
border-color: transparent
|
||||
@include box-shadow(none)
|
||||
|
||||
.icon-chevron-down, .icon-repeat, .icon-magnet
|
||||
.icon-chevron-down, .icon-repeat, .icon-magnet, .icon-fullscreen, .icon-resize-small
|
||||
margin-top: 7px
|
||||
|
||||
.thang-avatar-wrapper
|
||||
|
@ -94,3 +103,11 @@
|
|||
.thang-avatar-wrapper
|
||||
margin: 0 5px 0 0
|
||||
//margin: 2px 10px 2px 5px
|
||||
|
||||
|
||||
html.no-borderimage
|
||||
.spell-list-entry-view.spell-tab
|
||||
border-width: 0
|
||||
border-image: none
|
||||
background: transparent url(/images/level/code_editor_tab_background.png) no-repeat
|
||||
background-size: 100% 100%
|
|
@ -10,8 +10,8 @@
|
|||
max-height: 500px
|
||||
overflow: scroll
|
||||
padding: 4%
|
||||
background: transparent url(/images/level/popover_background.png)
|
||||
background-size: 100% 100%
|
||||
border-image: url(/images/level/popover_background.png) 18 fill round
|
||||
border-width: 15px
|
||||
|
||||
.thang-avatar-view
|
||||
cursor: pointer
|
||||
|
@ -20,4 +20,9 @@
|
|||
display: inline-block
|
||||
|
||||
|
||||
|
||||
html.no-borderimage
|
||||
.spell-list-entry-view
|
||||
.spell-list-entry-thangs-view
|
||||
background: transparent url(/images/level/popover_background.png)
|
||||
background-size: 100% 100%
|
||||
border: 0
|
|
@ -17,13 +17,20 @@
|
|||
z-index: 0
|
||||
//overflow-y: auto
|
||||
|
||||
img
|
||||
.code-palette-background
|
||||
position: absolute
|
||||
left: 0
|
||||
top: 0
|
||||
width: 100%
|
||||
height: 100%
|
||||
z-index: -1
|
||||
|
||||
span.code-palette-background
|
||||
border-width: 25px
|
||||
border-image: url(/images/level/code_palette_background.png) 25 fill round
|
||||
|
||||
img.code-palette-background
|
||||
display: none
|
||||
|
||||
&.disabled
|
||||
@include opacity(0.80)
|
||||
|
@ -86,3 +93,9 @@
|
|||
&.io
|
||||
background-image: url(/images/pages/home/language_logo_io.png)
|
||||
|
||||
html.no-borderimage
|
||||
#spell-palette-view
|
||||
span.code-palette-background
|
||||
display: none
|
||||
img.code-palette-background
|
||||
display: block
|
|
@ -37,9 +37,8 @@
|
|||
|
||||
.popover
|
||||
padding: 10px 10px 30px 10px
|
||||
background: transparent url(/images/level/popover_background.png)
|
||||
background-size: 100% 100%
|
||||
border: 0
|
||||
border-image: url(/images/level/popover_background.png) 18 fill round
|
||||
border-width: 15px
|
||||
@include box-shadow(0 0 0 #000)
|
||||
|
||||
h1:not(.not-code), h2:not(.not-code), h3:not(.not-code), h4:not(.not-code), h5:not(.not-code), h6:not(.not-code)
|
||||
|
@ -70,3 +69,10 @@
|
|||
pre
|
||||
display: inline-block
|
||||
padding: 5px
|
||||
|
||||
html.no-borderimage
|
||||
#tome-view
|
||||
.popover
|
||||
background: transparent url(/images/level/popover_background.png)
|
||||
background-size: 100% 100%
|
||||
border: 0
|
||||
|
|
|
@ -1,6 +1,23 @@
|
|||
extends /templates/base
|
||||
|
||||
|
||||
block content
|
||||
ul
|
||||
for component in components
|
||||
li= component.get('name')
|
||||
.row
|
||||
.col-xs-3.index-column.nano
|
||||
ul.nav.nav-list.list-group.nano-content
|
||||
for component in components
|
||||
li= component.get('name')
|
||||
ul
|
||||
each doc in component.attributes.propertyDocumentation
|
||||
a(href="##{component.get('name')}#{doc.name}")
|
||||
li
|
||||
| #{doc.name}
|
||||
.col-xs-9.documentation-column.nano
|
||||
ul.nano-content
|
||||
for component in components
|
||||
each doc in component.attributes.propertyDocumentation
|
||||
li(id="#{component.get('name')}#{doc.name}")
|
||||
| #{doc.name}
|
||||
ul.specialList
|
||||
li=doc.description
|
||||
|
|
@ -1,4 +1,5 @@
|
|||
img(src="/images/level/code_editor_background.png").code-background
|
||||
span.code-background
|
||||
|
||||
div.ace
|
||||
|
||||
|
|
|
@ -4,10 +4,15 @@
|
|||
|
||||
code #{methodSignature}
|
||||
|
||||
.btn.btn-small.fullscreen-code(title="Expand code editor")
|
||||
i.icon-fullscreen
|
||||
i.icon-resize-small
|
||||
|
||||
.btn.btn-small.reload-code(title="Reload original code for " + spell.name)
|
||||
i.icon-repeat
|
||||
|
||||
.btn.btn-small.beautify-code(title="Ctrl+Shift+B: Beautify code for " + spell.name)
|
||||
i.icon-magnet
|
||||
|
||||
|
||||
.clearfix
|
|
@ -1,4 +1,5 @@
|
|||
img(src="/images/level/code_palette_background.png").code-palette-background
|
||||
span.code-palette-background
|
||||
.code-language-logo
|
||||
ul(class="nav nav-pills" + (tabbed ? ' multiple-tabs' : ''))
|
||||
each slug, group in entryGroupSlugs
|
||||
|
|
|
@ -18,6 +18,7 @@ module.exports = class UnnamedView extends RootView
|
|||
|
||||
onLoaded: ->
|
||||
console.log 'we have the components...', (c.get('name') for c in @componentDocs.models)
|
||||
console.log 'we have the attributes...', (c.attributes for c in @componentDocs.models)
|
||||
super()
|
||||
|
||||
getRenderData: ->
|
||||
|
|
|
@ -8,7 +8,6 @@ utils = require 'lib/utils'
|
|||
module.exports = class DocsModal extends View
|
||||
template: template
|
||||
id: 'docs-modal'
|
||||
plain: true
|
||||
|
||||
shortcuts:
|
||||
'enter': 'hide'
|
||||
|
|
|
@ -83,7 +83,7 @@ module.exports = class DocFormatter
|
|||
@doc.title = if @options.shortenize then @doc.shorterName else @doc.shortName
|
||||
|
||||
# Grab the language-specific documentation for some sub-properties, if we have it.
|
||||
toTranslate = [{obj: @doc, prop: 'example'}, {obj: @doc, prop: 'returns'}]
|
||||
toTranslate = [{obj: @doc, prop: 'description'}, {obj: @doc, prop: 'example'}, {obj: @doc, prop: 'returns'}]
|
||||
for arg in (@doc.args ? [])
|
||||
toTranslate.push {obj: arg, prop: 'example'}, {obj: arg, prop: 'description'}
|
||||
for {obj, prop} in toTranslate
|
||||
|
|
|
@ -18,6 +18,7 @@ module.exports = class SpellListTabEntryView extends SpellListEntryView
|
|||
'click .spell-list-button': 'onDropdownClick'
|
||||
'click .reload-code': 'onCodeReload'
|
||||
'click .beautify-code': 'onBeautifyClick'
|
||||
'click .fullscreen-code': 'onFullscreenClick'
|
||||
|
||||
constructor: (options) ->
|
||||
super options
|
||||
|
@ -86,6 +87,14 @@ module.exports = class SpellListTabEntryView extends SpellListEntryView
|
|||
return unless @controlsEnabled
|
||||
Backbone.Mediator.publish 'spell-beautify', spell: @spell
|
||||
|
||||
onFullscreenClick: ->
|
||||
unless $('.fullscreen-code').hasClass 'maximized'
|
||||
$('#code-area').addClass 'fullscreen-editor'
|
||||
$('.fullscreen-code').addClass 'maximized'
|
||||
else
|
||||
$('#code-area').removeClass 'fullscreen-editor'
|
||||
$('.fullscreen-code').removeClass 'maximized'
|
||||
|
||||
updateReloadButton: ->
|
||||
changed = @spell.hasChanged null, @spell.getSource()
|
||||
@$el.find('.reload-code').css('display', if changed then 'inline-block' else 'none')
|
||||
|
|
|
@ -255,6 +255,13 @@ module.exports = class PlayView extends View
|
|||
image: '/file/db/level/52740644904ac0411700067c/rescue_mission_icon.png'
|
||||
description: 'Fetch the wizards teleporting into the area - by Nathan Gossett'
|
||||
}
|
||||
{
|
||||
name: "Let's go Fly a Kite"
|
||||
difficulty: 3
|
||||
id: 'lets-go-fly-a-kite'
|
||||
image: '/file/db/level/526711d9add4f8965f000002/hunter_triplets_icon.png'
|
||||
description: 'There is a horde of ogres marching on your village. Stay out of reach and use your bow to take them out! - by Danny Whittaker'
|
||||
}
|
||||
]
|
||||
|
||||
context.campaigns = [
|
||||
|
|
|
@ -44,7 +44,8 @@
|
|||
"bootstrap": "~3.1.1",
|
||||
"validated-backbone-mediator": "~0.1.3",
|
||||
"jquery.browser": "~0.0.6",
|
||||
"zatanna": "~0.0.2"
|
||||
"zatanna": "~0.0.2",
|
||||
"modernizr": "~2.8.3"
|
||||
},
|
||||
"overrides": {
|
||||
"backbone": {
|
||||
|
@ -81,6 +82,9 @@
|
|||
"./dist/fonts/glyphicons-halflings-regular.ttf",
|
||||
"./dist/fonts/glyphicons-halflings-regular.woff"
|
||||
]
|
||||
},
|
||||
"modernizr": {
|
||||
"main": "modernizr.js"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -125,11 +125,12 @@ module.exports.getTwoGames = (req, res) ->
|
|||
#if userIsAnonymous req then return errors.unauthorized(res, 'You need to be logged in to get games.')
|
||||
humansGameID = req.body.humansGameID
|
||||
ogresGameID = req.body.ogresGameID
|
||||
|
||||
ladderGameIDs = ['greed','criss-cross','brawlwood','dungeon-arena','gold-rush']
|
||||
levelID = _.sample ladderGameIDs
|
||||
unless ogresGameID and humansGameID
|
||||
#fetch random games here
|
||||
queryParams =
|
||||
'levelID': 'greed'
|
||||
'levelID': levelID
|
||||
'submitted': true
|
||||
'team': 'humans'
|
||||
selection = 'team totalScore transpiledCode submittedCodeLanguage teamSpells levelID creatorName creator submitDate'
|
||||
|
@ -140,7 +141,7 @@ module.exports.getTwoGames = (req, res) ->
|
|||
return res.end()
|
||||
humanSkipCount = Math.floor(Math.random() * numberOfHumans)
|
||||
ogreCountParams =
|
||||
'levelID': 'greed'
|
||||
'levelID': levelID
|
||||
'submitted': true
|
||||
'team': 'ogres'
|
||||
LevelSession.count ogreCountParams, (err, numberOfOgres) =>
|
||||
|
@ -161,7 +162,7 @@ module.exports.getTwoGames = (req, res) ->
|
|||
if err? then return errors.serverError(res, "Couldn't select a random session! #{err}")
|
||||
randomSession = randomSession[0]
|
||||
queryParams =
|
||||
'levelID': 'greed'
|
||||
'levelID': levelID
|
||||
'submitted': true
|
||||
'team': 'ogres'
|
||||
query = LevelSession
|
||||
|
|
Loading…
Reference in a new issue