BCDice icon indicating copy to clipboard operation
BCDice copied to clipboard

特定システム用の処理を行った後、標準ダイスに処理を委譲したい

Open NanasuNANA opened this issue 5 years ago • 2 comments

例えばD&D5thの判定では、有利/不利が付き(D20を2つ振り、有利なら大きい方、不利なら小さい方を取る)、さらにそれに呪文の効果などで任意のダイスを増減する(ブレスの効果で+1d4など)。

D&D5thの有利/不利をDAx、DDx(xは数値)等と実装して、D20を複数振って大きい/小さい方を取ったのち、後の処理(任意のダイスの結果を増減、プラス、マイナス修正)を標準ダイスボットに委譲するようなことがしたい。

例 DA2+1d4+3 D20を2つ振って大きい方を取り、その値に1d4の結果と3を足す

NanasuNANA avatar Aug 26 '19 10:08 NanasuNANA

加算ダイスをDSL化して、式の項をダイスボットで増やせるようにするという手もありそう

add_dice = AddDice.new

add_dice.unary_op("DA") do |x|
  # DAx の処理をして、結果を返す
end

add_dice.roll("DA1+1d4+3")

ysakasin avatar Sep 02 '19 15:09 ysakasin

Discordより:

先日私がニンジャスレイヤーTRPGの BCDice#bdice でやったように、AddDice.new の形で加算ロールを作って実行し、結果の文字列を後ろにくっつけるようにすれば汎用性があるのかな、と ただ、現段階では AddDice#roll が、普通の加算ロールとして振ったときを想定した文字列を返すようになっているので、そこは使いにくそう

ochaochaocha3 avatar Sep 05 '19 10:09 ochaochaocha3

代わりにnDxKH類が追加されているので、クローズします。

ysakasin avatar Sep 22 '22 16:09 ysakasin