voyageur-review/game/begin.coffee
Alexander Yakovlev 0ed470dae6 Cycling rewrite, Raconteur's purge
- Rewrote cycling shortcuts into the library. It's more object-oriented
  now (and slightly less obvious, but we can get around that).
- Removed Raconteur situations entirely. Their functionality is 100%
  integrated now.
2016-01-19 10:03:01 +07:00

56 lines
1.8 KiB
CoffeeScript

markdown = require('../../lib/markdown.coffee')
room = require("../../lib/room.coffee")
obj = require('../../lib/obj.coffee')
dialogue = require('../../lib/dialogue.coffee')
oneOf = require('../../lib/oneOf.coffee')
require('../../lib/interface.coffee')
undum = require('../../lib/undum.js')
undum.game.id = "your-game-id-here"
undum.game.version = "1.0"
###
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>"
textcycle = (content, ref) ->
return "<a href='./_replacer_#{ref}' class='cycle' id='#{ref}'>#{content}</a>"
# TODO: hide this somewhere in exports or autoreplacer shortcuts
cyclelink = (content) ->
return "<a href='./_replacer_cyclewriter' class='cycle' id='cyclewriter'>#{content}</a>"
# usage: writemd( system, "Text to write")
writemd = (system, text) ->
text = markdown(text)
system.write(text)
get_room = (name) ->
return undum.game.situations[name]
# Function to return the current room.
# Works because our `enter()` function sets the `data-situation` attribute.
here = () ->
return undum.game.situations[document.getElementById("current-situation").getAttribute("data-situation")]
# The first room of the game.
# For accessibility reasons the text is provided in HTML, not here.
room "start",
dsc: """
""",
choices: "#start"
# This function needs to go after the start room.
is_visited = (situation) ->
place = undum.game.situations[situation]
if place
return Boolean place.visited
return 0