Added detection of suspect code fragment deletion. Implemented Chloe's styling advice on restricted items. Fixed purchasing items clobbering inventory changes.

This commit is contained in:
Nick Winter 2014-11-23 12:18:42 -08:00
parent c7f8565ae7
commit ffaa42cb9b
4 changed files with 21 additions and 7 deletions

View file

@ -126,6 +126,10 @@ module.exports =
codeFragment: {type: 'string'}
codeLanguage: {type: 'string'}
'tome:suspect-code-fragment-deleted': c.object {title: 'Suspect Code Fragment Deleted', description: 'Published when a suspect code fragment is deleted from the sample code.', required: ['codeFragment']},
codeFragment: {type: 'string'}
codeLanguage: {type: 'string'}
'tome:winnability-updated': c.object {title: 'Winnability Updated', description: 'When we think we can now win (or can no longer win), we may want to emphasize the submit button versus the run button (or vice versa), so this fires when we get new goal states (even preloaded goal states) suggesting success or failure change.', required: ['winnable']},
winnable: {type: 'boolean'}

View file

@ -384,8 +384,9 @@ $itemSlotGridHeight: 70px
// display: inline
&.restricted
background-color: rgba(255, 80, 67, 0.25)
background-color: rgba(190, 190, 190, 1)
cursor: default
@include filter(contrast(50%) brightness(100%))
//.item-view
// cursor: default

View file

@ -240,10 +240,13 @@ module.exports = class InventoryModal extends ModalView
me.set('spent', (me.get('spent') ? 0) + item.get('gems'))
#- ...then rerender key bits
@requireLevelEquipment()
@itemGroups.lockedItems.remove(item)
@sortItem(item)
@renderSelectors("#unequipped", "#gems-count")
# Redo all item sorting to make sure that we don't clobber state changes since last render.
equipped = _.values @getCurrentEquipmentConfig()
@sortItem(item, equipped) for item in @items.models
@renderSelectors('#unequipped', '#gems-count')
@requireLevelEquipment()
@delegateEvents()
@setUpDraggableEventsForAvailableEquipment()
@itemDetailsView.setItem(item)

View file

@ -228,7 +228,7 @@ module.exports = class SpellView extends CocoView
unless CampaignOptions?.getOption?(@options?.level?.get?('slug'), 'backspaceThrottle')
@ace.remove "left"
return
nowDate = Date.now()
if @aceSession.selection.isEmpty()
cursor = @ace.getCursorPosition()
@ -245,7 +245,7 @@ module.exports = class SpellView extends CocoView
@backspaceThrottleMs = null
@lastBackspace = nowDate
@ace.remove "left"
fillACE: ->
@ -946,12 +946,18 @@ module.exports = class SpellView extends CocoView
return if @destroyed
source = @getSource().replace @singleLineCommentRegex(), ''
suspectCodeFragments = LevelOptions[@options.level.get('slug')].suspectCode
detectedSuspectCodeFragmentNames = []
for suspectCodeFragment in suspectCodeFragments
if suspectCodeFragment.pattern.test source
@warnedCodeFragments ?= {}
unless @warnedCodeFragments[suspectCodeFragment.name]
Backbone.Mediator.publish 'tome:suspect-code-fragment-added', codeFragment: suspectCodeFragment.name, codeLanguage: @spell.language
@warnedCodeFragments[suspectCodeFragment] = true
@warnedCodeFragments[suspectCodeFragment.name] = true
detectedSuspectCodeFragmentNames.push suspectCodeFragment.name
for lastDetectedSuspectCodeFragmentName in @lastDetectedSuspectCodeFragmentNames ? []
unless lastDetectedSuspectCodeFragmentName in detectedSuspectCodeFragmentNames
Backbone.Mediator.publish 'tome:suspect-code-fragment-deleted', codeFragment: lastDetectedSuspectCodeFragmentName, codeLanguage: @spell.language
@lastDetectedSuspectCodeFragmentNames = detectedSuspectCodeFragmentNames
destroy: ->
$(@ace?.container).find('.ace_gutter').off 'click', '.ace_error, .ace_warning, .ace_info', @onAnnotationClick