pazzdra 0.0.1 → 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/bin/pad_calc +8 -0
- data/lib/pazzdra/calc.rb +25 -5
- data/lib/pazzdra/version.rb +1 -1
- data/spec/pazzdra_spec.rb +4 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 61d91ebadcbfce90e6b154b0ecbffab6dfec7eba
|
4
|
+
data.tar.gz: f07fe49e168943dad54cd384ef50200b5faeb0b7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2fc28c751eda845b3f2289909c4881a914db77a3ab07411e545ede7e9127332c159e8eaad3cdc27e80545717b1b9e6d94c65249107cbae1ac6cdf93c9bc65656
|
7
|
+
data.tar.gz: f75dc998c33c41828f94e84a16462f8f2b3b1d75ecc8a75628dacb008b6221eab0b6ae9dbd046356b36449945f25ad5131a24656841ba8a9e55322c61d40869c
|
data/bin/pad_calc
CHANGED
@@ -43,6 +43,13 @@ EOS
|
|
43
43
|
@base.data[:combo][key]
|
44
44
|
end
|
45
45
|
alias_method combo_method_names[1].to_sym, combo_method_names[0].to_sym
|
46
|
+
plus_method_names = ["plus_drop_#{key_color}".to_sym, "plus_drop_#{key}".to_sym]
|
47
|
+
define_method plus_method_names[0] do |val=nil|
|
48
|
+
@base.data[:plus_drop] = {} if !@base.data[:plus_drop] || @base.data[:plus_drop].is_a?(Numeric)
|
49
|
+
@base.data[:plus_drop][key] = val if val
|
50
|
+
@base.data[:plus_drop][key]
|
51
|
+
end
|
52
|
+
alias_method plus_method_names[1].to_sym, plus_method_names[0].to_sym
|
46
53
|
end
|
47
54
|
|
48
55
|
[*1..6].each do |key|
|
@@ -74,6 +81,7 @@ EOS
|
|
74
81
|
> leader 99 # リーダースキルによる倍率
|
75
82
|
> friend 99 # フレンドスキルによる倍率
|
76
83
|
> skill 99 # その他スキルによる倍率
|
84
|
+
> plus_drop 99 or color: 99, ... # 強化ドロップの数。数値もしくは色指定と数値
|
77
85
|
> combo_red [ 99, ... ] # 火属性のコンボ設定 数字カンマ区切りで何個でも。数字は同時消しの数
|
78
86
|
# 3個を1つ、4個を1つ消したら [3,4] となる 略式: combo_r
|
79
87
|
> combo_green [ 99, ... ] # 木属性のコンボ設定 以下同文 略式: combo_g
|
data/lib/pazzdra/calc.rb
CHANGED
@@ -3,6 +3,7 @@ module Pazzdra
|
|
3
3
|
class Calc
|
4
4
|
COMBO_UP_BASE = 0.25 # コンボ時の追加倍率(1コンボにつき)
|
5
5
|
LENGTH_UP_BASE = 0.25 # 同時消しの長さによる増加率(1個につき)
|
6
|
+
DROP_PLUS_UP_BASE = 0.06 # 強化ドロップによる増加率(1個につき)
|
6
7
|
DROP_COLORS = [:r,:g,:b,:y,:p,:h] # 色指定のsymbol定義
|
7
8
|
attr_accessor :data
|
8
9
|
class << Calc
|
@@ -46,11 +47,11 @@ module Pazzdra
|
|
46
47
|
dragon = {}
|
47
48
|
DROP_COLORS.each do |key|
|
48
49
|
next unless val[key]
|
49
|
-
dragon[key] = Calc.cal
|
50
|
+
dragon[key] = Calc.cal attack_power_with_all_pct(val[key], key),
|
50
51
|
@data[:leader], @data[:friend], @data[:skill], combo_up_pct
|
51
52
|
next unless val[:sub]
|
52
53
|
dragon[:sub] = {}
|
53
|
-
dragon[:sub][val[:sub]] = Calc.cal
|
54
|
+
dragon[:sub][val[:sub]] = Calc.cal attack_power_with_all_pct((val[key].to_f / 2).to_i, val[:sub]),
|
54
55
|
@data[:leader], @data[:friend], @data[:skill], combo_up_pct
|
55
56
|
end
|
56
57
|
dragons.push(dragon)
|
@@ -86,9 +87,28 @@ module Pazzdra
|
|
86
87
|
end
|
87
88
|
end
|
88
89
|
|
89
|
-
#
|
90
|
-
def
|
91
|
-
base_power * length_up_pct(color)
|
90
|
+
# 繋げた長さと強化ドロップを考慮したベース攻撃力
|
91
|
+
def attack_power_with_all_pct(base_power, color=nil)
|
92
|
+
base_power * length_up_pct(color) * plus_up_pct(color)
|
93
|
+
end
|
94
|
+
|
95
|
+
# 強化ドロップによる加算倍率
|
96
|
+
def plus_up_pct(color=nil)
|
97
|
+
1 + (plus_count(color) * DROP_PLUS_UP_BASE)
|
98
|
+
end
|
99
|
+
|
100
|
+
# 強化ドロップの数
|
101
|
+
def plus_count(color=nil)
|
102
|
+
return 0 unless color
|
103
|
+
case @data[:plus_drop]
|
104
|
+
when Numeric
|
105
|
+
0
|
106
|
+
when Hash
|
107
|
+
return 0 unless @data[:plus_drop][color]
|
108
|
+
@data[:plus_drop][color]
|
109
|
+
else
|
110
|
+
0
|
111
|
+
end
|
92
112
|
end
|
93
113
|
|
94
114
|
# 繋げた長さによる加算倍率
|
data/lib/pazzdra/version.rb
CHANGED
data/spec/pazzdra_spec.rb
CHANGED
@@ -65,6 +65,10 @@ describe Pazzdra, "パズドラ各種計算アプリ" do
|
|
65
65
|
@calc.merge({ base: [{g: 1200, sub: :g},{y: 1234, sub: :r}], leader: 2.5, friend: 2, skill: 1.5, combo: {r: [3, 3], g: [3,4], b: [3], y: [4, 6] } })
|
66
66
|
should eq [{g: 50625, sub: {g: 25313}},{y: 69413, sub: {r: 23138}}]
|
67
67
|
end
|
68
|
+
it "ベースの色指定、コンボ色指定 攻撃色が複数、長さ4越え 複数、強化ドロップあり" do
|
69
|
+
@calc.merge({ base: [{g: 1200, sub: :g},{y: 1234, sub: :r}], leader: 2.5, friend: 2, skill: 1.5, combo: {r: [3, 3], g: [3,4], b: [3], y: [4, 6] }, plus_drop: {g: 4} })
|
70
|
+
should eq [{g: 62775, sub: {g: 31388}},{y: 69413, sub: {r: 23138}}]
|
71
|
+
end
|
68
72
|
end
|
69
73
|
end
|
70
74
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pazzdra
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- takashi.akagi
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-04-
|
11
|
+
date: 2014-04-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|