codecombat/app/lib/world/script_event_prereqs.coffee

18 lines
1,021 B
CoffeeScript
Raw Normal View History

2014-01-03 13:32:13 -05:00
{downTheChain} = require './world_utils'
module.exports.scriptMatchesEventPrereqs = scriptMatchesEventPrereqs = (script, event) ->
return true unless script.eventPrereqs
for ap in script.eventPrereqs
v = downTheChain(event, ap.eventProps)
return false if ap.equalTo? and v isnt ap.equalTo
return false if ap.notEqualTo? and v is ap.notEqualTo
return false if ap.greaterThan? and not (v > ap.greaterThan)
return false if ap.greaterThanOrEqualTo? and not (v >= ap.greaterThanOrEqualTo)
return false if ap.lessThan? and not (v < ap.lessThan)
return false if ap.lessThanOrEqualTo? and not (v <= ap.lessThanOrEqualTo)
return false if ap.containingString? and v?.search(ap.containingString) == -1
return false if ap.notContainingString? and v?.search(ap.containingString) != -1
2014-01-12 21:26:07 -05:00
return false if ap.containingRegexp? and v?.search(new RegExp(ap.containingRegexp)) == -1
return false if ap.notContainingRegexp? and v?.search(new RegExp(ap.notContainingRegexp)) != -1
2014-01-03 13:32:13 -05:00
2014-01-23 21:57:12 -05:00
return true