diff --git a/app/lib/LevelOptions.coffee b/app/lib/LevelOptions.coffee index 6505ea68c..efd5b6220 100644 --- a/app/lib/LevelOptions.coffee +++ b/app/lib/LevelOptions.coffee @@ -263,6 +263,7 @@ module.exports = LevelOptions = 'bonemender': requiredGear: {waist: 'leather-belt', 'programming-book': 'programmaticon-ii', eyes: 'wooden-glasses', 'right-hand': 'enchanted-stick', 'left-hand': 'book-of-life-i', wrists: 'sundial-wristwatch'} restrictedGear: {'left-hand': 'unholy-tome-i'} + requiredCode: ['canCast'] 'coinucopia': requiredGear: {'programming-book': 'programmaticon-i', feet: 'leather-boots', 'programming-book': 'programmaticon-ii', flag: 'basic-flags'} diff --git a/app/lib/surface/Lank.coffee b/app/lib/surface/Lank.coffee index 318dc5310..7e4bb6a1f 100644 --- a/app/lib/surface/Lank.coffee +++ b/app/lib/surface/Lank.coffee @@ -692,6 +692,11 @@ module.exports = Lank = class Lank extends CocoClass return true if /^attack /.test m return true if /^Repeating loop/.test m return true if /^findNearestEnemy/.test m + @previouslySaidMessages ?= {} + t0 = @previouslySaidMessages[m] ? 0 + t1 = new Date() + @previouslySaidMessages[m] = t1 + return true if t1 - t0 < 5 * 1000 false playSounds: (withDelay=true, volume=1.0) -> diff --git a/app/views/play/level/LevelLoadingView.coffee b/app/views/play/level/LevelLoadingView.coffee index 396123da9..10bbec9f0 100644 --- a/app/views/play/level/LevelLoadingView.coffee +++ b/app/views/play/level/LevelLoadingView.coffee @@ -13,6 +13,9 @@ module.exports = class LevelLoadingView extends CocoView subscriptions: 'level:loaded': 'onLevelLoaded' # If Level loads after level loading view. + shortcuts: + 'enter': 'onEnterPressed' + afterRender: -> super() @$el.find('.tip.rare').remove() if _.random(1, 10) < 9 @@ -76,6 +79,11 @@ module.exports = class LevelLoadingView extends CocoView return if @destroyed @unveil() + onEnterPressed: (e) -> + return unless @shownReady and not @$el.hasClass 'unveiled' + @startUnveiling() + @onClickStartLevel() + unveil: -> return if @$el.hasClass 'unveiled' @$el.addClass 'unveiled' diff --git a/app/views/play/level/PlayLevelView.coffee b/app/views/play/level/PlayLevelView.coffee index df2d4e9e1..3734eae7f 100644 --- a/app/views/play/level/PlayLevelView.coffee +++ b/app/views/play/level/PlayLevelView.coffee @@ -88,6 +88,7 @@ module.exports = class PlayLevelView extends RootView shortcuts: 'ctrl+s': 'onCtrlS' + 'esc': 'onEscapePressed' # Initial Setup ############################################################# @@ -389,6 +390,10 @@ module.exports = class PlayLevelView extends RootView onCtrlS: (e) -> e.preventDefault() + onEscapePressed: (e) -> + return unless @$el.hasClass 'real-time' + Backbone.Mediator.publish 'playback:stop-real-time-playback', {} + onLevelReloadFromData: (e) -> isReload = Boolean @world @setLevel e.level, e.supermodel