ludumdare37/game/begin.coffee

107 lines
2.8 KiB
CoffeeScript
Raw Normal View History

2017-11-10 12:16:01 +02:00
i18n.push("ru", ru_lang)
i18n.push("en", en_lang)
salet.game_id = "0ee0825d-0c71-4a08-bfe5-730e575df26d"
salet.game_version = "1.0"
2017-11-10 14:18:47 +02:00
lang = document.getElementsByTagName("html")[0].getAttribute("lang") || "en"
ImprovEngine = new Improv(procgendata[lang], {
rng: () ->
return salet.rnd.randf()
filters: [
Improv.filters.mismatchFilter()
]
reincorporate: false
})
2017-11-09 19:04:49 +02:00
$(document).on("init", () ->
salet.character.lastBeat = () ->
return salet.progress.sequence.length - salet.character.beat
2016-12-11 17:12:06 +02:00
salet.character.newBeat = () ->
salet.character.beat = salet.progress.sequence.length
2016-12-11 20:45:45 +02:00
salet.character.beat = 0
state.setTag("weather", "warm")
audio = document.getElementById("bgsound")
if audio?
audio.currentTime = 0
audio.volume = 1.0
audio.play()
2017-11-09 19:04:49 +02:00
)
$(document).ready(() ->
window.addEventListener('popstate', (event) ->
salet.goBack()
)
$("#night").on("click", () ->
if (window.night)
styles = {
"-webkit-filter": ""
"filter": ""
"background-color": ""
}
$("body").css(styles)
$("#night").removeClass("active")
window.night = false
else
styles = {
"-webkit-filter": "invert(1)hue-rotate(180deg)"
"filter": "invert(1)hue-rotate(180deg)"
"background-color": "#000"
}
$("body").css(styles)
$("#night").addClass("active")
window.night = true
)
salet.beginGame()
)
###
Element helpers. There is no real need to build monsters like a().id("hello")
because you won't use them as is. It does not make sense in context, the
author has Markdown and all utilities to *forget* about the markup.
###
way_to = (content, ref) ->
return "<a href='#{ref}' class='way'>#{content}</a>"
textlink = (content, ref) ->
return "<a href='./_writer_#{ref}' class='once'>#{content}</a>"
actlink = (content, ref) ->
return "<a href='./#{ref}' class='once'>#{content}</a>"
class ImprovModel
constructor: () ->
@tags = []
getTag: (tagName) ->
for tag in @tags
if tag[0] == tagName
return tag[1]
return undefined
hasTag: (tagName) ->
for tag in @tags
if tag[0] == tagName
return true
return false
setTag: (tagName, value) ->
for tag, index in @tags
if tag[0] == tagName
@tags[index][1] = value
return true
@tags.push([tagName, value])
return true
setTagIfNotPresent: (tagName, value) ->
if @getTag(tagName) == undefined
@tags.push([tagName, value])
2016-12-11 17:12:06 +02:00
cunit = (name, spec) ->
spec.act = () ->
# re-enter the room, reroll the description
2016-12-11 17:12:06 +02:00
salet.view.clearContent()
r = salet.here()
r.entering(r.name)
2016-12-11 17:12:06 +02:00
return '<em>'+@enact.fcall(this)+'</em>'
return unit(name, spec)
state = new ImprovModel
procgen = (tag) ->
2017-11-10 14:18:47 +02:00
return ImprovEngine.gen(tag, state)