bcdice 3.0.0 → 3.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +79 -2
- data/README.md +32 -0
- data/i18n/MonotoneMuseum/ja_jp.yml +3 -3
- data/i18n/StellarKnights/ja_jp.yml +496 -0
- data/lib/bcdice/common_command/add_dice.rb +1 -1
- data/lib/bcdice/common_command/calc.rb +1 -1
- data/lib/bcdice/dice_table.rb +2 -0
- data/lib/bcdice/dice_table/d66_half_grid_table.rb +33 -0
- data/lib/bcdice/dice_table/d66_one_third_table.rb +34 -0
- data/lib/bcdice/dice_table/sai_fic_skill_table.rb +1 -1
- data/lib/bcdice/game_system.rb +4 -0
- data/lib/bcdice/game_system/AceKillerGene.rb +1 -1
- data/lib/bcdice/game_system/Ainecadette.rb +68 -0
- data/lib/bcdice/game_system/Airgetlamh.rb +1 -1
- data/lib/bcdice/game_system/AlchemiaStruggle.rb +1 -1
- data/lib/bcdice/game_system/Alsetto.rb +1 -1
- data/lib/bcdice/game_system/Alshard.rb +1 -1
- data/lib/bcdice/game_system/AlterRaise.rb +2 -2
- data/lib/bcdice/game_system/AngelGear.rb +123 -0
- data/lib/bcdice/game_system/AnimaAnimus.rb +1 -1
- data/lib/bcdice/game_system/Arianrhod.rb +6 -8
- data/lib/bcdice/game_system/ArsMagica.rb +1 -1
- data/lib/bcdice/game_system/Avandner.rb +1 -1
- data/lib/bcdice/game_system/BBN.rb +1 -1
- data/lib/bcdice/game_system/BadLife.rb +1 -1
- data/lib/bcdice/game_system/BarnaKronika.rb +1 -1
- data/lib/bcdice/game_system/BattleTech.rb +1 -1
- data/lib/bcdice/game_system/BeastBindTrinity.rb +2 -2
- data/lib/bcdice/game_system/BeginningIdol.rb +5 -5
- data/lib/bcdice/game_system/BeginningIdol_Korean.rb +5 -5
- data/lib/bcdice/game_system/BladeOfArcana.rb +1 -1
- data/lib/bcdice/game_system/BlindMythos.rb +1 -1
- data/lib/bcdice/game_system/BloodCrusade.rb +48 -49
- data/lib/bcdice/game_system/BloodMoon.rb +50 -8
- data/lib/bcdice/game_system/CardRanker.rb +10 -9
- data/lib/bcdice/game_system/ChaosFlare.rb +21 -15
- data/lib/bcdice/game_system/Chill.rb +10 -10
- data/lib/bcdice/game_system/Chill3.rb +9 -9
- data/lib/bcdice/game_system/CodeLayerd.rb +1 -1
- data/lib/bcdice/game_system/CrashWorld.rb +1 -1
- data/lib/bcdice/game_system/Cthulhu.rb +8 -4
- data/lib/bcdice/game_system/Cthulhu7th.rb +86 -342
- data/lib/bcdice/game_system/Cthulhu7th_ChineseTraditional.rb +2 -2
- data/lib/bcdice/game_system/Cthulhu7th_Korean.rb +2 -2
- data/lib/bcdice/game_system/CthulhuTech.rb +1 -1
- data/lib/bcdice/game_system/Cthulhu_ChineseTraditional.rb +1 -1
- data/lib/bcdice/game_system/Cthulhu_Korean.rb +1 -1
- data/lib/bcdice/game_system/DarkBlaze.rb +1 -12
- data/lib/bcdice/game_system/DarkDaysDrive.rb +8 -7
- data/lib/bcdice/game_system/DeadlineHeroes.rb +2 -2
- data/lib/bcdice/game_system/DemonParasite.rb +5 -13
- data/lib/bcdice/game_system/DesperateRun.rb +1 -1
- data/lib/bcdice/game_system/DiceOfTheDead.rb +1 -1
- data/lib/bcdice/game_system/DoubleCross.rb +2 -2
- data/lib/bcdice/game_system/Dracurouge.rb +1 -1
- data/lib/bcdice/game_system/EarthDawn.rb +1 -1
- data/lib/bcdice/game_system/EarthDawn3.rb +1 -1
- data/lib/bcdice/game_system/EarthDawn4.rb +1 -1
- data/lib/bcdice/game_system/EclipsePhase.rb +14 -14
- data/lib/bcdice/game_system/Elric.rb +18 -14
- data/lib/bcdice/game_system/Elysion.rb +3 -3
- data/lib/bcdice/game_system/EmbryoMachine.rb +9 -8
- data/lib/bcdice/game_system/Emoklore.rb +3 -3
- data/lib/bcdice/game_system/EtrianOdysseySRS.rb +1 -1
- data/lib/bcdice/game_system/Fiasco.rb +1 -1
- data/lib/bcdice/game_system/FilledWith.rb +205 -1272
- data/lib/bcdice/game_system/FullMetalPanic.rb +1 -1
- data/lib/bcdice/game_system/GURPS.rb +17 -28
- data/lib/bcdice/game_system/Garako.rb +12 -4
- data/lib/bcdice/game_system/GardenOrder.rb +1 -1
- data/lib/bcdice/game_system/GehennaAn.rb +1 -1
- data/lib/bcdice/game_system/GeishaGirlwithKatana.rb +1 -1
- data/lib/bcdice/game_system/GoblinSlayer.rb +1 -1
- data/lib/bcdice/game_system/Gorilla.rb +3 -9
- data/lib/bcdice/game_system/GranCrest.rb +18 -11
- data/lib/bcdice/game_system/Gundog.rb +9 -8
- data/lib/bcdice/game_system/GundogRevised.rb +10 -9
- data/lib/bcdice/game_system/GundogZero.rb +1 -1
- data/lib/bcdice/game_system/GurpsFW.rb +16 -16
- data/lib/bcdice/game_system/HarnMaster.rb +19 -26
- data/lib/bcdice/game_system/HatsuneMiku.rb +1 -1
- data/lib/bcdice/game_system/Hieizan.rb +12 -21
- data/lib/bcdice/game_system/HouraiGakuen.rb +1 -1
- data/lib/bcdice/game_system/HuntersMoon.rb +5 -10
- data/lib/bcdice/game_system/Illusio.rb +25 -34
- data/lib/bcdice/game_system/InfiniteFantasia.rb +19 -17
- data/lib/bcdice/game_system/Insane.rb +13 -20
- data/lib/bcdice/game_system/IthaWenUa.rb +8 -15
- data/lib/bcdice/game_system/JamesBond.rb +10 -10
- data/lib/bcdice/game_system/JekyllAndHyde.rb +1 -1
- data/lib/bcdice/game_system/Kamigakari.rb +1 -1
- data/lib/bcdice/game_system/KanColle.rb +4 -9
- data/lib/bcdice/game_system/KemonoNoMori.rb +1 -1
- data/lib/bcdice/game_system/KillDeathBusiness.rb +7 -15
- data/lib/bcdice/game_system/KurayamiCrying.rb +55 -2
- data/lib/bcdice/game_system/LogHorizon.rb +3 -3
- data/lib/bcdice/game_system/LostRoyal.rb +1 -1
- data/lib/bcdice/game_system/MeikyuDays.rb +11 -9
- data/lib/bcdice/game_system/MeikyuKingdom.rb +28 -28
- data/lib/bcdice/game_system/MeikyuKingdomBasic.rb +5 -5
- data/lib/bcdice/game_system/MetalHead.rb +12 -22
- data/lib/bcdice/game_system/MetalHeadExtream.rb +5 -5
- data/lib/bcdice/game_system/MetallicGuardian.rb +1 -1
- data/lib/bcdice/game_system/MonotoneMuseum.rb +9 -7
- data/lib/bcdice/game_system/Nechronica.rb +28 -21
- data/lib/bcdice/game_system/NeverCloud.rb +540 -5
- data/lib/bcdice/game_system/NightWizard.rb +1 -1
- data/lib/bcdice/game_system/NightWizard3rd.rb +1 -1
- data/lib/bcdice/game_system/NinjaSlayer.rb +4 -13
- data/lib/bcdice/game_system/NjslyrBattle.rb +8 -11
- data/lib/bcdice/game_system/OneWayHeroics.rb +1 -1
- data/lib/bcdice/game_system/OracleEngine.rb +1 -1
- data/lib/bcdice/game_system/OrgaRain.rb +17 -25
- data/lib/bcdice/game_system/Paradiso.rb +3 -3
- data/lib/bcdice/game_system/ParanoiaRebooted.rb +1 -1
- data/lib/bcdice/game_system/ParasiteBlood.rb +1 -1
- data/lib/bcdice/game_system/Peekaboo.rb +4 -9
- data/lib/bcdice/game_system/Pendragon.rb +7 -7
- data/lib/bcdice/game_system/PhantasmAdventure.rb +8 -8
- data/lib/bcdice/game_system/Postman.rb +2 -2
- data/lib/bcdice/game_system/PulpCthulhu.rb +1 -1
- data/lib/bcdice/game_system/Raisondetre.rb +2 -2
- data/lib/bcdice/game_system/RecordOfLodossWar.rb +1 -1
- data/lib/bcdice/game_system/RecordOfSteam.rb +1 -1
- data/lib/bcdice/game_system/Revulture.rb +123 -0
- data/lib/bcdice/game_system/RokumonSekai2.rb +1 -1
- data/lib/bcdice/game_system/RuneQuest.rb +8 -8
- data/lib/bcdice/game_system/Ryutama.rb +1 -1
- data/lib/bcdice/game_system/SRS.rb +1 -1
- data/lib/bcdice/game_system/SamsaraBallad.rb +1 -1
- data/lib/bcdice/game_system/Satasupe.rb +79 -860
- data/lib/bcdice/game_system/ScreamHighSchool.rb +2 -2
- data/lib/bcdice/game_system/SevenFortressMobius.rb +1 -1
- data/lib/bcdice/game_system/SharedFantasia.rb +20 -24
- data/lib/bcdice/game_system/ShinkuuGakuen.rb +2 -2
- data/lib/bcdice/game_system/ShinobiGami.rb +17 -9
- data/lib/bcdice/game_system/Skynauts.rb +4 -4
- data/lib/bcdice/game_system/SkynautsBouken.rb +228 -0
- data/lib/bcdice/game_system/SteamPunkers.rb +1 -1
- data/lib/bcdice/game_system/StellarKnights.rb +59 -696
- data/lib/bcdice/game_system/SterileLife.rb +2 -3
- data/lib/bcdice/game_system/StrangerOfSwordCity.rb +2 -2
- data/lib/bcdice/game_system/StratoShout.rb +8 -16
- data/lib/bcdice/game_system/Strave.rb +1 -1
- data/lib/bcdice/game_system/SwordWorld.rb +58 -185
- data/lib/bcdice/game_system/SwordWorld2_0.rb +22 -150
- data/lib/bcdice/game_system/SwordWorld2_5.rb +127 -41
- data/lib/bcdice/game_system/TherapieSein.rb +1 -1
- data/lib/bcdice/game_system/TokyoGhostResearch.rb +1 -1
- data/lib/bcdice/game_system/Torg.rb +1 -1
- data/lib/bcdice/game_system/TorgEternity.rb +2 -2
- data/lib/bcdice/game_system/TrinitySeven.rb +4 -4
- data/lib/bcdice/game_system/TunnelsAndTrolls.rb +1 -1
- data/lib/bcdice/game_system/TwilightGunsmoke.rb +1 -1
- data/lib/bcdice/game_system/UnsungDuet.rb +1 -1
- data/lib/bcdice/game_system/Utakaze.rb +1 -1
- data/lib/bcdice/game_system/VampireTheMasquerade5th.rb +1 -1
- data/lib/bcdice/game_system/Villaciel.rb +1 -1
- data/lib/bcdice/game_system/WARPS.rb +11 -9
- data/lib/bcdice/game_system/WaresBlade.rb +4 -9
- data/lib/bcdice/game_system/Warhammer.rb +16 -7
- data/lib/bcdice/game_system/Warhammer4.rb +16 -12
- data/lib/bcdice/game_system/WitchQuest.rb +1 -1
- data/lib/bcdice/game_system/WorldOfDarkness.rb +1 -1
- data/lib/bcdice/game_system/YankeeYogSothoth.rb +4 -9
- data/lib/bcdice/game_system/YearZeroEngine.rb +1 -1
- data/lib/bcdice/game_system/ZettaiReido.rb +1 -1
- data/lib/bcdice/game_system/cthulhu7th/full_auto.rb +294 -0
- data/lib/bcdice/game_system/cthulhu7th/rollable.rb +41 -0
- data/lib/bcdice/game_system/filled_with/enemy_data_tables.rb +322 -0
- data/lib/bcdice/game_system/filled_with/event_tables.rb +392 -0
- data/lib/bcdice/game_system/filled_with/tresure_tables.rb +179 -0
- data/lib/bcdice/game_system/meikyu_kingdom_basic/kingdom_table.rb +1 -1
- data/lib/bcdice/game_system/satasupe/tables.rb +723 -0
- data/lib/bcdice/game_system/sword_world/rating_lexer.rb +47 -0
- data/lib/bcdice/game_system/sword_world/rating_parsed.rb +99 -0
- data/lib/bcdice/game_system/sword_world/rating_parser.rb +457 -0
- data/lib/bcdice/game_system/sword_world/transcendent_test.rb +122 -0
- data/lib/bcdice/repl.rb +1 -1
- data/lib/bcdice/result.rb +26 -0
- data/lib/bcdice/version.rb +1 -1
- metadata +20 -4
data/lib/bcdice/dice_table.rb
CHANGED
@@ -3,6 +3,8 @@
|
|
3
3
|
require "bcdice/dice_table/roll_result"
|
4
4
|
require "bcdice/dice_table/chain_table"
|
5
5
|
require "bcdice/dice_table/d66_grid_table"
|
6
|
+
require "bcdice/dice_table/d66_half_grid_table"
|
7
|
+
require "bcdice/dice_table/d66_one_third_table"
|
6
8
|
require "bcdice/dice_table/d66_parity_table"
|
7
9
|
require "bcdice/dice_table/d66_range_table"
|
8
10
|
require "bcdice/dice_table/d66_table"
|
@@ -0,0 +1,33 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "bcdice/dice_table/d66_grid_table"
|
4
|
+
|
5
|
+
module BCDice
|
6
|
+
module DiceTable
|
7
|
+
# D66を振って6x6マスの表を参照する
|
8
|
+
class D66HalfGridTable < D66GridTable
|
9
|
+
# @param key [String]
|
10
|
+
# @param locale [Symbol]
|
11
|
+
# @return [D66HalfGridTable]
|
12
|
+
def self.from_i18n(key, locale)
|
13
|
+
table = I18n.t(key, locale: locale, raise: true)
|
14
|
+
new(table[:name], table[:items_1_2_3], table[:items_4_5_6])
|
15
|
+
end
|
16
|
+
|
17
|
+
# @param [String] name 表の名前
|
18
|
+
# @param [Array<String>] items_1_2_3
|
19
|
+
# @param [Array<String>] items_4_5_6
|
20
|
+
def initialize(name, items_1_2_3, items_4_5_6)
|
21
|
+
@name = name
|
22
|
+
@items = [
|
23
|
+
items_1_2_3,
|
24
|
+
items_1_2_3,
|
25
|
+
items_1_2_3,
|
26
|
+
items_4_5_6,
|
27
|
+
items_4_5_6,
|
28
|
+
items_4_5_6,
|
29
|
+
].freeze
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "bcdice/dice_table/d66_grid_table"
|
4
|
+
|
5
|
+
module BCDice
|
6
|
+
module DiceTable
|
7
|
+
# D66を振って6x6マスの表を参照する
|
8
|
+
class D66OneThirdTable < D66GridTable
|
9
|
+
# @param key [String]
|
10
|
+
# @param locale [Symbol]
|
11
|
+
# @return [D66OneThirdTable]
|
12
|
+
def self.from_i18n(key, locale)
|
13
|
+
table = I18n.t(key, locale: locale, raise: true)
|
14
|
+
new(table[:name], table[:items_1_2], table[:items_3_4], table[:items_5_6])
|
15
|
+
end
|
16
|
+
|
17
|
+
# @param [String] name 表の名前
|
18
|
+
# @param [Array<String>] items_1_2
|
19
|
+
# @param [Array<String>] items_3_4
|
20
|
+
# @param [Array<String>] items_5_6
|
21
|
+
def initialize(name, items_1_2, items_3_4, items_5_6)
|
22
|
+
@name = name
|
23
|
+
@items = [
|
24
|
+
items_1_2,
|
25
|
+
items_1_2,
|
26
|
+
items_3_4,
|
27
|
+
items_3_4,
|
28
|
+
items_5_6,
|
29
|
+
items_5_6,
|
30
|
+
].freeze
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
data/lib/bcdice/game_system.rb
CHANGED
@@ -2,6 +2,7 @@
|
|
2
2
|
|
3
3
|
require "bcdice/game_system/AFF2e"
|
4
4
|
require "bcdice/game_system/AceKillerGene"
|
5
|
+
require "bcdice/game_system/Ainecadette"
|
5
6
|
require "bcdice/game_system/Airgetlamh"
|
6
7
|
require "bcdice/game_system/AlchemiaStruggle"
|
7
8
|
require "bcdice/game_system/Alsetto"
|
@@ -9,6 +10,7 @@ require "bcdice/game_system/Alshard"
|
|
9
10
|
require "bcdice/game_system/AlterRaise"
|
10
11
|
require "bcdice/game_system/Amadeus"
|
11
12
|
require "bcdice/game_system/Amadeus_Korean"
|
13
|
+
require "bcdice/game_system/AngelGear"
|
12
14
|
require "bcdice/game_system/AnimaAnimus"
|
13
15
|
require "bcdice/game_system/Arianrhod"
|
14
16
|
require "bcdice/game_system/ArsMagica"
|
@@ -146,6 +148,7 @@ require "bcdice/game_system/PulpCthulhu"
|
|
146
148
|
require "bcdice/game_system/Raisondetre"
|
147
149
|
require "bcdice/game_system/RecordOfLodossWar"
|
148
150
|
require "bcdice/game_system/RecordOfSteam"
|
151
|
+
require "bcdice/game_system/Revulture"
|
149
152
|
require "bcdice/game_system/RokumonSekai2"
|
150
153
|
require "bcdice/game_system/RoleMaster"
|
151
154
|
require "bcdice/game_system/RuinBreakers"
|
@@ -166,6 +169,7 @@ require "bcdice/game_system/ShinkuuGakuen"
|
|
166
169
|
require "bcdice/game_system/ShinobiGami"
|
167
170
|
require "bcdice/game_system/ShoujoTenrankai"
|
168
171
|
require "bcdice/game_system/Skynauts"
|
172
|
+
require "bcdice/game_system/SkynautsBouken"
|
169
173
|
require "bcdice/game_system/SteamPunkers"
|
170
174
|
require "bcdice/game_system/StellarKnights"
|
171
175
|
require "bcdice/game_system/SterileLife"
|
@@ -0,0 +1,68 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module BCDice
|
4
|
+
module GameSystem
|
5
|
+
class Ainecadette < Base
|
6
|
+
# ゲームシステムの識別子
|
7
|
+
ID = "Ainecadette"
|
8
|
+
|
9
|
+
# ゲームシステム名
|
10
|
+
NAME = "エネカデット"
|
11
|
+
|
12
|
+
# ゲームシステム名の読みがな
|
13
|
+
SORT_KEY = "えねかてつと"
|
14
|
+
|
15
|
+
# ダイスボットの使い方
|
16
|
+
HELP_MESSAGE = <<~MESSAGETEXT
|
17
|
+
■ 判定
|
18
|
+
- 先輩 (AI) 10面ダイスを2つ振って判定します。『有利』なら【3AI】、『不利』なら【1AI】を使います。
|
19
|
+
- 後輩 (CA) 6面ダイスを2つ振って判定します。『有利』なら【3CA】、『不利』なら【1CA】を使います。
|
20
|
+
MESSAGETEXT
|
21
|
+
|
22
|
+
register_prefix('(\d+)?AI', '(\d+)?CA')
|
23
|
+
|
24
|
+
def eval_game_system_specific_command(command)
|
25
|
+
roll_action(command)
|
26
|
+
end
|
27
|
+
|
28
|
+
private
|
29
|
+
|
30
|
+
# 成功の目標値
|
31
|
+
SUCCESS_THRESHOLD = 4
|
32
|
+
|
33
|
+
# スペシャルとなる出目
|
34
|
+
SPECIAL_DICE = 6
|
35
|
+
|
36
|
+
def roll_action(command)
|
37
|
+
m = /^(\d+)?(AI|CA)$/.match(command)
|
38
|
+
return nil unless m
|
39
|
+
|
40
|
+
is_senpai = m[2] == "AI"
|
41
|
+
|
42
|
+
times = m[1]&.to_i || 2
|
43
|
+
sides = is_senpai ? 10 : 6
|
44
|
+
return nil if times <= 0
|
45
|
+
|
46
|
+
dice_list = @randomizer.roll_barabara(times, sides)
|
47
|
+
max = dice_list.max
|
48
|
+
|
49
|
+
result =
|
50
|
+
if max <= 1
|
51
|
+
Result.fumble("ファンブル(もやもやカウンターを2個獲得)")
|
52
|
+
elsif dice_list.include?(6)
|
53
|
+
me = is_senpai ? "先輩" : "後輩"
|
54
|
+
target = is_senpai ? "後輩" : "先輩"
|
55
|
+
Result.critical("スペシャル(絆カウンターを1個獲得し、#{target}は#{me}への感情を1つ獲得)")
|
56
|
+
elsif max >= SUCCESS_THRESHOLD
|
57
|
+
Result.success("成功")
|
58
|
+
else
|
59
|
+
Result.failure("失敗")
|
60
|
+
end
|
61
|
+
|
62
|
+
result.text = "(#{command}) > [#{dice_list.join(',')}] > #{result.text}"
|
63
|
+
|
64
|
+
return result
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
@@ -35,8 +35,8 @@ module BCDice
|
|
35
35
|
MESSAGETEXT
|
36
36
|
|
37
37
|
register_prefix(
|
38
|
-
'EMA
|
39
|
-
'TRA
|
38
|
+
'EMA', 'PER', 'LOC', 'QUI', 'DEL',
|
39
|
+
'TRA', 'SCE', 'STA', 'EMO'
|
40
40
|
)
|
41
41
|
|
42
42
|
def eval_game_system_specific_command(command)
|
@@ -0,0 +1,123 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "bcdice/dice_table/table"
|
4
|
+
require "bcdice/dice_table/d66_grid_table"
|
5
|
+
require "bcdice/arithmetic"
|
6
|
+
|
7
|
+
module BCDice
|
8
|
+
module GameSystem
|
9
|
+
class AngelGear < Base
|
10
|
+
# ゲームシステムの識別子
|
11
|
+
ID = 'AngelGear'
|
12
|
+
|
13
|
+
# ゲームシステム名
|
14
|
+
NAME = 'エンゼルギア 天使大戦TRPG The 2nd Editon'
|
15
|
+
|
16
|
+
# ゲームシステム名の読みがな
|
17
|
+
SORT_KEY = 'えんせるきあ2'
|
18
|
+
|
19
|
+
# ダイスボットの使い方
|
20
|
+
HELP_MESSAGE = <<~MESSAGETEXT
|
21
|
+
・判定 nAG[s][±a]
|
22
|
+
[]内は省略可能。
|
23
|
+
n:判定値
|
24
|
+
s:技能値
|
25
|
+
a:修正
|
26
|
+
(例)
|
27
|
+
12AG 10AG3±20
|
28
|
+
|
29
|
+
・感情表 ET
|
30
|
+
MESSAGETEXT
|
31
|
+
|
32
|
+
def initialize(command)
|
33
|
+
super(command)
|
34
|
+
|
35
|
+
@sort_barabara_dice = true # バラバラロール(Bコマンド)でソート有
|
36
|
+
end
|
37
|
+
|
38
|
+
def eval_game_system_specific_command(command)
|
39
|
+
if (m = /^(\d+)AG(\d+)?(([+\-]\d+)*)$/.match(command))
|
40
|
+
resolute_action(m[1].to_i, m[2]&.to_i, m[3], command)
|
41
|
+
else
|
42
|
+
roll_tables(command, TABLES)
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
def resolute_action(num_dice, skill_value, modify, command)
|
47
|
+
dice = @randomizer.roll_barabara(num_dice, 6).sort
|
48
|
+
dice_text = dice.join(",")
|
49
|
+
modify_n = 0
|
50
|
+
success = 0
|
51
|
+
|
52
|
+
if skill_value
|
53
|
+
success = dice.count { |val| val <= skill_value }
|
54
|
+
modify_n = Arithmetic.eval(modify, RoundType::FLOOR) unless modify.empty?
|
55
|
+
end
|
56
|
+
|
57
|
+
output = "(#{command}) > #{success}[#{dice_text}]#{format('%+d', modify_n)} > 成功数: #{success + modify_n}"
|
58
|
+
if success + modify_n >= 100
|
59
|
+
output += "(福音発生)"
|
60
|
+
end
|
61
|
+
return output
|
62
|
+
end
|
63
|
+
|
64
|
+
TABLES = {
|
65
|
+
'ET' => DiceTable::D66GridTable.new(
|
66
|
+
'感情表',
|
67
|
+
[
|
68
|
+
[
|
69
|
+
'好奇心(好奇心)',
|
70
|
+
'憧れ(あこがれ)',
|
71
|
+
'尊敬(そんけい)',
|
72
|
+
'仲間意識(なかまいしき)',
|
73
|
+
'母性愛(ぼせいあい)',
|
74
|
+
'感心(かんしん)'
|
75
|
+
],
|
76
|
+
[
|
77
|
+
'純愛(じゅんあい)',
|
78
|
+
'友情(ゆうじょう)',
|
79
|
+
'同情(どうじょう)',
|
80
|
+
'父性愛(ふせいあい)',
|
81
|
+
'幸福感(こうふくかん)',
|
82
|
+
'信頼(しんらい)'
|
83
|
+
],
|
84
|
+
[
|
85
|
+
'競争心(きょうそうしん)',
|
86
|
+
'親近感(しんきんかん)',
|
87
|
+
'まごころ',
|
88
|
+
'好意(こうい)',
|
89
|
+
'有為(ゆうい)',
|
90
|
+
'崇拝(すうはい)'
|
91
|
+
],
|
92
|
+
[
|
93
|
+
'大嫌い(だいきらい)',
|
94
|
+
'妬み(ねたみ)',
|
95
|
+
'侮蔑(ぶべつ)',
|
96
|
+
'腐れ縁(くされえん)',
|
97
|
+
'恐怖(きょうふ)',
|
98
|
+
'劣等感(れっとうかん)'
|
99
|
+
],
|
100
|
+
[
|
101
|
+
'偏愛(へんあい)',
|
102
|
+
'寂しさ(さびしさ)',
|
103
|
+
'憐憫(れんびん)',
|
104
|
+
'闘争心(とうそうしん)',
|
105
|
+
'食傷(しょくしょう)',
|
106
|
+
'嘘つき(うそつき)'
|
107
|
+
],
|
108
|
+
[
|
109
|
+
'甘え(あまえ)',
|
110
|
+
'苛立ち(いらだち)',
|
111
|
+
'下心(したごころ)',
|
112
|
+
'憎悪(ぞうお)',
|
113
|
+
'疑惑(ぎわく)',
|
114
|
+
'支配(しはい)'
|
115
|
+
],
|
116
|
+
]
|
117
|
+
)
|
118
|
+
}.freeze
|
119
|
+
|
120
|
+
register_prefix('\d+AG', TABLES.keys)
|
121
|
+
end
|
122
|
+
end
|
123
|
+
end
|
@@ -25,25 +25,23 @@ module BCDice
|
|
25
25
|
@d66_sort_type = D66SortType::NO_SORT
|
26
26
|
end
|
27
27
|
|
28
|
-
def
|
28
|
+
def result_nd6(total, _dice_total, dice_list, cmp_op, target)
|
29
29
|
n_max = dice_list.count(6)
|
30
30
|
|
31
31
|
if dice_list.count(1) == dice_list.size
|
32
32
|
# 全部1の目ならファンブル
|
33
|
-
"
|
33
|
+
Result.fumble("ファンブル")
|
34
34
|
elsif n_max >= 2
|
35
35
|
# 2個以上6の目があったらクリティカル
|
36
|
-
"
|
36
|
+
Result.critical("クリティカル(+#{n_max}D6)")
|
37
37
|
elsif cmp_op != :>= || target == '?'
|
38
|
-
|
38
|
+
nil
|
39
39
|
elsif total >= target
|
40
|
-
"
|
40
|
+
Result.success("成功")
|
41
41
|
else
|
42
|
-
"
|
42
|
+
Result.failure("失敗")
|
43
43
|
end
|
44
44
|
end
|
45
|
-
|
46
|
-
alias check_2D6 check_nD6
|
47
45
|
end
|
48
46
|
end
|
49
47
|
end
|
@@ -26,7 +26,7 @@ module BCDice
|
|
26
26
|
最初の0が判断基準で、その右側5つがボッチダイスです。1*2,8*2,0*1なので1botchという訳です。
|
27
27
|
INFO_MESSAGE_TEXT
|
28
28
|
|
29
|
-
register_prefix('ArS
|
29
|
+
register_prefix('ArS', '1R10')
|
30
30
|
|
31
31
|
def eval_game_system_specific_command(string)
|
32
32
|
unless parse_ars(string) || parse_1r10(string)
|