class Rules::Sheet

Public Class Methods

new(short_name) click to toggle source
Calls superclass method
# File lib/rpg-prompt/rules_sheet.rb, line 8
def initialize(short_name)
  self[:short_name] = short_name
  super(false)
end

Public Instance Methods

[]=(key, el) click to toggle source
Calls superclass method
# File lib/rpg-prompt/rules_sheet.rb, line 192
def []=(key, el)
  if (key == :hp) || (key == :dead_in)
    if el <= 0
      super(key, el)
      if key == :hp
        Message.message(:mortal_wound_hp)
      elsif key == :dead_in
        Message.message(:mortal_wound_dead_in)
      end
    end
  end
  super(key, el)
end
add_ability(ability) click to toggle source
# File lib/rpg-prompt/rules_sheet.rb, line 179
def add_ability(ability)
  case ability
  when :sing
    @abilities[:sing] = true
  when :dance
    @abilities[:dance] = true
  end
end
clone_sheet(sheet) click to toggle source
# File lib/rpg-prompt/rules_sheet.rb, line 59
def clone_sheet(sheet)
  sheet.each { |key, val|
    self[key] = val
  }
end
create_new_w_questions() click to toggle source
# File lib/rpg-prompt/rules_sheet.rb, line 73
def create_new_w_questions
  creation_array = self.creation_array
  creation_array.each do |key, question|
    unless question[0] == :no_question
      Message.question(question[0])

      if question[1] == :string
        val = $stdin.gets.chomp
        val = remove_extra_separators(val)
        if val.length == 0
          val = question[2]
        end

      elsif question[1] == :integer
        i = $stdin.gets.chomp
        if i.length == 0
          val = question[2]
        else
          begin
            val = Integer(i)
          rescue ArgumentError
            redo
          end
        end

      elsif question[1] == :float
        i = $stdin.gets.chomp
        if i.length == 0
          val = question[2]
        else
          begin
            val = Float(i)
          rescue ArgumentError
            redo
          end
        end

      elsif question[1] == :bool
        b = $stdin.gets.chomp
        b = remove_extra_separators(b)
        if b.length == 0
          val = question[2]
        elsif (b == "s") || (b == "si")
          val = true
        elsif (b == "n") || (b == "no")
          val = false
        else
          redo
        end

      elsif question[1] == :multiple
        val = Array.new
        loop do
          name = $stdin.gets.chomp
          name = remove_extra_separators(name)
          if name == "q"
            break
          else
            val.push(name)
          end
        end

      elsif question[1] == :weapon
        weapon_hash = RulesHashes::WeaponHash.new
        available = weapon_hash.weapons
        translated = Array.new
        available.each do |e|
          translated.push(Message.weapon_word(e))
        end
        Message.puts_weapons_list(available)
        s = $stdin.gets.chomp
        s = remove_extra_separators(s)
        unless translated.include?(s)
          redo
        end
        val = Message.weapon_symbol(s)

      elsif question[1] == :armor
        armor_hash = RulesHashes::ArmorHash.new
        available = armor_hash.armors
        translated = Array.new
        available.each do |e|
          translated.push(Message.armor_word(e))
        end
        Message.puts_armors_list(available)
        s = $stdin.gets.chomp
        s = remove_extra_separators(s)
        unless translated.include?(s)
          redo
        end
        val = Message.armor_symbol(s)

      else
        puts 367223
      end
      load_attribute(key, val)
    else
      load_attribute(key, question[2])
    end
  end
end
dead?() click to toggle source
# File lib/rpg-prompt/rules_sheet.rb, line 206
def dead?
  if self[:dead_in] != false
    (self[:hp] <= 0) || (self[:dead_in] <= 0)
  else
    (self[:hp] <= 0)
  end
end
full_name() click to toggle source
# File lib/rpg-prompt/rules_sheet.rb, line 175
def full_name
  String.new(self[:full_name] + " " + self[:nickname])
end
health?() click to toggle source
# File lib/rpg-prompt/rules_sheet.rb, line 214
def health?
  self[:hp]
end
load_attribute(attribute, value) click to toggle source
# File lib/rpg-prompt/rules_sheet.rb, line 13
def load_attribute(attribute, value)
  self[attribute] = value
end
move_capacity?() click to toggle source
# File lib/rpg-prompt/rules_sheet.rb, line 226
def move_capacity?
  @move_capacity
end
pass_round() click to toggle source
# File lib/rpg-prompt/rules_sheet.rb, line 230
def pass_round
  self.each do |key, el|
    case key
    when :dead_in
      self[key] -= 1
    end
  end
end
read_attribute(attribute) click to toggle source
# File lib/rpg-prompt/rules_sheet.rb, line 17
def read_attribute(attribute)
  self[attribute]
end
reduce_health(damage) click to toggle source
# File lib/rpg-prompt/rules_sheet.rb, line 222
def reduce_health(damage)
  self[:hp] -= damage
end
remove_ability(ability) click to toggle source
# File lib/rpg-prompt/rules_sheet.rb, line 188
def remove_ability(ability)
  @abilities[ability] = false
end
remove_extra_separators(line) click to toggle source
# File lib/rpg-prompt/rules_sheet.rb, line 65
def remove_extra_separators(line)
  ret_line = String.new(line)
  ret_line = ret_line.gsub(/\s+/, " ")
  ret_line = ret_line.gsub(/^\s*/, "")
  ret_line = ret_line.gsub(/\s*$/, "")
  ret_line = ret_line.gsub(/,/, "")
end
set_attribute(attribute, value) click to toggle source
# File lib/rpg-prompt/rules_sheet.rb, line 21
def set_attribute(attribute, value)
  c_a = self.creation_array
  if c_a.key?(attribute)
    type = c_a[attribute][1]
    el = case type
    when :integer
      Integer(value)
    when :float
      Float(value)
    when :bool
      case value
      when "true"
        true
      when "false"
        false
      else
        puts 747390
        false
      end
    when :weapon
      value = value.gsub("_", " ")
      if Message.weapon_symbol(value)
        Message.weapon_symbol(value)
      else
        return_symbol = :set_fail
        self[attribute]
      end
    else
      value
    end
    self[attribute] = el.clone
  end
  unless (return_symbol == :set_fail)
    return_symbol = :set_attribute
  end
  return_symbol
end
spawned?() click to toggle source
# File lib/rpg-prompt/rules_sheet.rb, line 218
def spawned?
  self[:spawned]
end