Sha256: 3c789dd8fb7e5492a887102887830d1b5c62bcb757e8b803ec466c4abf9db958

Contents?: true

Size: 1.91 KB

Versions: 1

Compression:

Stored size: 1.91 KB

Contents

# lib/gemwarrior/game.rb
# Main launching point for Gem Warrior

require 'colorize'
require 'matrext'

require_relative 'entities/player'
require_relative 'misc/player_levels'
require_relative 'world'
require_relative 'evaluator'
require_relative 'repl'
require_relative 'inventory'

module Gemwarrior
  class Game
    include PlayerLevels
  
    # CONSTANTS
    ## PLAYER DEFAULTS
    PLAYER_DESC_DEFAULT       = 'Picked to do battle against a wizened madman for a shiny something or other for world-saving purposes.'
    PLAYER_INVENTORY_DEFAULT  = Inventory.new
    PLAYER_ROX_DEFAULT        = 0

    attr_accessor :world, :eval, :repl
    
    def initialize(options)
      # create new world and player
      self.world = World.new

      start_stats = PlayerLevels::get_level_stats(1)
      
      world.player = Player.new({
        :description        => PLAYER_DESC_DEFAULT,
        :level              => start_stats[:level],
        :xp                 => start_stats[:xp_start],
        :hp_cur             => start_stats[:hp_max],
        :hp_max             => start_stats[:hp_max],
        :stam_cur           => start_stats[:stam_max],
        :stam_max           => start_stats[:stam_max],
        :atk_lo             => start_stats[:atk_lo],
        :atk_hi             => start_stats[:atk_hi],
        :defense            => start_stats[:defense],
        :dexterity          => start_stats[:dexterity],
        :inventory          => PLAYER_INVENTORY_DEFAULT,
        :rox                => PLAYER_ROX_DEFAULT,
        :cur_coords         => world.location_coords_by_name('Home'),
        :god_mode           => options.fetch(:god_mode),
        :beast_mode         => options.fetch(:beast_mode)
      })

      # create the console
      self.eval = Evaluator.new(world)
      self.repl = Repl.new(world, eval)

      # enter Jool!
      repl.start('look')
    end

  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
gemwarrior-0.6.3 lib/gemwarrior/game.rb