mirror of
https://github.com/codeninjasllc/codecombat.git
synced 2025-04-14 05:55:00 -04:00
Made flag detection more dynamic.
This commit is contained in:
parent
956186b538
commit
97c4ff2e7e
3 changed files with 11 additions and 10 deletions
app
|
@ -684,6 +684,7 @@ module.exports = Lank = class Lank extends CocoClass
|
|||
return true if m in ['moveRight', 'moveUp', 'moveDown', 'moveLeft']
|
||||
return true if /^attack /.test m
|
||||
return true if /^Repeating loop/.test m
|
||||
return true if /^findNearestEnemy/.test m
|
||||
false
|
||||
|
||||
playSounds: (withDelay=true, volume=1.0) ->
|
||||
|
|
|
@ -17,7 +17,7 @@ REAL_TIME_BUFFER_MAX = 3 * PROGRESS_UPDATE_INTERVAL
|
|||
REAL_TIME_BUFFERED_WAIT_INTERVAL = 0.5 * PROGRESS_UPDATE_INTERVAL
|
||||
REAL_TIME_COUNTDOWN_DELAY = 3000 # match CountdownScreen
|
||||
ITEM_ORIGINAL = '53e12043b82921000051cdf9'
|
||||
COUNTDOWN_LEVELS = ['sky-span', 'dueling-grounds', 'cavern-survival'] # TODO: determine flag usage dynamically
|
||||
COUNTDOWN_LEVELS = ['sky-span']
|
||||
|
||||
module.exports = class World
|
||||
@className: 'World'
|
||||
|
@ -99,12 +99,12 @@ module.exports = class World
|
|||
continueLaterFn = =>
|
||||
@loadFrames(loadedCallback, errorCallback, loadProgressCallback, preloadedCallback, skipDeferredLoading, loadUntilFrame) unless @destroyed
|
||||
if @realTime and not @countdownFinished
|
||||
if @levelID in ['the-first-kithmaze', 'haunted-kithmaze', 'the-second-kithmaze', 'the-final-kithmaze', 'the-gauntlet', 'winding-trail', 'thornbush-farm', 'a-fiery-trap']
|
||||
@realTimeSpeedFactor = 5
|
||||
else if @levelID in ['forgetful-gemsmith', 'descending-further', 'tactical-strike', 'kithgard-gates', 'ogre-encampment', 'woodland-cleaver', 'shield-rush', 'peasant-protection', 'munchkin-swarm']
|
||||
@realTimeSpeedFactor = 3
|
||||
else
|
||||
@realTimeSpeedFactor = 1
|
||||
@realTimeSpeedFactor = 1
|
||||
unless @showsCountdown
|
||||
if @levelID in ['the-first-kithmaze', 'haunted-kithmaze', 'the-second-kithmaze', 'the-final-kithmaze', 'the-gauntlet', 'winding-trail', 'thornbush-farm', 'a-fiery-trap']
|
||||
@realTimeSpeedFactor = 5
|
||||
else if @levelID in ['forgetful-gemsmith', 'descending-further', 'tactical-strike', 'kithgard-gates', 'ogre-encampment', 'woodland-cleaver', 'shield-rush', 'peasant-protection', 'munchkin-swarm']
|
||||
@realTimeSpeedFactor = 3
|
||||
if @showsCountdown
|
||||
return setTimeout @finishCountdown(continueLaterFn), REAL_TIME_COUNTDOWN_DELAY
|
||||
else
|
||||
|
@ -203,12 +203,12 @@ module.exports = class World
|
|||
|
||||
loadFromLevel: (level, willSimulate=true) ->
|
||||
@levelID = level.slug
|
||||
@showsCountdown = @levelID in COUNTDOWN_LEVELS
|
||||
@levelComponents = level.levelComponents
|
||||
@thangTypes = level.thangTypes
|
||||
@loadScriptsFromLevel level
|
||||
@loadSystemsFromLevel level
|
||||
@loadThangsFromLevel level, willSimulate
|
||||
@showsCountdown = @levelID in COUNTDOWN_LEVELS or _.any(@thangs, (t) -> (t.programmableProperties and 'findFlags' in t.programmableProperties) or t.inventory?.flag)
|
||||
system.start @thangs for system in @systems
|
||||
|
||||
loadSystemsFromLevel: (level) ->
|
||||
|
|
|
@ -189,7 +189,7 @@ module.exports = class PlayLevelView extends RootView
|
|||
@world = @levelLoader.world
|
||||
@level = @levelLoader.level
|
||||
@$el.addClass 'hero' if @level.get('type', true) in ['hero', 'hero-ladder', 'hero-coop']
|
||||
@$el.addClass 'flags' if (@level.get('slug') in ['sky-span', 'coinucopia']) or (@level.get('type', true) in ['hero-ladder', 'hero-coop']) # TODO: figure out when the player has flags.
|
||||
@$el.addClass 'flags' if _.any(@world.thangs, (t) -> (t.programmableProperties and 'findFlags' in t.programmableProperties) or t.inventory?.flag) or @level.get('slug') is 'sky-span'
|
||||
@otherSession = @levelLoader.opponentSession
|
||||
@worldLoadFakeResources = [] # first element (0) is 1%, last (100) is 100%
|
||||
for percent in [1 .. 100]
|
||||
|
@ -243,7 +243,7 @@ module.exports = class PlayLevelView extends RootView
|
|||
@insertSubView @tome = new TomeView levelID: @levelID, session: @session, otherSession: @otherSession, thangs: @world.thangs, supermodel: @supermodel, level: @level
|
||||
@insertSubView new LevelPlaybackView session: @session, levelID: @levelID, level: @level
|
||||
@insertSubView new GoalsView {}
|
||||
@insertSubView new LevelFlagsView world: @world if (@levelID in ['sky-span', 'coinucopia']) or @level.get('type', true) in ['hero-ladder', 'hero-coop'] # TODO: figure out when flags are available
|
||||
@insertSubView new LevelFlagsView world: @world if @$el.hasClass 'flags'
|
||||
@insertSubView new GoldView {}
|
||||
@insertSubView new HUDView {level: @level}
|
||||
@insertSubView new LevelDialogueView {level: @level}
|
||||
|
|
Loading…
Add table
Reference in a new issue