From 2df3b8114e63701ae7278153c29468e48fcc64b0 Mon Sep 17 00:00:00 2001 From: Hideyo Mikisato Date: Thu, 29 Apr 2021 23:34:59 +0900 Subject: [PATCH 1/2] =?UTF-8?q?=E7=B5=B6=E5=AF=BE=E9=9A=B7=E5=A5=B4?= =?UTF-8?q?=E3=81=AEResult=E5=AF=BE=E5=BF=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/bcdice/game_system/ZettaiReido.rb | 32 ++++++++++----------------- test/data/ZettaiReido.toml | 21 ++++++++++++++++++ 2 files changed, 33 insertions(+), 20 deletions(-) diff --git a/lib/bcdice/game_system/ZettaiReido.rb b/lib/bcdice/game_system/ZettaiReido.rb index 6701d57ae..5c5752445 100644 --- a/lib/bcdice/game_system/ZettaiReido.rb +++ b/lib/bcdice/game_system/ZettaiReido.rb @@ -1,5 +1,7 @@ # frozen_string_literal: true +require 'bcdice/base' + module BCDice module GameSystem class ZettaiReido < Base @@ -45,13 +47,13 @@ def roll2DR(baseAvility, modText, diffValue) total = baseAvility - diceTotal + mod output += " > #{total}" - successText = getSuccessText(diceTotal, total, diff) - output += successText + result = getResult(diceTotal, total, diff, output) - darkPointText = getDarkPointResult(total, diff, darkPoint) - output += darkPointText + if darkPoint > 0 + result.text += " > #{darkPoint}DP" + end - return output + return result end def roll2DarkDice() @@ -107,23 +109,13 @@ def getDiffInfo(diffValue) return diffValue, diffText end - def getDarkPointResult(_total, _diff, darkPoint) - text = '' - - if darkPoint > 0 - text = " > #{darkPoint}DP" - end - - return text - end - - def getSuccessText(diceTotal, total, diff) + def getResult(diceTotal, total, diff, output) if diceTotal == 0 - return " > クリティカル" + return Result.critical(output + " > クリティカル") end if diceTotal == 10 - return " > ファンブル" + return Result.fumble(output + " > ファンブル") end if diff.nil? @@ -132,10 +124,10 @@ def getSuccessText(diceTotal, total, diff) successLevel = (total - diff) if successLevel >= 0 - return " > #{successLevel} 成功" + return Result.success(output + " > #{successLevel} 成功") end - return ' > 失敗' + return Result.failure(output + " > 失敗") end end end diff --git a/test/data/ZettaiReido.toml b/test/data/ZettaiReido.toml index 24a90d403..72bd1a3f5 100644 --- a/test/data/ZettaiReido.toml +++ b/test/data/ZettaiReido.toml @@ -2,6 +2,8 @@ game_system = "ZettaiReido" input = "12-2DR-1>=10" output = "(12-2DR-1>=10) > 12-0[0,0]-1 > 11 > クリティカル > 4DP" +success = true +critical = true rands = [ { sides = 6, value = 6 }, { sides = 6, value = 6 }, @@ -11,6 +13,8 @@ rands = [ game_system = "ZettaiReido" input = "10-2DR+1>=99" output = "(10-2DR+1>=99) > 10-0[0,0]+1 > 11 > クリティカル > 4DP" +success = true +critical = true rands = [ { sides = 6, value = 6 }, { sides = 6, value = 6 }, @@ -20,6 +24,7 @@ rands = [ game_system = "ZettaiReido" input = "10-2DR+1>=10" output = "(10-2DR+1>=10) > 10-1[1,0]+1 > 10 > 0 成功 > 1DP" +success = true rands = [ { sides = 6, value = 1 }, { sides = 6, value = 6 }, @@ -29,6 +34,7 @@ rands = [ game_system = "ZettaiReido" input = "8-2DR>=6" output = "(8-2DR>=6) > 8-2[1,1] > 6 > 0 成功" +success = true rands = [ { sides = 6, value = 1 }, { sides = 6, value = 1 }, @@ -38,6 +44,7 @@ rands = [ game_system = "ZettaiReido" input = "8-2DR-1>=4" output = "(8-2DR-1>=4) > 8-2[1,1]-1 > 5 > 1 成功" +success = true rands = [ { sides = 6, value = 1 }, { sides = 6, value = 1 }, @@ -47,6 +54,7 @@ rands = [ game_system = "ZettaiReido" input = "30-2DR-10>=19" output = "(30-2DR-10>=19) > 30-1[0,1]-10 > 19 > 0 成功 > 1DP" +success = true rands = [ { sides = 6, value = 6 }, { sides = 6, value = 1 }, @@ -56,6 +64,7 @@ rands = [ game_system = "ZettaiReido" input = "8-2DR>=7" output = "(8-2DR>=7) > 8-2[1,1] > 6 > 失敗" +failure = true rands = [ { sides = 6, value = 1 }, { sides = 6, value = 1 }, @@ -65,6 +74,7 @@ rands = [ game_system = "ZettaiReido" input = "30-2DR-10>=20" output = "(30-2DR-10>=20) > 30-1[0,1]-10 > 19 > 失敗 > 1DP" +failure = true rands = [ { sides = 6, value = 6 }, { sides = 6, value = 1 }, @@ -74,6 +84,8 @@ rands = [ game_system = "ZettaiReido" input = "9-2DR>=7" output = "(9-2DR>=7) > 9-10[5,5] > -1 > ファンブル" +failure = true +fumble = true rands = [ { sides = 6, value = 5 }, { sides = 6, value = 5 }, @@ -83,6 +95,8 @@ rands = [ game_system = "ZettaiReido" input = "20-2DR>=7" output = "(20-2DR>=7) > 20-10[5,5] > 10 > ファンブル" +failure = true +fumble = true rands = [ { sides = 6, value = 5 }, { sides = 6, value = 5 }, @@ -92,6 +106,7 @@ rands = [ game_system = "ZettaiReido" input = "6-2DR" output = "(6-2DR) > 6-5[2,3] > 1 > 1 成功" +success = true rands = [ { sides = 6, value = 2 }, { sides = 6, value = 3 }, @@ -101,6 +116,7 @@ rands = [ game_system = "ZettaiReido" input = "6-2DR" output = "(6-2DR) > 6-6[3,3] > 0 > 0 成功" +success = true rands = [ { sides = 6, value = 3 }, { sides = 6, value = 3 }, @@ -110,6 +126,8 @@ rands = [ game_system = "ZettaiReido" input = "6-2DR" output = "(6-2DR) > 6-0[0,0] > 6 > クリティカル > 4DP" +success = true +critical = true rands = [ { sides = 6, value = 6 }, { sides = 6, value = 6 }, @@ -119,6 +137,7 @@ rands = [ game_system = "ZettaiReido" input = "6-2DR" output = "(6-2DR) > 6-7[4,3] > -1 > 失敗" +failure = true rands = [ { sides = 6, value = 4 }, { sides = 6, value = 3 }, @@ -128,6 +147,8 @@ rands = [ game_system = "ZettaiReido" input = "6-2DR" output = "(6-2DR) > 6-10[5,5] > -4 > ファンブル" +failure = true +fumble = true rands = [ { sides = 6, value = 5 }, { sides = 6, value = 5 }, From 90808799af543beb5de8b5df6ab8744a308ed337 Mon Sep 17 00:00:00 2001 From: Hideyo Mikisato Date: Fri, 30 Apr 2021 22:58:23 +0900 Subject: [PATCH 2/2] =?UTF-8?q?=E3=83=AC=E3=83=93=E3=83=A5=E3=83=BC?= =?UTF-8?q?=E5=8F=8D=E6=98=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/bcdice/game_system/ZettaiReido.rb | 31 +++++++++++++++------------ 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/lib/bcdice/game_system/ZettaiReido.rb b/lib/bcdice/game_system/ZettaiReido.rb index 5c5752445..5186d4d08 100644 --- a/lib/bcdice/game_system/ZettaiReido.rb +++ b/lib/bcdice/game_system/ZettaiReido.rb @@ -40,18 +40,21 @@ def roll2DR(baseAvility, modText, diffValue) mod, modText = getModInfo(modText) diff, diffText = getDiffInfo(diffValue) - output = "" - output += "(#{baseAvility}-2DR#{modText}#{diffText})" - output += " > #{baseAvility}-#{diceTotal}[#{diceText}]#{modText}" - + baseCommandText = "(#{baseAvility}-2DR#{modText}#{diffText})" + diceCommandText = "#{baseAvility}-#{diceTotal}[#{diceText}]#{modText}" total = baseAvility - diceTotal + mod - output += " > #{total}" - result = getResult(diceTotal, total, diff, output) + result = getResult(diceTotal, total, diff) - if darkPoint > 0 - result.text += " > #{darkPoint}DP" - end + darkPointText = "#{darkPoint}DP" if darkPoint > 0 + + result.text = [ + baseCommandText, + diceCommandText, + total.to_i, + result.text, + darkPointText, + ].compact.join(" > ") return result end @@ -109,13 +112,13 @@ def getDiffInfo(diffValue) return diffValue, diffText end - def getResult(diceTotal, total, diff, output) + def getResult(diceTotal, total, diff) if diceTotal == 0 - return Result.critical(output + " > クリティカル") + return Result.critical("クリティカル") end if diceTotal == 10 - return Result.fumble(output + " > ファンブル") + return Result.fumble("ファンブル") end if diff.nil? @@ -124,10 +127,10 @@ def getResult(diceTotal, total, diff, output) successLevel = (total - diff) if successLevel >= 0 - return Result.success(output + " > #{successLevel} 成功") + return Result.success("#{successLevel} 成功") end - return Result.failure(output + " > 失敗") + return Result.failure("失敗") end end end