Class: PfrpgCore::Bonuses

Inherits:
Object
  • Object
show all
Defined in:
lib/pfrpg_core/bonuses.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeBonuses

Returns a new instance of Bonuses.



4
5
6
# File 'lib/pfrpg_core/bonuses.rb', line 4

def initialize
  @bonus_pool = {}
end

Instance Attribute Details

#bonus_poolObject (readonly)

Returns the value of attribute bonus_pool.



3
4
5
# File 'lib/pfrpg_core/bonuses.rb', line 3

def bonus_pool
  @bonus_pool
end

Instance Method Details

#class_skillObject



44
45
46
# File 'lib/pfrpg_core/bonuses.rb', line 44

def class_skill
  [ @bonus_pool['class_skill'] ].flatten
end

#damage_reductionObject



48
49
50
# File 'lib/pfrpg_core/bonuses.rb', line 48

def damage_reduction
  [ @bonus_pool['damage_reduction'] ].flatten
end

#get(key) ⇒ Object



12
13
14
15
16
17
18
# File 'lib/pfrpg_core/bonuses.rb', line 12

def get(key)
  if specials.include? key
    return self.send(key)
  else
    return NullObject.maybe(@bonus_pool[key])
  end
end

#plus(key, value) ⇒ Object



20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/pfrpg_core/bonuses.rb', line 20

def plus(key, value)
  begin
    v = MathHelper.is_number(value) ? value.to_i : value
    if specials.include? key
      if @bonus_pool[key]
        @bonus_pool[key] << value
      else
        @bonus_pool[key] = [value]
      end
    elsif @bonus_pool[key]
      @bonus_pool[key] += v
    else
      @bonus_pool[key] = v
    end
  rescue Exception => e
    ap @bonus_pool
    ap "Trying to add #{key}, #{value}"
  end
end

#specialsObject



8
9
10
# File 'lib/pfrpg_core/bonuses.rb', line 8

def specials
  ['speed', 'damage_reduction', 'spell_resistance', 'class_skill']
end

#speedObject



40
41
42
# File 'lib/pfrpg_core/bonuses.rb', line 40

def speed
  [ @bonus_pool['speed'] ].flatten
end

#spell_resistanceObject



52
53
54
# File 'lib/pfrpg_core/bonuses.rb', line 52

def spell_resistance
  [ @bonus_pool['spell_resistance'] ].flatten
end