Class: Pazzdra::Calc

Inherits:
Object
  • Object
show all
Defined in:
lib/pazzdra/calc.rb

Constant Summary collapse

COMBO_UP_BASE =

コンボ時の追加倍率(1コンボにつき)

0.25
LENGTH_UP_BASE =

同時消しの長さによる増加率(1個につき)

0.25
DROP_PLUS_UP_BASE =

強化ドロップによる増加率(1個につき)

0.06
DROP_COLORS =

色指定のsymbol定義

[:r,:g,:b,:y,:p,:h]

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(data = nil) ⇒ Calc

Returns a new instance of Calc.



21
22
23
# File 'lib/pazzdra/calc.rb', line 21

def initialize(data=nil)
  self.data = data
end

Instance Attribute Details

#dataObject

Returns the value of attribute data.



9
10
11
# File 'lib/pazzdra/calc.rb', line 9

def data
  @data
end

Class Method Details

.cal(*ups) ⇒ Object

単に引数全てを掛け合わせるだけの簡単なお仕事



12
13
14
# File 'lib/pazzdra/calc.rb', line 12

def cal(*ups)
  ups.compact.inject(1){|base, i| base.to_f * i.to_f }.round
end

.DEFAULT_BASEObject

何も指定しない場合の値



16
17
18
# File 'lib/pazzdra/calc.rb', line 16

def DEFAULT_BASE
  { base: 0, leader: 1, friend: nil, skill: nil, up_drops: nil, combo: nil }
end

Instance Method Details

#cal(data = {}) ⇒ Object

データを元に計算する



40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
# File 'lib/pazzdra/calc.rb', line 40

def cal(data={})
  merge data
  case @data[:base]
  when Numeric
    Calc.cal @data[:base], @data[:leader], @data[:friend], @data[:skill], combo_up_pct
  when Array
    dragons = []
    @data[:base].each do |val|
      dragon = {}
      DROP_COLORS.each do |key|
        next unless val[key]
        dragon[key] = Calc.cal attack_power_with_all_pct(val[key], key),
          @data[:leader], @data[:friend], @data[:skill], combo_up_pct
        next unless val[:sub]
        dragon[:sub] = {}
        attc_pct = 0.3
        attc_pct = 0.1 if key == val[:sub]
        dragon[:sub][val[:sub]] = Calc.cal attack_power_with_all_pct((val[key].to_f * attc_pct).to_i, val[:sub]),
          @data[:leader], @data[:friend], @data[:skill], combo_up_pct
      end
      dragons.push(dragon)
    end
    dragons
  end
end

#merge(data = {}) ⇒ Object



30
31
32
# File 'lib/pazzdra/calc.rb', line 30

def merge(data={})
  @data.merge!(data)
end

#showObject



34
35
36
37
# File 'lib/pazzdra/calc.rb', line 34

def show
  p @data
  p cal
end