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