Sha256: 2a2e8d6abde76d5f66053bcfec6bddc1eb9f1ee3a4244216d697bf7b3efaf5c4

Contents?: true

Size: 1.01 KB

Versions: 1

Compression:

Stored size: 1.01 KB

Contents

# HACK Explicit requires to fix Opal's failure to resolve autoloads
require 'gamefic/query/expression'
require 'gamefic/query/matches'
require 'gamefic/grammar/verb_set'
require 'gamefic/scene/multiple_choice/input'

# HACK Opal doesn't recognize classes and modules declared from scripts
def Object.const_missing sym
  Gamefic.const_get sym
end

module GameficOpal
  def self.static_plot
    @@static_plot ||= WebPlot.new(Gamefic::Source::Text.new)
  end
  def self.static_player
    @@static_player ||= WebUser.new(GameficOpal.static_plot)
  end

  class WebPlot < Gamefic::Plot
    def script path
      # Stub
    end
  end
  
  class WebUser < Gamefic::User
    def save filename, data
      data[:metadata] = character.plot.metadata
      `Gamefic.save(filename, data);`
    end
    def restore filename
      data = `Gamefic.restore(filename);`
      return data
    end
    def test_queue
      character[:test_queue] || []
    end
  end
end

GameficOpal.static_plot.script 'main'

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
gamefic-sdk-1.1.0 lib/gamefic-sdk/platform/web/gamefic_opal.rb