@@ -17,21 +17,34 @@ class TensaiGunshiNiNaro < Base
17
17
・行為判定
18
18
TN6…「有利」を得ていない場合、6面ダイスを2つ振って判定します。
19
19
TN10…「有利」を得ている場合、10面ダイスを2つ振って判定します。
20
- 不調 気づかぬうちの不満【C】…判定のダイス目が 「4」でも判定に成功しません 。数字の後ろに【C】をつけます。
20
+ 不調 気づかぬうちの不満【C】…このセッションの間、 「4」の出目を出しても判定は成功になりません 。数字の後ろに【C】をつけます。
21
21
例)TN6C
22
22
軍師スキル 〇〇サポート【S】…決戦フェイズの判定中「3」の出目を出しても判定に成功します。数字の後ろに【S】をつけます。
23
23
例)TN6S
24
24
英傑スキル/武人 煌めく刃【B】…決戦フェイズの判定中「3」の出目を出しても判定に成功となり、スペシャルが発生します。数字の後ろに【B】をつけます。
25
25
例)TN6B
26
+ 英傑スキル/武人 力ずく…その判定のサイコロをすべて振った後、[使用者の【攻撃力】]個サイコロを振る。先頭に使用者の【攻撃力】をつけます。
27
+ 例)4TN6
28
+ 英傑スキル/武人 必殺の剣【D】…《戦技》を使用している判定中「4」「5」の出目を出してもスペシャルが発生します。数字の後ろに【D】をつけます。
29
+ 例)TN6K
30
+ 英傑スキル/武人 二刀流【T】…「攻撃」のスキルの判定中「2」の出目を出しても判定に成功となり、同じ出目のサイコロが2つ以上出ているとスペシャルが発生します。数字の後ろに【T】をつけます。
31
+ 例)TN6T
26
32
英傑スキル/カリスマ 御身のためならば【Y】…「交流」「スカウト」の判定中「3」の出目を出しても判定に成功となり、スペシャルが発生します。数字の後ろに【Y】をつけます。
27
33
例)TN6Y
34
+ 英傑スキル/弓取り 愛用の弓【A】…「攻撃」のスキルの判定中「3」の出目を出しても判定に成功となり、スペシャルが発生します。数字の後ろに【A】をつけます。
35
+ 例)TN6A
36
+ 英傑スキル/ヤンキー&マイルドヤンキー その辺の物を武器に【C】…「4」の出目を出しても判定は成功になりません。数字の後ろに【C】をつけます。
37
+ 例)TN6C
38
+ 英傑スキル/ヤンキー&マイルドヤンキー 熱血判定【C】…「4」の出目を出しても判定は成功になりません。数字の後ろに【C】をつけます。
39
+ 例)TN6C
28
40
英傑スキル/英傑汎用 凄腕エージェント【A】…活動フェイズの判定中「3」の出目を出しても判定に成功となり、スペシャルが発生します。数字の後ろに【A】をつけます。
29
41
例)TN6A
30
42
数字の後ろに複数のコマンドを追加できます。
31
43
例)TN10CYA
32
- ・ダメージ計算 xDM>=t
44
+ ・ダメージ計算 xDM+y >=t
33
45
[ダメージ計算]を行う。成否と【HP】の減少量を表示する。
34
46
x: 6面ダイス数
47
+ y: 補正値(省略可能)
35
48
t: 防御力
36
49
・各種表
37
50
関係決定表 RELA
@@ -48,7 +61,7 @@ def initialize(command)
48
61
@round_type = RoundType ::FLOOR
49
62
end
50
63
51
- register_prefix ( 'TN(6|10)[CSBYA ]*' , '\d+DM' )
64
+ register_prefix ( '\d* TN(6|10)[ABCKSTY ]*' , '\d+DM' )
52
65
53
66
def eval_game_system_specific_command ( command )
54
67
roll_judge ( command ) || roll_damage ( command ) || roll_tables ( command , self . class ::TABLES )
@@ -58,7 +71,7 @@ def eval_game_system_specific_command(command)
58
71
59
72
# 行為判定
60
73
def roll_judge ( command )
61
- m = /^TN(6|10)([CSBYA ]*)$/ . match ( command )
74
+ m = /^( \d *) TN(6|10)([ABCKSTY ]*)$/ . match ( command )
62
75
unless m
63
76
return nil
64
77
end
@@ -73,51 +86,73 @@ def roll_judge(command)
73
86
fumble_dices = [ 1 ]
74
87
75
88
# 有利
76
- advantage = m [ 1 ] == "10"
89
+ advantage = m [ 2 ] == "10"
77
90
78
91
# 不調 気づかぬうちの不満
79
- complaints = m [ 2 ] . include? ( "C" )
92
+ complaints = m [ 3 ] . include? ( "C" )
80
93
81
94
# 軍師スキル 〇〇サポート
82
- support = m [ 2 ] . include? ( "S" )
95
+ support = m [ 3 ] . include? ( "S" )
83
96
84
97
# 英傑スキル/武人 煌めく刃
85
- blade = m [ 2 ] . include? ( "B" )
98
+ blade = m [ 3 ] . include? ( "B" )
99
+
100
+ # 英傑スキル/武人 必殺の剣
101
+ killer = m [ 3 ] . include? ( "K" )
102
+
103
+ # 英傑スキル/武人 二刀流
104
+ twin = m [ 3 ] . include? ( "T" )
86
105
87
106
# 英傑スキル/カリスマ 御身のためならば
88
- you = m [ 2 ] . include? ( "Y" )
107
+ you = m [ 3 ] . include? ( "Y" )
89
108
109
+ # 英傑スキル/弓取り 愛用の弓
90
110
# 英傑スキル/英傑汎用 凄腕エージェント
91
- agent = m [ 2 ] . include? ( "A" )
111
+ agent = m [ 3 ] . include? ( "A" )
92
112
93
- # 〇〇サポート、煌めく刃、御身のためならば、凄腕エージェントいずれかの適用時
113
+ # 二刀流の適用時
114
+ if twin
115
+ # 成功となる出目に2を追加
116
+ success_dices . push ( 2 )
117
+ end
118
+
119
+ # 〇〇サポート、煌めく刃、愛用の弓、御身のためならば、凄腕エージェントいずれかの適用時
94
120
if support | blade | you | agent
95
121
# 成功となる出目に3を追加
96
122
success_dices . push ( 3 )
97
123
end
98
124
99
- # 煌めく刃、御身のためならば、凄腕エージェントいずれかの適用時
125
+ # 煌めく刃、御身のためならば、愛用の弓、 凄腕エージェントいずれかの適用時
100
126
if blade | you | agent
101
127
# スペシャルとなる出目に3を追加
102
128
special_dices . push ( 3 )
103
129
end
104
130
131
+ # 必殺の剣の適用時
132
+ if killer
133
+ # スペシャルとなる出目に4,5を追加
134
+ special_dices . push ( 4 )
135
+ special_dices . push ( 5 )
136
+ end
137
+
105
138
# 気づかぬうちの不満適用時
106
139
if complaints
107
140
# 成功となる出目から4を削除
108
141
success_dices . delete ( 4 )
109
142
end
110
143
144
+ # 英傑スキル/武人 力ずく
145
+ times = 2 + m [ 1 ] . to_i
111
146
dice_size = advantage ? 10 : 6
112
- dice_list = @randomizer . roll_barabara ( 2 , dice_size )
147
+ dice_list = @randomizer . roll_barabara ( times , dice_size )
113
148
114
149
texts = [ ]
115
150
is_critical = false
116
151
is_fumble = false
117
152
is_success = false
118
153
119
- # スペシャルとなる出目を含む場合
120
- unless dice_list . intersection ( special_dices ) . empty?
154
+ # スペシャルとなる出目を含む、または、二刀流の適用時かつ同じ出目のサイコロが2つ以上出ている場合
155
+ if ! dice_list . intersection ( special_dices ) . empty? | ( twin & ( dice_list . count != dice_list . uniq . count ) )
121
156
# クリティカルフラグを立てる
122
157
is_critical = true
123
158
# スペシャルのシステムメッセージを追加
@@ -169,7 +204,6 @@ def roll_judge(command)
169
204
def roll_damage ( command )
170
205
parser = Command ::Parser . new ( "DM" , round_type : @round_type )
171
206
. has_prefix_number
172
- . disable_modifier
173
207
. restrict_cmp_op_to ( :>= )
174
208
parsed = parser . parse ( command )
175
209
unless parsed
@@ -180,7 +214,7 @@ def roll_damage(command)
180
214
is_success = false
181
215
182
216
# ダメージ計算
183
- damage = @randomizer . roll_sum ( parsed . prefix_number , 6 )
217
+ damage = @randomizer . roll_sum ( parsed . prefix_number , 6 ) + parsed . modify_number
184
218
# HP減少量計算
185
219
dec = damage / parsed . target_number
186
220
0 commit comments