From 5b76f1bc230c727a86f60abebb6e695382de7acd Mon Sep 17 00:00:00 2001 From: SAKATA Sinji Date: Wed, 29 Apr 2020 13:42:11 +0900 Subject: [PATCH 1/2] =?UTF-8?q?ArsMagica=E3=81=A7=E6=88=90=E5=8A=9F?= =?UTF-8?q?=E5=A4=B1=E6=95=97=E5=88=A4=E5=AE=9A=E3=81=8C=E3=81=A7=E3=81=8D?= =?UTF-8?q?=E3=81=AA=E3=81=84=E5=95=8F=E9=A1=8C=E3=82=92=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/diceBot/ArsMagica.rb | 44 ++++++++++--------------------------- src/test/data/ArsMagica.txt | 36 ++++++++++++++++++++++++++++++ 2 files changed, 47 insertions(+), 33 deletions(-) diff --git a/src/diceBot/ArsMagica.rb b/src/diceBot/ArsMagica.rb index ce0f2e580..a7e74ad6f 100644 --- a/src/diceBot/ArsMagica.rb +++ b/src/diceBot/ArsMagica.rb @@ -1,6 +1,8 @@ # -*- coding: utf-8 -*- # frozen_string_literal: true +require "utils/normalize" + class ArsMagica < DiceBot # ゲームシステムの識別子 ID = 'ArsMagica' @@ -44,33 +46,7 @@ def dice_command_xRn(string, nick_e) arsmagica_stress(string, nick_e) end - def check_nD10(total_n, _dice_n, signOfInequality, diff, _dice_cnt, _dice_max, _n1, _n_max) # ゲーム別成功度判定(nD10) - if signOfInequality != ">=" - return "" - end - - if total_n >= diff - return " > 成功" - end - - return " > 失敗" - end - - def check_1D10(total_n, _dice_n, signOfInequality, diff, _dice_cnt, _dice_max, _n1, _n_max) # ゲーム別成功度判定(1D10) - if signOfInequality != ">=" - return "" - end - - if total_n >= diff - return " > 成功" - end - - return " > 失敗" - end - def arsmagica_stress(string, _nick_e) - output = "1" - return "1" unless (m = /(^|\s)S?(1[rR]10([\+\-\d]*)(\[(\d+)\])?(([>=]+)(\d+))?)(\s|$)/i.match(string)) diff = 0 @@ -78,13 +54,13 @@ def arsmagica_stress(string, _nick_e) bonus = 0 crit_mul = 1 total = 0 - signOfInequality = "" + cmp_op = nil bonusText = m[3] botch = m[5].to_i if m[4] if m[6] - signOfInequality = marshalSignOfInequality(m[7]) - diff = m[8] + cmp_op = Normalize.comparison_operator(m[7]) + diff = m[8].to_i end bonus = parren_killer("(0#{bonusText})").to_i unless bonusText.empty? @@ -115,7 +91,8 @@ def arsmagica_stress(string, _nick_e) output += " > Botch!" end - signOfInequality = "" + # Botchの時には目標値を使った判定はしない + cmp_op = nil else if bonus > 0 output += "+#{bonus} > #{bonus}" @@ -150,13 +127,14 @@ def arsmagica_stress(string, _nick_e) if bonus > 0 output += "#{die}+#{bonus} > #{total}" elsif bonus < 0 - output += "#{die $bonus} > #{total}" + output += "#{die}#{bonus} > #{total}" else output += total.to_s end end - if signOfInequality != "" # 成功度判定処理 - output += check_result(total, 0, signOfInequality, diff, 1, 10, 0, 0) + + if cmp_op == :>= + output += (total >= diff ? " > 成功" : " > 失敗") end return ": #{output}" diff --git a/src/test/data/ArsMagica.txt b/src/test/data/ArsMagica.txt index f537333eb..f8ce65dfc 100644 --- a/src/test/data/ArsMagica.txt +++ b/src/test/data/ArsMagica.txt @@ -369,3 +369,39 @@ Ars10 output: ArsMagica : (1R10[10]) > 8 rand:9/10 +============================ +input: +Ars-3 +output: +ArsMagica : (1R10-3) > 8-3 > 5 +rand:9/10 +============================ +input: +Ars+3 +output: +ArsMagica : (1R10+3) > 8+3 > 11 +rand:9/10 +============================ +input: +Ars10>=7 +output: +ArsMagica : (1R10[10]>=7) > 2 > 失敗 +rand:3/10 +============================ +input: +Ars10>=7 +output: +ArsMagica : (1R10[10]>=7) > 9 > 成功 +rand:10/10 +============================ +input: +Ars10>=7 +output: +ArsMagica : (1R10[10]>=7) > 7 > 成功 +rand:8/10 +============================ +input: +Ars2>=7 Botchの時には目標値を使った判定はされない +output: +ArsMagica : (1R10[2]>=7) > 0[0,0,0] > 2Botch! +rand:1/10,1/10,1/10 From 32514f390aaf9d5363fbb4a8744acbb676ee1ce8 Mon Sep 17 00:00:00 2001 From: SAKATA Sinji Date: Wed, 29 Apr 2020 13:46:31 +0900 Subject: [PATCH 2/2] =?UTF-8?q?=E9=87=8D=E8=A4=87=E3=81=99=E3=82=8B?= =?UTF-8?q?=E3=83=86=E3=82=B9=E3=83=88=E3=82=B1=E3=83=BC=E3=82=B9=E3=82=92?= =?UTF-8?q?=E5=89=8A=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/test/data/ArsMagica.txt | 180 ------------------------------------ 1 file changed, 180 deletions(-) diff --git a/src/test/data/ArsMagica.txt b/src/test/data/ArsMagica.txt index f8ce65dfc..81fcede75 100644 --- a/src/test/data/ArsMagica.txt +++ b/src/test/data/ArsMagica.txt @@ -37,12 +37,6 @@ rand:8/10 input: Ars1 output: -ArsMagica : (1R10[1]) > 9 -rand:10/10 -============================ -input: -Ars1 -output: ArsMagica : (1R10[1]) > 5 rand:6/10 ============================ @@ -55,22 +49,10 @@ rand:4/10 input: Ars1 output: -ArsMagica : (1R10[1]) > 3 -rand:4/10 -============================ -input: -Ars1 -output: ArsMagica : (1R10[1]) > 0[0,7] > 0 rand:1/10,8/10 ============================ input: -Ars1 -output: -ArsMagica : (1R10[1]) > 7 -rand:8/10 -============================ -input: Ars3 output: ArsMagica : (1R10[3]) > 4 @@ -85,24 +67,6 @@ rand:4/10 input: Ars3 output: -ArsMagica : (1R10[3]) > 7 -rand:8/10 -============================ -input: -Ars3 -output: -ArsMagica : (1R10[3]) > 9 -rand:10/10 -============================ -input: -Ars3 -output: -ArsMagica : (1R10[3]) > 7 -rand:8/10 -============================ -input: -Ars3 -output: ArsMagica : (1R10[3]) > 9 rand:10/10 ============================ @@ -115,18 +79,6 @@ rand:8/10 input: Ars3 output: -ArsMagica : (1R10[3]) > 7 -rand:8/10 -============================ -input: -Ars3 -output: -ArsMagica : (1R10[3]) > 4 -rand:5/10 -============================ -input: -Ars3 -output: ArsMagica : (1R10[3]) > 6 rand:7/10 ============================ @@ -145,24 +97,12 @@ rand:9/10 input: Ars5 output: -ArsMagica : (1R10[5]) > 4 -rand:5/10 -============================ -input: -Ars5 -output: ArsMagica : (1R10[5]) > 6 rand:7/10 ============================ input: Ars5 output: -ArsMagica : (1R10[5]) > 3 -rand:4/10 -============================ -input: -Ars5 -output: ArsMagica : (1R10[5]) > 7 rand:8/10 ============================ @@ -181,12 +121,6 @@ rand:5/10 input: Ars5 output: -ArsMagica : (1R10[5]) > 4 -rand:5/10 -============================ -input: -Ars5 -output: ArsMagica : (1R10[5]) > 5 rand:6/10 ============================ @@ -217,30 +151,12 @@ rand:1/10,10/10,6/10,10/10,6/10,8/10,2/10,6/10 input: Ars7 output: -ArsMagica : (1R10[7]) > 9 -rand:10/10 -============================ -input: -Ars7 -output: -ArsMagica : (1R10[7]) > 4 -rand:5/10 -============================ -input: -Ars7 -output: ArsMagica : (1R10[7]) > 10[1,5] rand:2/10,5/10 ============================ input: Ars7 output: -ArsMagica : (1R10[7]) > 3 -rand:4/10 -============================ -input: -Ars7 -output: ArsMagica : (1R10[7]) > 5 rand:6/10 ============================ @@ -253,64 +169,16 @@ rand:8/10 input: Ars9 output: -ArsMagica : (1R10[9]) > 3 -rand:4/10 -============================ -input: -Ars9 -output: -ArsMagica : (1R10[9]) > 9 -rand:10/10 -============================ -input: -Ars9 -output: -ArsMagica : (1R10[9]) > 8 -rand:9/10 -============================ -input: -Ars9 -output: -ArsMagica : (1R10[9]) > 2 -rand:3/10 -============================ -input: -Ars9 -output: -ArsMagica : (1R10[9]) > 4 -rand:5/10 -============================ -input: -Ars9 -output: ArsMagica : (1R10[9]) > 20[1,1,5] rand:2/10,1/10,5/10 ============================ input: Ars9 output: -ArsMagica : (1R10[9]) > 4 -rand:5/10 -============================ -input: -Ars9 -output: ArsMagica : (1R10[9]) > 8[1,4] rand:2/10,4/10 ============================ input: -Ars9 -output: -ArsMagica : (1R10[9]) > 7 -rand:8/10 -============================ -input: -Ars9 -output: -ArsMagica : (1R10[9]) > 5 -rand:6/10 -============================ -input: Ars10 output: ArsMagica : (1R10[10]) > 14[1,7] @@ -319,58 +187,10 @@ rand:2/10,7/10 input: Ars10 output: -ArsMagica : (1R10[10]) > 6 -rand:7/10 -============================ -input: -Ars10 -output: -ArsMagica : (1R10[10]) > 5 -rand:6/10 -============================ -input: -Ars10 -output: -ArsMagica : (1R10[10]) > 7 -rand:8/10 -============================ -input: -Ars10 -output: -ArsMagica : (1R10[10]) > 5 -rand:6/10 -============================ -input: -Ars10 -output: -ArsMagica : (1R10[10]) > 2 -rand:3/10 -============================ -input: -Ars10 -output: -ArsMagica : (1R10[10]) > 9 -rand:10/10 -============================ -input: -Ars10 -output: -ArsMagica : (1R10[10]) > 7 -rand:8/10 -============================ -input: -Ars10 -output: ArsMagica : (1R10[10]) > 0[0,2,4,7,9,4,5,5,7,4,2] > 0 rand:1/10,3/10,5/10,8/10,10/10,5/10,6/10,6/10,8/10,5/10,3/10 ============================ input: -Ars10 -output: -ArsMagica : (1R10[10]) > 8 -rand:9/10 -============================ -input: Ars-3 output: ArsMagica : (1R10-3) > 8-3 > 5