Hide run shortcut (shift+enter) for first few levels so as not to distract. Don't show beautification button in Python mode. Don't show maximize editor button in hero levels. Don't show method selector if there's only one method. Renamed some spells to methods. Added a bit of i18n.

This commit is contained in:
Nick Winter 2014-09-24 16:29:28 -07:00
parent 83fc88e3b6
commit 73d6261b5d
7 changed files with 26 additions and 16 deletions

View file

@ -416,7 +416,9 @@
tome_cast_button_running: "Running"
tome_cast_button_ran: "Ran"
tome_submit_button: "Submit"
tome_select_spell: "Select a Spell"
tome_reload_method: "Reload original code for this method" # Title text for individual method reload button.
tome_select_method: "Select a Method"
tome_see_all_methods: "See all methods you can edit" # Title text for method list selector (shown when there are multiple programmable methdos).
tome_select_a_thang: "Select Someone for "
tome_available_spells: "Available Spells"
tome_your_skills: "Your Skills"

View file

@ -1 +1 @@
h5(data-i18n="play_level.tome_select_spell") Select a Spell
h5(data-i18n="play_level.tome_select_method") Select a Method

View file

@ -1,20 +1,23 @@
img(src="/images/level/code_editor_tab_background.png").spell-tab-image-hidden.hidden
.btn.btn-small.spell-list-button(title="See all spells you can edit")
i.icon-chevron-down
if includeSpellList
.btn.btn-small.spell-list-button(data-i18n="[title]play_level.tome_see_all_methods", title="See all methods you can edit")
i.icon-chevron-down
.thang-avatar-placeholder
code #{methodSignature}
.spell-tool-buttons
.btn.btn-small.fullscreen-code(title=maximizeShortcutVerbose)
i.icon-fullscreen
i.icon-resize-small
if levelType !== 'hero'
.btn.btn-small.fullscreen-code(title=maximizeShortcutVerbose)
i.icon-fullscreen
i.icon-resize-small
.btn.btn-small.reload-code(title="Reload original code for " + spell.name)
.btn.btn-small.reload-code(data-i18n="[title]play_level.tome_reload_method", title="Reload original code for this method")
i.icon-repeat
.btn.btn-small.beautify-code(title=beautifyShortcutVerbose)
i.icon-magnet
if codeLanguage === 'javascript'
.btn.btn-small.beautify-code(title=beautifyShortcutVerbose)
i.icon-magnet
.clearfix

View file

@ -104,7 +104,8 @@ module.exports = class CastButtonView extends CocoView
else if castable
s = $.i18n.t('play_level.tome_cast_button_run')
s = $.i18n.t('play_level.tome_cast_button_casting') if s is 'Run' and me.get('preferredLanguage').split('-')[0] isnt 'en' # Temporary, if tome_cast_button_running isn't translated.
s += ' ' + @castShortcut
unless @options.levelID in ['dungeons-of-kithgard', 'gems-in-the-deep', 'shadow-guard', 'true-names'] # Hide for first few.
s += ' ' + @castShortcut
else
s = $.i18n.t('play_level.tome_cast_button_ran')
s = $.i18n.t('play_level.tome_cast_button_casting') if s is 'Ran' and me.get('preferredLanguage').split('-')[0] isnt 'en' # Temporary, if tome_cast_button_running isn't translated.

View file

@ -43,7 +43,7 @@ module.exports = class Spell
if @canRead() # We can avoid creating these views if we'll never use them.
@view = new SpellView {spell: @, level: options.level, session: @session, worker: @worker}
@view.render() # Get it ready and code loaded in advance
@tabView = new SpellListTabEntryView spell: @, supermodel: @supermodel, language: @language
@tabView = new SpellListTabEntryView spell: @, supermodel: @supermodel, codeLanguage: @language, level: options.level
@tabView.render()
@team = @permissions.readwrite[0] ? 'common'
Backbone.Mediator.publish 'tome:spell-created', spell: @
@ -56,7 +56,7 @@ module.exports = class Spell
@worker = null
setLanguage: (@language) ->
console.log 'setting language to', @language, 'so using original source', @languages[language] ? @languages.javascript
#console.log 'setting language to', @language, 'so using original source', @languages[language] ? @languages.javascript
@originalSource = @languages[language] ? @languages.javascript
addThang: (thang) ->

View file

@ -33,6 +33,9 @@ module.exports = class SpellListTabEntryView extends SpellListEntryView
shift = $.i18n.t 'keyboard_shortcuts.shift'
context.beautifyShortcutVerbose = "#{ctrl}+#{shift}+B: #{$.i18n.t 'keyboard_shortcuts.beautify'}"
context.maximizeShortcutVerbose = "#{ctrl}+#{shift}+M: #{$.i18n.t 'keyboard_shortcuts.maximize_editor'}"
context.includeSpellList = @options.includeSpellList
context.codeLanguage = @options.codeLanguage
context.levelType = @options.level.get 'type', true
context
afterRender: ->
@ -71,7 +74,7 @@ module.exports = class SpellListTabEntryView extends SpellListEntryView
found = true
break
return unless found
docFormatter = new DocFormatter doc: doc, thang: @thang, language: @options.language, selectedMethod: true
docFormatter = new DocFormatter doc: doc, thang: @thang, language: @options.codeLanguage, selectedMethod: true
@$el.find('code').popover(
animation: true
html: true
@ -122,11 +125,12 @@ module.exports = class SpellListTabEntryView extends SpellListEntryView
onSpellChangedLanguage: (e) ->
return unless e.spell is @spell
@options.language = e.language
@options.codeLanguage = e.language
@$el.find('code').popover 'destroy'
@render()
@docsBuilt = false
@buildDocs() if @thang
@updateReloadButton()
toggleControls: (e, enabled) ->
# Don't call super; do it differently

View file

@ -61,7 +61,7 @@ module.exports = class SpellListView extends CocoView
theseThangs = _.keys(spell.thangs)
changedThangs = not lastThangs or not _.isEqual theseThangs, lastThangs
lastThangs = theseThangs
newEntries.push entry = new SpellListEntryView spell: spell, showTopDivider: changedThangs, supermodel: @supermodel
newEntries.push entry = new SpellListEntryView spell: spell, showTopDivider: changedThangs, supermodel: @supermodel, includeSpellList: @spells.length > 1
@entries.push entry
for entry in newEntries
@$el.append entry.el