ifhub-explainer/game/engine.coffee

64 lines
1.8 KiB
CoffeeScript

salet.game_id = "640ff531-c736-4b90-92b2-57fcfc9db162"
salet.game_version = "1.0"
salet.autosave = false
salet.character.finish = 0
$(document).ready(() ->
salet.beginGame()
)
croom = (name, spec) ->
spec.clear ?= false
spec.optionColor ?= ""
spec.canView ?= () ->
return (@isVisited(name) == false)
spec.optionText ?= () ->
retval = """
<div class="#{spec.optionColor}">
<div class="title">#{spec.title.fcall()}</div>
"""
if (spec.subtitle?)
retval += """
<div class="subtitle">#{spec.subtitle.fcall()}</div>
"""
retval += '</div>'
spec.dsc ?= () -> name.l()
return room(name, spec)
$(document).on("room_enter", (event, data) ->
salet.character.finish += Math.ceil(1 / Object.keys(salet.rooms).length * 100)
if salet.character.finish > 100
salet.character.finish = 100
$(".progress-bar").css("width", "#{salet.character.finish}%")
if (salet.character.finish > 25)
$(".progress-bar").html("Вы прочли #{salet.character.finish}% текста.")
# Piwik analytics: room stats
if salet.interactive and _paq?
_paq.push(['trackPageView', data.to])
)
card = (img, caption, alt) ->
alt ?= caption
return """
<div class="card">
<img class="card-img-top" src="img/#{img}" alt='#{alt}'>
<div class="card-body">
<p class="card-text">#{caption}</p>
</div>
</div>
"""
cardlink = (img, caption, link, alt) ->
alt ?= caption
return """
<div class="card">
<a class="sticky" target="_blank" href="#{link}"><img class="card-img-top" src="img/#{img}" alt='#{alt}'></a>
<div class="card-body">
<p class="card-text"><a class="sticky" target="_blank" href="#{link}">#{caption}</a></p>
</div>
</div>
"""
textlink = (content, ref) ->
return "<a href='./_writer_#{ref}' class='once'>#{content}</a>"