From 40a77667ea7fef56e0cf9595e8440832d79f479b Mon Sep 17 00:00:00 2001 From: koi-chan Date: Thu, 26 Mar 2015 00:07:39 +0900 Subject: [PATCH] =?UTF-8?q?Trpg::Detatoko=20=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * スキルランクから判定値を求めるコマンドを、分かりやすく ".dsr" でも実行できるようにした * 一部のコードの可読性を高めた --- lib/rgrb/plugin/trpg/detatoko/constants.rb | 6 +++--- lib/rgrb/plugin/trpg/detatoko/irc_adapter.rb | 11 ++++++++--- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/lib/rgrb/plugin/trpg/detatoko/constants.rb b/lib/rgrb/plugin/trpg/detatoko/constants.rb index 4053032e..96326016 100644 --- a/lib/rgrb/plugin/trpg/detatoko/constants.rb +++ b/lib/rgrb/plugin/trpg/detatoko/constants.rb @@ -5,11 +5,11 @@ module Plugin module Trpg module Detatoko # スキルランクを表す正規表現 - SR_RE = /s(\d+)/ + SR_RE = /(?:s|sr)(\d+)/ # 固定値での四則演算を表す正規表現 SOLID_RE = %r|([+*\-/])(\d+)| - # フラグを指定した時の正規表現 - FLAG_RE = /@(\d+)/ + # フラグを指定した時の正規表現 + FLAG_RE = /@(\d+)/ # コマンドのパターンの最後を表す正規表現 END_RE = /(?:[\s ]|$)/ # スタンス系統にマッチする正規表現 diff --git a/lib/rgrb/plugin/trpg/detatoko/irc_adapter.rb b/lib/rgrb/plugin/trpg/detatoko/irc_adapter.rb index 281b5fd8..0478082c 100644 --- a/lib/rgrb/plugin/trpg/detatoko/irc_adapter.rb +++ b/lib/rgrb/plugin/trpg/detatoko/irc_adapter.rb @@ -19,12 +19,15 @@ class IrcAdapter match(/#{SR_RE}#{SOLID_RE}#{FLAG_RE}/io, method: :skill_decision) match(/#{SR_RE}#{FLAG_RE}#{END_RE}/io, method: :skill_decision_flag) match(/#{SR_RE}#{FLAG_RE}#{SOLID_RE}/io, method: :skill_decision_flag) + match(/(v|m|s|w)s/i, method: :stigma) match(/(t|k)r/i, method: :stigma) match(/(体|気)力烙印/i, method: :stigma) + match(/(v|m|s|w)be/i, method: :badend) match(/(t|k)b/i, method: :badend) match(/(体|気)力バッドエンド/i, method: :badend) + match(/stance[\s ]+(#{STANCE_RE})/io, method: :stance) match(/スタンス[\s ]+(#{STANCE_RE})/io, method: :stance) @@ -39,9 +42,11 @@ def initialize(*args) # @return [void] def skill_decision(m, skill_rank, calc = '+', solid = 0, flag = 0) header = "#{@header}[#{m.user.nick}]: " - @generator.skill_decision(skill_rank.to_i, calc, solid.to_i, flag.to_i).each_line { |line| - m.target.send(header + line.chomp, true) - } + @generator + .skill_decision(skill_rank.to_i, calc, solid.to_i, flag.to_i) + .each_line { |line| + m.target.send(header + line.chomp, true) + } end # skill_decision のフラグ先行コマンド用ラッパー