mirror of
https://github.com/codeninjasllc/codecombat.git
synced 2024-12-01 03:16:56 -05:00
Merge branch 'master' into production
This commit is contained in:
commit
7fb0784921
7 changed files with 262 additions and 37 deletions
|
@ -311,3 +311,36 @@ module.exports = LevelOptions =
|
||||||
'oasis':
|
'oasis':
|
||||||
requiredGear: {}
|
requiredGear: {}
|
||||||
restrictedGear: {}
|
restrictedGear: {}
|
||||||
|
'sarven-road':
|
||||||
|
requiredGear: {}
|
||||||
|
restrictedGear: {}
|
||||||
|
'sarven-gaps':
|
||||||
|
requiredGear: {}
|
||||||
|
restrictedGear: {}
|
||||||
|
'thunderhooves':
|
||||||
|
requiredGear: {}
|
||||||
|
restrictedGear: {}
|
||||||
|
'medical-attention':
|
||||||
|
requiredGear: {} # sense stone
|
||||||
|
restrictedGear: {}
|
||||||
|
'minesweeper':
|
||||||
|
requiredGear: {}
|
||||||
|
restrictedGear: {}
|
||||||
|
'sarven-sentry':
|
||||||
|
requiredGear: {'right-hand': 'crude-builders-hammer'}
|
||||||
|
restrictedGear: {}
|
||||||
|
'keeping-time':
|
||||||
|
requiredGear: {} # watch
|
||||||
|
restrictedGear: {}
|
||||||
|
'hoarding-gold':
|
||||||
|
requiredGear: {}
|
||||||
|
restrictedGear: {}
|
||||||
|
'decoy-drill':
|
||||||
|
requiredGear: {} # new builder's hammer
|
||||||
|
restrictedGear: {}
|
||||||
|
'yakstraction':
|
||||||
|
requiredGear: {} # new builder's hammer
|
||||||
|
restrictedGear: {}
|
||||||
|
'sarven-brawl':
|
||||||
|
requiredGear: {}
|
||||||
|
restrictedGear: {}
|
||||||
|
|
|
@ -69,7 +69,7 @@ module.exports = nativeDescription: "français", englishDescription: "French", t
|
||||||
change_hero: "Changer le Héro" # Go back from choose inventory to choose hero
|
change_hero: "Changer le Héro" # Go back from choose inventory to choose hero
|
||||||
choose_inventory: "Équiper des objets"
|
choose_inventory: "Équiper des objets"
|
||||||
buy_gems: "Acheter des gemmes"
|
buy_gems: "Acheter des gemmes"
|
||||||
# campaign_desert: "Desert Campaign"
|
campaign_desert: "Campagne Desert"
|
||||||
campaign_forest: "Campagne de la forêt"
|
campaign_forest: "Campagne de la forêt"
|
||||||
campaign_dungeon: "Compagne du donjon"
|
campaign_dungeon: "Compagne du donjon"
|
||||||
subscription_required: "Enregistrement nécessaire"
|
subscription_required: "Enregistrement nécessaire"
|
||||||
|
@ -146,13 +146,13 @@ module.exports = nativeDescription: "français", englishDescription: "French", t
|
||||||
fork: "Fork"
|
fork: "Fork"
|
||||||
play: "Jouer" # When used as an action verb, like "Play next level"
|
play: "Jouer" # When used as an action verb, like "Play next level"
|
||||||
retry: "Reessayer"
|
retry: "Reessayer"
|
||||||
# actions: "Actions"
|
actions: "Actions"
|
||||||
# info: "Info"
|
info: "Info"
|
||||||
# help: "Help"
|
help: "Aide"
|
||||||
watch: "Regarder"
|
watch: "Regarder"
|
||||||
unwatch: "Ne plus regarder"
|
unwatch: "Ne plus regarder"
|
||||||
submit_patch: "Soumettre un correctif"
|
submit_patch: "Soumettre un correctif"
|
||||||
# submit_changes: "Submit Changes"
|
submit_changes: "Soumettre des Changements"
|
||||||
|
|
||||||
general:
|
general:
|
||||||
and: "et"
|
and: "et"
|
||||||
|
@ -160,17 +160,17 @@ module.exports = nativeDescription: "français", englishDescription: "French", t
|
||||||
date: "Date"
|
date: "Date"
|
||||||
body: "Corps"
|
body: "Corps"
|
||||||
version: "Version"
|
version: "Version"
|
||||||
# submitter: "Submitter"
|
submitter: "Soumissionnaire"
|
||||||
# submitted: "Submitted"
|
submitted: "Soumis"
|
||||||
commit_msg: "Message de mise à jour"
|
commit_msg: "Message de mise à jour"
|
||||||
# review: "Review"
|
review: "Examen" #review
|
||||||
version_history: "Historique des versions"
|
version_history: "Historique des versions"
|
||||||
version_history_for: "Historique des versions pour : "
|
version_history_for: "Historique des versions pour : "
|
||||||
# select_changes: "Select two changes below to see the difference."
|
select_changes: "Sélectionner deux changements plus bas pour voir la différence."
|
||||||
# undo: "Undo (Ctrl+Z)"
|
undo: "Annuler (Ctrl+Z)"
|
||||||
# redo: "Redo (Ctrl+Shift+Z)"
|
redo: "Refaire (Ctrl+Shift+Z)"
|
||||||
# play_preview: "Play preview of current level"
|
play_preview: "Jouer un aperçu du niveau actuel"
|
||||||
result: "Resultat"
|
result: "Résultat"
|
||||||
results: "Résultats"
|
results: "Résultats"
|
||||||
description: "Description"
|
description: "Description"
|
||||||
or: "ou"
|
or: "ou"
|
||||||
|
@ -228,10 +228,10 @@ module.exports = nativeDescription: "français", englishDescription: "French", t
|
||||||
click_to_select: "Clique sur une unité pour la sélectionner."
|
click_to_select: "Clique sur une unité pour la sélectionner."
|
||||||
control_bar_multiplayer: "Multi joueurs"
|
control_bar_multiplayer: "Multi joueurs"
|
||||||
control_bar_join_game: "Rejoindre la partie"
|
control_bar_join_game: "Rejoindre la partie"
|
||||||
reload: "Recharger"
|
reload: "Recommencer"
|
||||||
reload_title: "Recharger tout le code?"
|
reload_title: "Recommencer tout le code?"
|
||||||
reload_really: "Êtes-vous sûr de vouloir recharger ce niveau et retourner au début?"
|
reload_really: "Êtes-vous sûr de vouloir recommencer ce niveau et retourner au début?"
|
||||||
reload_confirm: "Tout recharger"
|
reload_confirm: "Tout recommencer"
|
||||||
victory: "Victoire"
|
victory: "Victoire"
|
||||||
victory_title_prefix: ""
|
victory_title_prefix: ""
|
||||||
victory_title_suffix: " Terminé"
|
victory_title_suffix: " Terminé"
|
||||||
|
@ -253,7 +253,7 @@ module.exports = nativeDescription: "français", englishDescription: "French", t
|
||||||
tome_other_units: "Autres unités" # Only in old-style levels.
|
tome_other_units: "Autres unités" # Only in old-style levels.
|
||||||
tome_cast_button_run: "Exécuter"
|
tome_cast_button_run: "Exécuter"
|
||||||
tome_cast_button_running: "En cours d'exécution"
|
tome_cast_button_running: "En cours d'exécution"
|
||||||
tome_cast_button_ran: "Exécuté"
|
tome_cast_button_ran: "Exécuter"
|
||||||
tome_submit_button: "Envoyer"
|
tome_submit_button: "Envoyer"
|
||||||
tome_reload_method: "Recharger le code original pour cette méthode" # Title text for individual method reload button.
|
tome_reload_method: "Recharger le code original pour cette méthode" # Title text for individual method reload button.
|
||||||
tome_select_method: "Selectionner une méthode"
|
tome_select_method: "Selectionner une méthode"
|
||||||
|
@ -268,7 +268,7 @@ module.exports = nativeDescription: "français", englishDescription: "French", t
|
||||||
skip_tutorial: "Passer (esc)"
|
skip_tutorial: "Passer (esc)"
|
||||||
keyboard_shortcuts: "Raccourcis Clavier"
|
keyboard_shortcuts: "Raccourcis Clavier"
|
||||||
loading_ready: "Pret!"
|
loading_ready: "Pret!"
|
||||||
loading_start: "Démarrer le niveau"
|
loading_start: "Démarrer niveau"
|
||||||
problem_alert_title: "Corriger votre Code"
|
problem_alert_title: "Corriger votre Code"
|
||||||
time_current: "Maintenant:"
|
time_current: "Maintenant:"
|
||||||
time_total: "Max:"
|
time_total: "Max:"
|
||||||
|
@ -344,7 +344,7 @@ module.exports = nativeDescription: "français", englishDescription: "French", t
|
||||||
prompt_title: "Pas assez de gemmes"
|
prompt_title: "Pas assez de gemmes"
|
||||||
prompt_body: "En voulez-vous plus?"
|
prompt_body: "En voulez-vous plus?"
|
||||||
prompt_button: "Entrer dans la boutique"
|
prompt_button: "Entrer dans la boutique"
|
||||||
# recovered: "Previous gems purchase recovered. Please refresh the page."
|
recovered: "Gemmes précédemment achetées récupérées. Merci de rafraîchir la page."
|
||||||
|
|
||||||
subscribe:
|
subscribe:
|
||||||
subscribe_title: "Inscription"
|
subscribe_title: "Inscription"
|
||||||
|
@ -366,7 +366,7 @@ module.exports = nativeDescription: "français", englishDescription: "French", t
|
||||||
choose_hero: "Choisissez votre Héro"
|
choose_hero: "Choisissez votre Héro"
|
||||||
programming_language: "Langage de programmation"
|
programming_language: "Langage de programmation"
|
||||||
programming_language_description: "Quel langage de programmation voullez-vous utiliser?"
|
programming_language_description: "Quel langage de programmation voullez-vous utiliser?"
|
||||||
# default: "Default"
|
default: "Défaut"
|
||||||
experimental: "Expérimental"
|
experimental: "Expérimental"
|
||||||
python_blurb: "Simple mais puissant, idéal pour les débutants et les experts."
|
python_blurb: "Simple mais puissant, idéal pour les débutants et les experts."
|
||||||
javascript_blurb: "Le langage du web. (Pas le même que Java.)"
|
javascript_blurb: "Le langage du web. (Pas le même que Java.)"
|
||||||
|
@ -392,7 +392,7 @@ module.exports = nativeDescription: "français", englishDescription: "French", t
|
||||||
restricted_to_certain_heroes: "Seulement certains héros peuvent jouer ce niveau."
|
restricted_to_certain_heroes: "Seulement certains héros peuvent jouer ce niveau."
|
||||||
|
|
||||||
skill_docs:
|
skill_docs:
|
||||||
# writable: "writable" # Hover over "attack" in Your Skills while playing a level to see most of this
|
writable: "éditable" # Hover over "attack" in Your Skills while playing a level to see most of this
|
||||||
read_only: "lecture seulement"
|
read_only: "lecture seulement"
|
||||||
action_name: "nom"
|
action_name: "nom"
|
||||||
action_cooldown: "Encaisse"
|
action_cooldown: "Encaisse"
|
||||||
|
@ -480,7 +480,7 @@ module.exports = nativeDescription: "français", englishDescription: "French", t
|
||||||
forum_prefix: "Pour tout sujet d'ordre publique, merci d'utiliser "
|
forum_prefix: "Pour tout sujet d'ordre publique, merci d'utiliser "
|
||||||
forum_page: "notre forum"
|
forum_page: "notre forum"
|
||||||
forum_suffix: " À la place."
|
forum_suffix: " À la place."
|
||||||
# where_reply: "Where should we reply?"
|
where_reply: "Où devons-nous répondre?"
|
||||||
send: "Envoyer un commentaire"
|
send: "Envoyer un commentaire"
|
||||||
contact_candidate: "Contacter le candidat" # Deprecated
|
contact_candidate: "Contacter le candidat" # Deprecated
|
||||||
recruitment_reminder: "Utilisez ce formulaire pour entrer en contact avec le candidat qui vous interesse. Souvenez-vous que CodeCombat facture 15% de la première année de salaire. Ces frais sont dues à l'embauche de l'employé, ils sont remboursable pendant 90 jours si l'employé ne reste pas employé. Les employés à temps partiel, à distance ou contractuel sont gratuits en tant que stagiaires." # Deprecated
|
recruitment_reminder: "Utilisez ce formulaire pour entrer en contact avec le candidat qui vous interesse. Souvenez-vous que CodeCombat facture 15% de la première année de salaire. Ces frais sont dues à l'embauche de l'employé, ils sont remboursable pendant 90 jours si l'employé ne reste pas employé. Les employés à temps partiel, à distance ou contractuel sont gratuits en tant que stagiaires." # Deprecated
|
||||||
|
@ -593,9 +593,9 @@ module.exports = nativeDescription: "français", englishDescription: "French", t
|
||||||
more: "Plus"
|
more: "Plus"
|
||||||
wiki: "Wiki"
|
wiki: "Wiki"
|
||||||
live_chat: "Chat en live"
|
live_chat: "Chat en live"
|
||||||
# thang_main: "Main"
|
thang_main: "Principal"
|
||||||
# thang_spritesheets: "Spritesheets"
|
thang_spritesheets: "Feuilles des sprites" #SpriteSheets
|
||||||
# thang_colors: "Colors"
|
thang_colors: "Couleurs"
|
||||||
level_some_options: "Quelques options?"
|
level_some_options: "Quelques options?"
|
||||||
level_tab_thangs: "Thangs"
|
level_tab_thangs: "Thangs"
|
||||||
level_tab_scripts: "Scripts"
|
level_tab_scripts: "Scripts"
|
||||||
|
@ -827,8 +827,8 @@ module.exports = nativeDescription: "français", englishDescription: "French", t
|
||||||
recently_played: "Jouées récemment"
|
recently_played: "Jouées récemment"
|
||||||
no_recent_games: "Aucunes parties jouées au cours des deux dernières semaines."
|
no_recent_games: "Aucunes parties jouées au cours des deux dernières semaines."
|
||||||
payments: "Paiements"
|
payments: "Paiements"
|
||||||
# purchased: "Purchased"
|
purchased: "Acheté"
|
||||||
# subscription: "Subscription"
|
subscription: "Souscrit"
|
||||||
service_apple: "Apple"
|
service_apple: "Apple"
|
||||||
service_web: "Web"
|
service_web: "Web"
|
||||||
paid_on: "Payé"
|
paid_on: "Payé"
|
||||||
|
@ -1118,14 +1118,14 @@ module.exports = nativeDescription: "français", englishDescription: "French", t
|
||||||
filter_visa_no: "Non autorisé"
|
filter_visa_no: "Non autorisé"
|
||||||
filter_education_top: "Ecole supérieure"
|
filter_education_top: "Ecole supérieure"
|
||||||
filter_education_other: "Autre"
|
filter_education_other: "Autre"
|
||||||
filter_role_web_developer: "Développeur Webr"
|
filter_role_web_developer: "Développeur Web"
|
||||||
filter_role_software_developer: "Développeur logiciel"
|
filter_role_software_developer: "Développeur logiciel"
|
||||||
filter_role_mobile_developer: "Développeur mobile"
|
filter_role_mobile_developer: "Développeur mobile"
|
||||||
filter_experience: "Expérience"
|
filter_experience: "Expérience"
|
||||||
filter_experience_senior: "Senior"
|
filter_experience_senior: "Senior"
|
||||||
filter_experience_junior: "Junior"
|
filter_experience_junior: "Junior"
|
||||||
# filter_experience_recent_grad: "Recent Grad"
|
# filter_experience_recent_grad: "Recent Grad"
|
||||||
# filter_experience_student: "College Student"
|
filter_experience_student: "Étudiant"
|
||||||
filter_results: "Résultats"
|
filter_results: "Résultats"
|
||||||
start_hiring: "Commencer à embaucher."
|
start_hiring: "Commencer à embaucher."
|
||||||
# reasons: "Three reasons you should hire through us:"
|
# reasons: "Three reasons you should hire through us:"
|
||||||
|
|
|
@ -87,6 +87,18 @@ clusters = {
|
||||||
'thangs': ['Bookshelf', 'Chair', 'Table', 'Candle', 'Treasure Chest']
|
'thangs': ['Bookshelf', 'Chair', 'Table', 'Candle', 'Treasure Chest']
|
||||||
'margin': -1
|
'margin': -1
|
||||||
}
|
}
|
||||||
|
'desert_walls': {
|
||||||
|
'thangs': ['Desert Wall 1', 'Desert Wall 2', 'Desert Wall 3', 'Desert Wall 4', 'Desert Wall 5', 'Desert Wall 6', 'Desert Wall 7', 'Desert Wall 8']
|
||||||
|
'margin': 6
|
||||||
|
}
|
||||||
|
'desert_floor': {
|
||||||
|
'thangs': ['Sand 01', 'Sand 02', 'Sand 03', 'Sand 04', 'Sand 05', 'Sand 06']
|
||||||
|
'margin': -1
|
||||||
|
}
|
||||||
|
'oases': {
|
||||||
|
'thangs': ['Oasis 1', 'Oasis 2', 'Oasis 3']
|
||||||
|
'margin': 4
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
presets = {
|
presets = {
|
||||||
|
@ -207,6 +219,35 @@ presets = {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
'desert': {
|
||||||
|
'terrainName': 'Desert'
|
||||||
|
'type':'desert'
|
||||||
|
'borders':'desert_walls'
|
||||||
|
'borderNoise':2
|
||||||
|
'borderSize':4
|
||||||
|
'borderThickness':4
|
||||||
|
'floors':'desert_floor'
|
||||||
|
'decorations': {
|
||||||
|
'hero': {
|
||||||
|
'num': [1, 1]
|
||||||
|
'width': 2
|
||||||
|
'height': 2
|
||||||
|
'clusters': {
|
||||||
|
'hero': [1, 1]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
'oasis': {
|
||||||
|
'num':[1,2] #min-max
|
||||||
|
'width': 10
|
||||||
|
'height': 10
|
||||||
|
'clusters': {
|
||||||
|
'oases':[1,1]
|
||||||
|
'shrubs':[0,5]
|
||||||
|
'rocks':[0,2]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
presetSizes = {
|
presetSizes = {
|
||||||
|
|
|
@ -988,13 +988,164 @@ desert = [
|
||||||
id: 'oasis'
|
id: 'oasis'
|
||||||
original: '5480ba761bf0b10000711c64'
|
original: '5480ba761bf0b10000711c64'
|
||||||
description: 'Run a gauntlet of sand yaks to reach oasis and quench your thirst!'
|
description: 'Run a gauntlet of sand yaks to reach oasis and quench your thirst!'
|
||||||
#nextLevels:
|
nextLevels:
|
||||||
# continue: ''
|
continue: 'sarven-road'
|
||||||
x: 23.35
|
x: 23.35
|
||||||
y: 31.60
|
y: 31.60
|
||||||
adventurer: true
|
adventurer: true
|
||||||
requiresSubscription: false
|
requiresSubscription: false
|
||||||
}
|
}
|
||||||
|
{
|
||||||
|
name: 'Sarven Road'
|
||||||
|
type: 'hero'
|
||||||
|
id: 'sarven-road'
|
||||||
|
original: '548c82360ffdc235e80ef04b'
|
||||||
|
description: 'Coming Soon'
|
||||||
|
nextLevels:
|
||||||
|
continue: 'sarven-gaps'
|
||||||
|
x: 28.36
|
||||||
|
y: 24.59
|
||||||
|
adventurer: true
|
||||||
|
requiresSubscription: false
|
||||||
|
disabled: not me.isAdmin()
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: 'Sarven Gaps'
|
||||||
|
type: 'hero'
|
||||||
|
id: 'sarven-gaps'
|
||||||
|
original: '548c8f4a0ffdc235e80ef0a8'
|
||||||
|
description: 'Coming Soon'
|
||||||
|
nextLevels:
|
||||||
|
continue: 'thunderhooves'
|
||||||
|
x: 21.13
|
||||||
|
y: 9.29
|
||||||
|
adventurer: true
|
||||||
|
requiresSubscription: true
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: 'Thunderhooves'
|
||||||
|
type: 'hero'
|
||||||
|
id: 'thunderhooves'
|
||||||
|
original: '548c90020ffdc235e80ef0ad'
|
||||||
|
description: 'Coming Soon'
|
||||||
|
nextLevels:
|
||||||
|
continue: 'medical-attention'
|
||||||
|
x: 35.08
|
||||||
|
y: 20.48
|
||||||
|
adventurer: true
|
||||||
|
requiresSubscription: false
|
||||||
|
disabled: not me.isAdmin()
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: 'Medical Attention'
|
||||||
|
type: 'hero'
|
||||||
|
id: 'medical-attention'
|
||||||
|
original: '548ce3300ffdc235e80ef0b2'
|
||||||
|
description: 'Coming Soon'
|
||||||
|
nextLevels:
|
||||||
|
continue: 'minesweeper'
|
||||||
|
x: 42.84
|
||||||
|
y: 21.82
|
||||||
|
adventurer: true
|
||||||
|
requiresSubscription: false
|
||||||
|
disabled: not me.isAdmin()
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: 'Minesweeper'
|
||||||
|
type: 'hero'
|
||||||
|
id: 'minesweeper'
|
||||||
|
original: ''
|
||||||
|
description: 'Coming Soon'
|
||||||
|
nextLevels:
|
||||||
|
continue: 'sarven-sentry'
|
||||||
|
x: 47.64
|
||||||
|
y: 12.40
|
||||||
|
adventurer: true
|
||||||
|
requiresSubscription: true
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: 'Sarven Sentry'
|
||||||
|
type: 'hero'
|
||||||
|
id: 'sarven-sentry'
|
||||||
|
original: '548cef7f0ffdc235e80ef0cc'
|
||||||
|
description: 'Coming Soon'
|
||||||
|
nextLevels:
|
||||||
|
continue: 'keeping-time'
|
||||||
|
x: 51.48
|
||||||
|
y: 26.09
|
||||||
|
adventurer: true
|
||||||
|
requiresSubscription: false
|
||||||
|
disabled: not me.isAdmin()
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: 'Keeping Time'
|
||||||
|
type: 'hero'
|
||||||
|
id: 'keeping-time'
|
||||||
|
original: '548cf1a90ffdc235e80ef0d1'
|
||||||
|
description: 'Coming Soon'
|
||||||
|
nextLevels:
|
||||||
|
continue: 'hoarding-gold'
|
||||||
|
x: 58.42
|
||||||
|
y: 34.14
|
||||||
|
adventurer: true
|
||||||
|
requiresSubscription: false
|
||||||
|
disabled: not me.isAdmin()
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: 'Hoarding Gold'
|
||||||
|
type: 'hero'
|
||||||
|
id: 'hoarding-gold'
|
||||||
|
original: ''
|
||||||
|
description: 'Coming Soon'
|
||||||
|
nextLevels:
|
||||||
|
continue: 'decoy-drill'
|
||||||
|
x: 61.73
|
||||||
|
y: 29.51
|
||||||
|
adventurer: true
|
||||||
|
requiresSubscription: false
|
||||||
|
disabled: not me.isAdmin()
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: 'Decoy Drill'
|
||||||
|
type: 'hero'
|
||||||
|
id: 'decoy-drill'
|
||||||
|
original: ''
|
||||||
|
description: 'Coming Soon'
|
||||||
|
nextLevels:
|
||||||
|
continue: 'yakstraction'
|
||||||
|
x: 62.05
|
||||||
|
y: 40.44
|
||||||
|
adventurer: true
|
||||||
|
requiresSubscription: false
|
||||||
|
disabled: not me.isAdmin()
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: 'Yakstraction'
|
||||||
|
type: 'hero'
|
||||||
|
id: 'yakstraction'
|
||||||
|
original: ''
|
||||||
|
description: 'Coming Soon'
|
||||||
|
nextLevels:
|
||||||
|
continue: 'sarven-brawl'
|
||||||
|
x: 66.46
|
||||||
|
y: 48.87
|
||||||
|
adventurer: true
|
||||||
|
requiresSubscription: true
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: 'Sarven Brawl'
|
||||||
|
type: 'hero'
|
||||||
|
id: 'sarven-brawl'
|
||||||
|
original: '548cf2850ffdc235e80ef0d6'
|
||||||
|
description: 'Coming Soon'
|
||||||
|
#nextLevels:
|
||||||
|
# continue: ''
|
||||||
|
x: 69.01
|
||||||
|
y: 33.80
|
||||||
|
adventurer: true
|
||||||
|
requiresSubscription: false
|
||||||
|
disabled: not me.isAdmin()
|
||||||
|
}
|
||||||
|
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
|
@ -110,7 +110,7 @@ module.exports = class LevelLoadingView extends CocoView
|
||||||
|
|
||||||
onClickStartSubscription: (e) ->
|
onClickStartSubscription: (e) ->
|
||||||
@openModalView new SubscribeModal()
|
@openModalView new SubscribeModal()
|
||||||
window.tracker?.trackEvent 'Show subscription modal', category: 'Subscription', label: 'level loading', level: @options.level ? 'unknown'
|
window.tracker?.trackEvent 'Show subscription modal', category: 'Subscription', label: 'level loading', level: @options.level.get('name') ? 'unknown'
|
||||||
window.tracker?.trackPageView "subscription/show-modal", ['Google Analytics']
|
window.tracker?.trackPageView "subscription/show-modal", ['Google Analytics']
|
||||||
|
|
||||||
onSubscribed: ->
|
onSubscribed: ->
|
||||||
|
|
|
@ -53,7 +53,7 @@ module.exports = class Handler
|
||||||
return false unless delta.o.length is 1
|
return false unless delta.o.length is 1
|
||||||
index = delta.deltaPath.indexOf('i18n')
|
index = delta.deltaPath.indexOf('i18n')
|
||||||
return false if index is -1
|
return false if index is -1
|
||||||
return false if delta.deltaPath[index+1] is 'en-US'
|
return false if delta.deltaPath[index+1] in ['en-US', 'en-UK', 'en-AU'] # English speakers are most likely just spamming, so always treat those as patches, not saves.
|
||||||
return true
|
return true
|
||||||
|
|
||||||
formatEntity: (req, document) -> document?.toObject()
|
formatEntity: (req, document) -> document?.toObject()
|
||||||
|
@ -300,7 +300,7 @@ module.exports = class Handler
|
||||||
getLatestVersion: (req, res, original, version) ->
|
getLatestVersion: (req, res, original, version) ->
|
||||||
# can get latest overall version, latest of a major version, or a specific version
|
# can get latest overall version, latest of a major version, or a specific version
|
||||||
return @sendBadInputError(res, 'Invalid MongoDB id: '+original) if not Handler.isID(original)
|
return @sendBadInputError(res, 'Invalid MongoDB id: '+original) if not Handler.isID(original)
|
||||||
|
|
||||||
query = { 'original': mongoose.Types.ObjectId(original) }
|
query = { 'original': mongoose.Types.ObjectId(original) }
|
||||||
if version?
|
if version?
|
||||||
version = version.split('.')
|
version = version.split('.')
|
||||||
|
|
|
@ -7,7 +7,7 @@ hipchat = require '../hipchat'
|
||||||
module.exports.setup = (app) ->
|
module.exports.setup = (app) ->
|
||||||
# This is hacky and should probably get moved somewhere else, I dunno
|
# This is hacky and should probably get moved somewhere else, I dunno
|
||||||
app.get '/db/cla.submissions', (req, res) ->
|
app.get '/db/cla.submissions', (req, res) ->
|
||||||
return errors.unauthorized(res, 'You must be an admin to view that information') unless req.user?.isAdmin()
|
return errors.unauthorized(res, 'You must be an admin to view that information') unless req.user?.isAdmin() or ('github' in req.user?.permissions ? [])
|
||||||
res.setHeader('Content-Type', 'application/json')
|
res.setHeader('Content-Type', 'application/json')
|
||||||
collection = mongoose.connection.db.collection 'cla.submissions', (err, collection) ->
|
collection = mongoose.connection.db.collection 'cla.submissions', (err, collection) ->
|
||||||
return log.error "Couldn't fetch CLA submissions because #{err}" if err
|
return log.error "Couldn't fetch CLA submissions because #{err}" if err
|
||||||
|
@ -26,7 +26,7 @@ module.exports.setup = (app) ->
|
||||||
parts = module.split('/')
|
parts = module.split('/')
|
||||||
module = parts[0]
|
module = parts[0]
|
||||||
return getSchema(req, res, module) if parts[1] is 'schema'
|
return getSchema(req, res, module) if parts[1] is 'schema'
|
||||||
if (not req.user) and req.route.method isnt 'get'
|
if (not req.user) and req.route.method isnt 'get'
|
||||||
return errors.unauthorized(res, 'Must have an identity to do anything with the db. Do you have cookies enabled?')
|
return errors.unauthorized(res, 'Must have an identity to do anything with the db. Do you have cookies enabled?')
|
||||||
|
|
||||||
try
|
try
|
||||||
|
|
Loading…
Reference in a new issue