Skip to content

Commit

Permalink
Trpg::Detatoko: ラスボス立場表の実装・メソッドのコメント追加
Browse files Browse the repository at this point in the history
ラスボス立場表を実装した。
また、追加されたコマンドの解説をドキュメントに追記した。

幾つかのメソッドにはコメントが付けられていないか、不十分だった。
これらのコメントを追記した。
  • Loading branch information
koi-chan committed Apr 13, 2015
1 parent bf521d1 commit ebdebfa
Show file tree
Hide file tree
Showing 3 changed files with 45 additions and 1 deletion.
11 changes: 11 additions & 0 deletions doc/plugins/trpg/detatoko.md
Original file line number Diff line number Diff line change
Expand Up @@ -99,3 +99,14 @@ Trpg::Detatoko
。でスタンス 全部
> でたとこサーガ [koi-chan]<スタンス表>: 候補:[敵視,宿命,憎悪,雲上,従属,不明] -> 系統:【従属】 1:【隷従】
```

### ラスボス立場表 (`.dlbp` / `。でラスボス立場`)

ラスボス立場表を振ります。例の3コマンドのどれも同じように動作します。

```
.dlbp
> でたとこサーガ [koi-chan]<ラスボス立場>: [5,1:6] -> 6: 【侵略】
。でラスボス立場
> でたとこサーガ [koi-chan]<ラスボス立場>: [1,1:2] -> 2: 【恐怖】
```
24 changes: 23 additions & 1 deletion lib/rgrb/plugin/trpg/detatoko/generator.rb
Original file line number Diff line number Diff line change
Expand Up @@ -83,13 +83,15 @@ def stigma(type)

# バッドエンド表を振る
# @param [String] type 体力・気力のどちらか
# @return [String]
def badend(type)
result = @dice_roll_generator.dice_roll(2, 6)
"#{result.sw2_dll_format} -> #{badend_text(type, result.sum)}"
end

# スタンス表を振る
# @param [String] uses
# @param [String] uses 列挙された使用するスタンス系統
# @return [String]
def stance(uses)
uses = '' if /全部/ =~ uses
use_list = what_stance_list(uses)
Expand All @@ -98,6 +100,13 @@ def stance(uses)
"系統:【#{stance_type}#{stance_select(stance_type)}"
end

# ラスボス立場表を振る
# @return [String]
def lastboss_position()
result = @dice_roll_generator.dice_roll(2, 6)
"#{result.sw2_dll_format} -> #{lastboss_position_text(result.sum)}"
end

# ダイスを振り獲得する烙印を決める
# @return [Array<Array>]
def get_stigma()
Expand Down Expand Up @@ -162,6 +171,17 @@ def badend_text(type, number)
end
private :badend_text

# 出目から対応するラスボス立場を決定する
# @param [Fixnum] number ダイスの出目
# @return [String]
def lastboss_position_text(number)
positions = [
'恐怖', '破壊', '封印', '滅亡', '侵略', '暴君',
'陰謀', '独裁', '崇拝', '犠牲', '人望'
]
"#{number}: 【#{positions[number - 2]}】"
end

# 文字列をスタンスの系統に分ける
# @param [String] uses 元の文字列
# @return [Array<String>] 使用するスタンス系統のリスト
Expand All @@ -174,6 +194,8 @@ def what_stance_list(uses)
private :what_stance_list

# 指定された系統のスタンスをランダムに選ぶ
# @param [String] type スタンス系統
# @return [String]
def stance_select(type)
stance = case type
when '敵視'
Expand Down
11 changes: 11 additions & 0 deletions lib/rgrb/plugin/trpg/detatoko/irc_adapter.rb
Original file line number Diff line number Diff line change
Expand Up @@ -27,11 +27,13 @@ class IrcAdapter
match(/(t|k)b/i, method: :badend)

match(/stance[\s ]+(#{STANCE_RE})/io, method: :stance)
match(/lbp/i, method: :lastboss_position)

match(/す([あかさたなはまやらわ]+)/i, method: :skill_decision_ja, :prefix => '。で')
match(/(体|気)力烙印/i, method: :stigma, :prefix => '。で')
match(/(体|気)力バッドエンド/i, method: :badend, :prefix => '。で')
match(/スタンス[\s ]+(#{STANCE_RE})/io, method: :stance, :prefix => '。で')
match(/ラスボス立場/i, method: :lastboss_position, :prefix => '。で')

def initialize(*args)
super
Expand Down Expand Up @@ -87,12 +89,21 @@ def badend(m, tcode)
end

# スタンス表から引く
# @return [void]
def stance(m, uses)
header = "#{@header}[#{m.user.nick}]<スタンス表>: "
message = @generator.stance(uses)
m.target.send(header + message, true)
end

# ラスボス立場表を引く
# @return [void]
def lastboss_position(m)
header = "#{@header}[#{m.user.nick}]<ラスボス立場>: "
message = @generator.lastboss_position
m.target.send(header + message, true)
end

# 体力・気力コードを対応する日本語に変換する
# @param [String] tcode 体力・気力コード
# @return [String]
Expand Down

0 comments on commit ebdebfa

Please sign in to comment.