Class: Ika3::Weapon

Inherits:
Object
  • Object
show all
Defined in:
lib/ika3/weapons.rb

Class Method Summary collapse

Class Method Details

.filter_by_special(special_name) ⇒ Object



44
45
46
47
48
49
# File 'lib/ika3/weapons.rb', line 44

def filter_by_special(special_name)
  raise "unknown special weapon: #{special_name}" unless special_weapons.values.include?(special_name)

  weapons = config.values.filter { |weapon| weapon[:special] == special_name }
  weapons.map { |weapon| W.new(weapon) }
end

.filter_by_sub(sub_name) ⇒ Object



37
38
39
40
41
42
# File 'lib/ika3/weapons.rb', line 37

def filter_by_sub(sub_name)
  raise "unknown sub weapon: #{sub_name}" unless sub_weapons.values.include?(sub_name)

  weapons = config.values.filter { |weapon| weapon[:sub] == sub_name }
  weapons.map { |weapon| W.new(weapon) }
end

.find(weapon_key) ⇒ Object



18
19
20
21
22
23
24
25
26
27
28
# File 'lib/ika3/weapons.rb', line 18

def find(weapon_key)
  raise "unknown weapon: #{weapon_key}" unless valid?(weapon_key)

  @cache ||= {}
  unless @cache[weapon_key]
    weapon_config = config[weapon_key] || {}
    @cache[weapon_key] = weapon_config
  end

  W.new(@cache[weapon_key])
end

.find_by_name(weapon_name) ⇒ Object



30
31
32
33
34
35
# File 'lib/ika3/weapons.rb', line 30

def find_by_name(weapon_name)
  raise "unknown weapon: #{weapon_name}" unless weapons.values.include?(weapon_name)

  key = weapons.key(weapon_name)
  find(key)
end

.reload_config!Object



51
52
53
54
55
56
57
58
# File 'lib/ika3/weapons.rb', line 51

def reload_config!
  @cache = {}
  @config = nil
  @sub_weapons = nil
  config
  config_sub_weapons
  config_special_weapons
end