Skip to content

Commit

Permalink
プラグイン Detatoko 更新・最適化
Browse files Browse the repository at this point in the history
* ドキュメントを更新した。
** ".ds"コマンドでフラグが指定できることを追記
** 同じく、以下の更新に伴い出力形式の例を更新
* 出目の[]の中に判定値も入れるようにした(SW2_DLLとの統一)。
* 以下のメソッド内で行われている配列を文字列に変換する部分を見直した。
** skill_decision()
** stigma()
** stance()
  • Loading branch information
koi-chan committed Mar 15, 2015
1 parent fb2274d commit b5c7b69
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 13 deletions.
10 changes: 8 additions & 2 deletions doc/plugins/detatoko.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,11 @@ Detatoko
コマンド
--------

### スキルランクから判定値を算出 (`.ds<SR>`)
### スキルランクから判定値を算出 (`.ds<SR>` / `.ds<SR>[+-*/]<固定値>` / `.ds<SR>[+-*/]<固定値>@<フラグ>` / `.ds<SR>@<フラグ>`)

`<SR>` にスキルランクを入れると、ダイスを振って判定値を求めます。
追加で一つだけ、固定値で四則演算をすることができます。割り算で小数が出る場合は、「絶対のルール(ルールブックp.22)」に従い切り上げます。
追加で一つだけ、固定値で四則演算をすることができます。割り算で小数が出る場合は、「絶対のルール(ルールブックp.22)」に従い切り上げます。
`@` の直後に現在のフラグを入れることで、(固定値で四則演算をする前の)判定値がフラグ以下だった場合はそれを通知し、気力ダメージを求めます。

####

Expand All @@ -19,6 +20,11 @@ Detatoko
> でたとこサーガ [koi-chan]<判定値>: スキルレベル = 3 -> [2, 5, 3, 2]:8 = 8
.ds3+3
> でたとこサーガ [koi-chan]<判定値>: スキルレベル = 3 -> [3, 5, 6, 6]:12 + 3 = 15
.ds3+3@10
> でたとこサーガ [koi-chan]: スキルランク = 3 -> [6, 6, 5, 6]:12 + 3 = 15 (フラグ:10)
.ds3@10
> でたとこサーガ [koi-chan]: スキルランク = 3 -> [5, 4, 5, 5]:10 = 10 (フラグ:10)
> でたとこサーガ [koi-chan]: フラグ以下 -> 気力ダメージ = 3
```

### 体力烙印の獲得 (`.dvst` / `.dsst` / `.dtr` / `.d体力烙印`)
Expand Down
17 changes: 6 additions & 11 deletions lib/rgrb/plugin/detatoko/generator.rb
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,6 @@ def initialize
# @param [Fixnum] flag フラグ
# @return [String]
def skill_decision(skill_rank, calc, solid, flag)
header = "スキルランク = #{skill_rank} -> "

case skill_rank
when 0
result = dice_roll(3, 6)
Expand All @@ -34,8 +32,10 @@ def skill_decision(skill_rank, calc, solid, flag)
return header + "ダイスが机から落ちてしまいましたの☆"
end
decision = values.reduce(0, :+)

message = header + result[:values].to_s + ":#{decision}"

message = "スキルランク = #{skill_rank} -> ["
message << result[:values].join(',')
message << ":#{decision}]"
message << " #{calc} #{solid}" unless solid == 0
message << " = "
message << eval("#{decision.to_f} #{calc} #{solid}").ceil.to_s
Expand Down Expand Up @@ -64,12 +64,7 @@ def stigma(type)
response[:stigma].compact!
response[:stigma] << 'なし' if response[:stigma].empty?

message = "#{response[:dice]} -> "
response[:stigma].each { |stigma_name|
message << "#{stigma_name} と "
}
3.times { message.chop! }
message
"#{response[:dice]} -> #{response[:stigma].join(' と ')}"
end

# バッドエンド表を振る
Expand All @@ -84,7 +79,7 @@ def badend(type)
def stance(uses)
use_list = what_stance_list(uses)
stance_type = use_list.sample
"候補:#{use_list.to_s.tr('" ', '')} -> " \
"候補:[#{use_list.join(',')}] -> " \
"系統:【#{stance_type}#{stance_select(stance_type)}"
end

Expand Down

0 comments on commit b5c7b69

Please sign in to comment.