bcdice 3.0.0.pre.alpha.1 → 3.0.0.pre.alpha.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/test.yml +1 -1
- data/.rubocop.yml +12 -0
- data/.rubocop_todo.yml +1 -0
- data/CHANGELOG.md +34 -0
- data/Gemfile +6 -3
- data/Rakefile +52 -18
- data/bcdice.gemspec +2 -0
- data/i18n/Amadeus/ja_jp.yml +386 -0
- data/i18n/Amadeus/ko_kr.yml +148 -0
- data/i18n/Cthulhu/ja_jp.yml +11 -0
- data/i18n/Cthulhu/ko_kr.yml +11 -0
- data/i18n/Cthulhu/zh_hant.yml +11 -0
- data/i18n/DetatokoSaga/ja_jp.yml +74 -0
- data/i18n/DetatokoSaga/ko_kr.yml +74 -0
- data/i18n/DoubleCross/ja_jp.yml +53 -0
- data/i18n/DoubleCross/ko_kr.yml +53 -0
- data/i18n/Dracurouge/ja_jp.yml +1374 -0
- data/i18n/Dracurouge/ko_kr.yml +295 -0
- data/i18n/Fiasco/ja_jp.yml +10 -0
- data/i18n/Fiasco/ko_kr.yml +10 -0
- data/i18n/FutariSousa/ja_jp.yml +720 -0
- data/i18n/FutariSousa/ko_kr.yml +746 -0
- data/i18n/Insane/ja_jp.yml +454 -0
- data/i18n/Insane/ko_kr.yml +502 -0
- data/i18n/Kamigakari/ja_jp.yml +276 -0
- data/i18n/Kamigakari/ko_kr.yml +204 -0
- data/i18n/KillDeathBusiness/ja_jp.yml +1092 -0
- data/i18n/KillDeathBusiness/ko_kr.yml +1062 -0
- data/i18n/LogHorizon/ja_jp.yml +3082 -0
- data/i18n/LogHorizon/ko_kr.yml +923 -0
- data/i18n/MagicaLogia/ja_jp.yml +564 -0
- data/i18n/MonotoneMuseum/ja_jp.yml +525 -0
- data/i18n/MonotoneMuseum/ko_kr.yml +89 -0
- data/i18n/Nechronica/ja_jp.yml +57 -0
- data/i18n/Nechronica/ko_kr.yml +14 -0
- data/i18n/StratoShout/ja_jp.yml +160 -0
- data/i18n/StratoShout/ko_kr.yml +160 -0
- data/i18n/ja_jp.yml +5 -0
- data/i18n/ko_kr.yml +7 -0
- data/i18n/zh_hant.yml +3 -0
- data/lib/bcdice/arithmetic/node.rb +154 -0
- data/lib/bcdice/base.rb +87 -101
- data/lib/bcdice/common_command.rb +2 -0
- data/lib/bcdice/common_command/add_dice.rb +5 -41
- data/lib/bcdice/common_command/add_dice/node.rb +92 -16
- data/lib/bcdice/common_command/add_dice/parser.rb +374 -274
- data/lib/bcdice/common_command/add_dice/parser.y +153 -0
- data/lib/bcdice/common_command/add_dice/randomizer.rb +25 -33
- data/lib/bcdice/common_command/barabara_dice.rb +6 -47
- data/lib/bcdice/common_command/barabara_dice/node.rb +84 -0
- data/lib/bcdice/common_command/barabara_dice/parser.rb +336 -0
- data/lib/bcdice/common_command/barabara_dice/parser.y +107 -0
- data/lib/bcdice/common_command/calc.rb +7 -30
- data/lib/bcdice/common_command/calc/node.rb +30 -0
- data/lib/bcdice/common_command/calc/parser.rb +271 -0
- data/lib/bcdice/common_command/calc/parser.y +79 -0
- data/lib/bcdice/common_command/choice.rb +137 -19
- data/lib/bcdice/common_command/d66_dice.rb +48 -34
- data/lib/bcdice/common_command/lexer.rb +46 -0
- data/lib/bcdice/common_command/repeat.rb +102 -0
- data/lib/bcdice/common_command/reroll_dice.rb +8 -158
- data/lib/bcdice/common_command/reroll_dice/node.rb +198 -0
- data/lib/bcdice/common_command/reroll_dice/parser.rb +421 -0
- data/lib/bcdice/common_command/reroll_dice/parser.y +158 -0
- data/lib/bcdice/common_command/upper_dice.rb +10 -129
- data/lib/bcdice/common_command/upper_dice/node.rb +181 -0
- data/lib/bcdice/common_command/upper_dice/parser.rb +412 -0
- data/lib/bcdice/common_command/upper_dice/parser.y +143 -0
- data/lib/bcdice/common_command/version.rb +9 -17
- data/lib/bcdice/deprecated/checker.rb +78 -0
- data/lib/bcdice/dice_table/d66_grid_table.rb +8 -0
- data/lib/bcdice/dice_table/d66_table.rb +10 -0
- data/lib/bcdice/dice_table/sai_fic_skill_table.rb +75 -17
- data/lib/bcdice/dice_table/sai_fic_skill_table/category.rb +25 -0
- data/lib/bcdice/dice_table/sai_fic_skill_table/skill.rb +23 -0
- data/lib/bcdice/dice_table/table.rb +8 -0
- data/lib/bcdice/game_system.rb +7 -1
- data/lib/bcdice/game_system/AFF2e.rb +1 -1
- data/lib/bcdice/game_system/AceKillerGene.rb +2 -2
- data/lib/bcdice/game_system/Airgetlamh.rb +3 -3
- 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/Amadeus.rb +46 -507
- data/lib/bcdice/game_system/Amadeus_Korean.rb +12 -456
- data/lib/bcdice/game_system/AnimaAnimus.rb +1 -1
- data/lib/bcdice/game_system/Arianrhod.rb +0 -1
- 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/BeastBindTrinity.rb +1 -2
- data/lib/bcdice/game_system/BeginningIdol.rb +2 -3
- data/lib/bcdice/game_system/BeginningIdol_Korean.rb +2 -3
- data/lib/bcdice/game_system/BladeOfArcana.rb +2 -2
- data/lib/bcdice/game_system/BlindMythos.rb +1 -1
- data/lib/bcdice/game_system/BloodCrusade.rb +0 -1
- data/lib/bcdice/game_system/BloodMoon.rb +0 -1
- data/lib/bcdice/game_system/CardRanker.rb +1 -2
- data/lib/bcdice/game_system/ChaosFlare.rb +1 -1
- data/lib/bcdice/game_system/Chill.rb +1 -1
- data/lib/bcdice/game_system/CodeLayerd.rb +1 -1
- data/lib/bcdice/game_system/ColossalHunter.rb +1 -2
- data/lib/bcdice/game_system/Comes.rb +50 -0
- data/lib/bcdice/game_system/CrashWorld.rb +1 -1
- data/lib/bcdice/game_system/Cthulhu.rb +94 -97
- data/lib/bcdice/game_system/Cthulhu7th.rb +108 -67
- data/lib/bcdice/game_system/Cthulhu7th_ChineseTraditional.rb +1 -1
- data/lib/bcdice/game_system/Cthulhu7th_Korean.rb +1 -1
- data/lib/bcdice/game_system/CthulhuTech.rb +8 -14
- data/lib/bcdice/game_system/Cthulhu_ChineseTraditional.rb +7 -190
- data/lib/bcdice/game_system/Cthulhu_Korean.rb +5 -186
- data/lib/bcdice/game_system/DarkBlaze.rb +9 -5
- data/lib/bcdice/game_system/DarkDaysDrive.rb +17 -15
- data/lib/bcdice/game_system/DarkSouls.rb +1 -1
- data/lib/bcdice/game_system/DeadlineHeroes.rb +2 -2
- data/lib/bcdice/game_system/DemonParasite.rb +1 -2
- data/lib/bcdice/game_system/DetatokoSaga.rb +48 -149
- data/lib/bcdice/game_system/DetatokoSaga_Korean.rb +6 -274
- data/lib/bcdice/game_system/DiceOfTheDead.rb +9 -6
- data/lib/bcdice/game_system/DoubleCross.rb +102 -81
- data/lib/bcdice/game_system/DoubleCross_Korean.rb +13 -330
- data/lib/bcdice/game_system/Dracurouge.rb +376 -1678
- data/lib/bcdice/game_system/Dracurouge_Korean.rb +16 -271
- 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/Elysion.rb +3 -4
- data/lib/bcdice/game_system/EmbryoMachine.rb +1 -1
- data/lib/bcdice/game_system/Emoklore.rb +131 -0
- data/lib/bcdice/game_system/EndBreaker.rb +1 -2
- data/lib/bcdice/game_system/EtrianOdysseySRS.rb +1 -1
- data/lib/bcdice/game_system/Fiasco.rb +87 -70
- data/lib/bcdice/game_system/Fiasco_Korean.rb +7 -95
- data/lib/bcdice/game_system/FilledWith.rb +462 -566
- data/lib/bcdice/game_system/FullMetalPanic.rb +1 -1
- data/lib/bcdice/game_system/FutariSousa.rb +103 -938
- data/lib/bcdice/game_system/FutariSousa_Korean.rb +7 -948
- data/lib/bcdice/game_system/{Gurps.rb → GURPS.rb} +184 -217
- data/lib/bcdice/game_system/Garako.rb +131 -39
- data/lib/bcdice/game_system/GardenOrder.rb +2 -2
- 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/GoldenSkyStories.rb +1 -1
- data/lib/bcdice/game_system/Gorilla.rb +1 -1
- data/lib/bcdice/game_system/GranCrest.rb +2 -3
- data/lib/bcdice/game_system/GundogRevised.rb +1 -1
- data/lib/bcdice/game_system/GundogZero.rb +1 -1
- data/lib/bcdice/game_system/GurpsFW.rb +2 -3
- data/lib/bcdice/game_system/HarnMaster.rb +2 -2
- data/lib/bcdice/game_system/HatsuneMiku.rb +1 -2
- data/lib/bcdice/game_system/HouraiGakuen.rb +1 -1
- data/lib/bcdice/game_system/HuntersMoon.rb +1 -2
- data/lib/bcdice/game_system/Illusio.rb +2 -2
- data/lib/bcdice/game_system/Insane.rb +90 -717
- data/lib/bcdice/game_system/Insane_Korean.rb +7 -719
- data/lib/bcdice/game_system/Kamigakari.rb +47 -242
- data/lib/bcdice/game_system/Kamigakari_Korean.rb +6 -394
- data/lib/bcdice/game_system/KanColle.rb +3 -3
- data/lib/bcdice/game_system/KemonoNoMori.rb +1 -1
- data/lib/bcdice/game_system/KillDeathBusiness.rb +162 -1144
- data/lib/bcdice/game_system/KillDeathBusiness_Korean.rb +6 -1459
- data/lib/bcdice/game_system/KurayamiCrying.rb +1 -1
- data/lib/bcdice/game_system/LiveraDoll.rb +2 -2
- data/lib/bcdice/game_system/LogHorizon.rb +350 -3379
- data/lib/bcdice/game_system/LogHorizon_Korean.rb +55 -1357
- data/lib/bcdice/game_system/LostRecord.rb +0 -1
- data/lib/bcdice/game_system/LostRoyal.rb +1 -2
- data/lib/bcdice/game_system/MagicaLogia.rb +158 -1044
- data/lib/bcdice/game_system/MeikyuDays.rb +1 -2
- data/lib/bcdice/game_system/MeikyuKingdom.rb +4 -4
- data/lib/bcdice/game_system/MeikyuKingdomBasic.rb +4 -5
- data/lib/bcdice/game_system/MetalHead.rb +1 -1
- data/lib/bcdice/game_system/MetalHeadExtream.rb +2 -2
- data/lib/bcdice/game_system/MetallicGuardian.rb +1 -1
- data/lib/bcdice/game_system/MonotoneMuseum.rb +38 -239
- data/lib/bcdice/game_system/MonotoneMuseum_Korean.rb +10 -270
- data/lib/bcdice/game_system/NSSQ.rb +159 -0
- data/lib/bcdice/game_system/Nechronica.rb +34 -73
- data/lib/bcdice/game_system/Nechronica_Korean.rb +11 -128
- data/lib/bcdice/game_system/NeverCloud.rb +1 -1
- 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 +12 -11
- data/lib/bcdice/game_system/NjslyrBattle.rb +1 -1
- data/lib/bcdice/game_system/OneWayHeroics.rb +1 -2
- data/lib/bcdice/game_system/OracleEngine.rb +1 -1
- data/lib/bcdice/game_system/OrgaRain.rb +2 -2
- data/lib/bcdice/game_system/Paradiso.rb +1 -1
- data/lib/bcdice/game_system/Paranoia.rb +1 -1
- 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 +22 -122
- data/lib/bcdice/game_system/Postman.rb +2 -2
- data/lib/bcdice/game_system/PulpCthulhu.rb +3 -3
- 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/RokumonSekai2.rb +1 -1
- data/lib/bcdice/game_system/RuinBreakers.rb +296 -0
- data/lib/bcdice/game_system/Ryutama.rb +1 -1
- data/lib/bcdice/game_system/SRS.rb +1 -2
- data/lib/bcdice/game_system/SamsaraBallad.rb +1 -1
- data/lib/bcdice/game_system/Satasupe.rb +1 -2
- data/lib/bcdice/game_system/ScreamHighSchool.rb +2 -2
- data/lib/bcdice/game_system/SevenFortressMobius.rb +1 -1
- data/lib/bcdice/game_system/ShadowRun5.rb +2 -2
- data/lib/bcdice/game_system/SharedFantasia.rb +1 -1
- data/lib/bcdice/game_system/ShinMegamiTenseiKakuseihen.rb +1 -1
- data/lib/bcdice/game_system/ShinkuuGakuen.rb +2 -2
- data/lib/bcdice/game_system/ShinobiGami.rb +1 -2
- data/lib/bcdice/game_system/ShoujoTenrankai.rb +2 -2
- data/lib/bcdice/game_system/Skynauts.rb +1 -1
- data/lib/bcdice/game_system/SteamPunkers.rb +1 -1
- data/lib/bcdice/game_system/StellarKnights.rb +1 -2
- data/lib/bcdice/game_system/SterileLife.rb +1 -1
- data/lib/bcdice/game_system/StrangerOfSwordCity.rb +1 -2
- data/lib/bcdice/game_system/StratoShout.rb +44 -247
- data/lib/bcdice/game_system/StratoShout_Korean.rb +6 -282
- data/lib/bcdice/game_system/Strave.rb +2 -2
- data/lib/bcdice/game_system/SwordWorld.rb +8 -9
- data/lib/bcdice/game_system/SwordWorld2_0.rb +2 -3
- data/lib/bcdice/game_system/SwordWorld2_5.rb +2 -3
- data/lib/bcdice/game_system/TherapieSein.rb +1 -1
- data/lib/bcdice/game_system/TokumeiTenkousei.rb +1 -1
- data/lib/bcdice/game_system/TokyoGhostResearch.rb +2 -2
- data/lib/bcdice/game_system/Torg.rb +2 -2
- data/lib/bcdice/game_system/Torg1_5.rb +1 -1
- data/lib/bcdice/game_system/TorgEternity.rb +1 -1
- data/lib/bcdice/game_system/TrinitySeven.rb +1 -1
- data/lib/bcdice/game_system/TunnelsAndTrolls.rb +1 -1
- data/lib/bcdice/game_system/TwilightGunsmoke.rb +1 -2
- data/lib/bcdice/game_system/UnsungDuet.rb +139 -0
- 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 -2
- data/lib/bcdice/game_system/Warhammer.rb +1 -1
- data/lib/bcdice/game_system/Warhammer4.rb +329 -0
- 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 +15 -15
- data/lib/bcdice/game_system/YearZeroEngine.rb +1 -1
- data/lib/bcdice/game_system/ZettaiReido.rb +1 -1
- data/lib/bcdice/game_system/filled_with/cook_tables.rb +119 -0
- data/lib/bcdice/game_system/filled_with/lot_tables.rb +155 -0
- data/lib/bcdice/loader.rb +6 -8
- data/lib/bcdice/preprocessor.rb +15 -40
- data/lib/bcdice/repl.rb +1 -1
- data/lib/bcdice/result.rb +83 -0
- data/lib/bcdice/translate.rb +11 -0
- data/lib/bcdice/version.rb +1 -1
- metadata +80 -4
@@ -1,11 +1,10 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require
|
4
|
-
require 'bcdice/dice_table/range_table'
|
3
|
+
require "bcdice/game_system/DoubleCross"
|
5
4
|
|
6
5
|
module BCDice
|
7
6
|
module GameSystem
|
8
|
-
class DoubleCross_Korean <
|
7
|
+
class DoubleCross_Korean < DoubleCross
|
9
8
|
# ゲームシステムの識別子
|
10
9
|
ID = 'DoubleCross:Korean'
|
11
10
|
|
@@ -28,344 +27,28 @@ module BCDice
|
|
28
27
|
・D66다이스 있음
|
29
28
|
INFO_MESSAGE_TEXT
|
30
29
|
|
31
|
-
|
30
|
+
register_prefix_from_super_class()
|
32
31
|
|
33
|
-
|
34
|
-
|
35
|
-
# ノードを初期化する
|
36
|
-
# @param [Integer] num ダイス数
|
37
|
-
# @param [Integer] critical_value クリティカル値
|
38
|
-
# @param [Integer] modifier 修正値
|
39
|
-
# @param [Integer] target_value 目標値
|
40
|
-
def initialize(num, critical_value, modifier, target_value)
|
41
|
-
@num = num
|
42
|
-
@critical_value = critical_value
|
43
|
-
@modifier = modifier
|
44
|
-
@target_value = target_value
|
45
|
-
|
46
|
-
@modifier_str = Format.modifier(@modifier)
|
47
|
-
@expression = node_expression()
|
48
|
-
end
|
49
|
-
|
50
|
-
# 成功判定を行う
|
51
|
-
# @param randomizer [Randomizer]
|
52
|
-
# @return [String] 判定結果
|
53
|
-
def execute(randomizer)
|
54
|
-
if @critical_value < 2
|
55
|
-
return "(#{@expression}) > 크리티컬치가 너무 낮습니다. 2 이상을 지정해주세요."
|
56
|
-
end
|
57
|
-
|
58
|
-
if @num < 1
|
59
|
-
return "(#{@expression}) > 자동실패"
|
60
|
-
end
|
61
|
-
|
62
|
-
# 出目のグループの配列
|
63
|
-
value_groups = []
|
64
|
-
# 次にダイスロールを行う際のダイス数
|
65
|
-
num_of_dice = @num
|
66
|
-
# 回転数
|
67
|
-
loop_count = 0
|
68
|
-
|
69
|
-
while num_of_dice > 0 && loop_count < CommonCommand::RerollDice::REROLL_LIMIT
|
70
|
-
values = randomizer.roll_barabara(num_of_dice, 10)
|
71
|
-
|
72
|
-
value_group = ValueGroup.new(values, @critical_value)
|
73
|
-
value_groups.push(value_group)
|
74
|
-
|
75
|
-
# 次回はクリティカル発生数と等しい個数のダイスを振る
|
76
|
-
# [3rd ルールブック1 p. 185]
|
77
|
-
num_of_dice = value_group.num_of_critical_occurrences
|
78
|
-
|
79
|
-
loop_count += 1
|
80
|
-
end
|
81
|
-
|
82
|
-
return result_str(value_groups)
|
83
|
-
end
|
84
|
-
|
85
|
-
private
|
86
|
-
|
87
|
-
# 数式表記を返す
|
88
|
-
# @return [String]
|
89
|
-
def node_expression
|
90
|
-
lhs = "#{@num}DX#{@critical_value}#{@modifier_str}"
|
91
|
-
|
92
|
-
return @target_value ? "#{lhs}>=#{@target_value}" : lhs
|
93
|
-
end
|
94
|
-
|
95
|
-
# 判定結果の文字列を返す
|
96
|
-
# @param [Array<ValueGroup>] value_groups 出目のグループの配列
|
97
|
-
# @return [String]
|
98
|
-
def result_str(value_groups)
|
99
|
-
fumble = value_groups[0].values.all? { |value| value == 1 }
|
100
|
-
# TODO: Ruby 2.4以降では Array#sum が使える
|
101
|
-
sum = value_groups.map(&:max).reduce(0, &:+)
|
102
|
-
achieved_value = fumble ? 0 : (sum + @modifier)
|
32
|
+
def initialize(command)
|
33
|
+
super(command)
|
103
34
|
|
104
|
-
|
105
|
-
"(#{@expression})",
|
106
|
-
"#{value_groups.join('+')}#{@modifier_str}",
|
107
|
-
achieved_value_with_if_fumble(achieved_value, fumble),
|
108
|
-
compare_result(achieved_value, fumble)
|
109
|
-
]
|
110
|
-
|
111
|
-
return parts.compact.join(' > ')
|
112
|
-
end
|
113
|
-
|
114
|
-
# ファンブルかどうかを含む達成値の表記を返す
|
115
|
-
# @param [Integer] achieved_value 達成値
|
116
|
-
# @param [Boolean] fumble ファンブルしたか
|
117
|
-
# @return [String]
|
118
|
-
def achieved_value_with_if_fumble(achieved_value, fumble)
|
119
|
-
fumble ? "#{achieved_value} (펌블)" : achieved_value.to_s
|
120
|
-
end
|
121
|
-
|
122
|
-
# 達成値と目標値を比較した結果を返す
|
123
|
-
# @param [Integer] achieved_value 達成値
|
124
|
-
# @param [Boolean] fumble ファンブルしたか
|
125
|
-
# @return [String, nil]
|
126
|
-
def compare_result(achieved_value, fumble)
|
127
|
-
return nil unless @target_value
|
128
|
-
|
129
|
-
# ファンブル時は自動失敗
|
130
|
-
# [3rd ルールブック1 pp. 186-187]
|
131
|
-
return '실패' if fumble
|
132
|
-
|
133
|
-
# 達成値が目標値以上ならば行為判定成功
|
134
|
-
# [3rd ルールブック1 p. 187]
|
135
|
-
return achieved_value >= @target_value ? '성공' : '실패'
|
136
|
-
end
|
35
|
+
@locale = :ko_kr
|
137
36
|
end
|
138
37
|
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
attr_reader :values
|
144
|
-
# クリティカル値
|
145
|
-
# @return [Integer]
|
146
|
-
attr_reader :critical_value
|
147
|
-
|
148
|
-
# 出目のグループを初期化する
|
149
|
-
# @param [Array<Integer>] values 出目の配列
|
150
|
-
# @param [Integer] critical_value クリティカル値
|
151
|
-
def initialize(values, critical_value)
|
152
|
-
@values = values.sort
|
153
|
-
@critical_value = critical_value
|
154
|
-
end
|
155
|
-
|
156
|
-
# 出目のグループの文字列表記を返す
|
157
|
-
# @return [String]
|
158
|
-
def to_s
|
159
|
-
"#{max}[#{@values.join(',')}]"
|
160
|
-
end
|
161
|
-
|
162
|
-
# 出目のグループ中の最大値を返す
|
163
|
-
# @return [Integer]
|
164
|
-
#
|
165
|
-
# クリティカル値以上の出目が含まれていた場合は10を返す。
|
166
|
-
# [3rd ルールブック1 pp. 185-186]
|
167
|
-
def max
|
168
|
-
@values.any? { |value| critical?(value) } ? 10 : @values.max
|
169
|
-
end
|
170
|
-
|
171
|
-
# クリティカルの発生数を返す
|
172
|
-
# @return [Integer]
|
173
|
-
def num_of_critical_occurrences
|
174
|
-
@values
|
175
|
-
.select { |value| critical?(value) }
|
176
|
-
.length
|
177
|
-
end
|
178
|
-
|
179
|
-
private
|
180
|
-
|
181
|
-
# クリティカルが発生したかを返す
|
182
|
-
# @param [Integer] value 出目
|
183
|
-
# @return [Boolean]
|
184
|
-
#
|
185
|
-
# クリティカル値以上の値が出た場合、クリティカルとする。
|
186
|
-
# [3rd ルールブック1 pp. 185-186]
|
187
|
-
def critical?(value)
|
188
|
-
value >= @critical_value
|
189
|
-
end
|
190
|
-
end
|
191
|
-
|
192
|
-
def check_nD10(total, _dice_total, dice_list, cmp_op, target)
|
193
|
-
return '' if target == '?'
|
194
|
-
return '' unless cmp_op == :>=
|
195
|
-
|
196
|
-
if dice_list.count(1) == dice_list.size
|
197
|
-
" > 펌블"
|
198
|
-
elsif total >= target
|
199
|
-
" > 성공"
|
200
|
-
else
|
201
|
-
" > 실패"
|
202
|
-
end
|
203
|
-
end
|
204
|
-
|
205
|
-
# ダイスボット固有コマンドの処理を行う
|
206
|
-
# @param [String] command コマンド
|
207
|
-
# @return [String] ダイスボット固有コマンドの結果
|
208
|
-
# @return [nil] 無効なコマンドだった場合
|
209
|
-
def eval_game_system_specific_command(command)
|
210
|
-
if (dx = parse_dx(command))
|
211
|
-
return dx.execute(@randomizer)
|
212
|
-
end
|
213
|
-
|
214
|
-
if command == 'ET'
|
215
|
-
return roll_emotion_table()
|
216
|
-
end
|
217
|
-
|
218
|
-
return nil
|
219
|
-
end
|
220
|
-
|
221
|
-
private
|
222
|
-
|
223
|
-
# OD Tool式の成功判定コマンドの正規表現
|
224
|
-
#
|
225
|
-
# キャプチャ内容は以下のとおり:
|
226
|
-
#
|
227
|
-
# 1. ダイス数
|
228
|
-
# 2. 修正値
|
229
|
-
# 3. クリティカル値
|
230
|
-
# 4. 達成値
|
231
|
-
DX_OD_TOOL_RE = /\A(\d+)DX([-+]\d+(?:[-+*]\d+)*)?@(\d+)(?:>=(\d+))?\z/io.freeze
|
232
|
-
|
233
|
-
# 疾風怒濤式の成功判定コマンドの正規表現
|
234
|
-
#
|
235
|
-
# キャプチャ内容は以下のとおり:
|
236
|
-
#
|
237
|
-
# 1. ダイス数
|
238
|
-
# 2. クリティカル値
|
239
|
-
# 3. 修正値
|
240
|
-
# 4. 達成値
|
241
|
-
DX_SHIPPU_DOTO_RE = /\A(\d+)DX(\d+)?([-+]\d+(?:[-+*]\d+)*)?(?:>=(\d+))?\z/io.freeze
|
38
|
+
class DX < DoubleCross::DX
|
39
|
+
# @param (see DoubleCross::DX#initialize)
|
40
|
+
def initialize(num, critical_value, modifier, target_value)
|
41
|
+
super(num, critical_value, modifier, target_value)
|
242
42
|
|
243
|
-
|
244
|
-
# @param [String] command コマンド文字列
|
245
|
-
# @return [DX, nil]
|
246
|
-
def parse_dx(command)
|
247
|
-
case command
|
248
|
-
when DX_OD_TOOL_RE
|
249
|
-
return parse_dx_od(Regexp.last_match)
|
250
|
-
when DX_SHIPPU_DOTO_RE
|
251
|
-
return parse_dx_shippu_doto(Regexp.last_match)
|
43
|
+
@locale = :ko_kr
|
252
44
|
end
|
253
|
-
|
254
|
-
return nil
|
255
|
-
end
|
256
|
-
|
257
|
-
# OD Tool式の成功判定コマンドの正規表現マッチ情報からノードを作る
|
258
|
-
# @param [MatchData] m 正規表現のマッチ情報
|
259
|
-
# @return [DX]
|
260
|
-
def parse_dx_od(m)
|
261
|
-
num = m[1].to_i
|
262
|
-
modifier = m[2] ? ArithmeticEvaluator.eval(m[2]) : 0
|
263
|
-
critical_value = m[3] ? m[3].to_i : 10
|
264
|
-
|
265
|
-
target_value = m[4]&.to_i
|
266
|
-
|
267
|
-
return DX.new(num, critical_value, modifier, target_value)
|
268
|
-
end
|
269
|
-
|
270
|
-
# 疾風怒濤式の成功判定コマンドの正規表現マッチ情報からノードを作る
|
271
|
-
# @param [MatchData] m 正規表現のマッチ情報
|
272
|
-
# @return [DX]
|
273
|
-
def parse_dx_shippu_doto(m)
|
274
|
-
num = m[1].to_i
|
275
|
-
critical_value = m[2] ? m[2].to_i : 10
|
276
|
-
modifier = m[3] ? ArithmeticEvaluator.eval(m[3]) : 0
|
277
|
-
|
278
|
-
target_value = m[4]&.to_i
|
279
|
-
|
280
|
-
return DX.new(num, critical_value, modifier, target_value)
|
281
|
-
end
|
282
|
-
|
283
|
-
# 感情表を振る
|
284
|
-
#
|
285
|
-
# ポジティブとネガティブの両方を振って、表になっている側に○を付ける。
|
286
|
-
#
|
287
|
-
# @return [String]
|
288
|
-
def roll_emotion_table
|
289
|
-
pos_result = POSITIVE_EMOTION_TABLE.roll(@randomizer)
|
290
|
-
neg_result = NEGATIVE_EMOTION_TABLE.roll(@randomizer)
|
291
|
-
|
292
|
-
positive = @randomizer.roll_once(2) == 1
|
293
|
-
pos_neg_text =
|
294
|
-
if positive
|
295
|
-
["○#{pos_result.content}", neg_result.content]
|
296
|
-
else
|
297
|
-
[pos_result.content, "○#{neg_result.content}"]
|
298
|
-
end
|
299
|
-
|
300
|
-
output_parts = [
|
301
|
-
"감정표(#{pos_result.sum}-#{neg_result.sum})",
|
302
|
-
pos_neg_text.join(' - ')
|
303
|
-
]
|
304
|
-
|
305
|
-
return output_parts.join(' > ')
|
306
45
|
end
|
307
46
|
|
308
47
|
# 感情表(ポジティブ)
|
309
|
-
POSITIVE_EMOTION_TABLE =
|
310
|
-
'감정표(포지티브)',
|
311
|
-
'1D100',
|
312
|
-
[
|
313
|
-
# [0, '傾倒(けいとう)'],
|
314
|
-
[1..5, '호기심'],
|
315
|
-
[6..10, '동경'],
|
316
|
-
[11..15, '존경'],
|
317
|
-
[16..20, '연대감'],
|
318
|
-
[21..25, '자애'],
|
319
|
-
[26..30, '감복'],
|
320
|
-
[31..35, '순애'],
|
321
|
-
[36..40, '우정'],
|
322
|
-
[41..45, '모정(慕情)'],
|
323
|
-
[46..50, '동정'],
|
324
|
-
[51..55, '유지(遺志)'],
|
325
|
-
[56..60, '비호'],
|
326
|
-
[61..65, '행복감'],
|
327
|
-
[66..70, '신뢰'],
|
328
|
-
[71..75, '집착'],
|
329
|
-
[76..80, '친근감'],
|
330
|
-
[81..85, '성의'],
|
331
|
-
[86..90, '호의'],
|
332
|
-
[91..95, '유위(有為)'],
|
333
|
-
[96..100, '진력'],
|
334
|
-
# [101, '懐旧(かいきゅう)'],
|
335
|
-
# [102, '任意(にんい)'],
|
336
|
-
]
|
337
|
-
).freeze
|
48
|
+
POSITIVE_EMOTION_TABLE = positive_emotion_table(:ko_kr).freeze
|
338
49
|
|
339
50
|
# 感情表(ネガティブ)
|
340
|
-
NEGATIVE_EMOTION_TABLE =
|
341
|
-
'감정표(네거티브)',
|
342
|
-
'1D100',
|
343
|
-
[
|
344
|
-
# [0, '侮蔑(ぶべつ)'],
|
345
|
-
[1..5, '식상'],
|
346
|
-
[6..10, '위협'],
|
347
|
-
[11..15, '질투'],
|
348
|
-
[16..20, '회개'],
|
349
|
-
[21..25, '공포'],
|
350
|
-
[26..30, '불안'],
|
351
|
-
[31..35, '열등감'],
|
352
|
-
[36..40, '소외감'],
|
353
|
-
[41..45, '치욕'],
|
354
|
-
[46..50, '연민'],
|
355
|
-
[51..55, '편애'],
|
356
|
-
[56..60, '증오'],
|
357
|
-
[61..65, '격의'],
|
358
|
-
[66..70, '혐오'],
|
359
|
-
[71..75, '시의심'],
|
360
|
-
[76..80, '싫음'],
|
361
|
-
[81..85, '불신감'],
|
362
|
-
[86..90, '불쾌감'],
|
363
|
-
[91..95, '분만(憤懣)'],
|
364
|
-
[96..100, '적개심'],
|
365
|
-
# [101, '無関心(むかんしん)'],
|
366
|
-
# [102, '任意(にんい)'],
|
367
|
-
]
|
368
|
-
).freeze
|
51
|
+
NEGATIVE_EMOTION_TABLE = negative_emotion_table(:ko_kr).freeze
|
369
52
|
end
|
370
53
|
end
|
371
54
|
end
|
@@ -44,91 +44,79 @@ module BCDice
|
|
44
44
|
|
45
45
|
def initialize(command)
|
46
46
|
super(command)
|
47
|
-
@enabled_d66 = true
|
48
47
|
@d66_sort_type = D66SortType::NO_SORT
|
49
48
|
end
|
50
49
|
|
51
50
|
def eval_game_system_specific_command(command)
|
52
|
-
|
53
|
-
|
51
|
+
roll_conduct_dice(command) ||
|
52
|
+
roll_resist_dice(command) ||
|
54
53
|
getReactionDiceCommandResult(command) ||
|
55
54
|
getHeresyReactionDiceCommandResult(command) ||
|
56
55
|
getCorruptionDiceCommandResult(command) ||
|
57
|
-
|
58
|
-
getSourceSceneDiceCommandResult(command) ||
|
59
|
-
getPassionDiceCommandResult(command) ||
|
60
|
-
getConfermentDiceCommandResult(command) ||
|
61
|
-
getConfermentAfterDiceCommandResult(command) ||
|
62
|
-
getElderPastDiceCommandResult(command) ||
|
63
|
-
getOriginalSinDiceCommandResult(command) ||
|
64
|
-
getRecentStateDiceCommandResult(command) ||
|
65
|
-
getPeacefulPastDiceCommandResult(command)
|
56
|
+
roll_tables(command, self.class::TABLES)
|
66
57
|
end
|
67
58
|
|
68
|
-
|
69
|
-
return nil unless command =~ /^DR(\d*)(\+(\d+))?$/
|
59
|
+
private
|
70
60
|
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
61
|
+
# 行い判定 (DRx+y)
|
62
|
+
def roll_conduct_dice(command)
|
63
|
+
m = /^DR(\d*[1-9])?(\+\d+)?$/.match(command)
|
64
|
+
unless m
|
65
|
+
return nil
|
66
|
+
end
|
76
67
|
|
77
|
-
|
78
|
-
|
68
|
+
dice_count = m[1]&.to_i || 4
|
69
|
+
thirsty_point = m[2].to_i
|
79
70
|
|
80
|
-
|
81
|
-
thirstyPointMarker = (thirstyPoint == 0 ? "" : "+#{thirstyPoint}")
|
71
|
+
dice_list = @randomizer.roll_barabara(dice_count, 6).sort
|
82
72
|
|
83
|
-
|
84
|
-
|
85
|
-
result += "[ #{diceList.join(', ')} ]"
|
86
|
-
return result
|
87
|
-
end
|
73
|
+
glory_dice = count_glory_dice(dice_list)
|
74
|
+
dice_list += Array.new(glory_dice, 10)
|
88
75
|
|
89
|
-
|
90
|
-
oneCount = countTargetDice(diceList, 1)
|
91
|
-
sixCount = countTargetDice(diceList, 6)
|
76
|
+
calculation_process = apply_thirsty_point(dice_list, thirsty_point)
|
92
77
|
|
93
|
-
|
94
|
-
|
95
|
-
|
78
|
+
sequence = [
|
79
|
+
"(#{command})",
|
80
|
+
"#{dice_count}D6#{Format.modifier(thirsty_point)}",
|
81
|
+
calculation_process,
|
82
|
+
"[ #{dice_list.join(', ')} ]",
|
83
|
+
].compact
|
96
84
|
|
97
|
-
|
98
|
-
diceList.select { |i| i == target }.count
|
85
|
+
return sequence.join(" > ")
|
99
86
|
end
|
100
87
|
|
101
|
-
def
|
102
|
-
|
88
|
+
def count_glory_dice(dice_list)
|
89
|
+
one_count = dice_list.count(1)
|
90
|
+
six_count = dice_list.count(6)
|
103
91
|
|
104
|
-
|
105
|
-
|
92
|
+
return (one_count / 2) + (six_count / 2)
|
93
|
+
end
|
106
94
|
|
107
|
-
|
95
|
+
def apply_thirsty_point(dice_list, thirsty_point)
|
96
|
+
return nil if thirsty_point == 0
|
108
97
|
|
109
|
-
|
110
|
-
if targetIndex == index
|
111
|
-
textList << "#{item}+#{thirstyPoint}"
|
112
|
-
else
|
113
|
-
textList << item.to_s
|
114
|
-
end
|
115
|
-
end
|
98
|
+
idx = dice_list.rindex { |i| i <= 6 }
|
116
99
|
|
117
|
-
|
100
|
+
text_list = dice_list.map(&:to_s)
|
101
|
+
text_list[idx] += "+#{thirsty_point}"
|
102
|
+
dice_list[idx] += thirsty_point
|
118
103
|
|
119
|
-
return
|
104
|
+
return "[ #{text_list.join(', ')} ]"
|
120
105
|
end
|
121
106
|
|
122
|
-
|
123
|
-
|
107
|
+
# 抗い判定 (DRRx)
|
108
|
+
def roll_resist_dice(command)
|
109
|
+
m = /^DRR(\d+)$/.match(command)
|
110
|
+
unless m
|
111
|
+
return nil
|
112
|
+
end
|
124
113
|
|
125
|
-
|
126
|
-
|
114
|
+
dice_count = m[1].to_i
|
115
|
+
dice_count = 4 if dice_count == 0
|
127
116
|
|
128
|
-
|
117
|
+
dice_list = @randomizer.roll_barabara(dice_count, 6).sort
|
129
118
|
|
130
|
-
|
131
|
-
return result
|
119
|
+
return "(#{command}) > #{dice_count}D6 > [ #{dice_list.join(', ')} ]"
|
132
120
|
end
|
133
121
|
|
134
122
|
def getReactionDiceCommandResult(command)
|
@@ -137,9 +125,11 @@ module BCDice
|
|
137
125
|
typeText1 = Regexp.last_match(2)
|
138
126
|
typeText2 = Regexp.last_match(3)
|
139
127
|
|
140
|
-
name = "
|
128
|
+
name = translate("Dracurouge.RT.name")
|
129
|
+
blood = translate("Dracurouge.RT.blood")
|
130
|
+
style = translate("Dracurouge.RT.style")
|
141
131
|
|
142
|
-
return getReactionText(name, typeText1, typeText2,
|
132
|
+
return getReactionText(name, typeText1, typeText2, blood, style)
|
143
133
|
end
|
144
134
|
|
145
135
|
def getHeresyReactionDiceCommandResult(command)
|
@@ -148,9 +138,11 @@ module BCDice
|
|
148
138
|
typeText1 = Regexp.last_match(2)
|
149
139
|
typeText2 = Regexp.last_match(3)
|
150
140
|
|
151
|
-
name = "
|
141
|
+
name = translate("Dracurouge.HRT.name")
|
142
|
+
blood = translate("Dracurouge.HRT.blood")
|
143
|
+
style = translate("Dracurouge.HRT.style")
|
152
144
|
|
153
|
-
return getReactionText(name, typeText1, typeText2,
|
145
|
+
return getReactionText(name, typeText1, typeText2, blood, style)
|
154
146
|
end
|
155
147
|
|
156
148
|
def getReactionText(name, typeText1, typeText2, infos1, infos2)
|
@@ -169,11 +161,10 @@ module BCDice
|
|
169
161
|
index = (one_value - 1) + (isBefore ? (ten_value - 1) : (ten_value - 4)) * 6
|
170
162
|
debug("index", index)
|
171
163
|
|
172
|
-
resultText = ''
|
173
164
|
if typeText.nil?
|
174
165
|
resultText = getReactionTextFull(infos, index)
|
175
166
|
else
|
176
|
-
info = infos.
|
167
|
+
info = infos[typeText.to_sym]
|
177
168
|
return nil if info.nil?
|
178
169
|
|
179
170
|
resultText = getReactionTex(info, index)
|
@@ -185,14 +176,13 @@ module BCDice
|
|
185
176
|
def checkTypeText(typeText, infos)
|
186
177
|
return true if typeText.nil?
|
187
178
|
|
188
|
-
|
189
|
-
return keys.include?(typeText)
|
179
|
+
return infos.keys.include?(typeText.to_sym)
|
190
180
|
end
|
191
181
|
|
192
182
|
def getReactionTextFull(infos, index)
|
193
183
|
resultTexts = []
|
194
184
|
|
195
|
-
infos.
|
185
|
+
infos.each_value do |info|
|
196
186
|
resultTexts << getReactionTex(info, index)
|
197
187
|
end
|
198
188
|
|
@@ -206,1069 +196,22 @@ module BCDice
|
|
206
196
|
return "#{typeName}:#{text}"
|
207
197
|
end
|
208
198
|
|
209
|
-
def getReactionInfoBlood
|
210
|
-
infos =
|
211
|
-
[
|
212
|
-
{type: "D",
|
213
|
-
name: "ドラク",
|
214
|
-
table: [
|
215
|
-
'空に輝く紅い月を仰ぐ',
|
216
|
-
'小さくため息をつく',
|
217
|
-
'相手を見下すように見る',
|
218
|
-
'じっと目を合わせ語りかける',
|
219
|
-
'かすかに微笑んで見せる',
|
220
|
-
'懐から蝙蝠が飛び立つ',
|
221
|
-
'頭上を蝙蝠が渦巻くように飛ぶ',
|
222
|
-
'眉を寄せると共に、目が紅く光る',
|
223
|
-
'手の中のワインを一口すする',
|
224
|
-
'全身から薄紅色のオーラを発する',
|
225
|
-
'不敵な笑みを浮かべる',
|
226
|
-
'風もなく髪が舞う',
|
227
|
-
'飽きた目で相手を見据える',
|
228
|
-
'足元に小さなつむじ風が起こる',
|
229
|
-
'激情や緊張感に髪が逆立つ',
|
230
|
-
'紅い月の光を浴び、目を閉じる',
|
231
|
-
'武器を掲げ、誓いの音頭を取る',
|
232
|
-
'己の紋章をじっと見つめる'
|
233
|
-
]},
|
234
|
-
{type: "R",
|
235
|
-
name: "ローゼンブルク",
|
236
|
-
table: [
|
237
|
-
'鼻で笑う',
|
238
|
-
'前髪をかき上げる',
|
239
|
-
'己の髪をいじる',
|
240
|
-
'一人小さく笑う',
|
241
|
-
'ハミングで歌を口ずさむ',
|
242
|
-
'片足を軸に、くるりと回る',
|
243
|
-
'花弁を具現化し散らす',
|
244
|
-
'衣装や鎧の色や装飾を変える',
|
245
|
-
'己に酔い、目を閉じる',
|
246
|
-
'具現化した華を手の中で弄ぶ',
|
247
|
-
'気になる相手を口説こうとする',
|
248
|
-
'肩をすくめる',
|
249
|
-
'己の武器に口づけをする',
|
250
|
-
'誘うように誰かの手を取る',
|
251
|
-
'楽器を具現化し音を奏でる',
|
252
|
-
'相手にウィンクする',
|
253
|
-
'衣装についた埃を払う',
|
254
|
-
'マントから無数の蝶が飛び立つ'
|
255
|
-
]},
|
256
|
-
{type: "H",
|
257
|
-
name: "ヘルズガルド",
|
258
|
-
table: [
|
259
|
-
'自粛を呼びかける咳払いをする',
|
260
|
-
'眉をひそめる',
|
261
|
-
'小言を言う',
|
262
|
-
'無表情で相手を観察する',
|
263
|
-
'足元に小さな地獄門が生じる',
|
264
|
-
'周囲にわずかな怨嗟の声が響く',
|
265
|
-
'咎めるような目を向ける',
|
266
|
-
'直立不動の姿勢で立つ',
|
267
|
-
'呆れた様子でため息をつく',
|
268
|
-
'突然、振り返って睨む',
|
269
|
-
'周囲の空気が凍りつく',
|
270
|
-
'胸に手を当て、己を落ち着かせる',
|
271
|
-
'手の中に具現化した鎖を弄ぶ',
|
272
|
-
'周囲を厳しい目で見渡す',
|
273
|
-
'仲間に疑いの視線を向ける',
|
274
|
-
'感情に合わせ周囲に鎖が具現化',
|
275
|
-
'堕落について忠告する',
|
276
|
-
'冷たい視線で相手を一瞥する'
|
277
|
-
]},
|
278
|
-
{type: "M",
|
279
|
-
name: "ダストハイム",
|
280
|
-
table: [
|
281
|
-
'眉を寄せて考え込む',
|
282
|
-
'周りを値踏みする目で見る',
|
283
|
-
'手元に本を具現化し書き込む',
|
284
|
-
'つまらなそうに眺める',
|
285
|
-
'落ち着いた歩調で近づく',
|
286
|
-
'目を閉じ、過去に想いを馳せる',
|
287
|
-
'歩む跡、かすかな霧が舞う',
|
288
|
-
'苦笑を浮かべて歩み寄る',
|
289
|
-
'現状を分析する独り言を言う',
|
290
|
-
'興味深そうに質問する',
|
291
|
-
'目の前の様式に文句を言う',
|
292
|
-
'無感動に会釈をする',
|
293
|
-
'手の中に具現化したペンを弄ぶ',
|
294
|
-
'目を見開き、感心する',
|
295
|
-
'本、袖、マントなどで口元を隠す',
|
296
|
-
'宙に浮かび、すべるように進む',
|
297
|
-
'無感情に状況を検分する',
|
298
|
-
'一瞬、姿が霧に包まれぼやける'
|
299
|
-
]},
|
300
|
-
{type: "A",
|
301
|
-
name: "アヴァローム",
|
302
|
-
table: [
|
303
|
-
'欠伸を噛み殺す',
|
304
|
-
'頭をかく',
|
305
|
-
'手元に生じた果実を食べる',
|
306
|
-
'人懐っこい笑みを浮かべる',
|
307
|
-
'夜鳥が肩にとまって来る',
|
308
|
-
'黒猫が足元にじゃれて来る',
|
309
|
-
'周囲を妖精の光が舞う',
|
310
|
-
'瞬時に相手の側に現れる',
|
311
|
-
'瞬時に相手から離れる',
|
312
|
-
'虫や植物に気を取られる',
|
313
|
-
'無垢な笑みを見せる',
|
314
|
-
'うっかり誰かを巻き込んでころぶ',
|
315
|
-
'誰かに甘えるようにもたれかかる',
|
316
|
-
'笑みを浮かべながら頷く',
|
317
|
-
'小さく首をかしげる',
|
318
|
-
'無数の黒い鳥の羽根が宙を舞う',
|
319
|
-
'果実を取り出して食べる',
|
320
|
-
'思わせぶりな言葉や仕草をする'
|
321
|
-
]},
|
322
|
-
{type: "N",
|
323
|
-
name: "ノスフェラス",
|
324
|
-
table: [
|
325
|
-
'冥王領の方角を睨む',
|
326
|
-
'舌打ちをする',
|
327
|
-
'俯いて床や地面を睨む',
|
328
|
-
'無意識に涙が伝う',
|
329
|
-
'唇を噛む',
|
330
|
-
'胸を押さえじっと考える',
|
331
|
-
'首を打ち振って邪念を払う',
|
332
|
-
'内心の怒りに険しい貌となる',
|
333
|
-
'毅然とした態度で立ち向かう',
|
334
|
-
'渇いた笑い声を漏らす',
|
335
|
-
'己の血族を貶める言葉を紡ぐ',
|
336
|
-
'静かな怒りと共に目が青白く光る',
|
337
|
-
'野の花に触れ、それを枯らす',
|
338
|
-
'疲れた様子で淡く光る吐息を吐く',
|
339
|
-
'己の紋章をぼんやりと見つめる',
|
340
|
-
'自嘲的に小さく笑う',
|
341
|
-
'疲れた目でぼんやりと他を見る',
|
342
|
-
'何か決心したように顔を上げる'
|
343
|
-
]},
|
344
|
-
{type: "G",
|
345
|
-
name: "ゲイズヴァルト",
|
346
|
-
table: [
|
347
|
-
'相手を見下すように見る',
|
348
|
-
'激情に合わせ頭髪が',
|
349
|
-
'高らかに自らの血統を名乗る',
|
350
|
-
'武器を具現化し、掲げる',
|
351
|
-
'他者を睨みつける',
|
352
|
-
'相対する者が、圧迫感を感じる',
|
353
|
-
'じっと目を閉じる',
|
354
|
-
'他に威圧的な態度をとる',
|
355
|
-
'不敵な笑みを浮かべる',
|
356
|
-
'片目に手を当て、眉を寄せる',
|
357
|
-
'目が一瞬だけ異様に光る',
|
358
|
-
'鋭い視線を周囲に巡らせる',
|
359
|
-
'髪が淡く光る',
|
360
|
-
'背後の者が、貴卿の視線を感じる',
|
361
|
-
'眼球の白目が異様な色に光る',
|
362
|
-
'目隠しを具現化して目を隠す',
|
363
|
-
'余裕のある笑みを浮かべる',
|
364
|
-
'目から光が炎のように噴き上がる'
|
365
|
-
]},
|
366
|
-
|
367
|
-
{type: "K",
|
368
|
-
name: "カインシルト",
|
369
|
-
table: [
|
370
|
-
'両手で顔を覆う',
|
371
|
-
'逆立つ小さく肩を落とす',
|
372
|
-
'過去を思い出し、眉をひそめる',
|
373
|
-
'疲れ切ったように座り込む',
|
374
|
-
'己の紋章に触れ、ためいきをつく',
|
375
|
-
'ワインの水面をじっと見つめる',
|
376
|
-
'疲れ、渇いた笑みを浮かべる',
|
377
|
-
'居心地悪そうに下を向く',
|
378
|
-
'故郷の方角をちらりと見る',
|
379
|
-
'衣装の襟や裾をいじる',
|
380
|
-
'他の騎士から少し距離をとり、離れる',
|
381
|
-
'他の騎士を、自虐的に褒める',
|
382
|
-
'胸に手を当て、沈思黙考する',
|
383
|
-
'己のかつての血統の名を呟く',
|
384
|
-
'沈痛な面持ちで空を見上げる',
|
385
|
-
'誇りを持って、己の紋章を掲げる',
|
386
|
-
'己の罪や信仰を吐露する',
|
387
|
-
'血統を捨てた理由について語る'
|
388
|
-
]},
|
389
|
-
|
390
|
-
]
|
391
|
-
|
392
|
-
return infos
|
393
|
-
end
|
394
|
-
|
395
|
-
def getReactionInfoStyle
|
396
|
-
infos =
|
397
|
-
[
|
398
|
-
{type: "F",
|
399
|
-
name: "領主",
|
400
|
-
table: [
|
401
|
-
'相手の目を覗き心を探る',
|
402
|
-
'己の領地に想いを馳せる',
|
403
|
-
'従者を侍らせる',
|
404
|
-
'従者の世話を受ける',
|
405
|
-
'好ましい相手を手招きする',
|
406
|
-
'憂いに満ちた物思いにふける',
|
407
|
-
'重々しく頷く',
|
408
|
-
'優しげな微笑を浮かべる',
|
409
|
-
'ちらりと己の紋章を示す',
|
410
|
-
'ワインの杯を他の騎士に渡す',
|
411
|
-
'じっと風景を眺める',
|
412
|
-
'手の中にチェスの駒を具現化する',
|
413
|
-
'胸を張り、自信を持って発言する',
|
414
|
-
'速やかに謝罪する',
|
415
|
-
'他の騎士を正面から褒める',
|
416
|
-
'他の騎士の髪や頬を撫でる',
|
417
|
-
'重々しく名乗りを上げる',
|
418
|
-
'口元を隠しつつ上品に笑う'
|
419
|
-
]},
|
420
|
-
{type: "G",
|
421
|
-
name: "近衛",
|
422
|
-
table: [
|
423
|
-
'主の傍にそっと寄り添う',
|
424
|
-
'紋章の刻まれた盾を掲げる',
|
425
|
-
'武器を構えて上品に一礼する',
|
426
|
-
'己の盾の紋章を指でなぞる',
|
427
|
-
'他の騎士に寄り添う',
|
428
|
-
'主の背後から相手を睨む',
|
429
|
-
'主の前、または傍らにひざまずく',
|
430
|
-
'きまり悪そうに顔を赤く染める',
|
431
|
-
'誰かの前に立ちはだかる',
|
432
|
-
'落ち着かなげに歩き回る',
|
433
|
-
'はにかんだ笑みを浮かべる',
|
434
|
-
'緊張した視線を周囲に巡らす',
|
435
|
-
'心の中で他の騎士と試合をする',
|
436
|
-
'じっと動かず控えている',
|
437
|
-
'主をじっと見つめる',
|
438
|
-
'主を褒めたたえる',
|
439
|
-
'主の袖を握りしめる',
|
440
|
-
'主に対する、周囲の態度を咎める'
|
441
|
-
]},
|
442
|
-
{type: "R",
|
443
|
-
name: "遍歴",
|
444
|
-
table: [
|
445
|
-
'かつての戦いについて語る',
|
446
|
-
'風に髪をなびかせる',
|
447
|
-
'具現化した乗騎を撫でる',
|
448
|
-
'仲間の肩を叩く、あるいは抱く',
|
449
|
-
'爽やかに笑う',
|
450
|
-
'高らかに名乗りをあげる',
|
451
|
-
'周囲に積極的に話しかける',
|
452
|
-
'己の名に誓い、約束をする',
|
453
|
-
'大げさに誰かを褒めたたえる',
|
454
|
-
'他の騎士に手合わせを乞う',
|
455
|
-
'マントを大げさにひるがえす',
|
456
|
-
'相手を褒めそやし口づけを求める',
|
457
|
-
'己の故郷を思い出す',
|
458
|
-
'己の紋章について語る',
|
459
|
-
'他の騎士と世間話をする',
|
460
|
-
'困ったように小さく唸る',
|
461
|
-
'格上の前に跪いて礼を尽くす',
|
462
|
-
'格下や人間に微笑みかける'
|
463
|
-
]},
|
464
|
-
{type: "W",
|
465
|
-
name: "賢者",
|
466
|
-
table: [
|
467
|
-
'相手を推し測るように見つめる',
|
468
|
-
'メガネを具現化してかける',
|
469
|
-
'わずかな点に目を留める',
|
470
|
-
'大げさにため息をついて見せる',
|
471
|
-
'目を閉じて思索にふける',
|
472
|
-
'他の騎士に助言する',
|
473
|
-
'ごまかすように咳払いする',
|
474
|
-
'わずかな会釈をする',
|
475
|
-
'他の騎士に目で合図をする',
|
476
|
-
'謎めいた笑みを浮かべる',
|
477
|
-
'空に浮かぶ星々を眺める',
|
478
|
-
'深い知識で詳しい説明をする',
|
479
|
-
'未来について占ってみる',
|
480
|
-
'ささやかな予言をする',
|
481
|
-
'噂の類を他の騎士に囁く',
|
482
|
-
'ふとした品を興味深く観察する',
|
483
|
-
'月を見上げドラクルを褒め讃える',
|
484
|
-
'他の騎士の感情をいさめる'
|
485
|
-
]},
|
486
|
-
{type: "J",
|
487
|
-
name: "狩人",
|
488
|
-
table: [
|
489
|
-
'“敵”を思い出し険しい目になる',
|
490
|
-
'唾を吐く',
|
491
|
-
'具現化した武器を撫でる',
|
492
|
-
'陰鬱な目で虚空を睨む',
|
493
|
-
'裾から現れた蛇か蜘蛛を撫でる',
|
494
|
-
'思いつめた目で夜空を見る',
|
495
|
-
'己の武器を舐めて見せる',
|
496
|
-
'暗い笑みを浮かべる',
|
497
|
-
'物陰に隠れる',
|
498
|
-
'他の騎士の紋章を観察する',
|
499
|
-
'空気を読まない発言をする',
|
500
|
-
'突然振り向いて背後に警戒する',
|
501
|
-
'過去の無念に血涙を流す',
|
502
|
-
'鮫のように笑う',
|
503
|
-
'その場にいない騎士を嘲笑う',
|
504
|
-
'他の騎士とのへだたりを感じる',
|
505
|
-
'ぼそりと名乗りをあげる',
|
506
|
-
'格下を見下した目で見る'
|
507
|
-
]},
|
508
|
-
{type: "N",
|
509
|
-
name: "夜獣",
|
510
|
-
table: [
|
511
|
-
'獣のような荒い呼吸をする',
|
512
|
-
'潤んだ上目遣いで相手を見る',
|
513
|
-
'俯いて深呼吸する',
|
514
|
-
'壁や床に爪を立てて引っかく',
|
515
|
-
'己に言い聞かせる独り言を言う',
|
516
|
-
'堕落の兆しをじっと見る',
|
517
|
-
'他の騎士から目をそらす',
|
518
|
-
'他の騎士の機嫌を窺う',
|
519
|
-
'相手を睨み唸る',
|
520
|
-
'己の指先をちろりと舐め上げる',
|
521
|
-
'他の騎士から距離を取り離れる',
|
522
|
-
'獰猛な笑みを浮かべる',
|
523
|
-
'己の肌を、爪などで傷つける',
|
524
|
-
'こっそり舌なめずりをする',
|
525
|
-
'妖しい流し目を送る',
|
526
|
-
'哀しげな目で己の紋章を見る',
|
527
|
-
'獲物を狙う目で、他の騎士を見る',
|
528
|
-
'自虐的な言葉をつぶやく'
|
529
|
-
]},
|
530
|
-
{type: "E",
|
531
|
-
name: "将軍",
|
532
|
-
table: [
|
533
|
-
'机や壁を叩きつつ、激昂する',
|
534
|
-
'失敗した部下をたしなめる',
|
535
|
-
'凶悪な笑みを浮かべる',
|
536
|
-
'音を立てて踵をそろえ、直立する',
|
537
|
-
'不機嫌そうに酒杯をあおる',
|
538
|
-
'壁や卓上に周辺地図を具現化する',
|
539
|
-
'口をつぐみ、厳めしい顔をする',
|
540
|
-
'部下から情報を耳打ちされる',
|
541
|
-
'他の騎士を品定めするように見る',
|
542
|
-
'内密の話のため、移動する',
|
543
|
-
'他の騎士に助言する',
|
544
|
-
'他者をいさめる',
|
545
|
-
'目を閉じ、戦場に想いを馳せる',
|
546
|
-
'部下や民に酒食をふるまう',
|
547
|
-
'かつての戦場について語る',
|
548
|
-
'戦術について他の騎士と語る',
|
549
|
-
'他者を激励する',
|
550
|
-
'部下や民からの報告を聞く'
|
551
|
-
]},
|
552
|
-
{type: "B",
|
553
|
-
name: "僧正",
|
554
|
-
table: [
|
555
|
-
'深々とため息をつく',
|
556
|
-
'紅い月を眺め、涙を溢れさせる',
|
557
|
-
'他者を咎め説教する',
|
558
|
-
'その場に跪き、月へ祈る',
|
559
|
-
'他の騎士を心配する',
|
560
|
-
'教典の一文を読み上げる',
|
561
|
-
'他の騎士や民を諌める',
|
562
|
-
'教典を具現化し、他者に手渡す',
|
563
|
-
'真祖へ感謝の言葉を述べる',
|
564
|
-
'壇上などに真祖の印を具現化する',
|
565
|
-
'騎士や民を微笑み眺める',
|
566
|
-
'他者の言葉に大いに感動する',
|
567
|
-
'他の騎士の行いを戒める',
|
568
|
-
'相手を慈しむ微笑みを浮かべる',
|
569
|
-
'他者を大いに褒める',
|
570
|
-
'他者をいたわるように撫でる',
|
571
|
-
'真祖の印を強く握りしめる',
|
572
|
-
'天の紅き月へ感謝を捧げる'
|
573
|
-
]},
|
574
|
-
{type: "H",
|
575
|
-
name: "空駆",
|
576
|
-
table: [
|
577
|
-
'乗騎が他を退け、過剰に守ろうとする',
|
578
|
-
'粗相した乗騎を、軽く叱る',
|
579
|
-
'他の者らを警戒する乗騎をなだめる',
|
580
|
-
'他の者に心許す乗騎に嫉妬する',
|
581
|
-
'己の乗騎と、子供のように戯れる',
|
582
|
-
'乗騎に乗り、共に駆ける素晴らしさを語る',
|
583
|
-
'高らかに、己と乗騎の名乗りをあげる',
|
584
|
-
'つい礼法を忘れ、誰かの髪を撫でる',
|
585
|
-
'乗騎にもたれかかり、目を細める',
|
586
|
-
'周りと話しつつも、己の乗騎を気に掛ける',
|
587
|
-
'己の乗騎に語りかける',
|
588
|
-
'己の乗騎と、食事を分け合う',
|
589
|
-
'己の乗騎を褒められて照れる',
|
590
|
-
'己の乗騎の頼もしさについて語る',
|
591
|
-
'様々な装飾を具現化し、己の乗騎を飾る',
|
592
|
-
'具現化ではない小鳥や小動物が集まる',
|
593
|
-
'乗騎を抱きしめて撫でながら褒める',
|
594
|
-
'己の乗騎を得た次第について語る'
|
595
|
-
]},
|
596
|
-
{type: "K",
|
597
|
-
name: "船長",
|
598
|
-
table: [
|
599
|
-
'少しばかり下世話な冗句を言う',
|
600
|
-
'礼式に肩をすくめ、居心地悪そうにする',
|
601
|
-
'かすかな潮風を具現化させ、吹かせる',
|
602
|
-
'口笛で素朴な曲を披露して見せる',
|
603
|
-
'瀟洒ならずとも快活な笑いをこぼす',
|
604
|
-
'その周囲にかすかな潮騒が聞こえ始める',
|
605
|
-
'異国風の歌や曲を披露して見せる',
|
606
|
-
'誰かに、美しい貝殻を土産として手渡す',
|
607
|
-
'誰かの手を取り、異国風の踊りに誘う',
|
608
|
-
'異郷の珍味、酒を周りに勧める',
|
609
|
-
'己の船の小さな模型を具現化して見せる',
|
610
|
-
'情熱的に、誰かをかき口説く',
|
611
|
-
'他の領地で見聞した話を語る',
|
612
|
-
'己の船と、その名の由来について語る',
|
613
|
-
'誰かを次の航海に誘う',
|
614
|
-
'海の脅威について法螺交じりに語る',
|
615
|
-
'異郷の様々な情景を具現化して見せる',
|
616
|
-
'遥か遠い奇妙な島や海域について語る'
|
617
|
-
]},
|
618
|
-
|
619
|
-
{type: "L",
|
620
|
-
name: "寵童",
|
621
|
-
table: [
|
622
|
-
'主の影にそっと隠れる',
|
623
|
-
'主から離れず、ぴったりと密着する',
|
624
|
-
'主の袖を小さく摘まみ、軽く引っ張る',
|
625
|
-
'主に頭を撫でてもらう',
|
626
|
-
'主の髪に指を絡め、梳いたり弄ったりする',
|
627
|
-
'主に甘えるようにもたれかかる',
|
628
|
-
'主に、ちょっとした我儘を言う',
|
629
|
-
'はにかんだ笑顔を浮かべて見せる',
|
630
|
-
'目を潤ませ、熱い溜息をつく',
|
631
|
-
'きまり悪そうに頬を赤く染め、顔を背ける',
|
632
|
-
'申し訳なさそうな顔で、うつむいてしまう',
|
633
|
-
'主以外の騎士を、じっと見つめてしまう',
|
634
|
-
'無意識に誘うような仕草をしてしまう',
|
635
|
-
'誰かに飛びつき、しがみついて抱きしめる',
|
636
|
-
'庇護欲をそそらせる微笑を浮かべる',
|
637
|
-
'主以外の騎士に、熱心に質問を重ねる',
|
638
|
-
'切なげな溜息をつく',
|
639
|
-
'主の手を取り、その指を舐める'
|
640
|
-
]},
|
641
|
-
{type: "V",
|
642
|
-
name: "仲立",
|
643
|
-
table: [
|
644
|
-
'他者を冷たい目で品定めする',
|
645
|
-
'人目を避けて、露骨に不機嫌な顔になる',
|
646
|
-
'音を立てずに舌打ちする',
|
647
|
-
'ほがらかな笑顔だが、目は笑っていない',
|
648
|
-
'敢えて周囲に軽んじられるよう、振る舞う',
|
649
|
-
'顎に手を当て、軽く考え込む',
|
650
|
-
'会話に入り込めない者を話に誘う',
|
651
|
-
'他の者らを紹介させ合い、縁を取り持つ',
|
652
|
-
'目論見を思案し、悪い顔で目を細める',
|
653
|
-
'周囲の人間模様をそれとなく観察する',
|
654
|
-
'誰かに積極的に話しかける',
|
655
|
-
'笑顔で会話しつつ、相手の真意を探る',
|
656
|
-
'そっと相手の唇に指を当て、言葉を封じる',
|
657
|
-
'様々な人々との談笑にふける',
|
658
|
-
'誰かにちょっとした贈り物を手渡す',
|
659
|
-
'誰かに相談事はないかと、軽く聞く',
|
660
|
-
'誰かについて、惜しみない賞賛を語る',
|
661
|
-
'誰かを嫌味でない程度に褒めそやす'
|
662
|
-
]},
|
663
|
-
{type: "U",
|
664
|
-
name: "技師",
|
665
|
-
table: [
|
666
|
-
'持ち歩いていた人形の部位を弄ぶ',
|
667
|
-
'過去の作品を具現化し、自画自賛する',
|
668
|
-
'己の技巧の未熟さについて嘆く',
|
669
|
-
'己の作品以外が褒められるを聞いて嫉妬',
|
670
|
-
'ふとした品を興味深そうに分解し始める',
|
671
|
-
'人形に活かすべく誰かの体を撫で回す',
|
672
|
-
'誰かの手を取り、弄り回す',
|
673
|
-
'突然、羊皮紙に図面を書き始める',
|
674
|
-
'メガネを具現化してかける',
|
675
|
-
'人形の美しさについて、周囲の意見を問う',
|
676
|
-
'相手の美しさを奇妙な視点で賛辞する',
|
677
|
-
'思いついた人形の部位を具現化してみる',
|
678
|
-
'他愛ない事象から、新たな着想を得る',
|
679
|
-
'自動人形のための衣装を具現化してみる',
|
680
|
-
'魂と堕落について、誰かと語り合う',
|
681
|
-
'己の理想とする人形について語る',
|
682
|
-
'誰かの美しさに目を奪われる',
|
683
|
-
'誰かの仕草に、嘆息して感動を覚える'
|
684
|
-
]},
|
685
|
-
{type: "D",
|
686
|
-
name: "博士",
|
687
|
-
table: [
|
688
|
-
'素晴らしい着想を得て、奇声をあげる',
|
689
|
-
'誰かの非理論的な発言に食ってかかる',
|
690
|
-
'他の騎士の非合理的作法を鼻で笑う',
|
691
|
-
'突然、満面の笑みを浮かべる',
|
692
|
-
'己の研究について嬉々として語る',
|
693
|
-
'平然と場の空気を無視した発言をする',
|
694
|
-
'実験動物を見る目で、誰かを見つめる',
|
695
|
-
'衣装の機能性について、誰かを批判する',
|
696
|
-
'己の才に酔い、一人ほくそえむ',
|
697
|
-
'閃いた着想を紙片に書き留めておく',
|
698
|
-
'行き詰った研究について独り言を呟く',
|
699
|
-
'誰かのあまりに低い知的水準を嘆く',
|
700
|
-
'メガネを具現化してかける',
|
701
|
-
'黙り込んで様々な試行錯誤に専念する',
|
702
|
-
'目を閉じて、学術的瞑想にふける',
|
703
|
-
'ふとした品を興味深く観察し、分析する',
|
704
|
-
'誰かに研究への協力を頼みこむ',
|
705
|
-
'己なりに知的な言葉で誰かを賛辞する'
|
706
|
-
]},
|
707
|
-
{type: "S",
|
708
|
-
name: "星読",
|
709
|
-
table: [
|
710
|
-
'空に同調しすぎて、一瞬だけ具現化が解ける',
|
711
|
-
'目を開き空を見上げたまま、仰向けに横たわる',
|
712
|
-
'じっと空を見上げたまま、反応しなくなる',
|
713
|
-
'星辰の変化に驚愕し、奇声をあげてしまう',
|
714
|
-
'ほんやりと空の星を見上げる',
|
715
|
-
'星を掴もうとするように両手を広げ、空を見上げる',
|
716
|
-
'目を見開き、じっと空の星を集中して見つめる',
|
717
|
-
'星辰について感覚的な言葉を並べ続ける',
|
718
|
-
'ぶつぶつと星の在り方について呟き、計算する',
|
719
|
-
'手近な誰かに、星辰の在り様を細かく説明する',
|
720
|
-
'思わぬ星の動きを見つけ、興奮する',
|
721
|
-
'誰かに、興味深い星が宿っていることに気づく',
|
722
|
-
'誰かに、星の定めた運命を予言する',
|
723
|
-
'誰かに、その運命を変えると宣言する',
|
724
|
-
'空を指差し、その先にある星を輝かせる',
|
725
|
-
'空に手を軽く振り、風を起こして雲をどかす',
|
726
|
-
'空に手を軽く振り、雲で特定の星を隠す',
|
727
|
-
'空に手を差し出し、紅月をさらに輝かせる'
|
728
|
-
]},
|
729
|
-
{type: "G2",
|
730
|
-
name: "後見",
|
731
|
-
table: [
|
732
|
-
'己の過去に搦めて、誰かを説教してしまう',
|
733
|
-
'庇護対象の未熟さに、小さな溜息をつく',
|
734
|
-
'少し離れた場所から庇護対象を見守る',
|
735
|
-
'昂り、出しゃばってしまいそうな己を抑える',
|
736
|
-
'庇護対象の背後に、黙って控える',
|
737
|
-
'誰かと語らいつつ、庇護対象を時折うかがう',
|
738
|
-
'若き騎士らの様子を、まぶしそうに見守る',
|
739
|
-
'己の紋章を撫でて、若き日々に思いを馳せる',
|
740
|
-
'そっと、庇護対象を背後から抱き寄せる',
|
741
|
-
'顎に手を当て、軽く考え込む',
|
742
|
-
'会話に入り込めない者を話に誘う',
|
743
|
-
'他の者らを紹介させ合い、縁を取り持つ',
|
744
|
-
'誰かに、庇護対象の良き逸話を話す',
|
745
|
-
'ふと、自身の騎士道の果てが近づいたと感じる',
|
746
|
-
'民らの様子を、注意深く観察する',
|
747
|
-
'庇護対象の成長に、、思わず顔をほころばせる',
|
748
|
-
'庇護対象に、控えめな助言を与える',
|
749
|
-
'庇護対象に微笑みかけ、わずかに褒める'
|
750
|
-
]},
|
751
|
-
]
|
752
|
-
|
753
|
-
return infos
|
754
|
-
end
|
755
|
-
|
756
|
-
def getHeresyReactionInfoBlood
|
757
|
-
infos =
|
758
|
-
[
|
759
|
-
{type: "L",
|
760
|
-
name: "異端卿",
|
761
|
-
table: [
|
762
|
-
'床を睨み意識を何とか保つ',
|
763
|
-
'歩いた跡に、消えゆく塵を遺す',
|
764
|
-
'鎧全体に、光が脈打つ',
|
765
|
-
'金の軋むような呻き声を漏らす',
|
766
|
-
'足音に悲嘆がこもる',
|
767
|
-
'声なき咆哮を放つ',
|
768
|
-
'他者を威圧する',
|
769
|
-
'胸に手を当て、己を落ち着かせる',
|
770
|
-
'一瞬、かつての紋章が浮かぶ',
|
771
|
-
'鎧の中で金属の軋む音がする',
|
772
|
-
'鎧に一瞬、無数の棘が生える',
|
773
|
-
'兜の中の目がギラギラと光る',
|
774
|
-
'体が痙攣したように震える',
|
775
|
-
'鎧の一部が一瞬、武器化する',
|
776
|
-
'鎧が蠢いて奇怪な形になる',
|
777
|
-
'周囲に青白い光が立ち昇る',
|
778
|
-
'己の目的について語る',
|
779
|
-
'恐ろしい目で他者を見る'
|
780
|
-
]},
|
781
|
-
{type: "V",
|
782
|
-
name: "ヴルコラク",
|
783
|
-
table: [
|
784
|
-
'己の頭をかきむしる',
|
785
|
-
'膝をついて、苦しみもがく',
|
786
|
-
'一瞬、人狼の姿が重なる',
|
787
|
-
'他者の喉を凝視する',
|
788
|
-
'獣のように呼吸が荒くなる',
|
789
|
-
'己に言い聞かせる独り言を言う',
|
790
|
-
'唇を噛み、口の端から血を流す',
|
791
|
-
'ざわざわと衣服の下で肉が蠢く',
|
792
|
-
'牙を剥きだして唸る',
|
793
|
-
'顔を険しくしかめる',
|
794
|
-
'思いつめた目で押し黙る',
|
795
|
-
'壁にすがりつき、嗚咽を漏らす',
|
796
|
-
'己の胸を押さえて深呼吸する',
|
797
|
-
'獲物を狙う目で、騎士を見る',
|
798
|
-
'月をじっと見つめる',
|
799
|
-
'一瞬、頭に狼の耳が現れる',
|
800
|
-
'月を見上げ、怒りの唸りを漏らす',
|
801
|
-
'決意した顔で、正面を見る'
|
802
|
-
]},
|
803
|
-
{type: "N",
|
804
|
-
name: "ナハツェーラ",
|
805
|
-
table: [
|
806
|
-
'生きたものをじっと見つめる',
|
807
|
-
'己の手を見て、深いため息をつく',
|
808
|
-
'少しだけ遅れて受け応えする',
|
809
|
-
'一瞬、脱力して死体に戻る',
|
810
|
-
'ひからびたような笑い声を漏らす',
|
811
|
-
'歩いた跡に血の足跡が残る',
|
812
|
-
'周囲に生ぬるい湿った風が吹く',
|
813
|
-
'手がどろりと血に塗れる',
|
814
|
-
'無意識に、涙が流れてしまう',
|
815
|
-
'植物に触れ、一瞬で枯らす',
|
816
|
-
'裾から多数の骨が溢れ出す',
|
817
|
-
'触れた通常の品が、朽ち果てる',
|
818
|
-
'周囲の温度が下がる',
|
819
|
-
'目が青白く光る',
|
820
|
-
'淡く光るため息を漏らす',
|
821
|
-
'傍らに鬼火を具現化する',
|
822
|
-
'生前について語る',
|
823
|
-
'手の中に髑髏を具現化する'
|
824
|
-
]},
|
825
|
-
{type: "K",
|
826
|
-
name: "カルンシュタイン",
|
827
|
-
table: [
|
828
|
-
'姿が霧に包まれぼやける',
|
829
|
-
'一瞬、白目が黒く染まる',
|
830
|
-
'存在感を消して物陰に佇む',
|
831
|
-
'周囲の些細な音に警戒する',
|
832
|
-
'騎士から目をそらす',
|
833
|
-
'一人小さく笑う',
|
834
|
-
'床を浮かび、すべるように進む',
|
835
|
-
'歩む跡、かすかに黒い霧が舞う',
|
836
|
-
'黒い蒸気のような吐息を吐く',
|
837
|
-
'片足を軸に、くるりと回る',
|
838
|
-
'己の髪をいじったり、かき上げる',
|
839
|
-
'衣装についた埃を払う',
|
840
|
-
'口元を隠して笑みをこぼす',
|
841
|
-
'他から距離を取って、闇に潜む',
|
842
|
-
'騎士の紋章をじろじろと見る',
|
843
|
-
'貴族的な笑みをこぼす',
|
844
|
-
'自信に溢れた様子で胸を張る',
|
845
|
-
'豪奢な衣装を具現化してまとう'
|
846
|
-
]},
|
847
|
-
{type: "G",
|
848
|
-
name: "グリマルキン",
|
849
|
-
table: [
|
850
|
-
'その場で居眠りする',
|
851
|
-
'大きな欠伸をする',
|
852
|
-
'猫の姿で、居眠りをする',
|
853
|
-
'猫の姿で、壁をひっかく',
|
854
|
-
'他者の具現化に飛びかかる',
|
855
|
-
'黒猫が足元にじゃれて来る',
|
856
|
-
'尻尾をぴんと伸ばす',
|
857
|
-
'猫の姿で、他者を威嚇する',
|
858
|
-
'不満を漏らす',
|
859
|
-
'猫の姿で、狭い所に入り込む',
|
860
|
-
'耳と尻尾がぴくぴくと動く',
|
861
|
-
'家具や木の上に登る',
|
862
|
-
'猫の声で鳴く',
|
863
|
-
'退屈そうに小物をいじり回す',
|
864
|
-
'周囲に近隣の猫が集まる',
|
865
|
-
'猫の姿で、他者の膝上にのる',
|
866
|
-
'適当な小物にじゃれついて遊ぶ',
|
867
|
-
'他者にじゃれつく'
|
868
|
-
]},
|
869
|
-
{type: "S",
|
870
|
-
name: "ストリガ",
|
871
|
-
table: [
|
872
|
-
'翼をきつく閉じて怯える',
|
873
|
-
'他の騎士や異端にとにかく謝る',
|
874
|
-
'弱者をいじめる',
|
875
|
-
'他のストリガを貶める言葉を紡ぐ',
|
876
|
-
'強者にへりくだって媚びを売る',
|
877
|
-
'民などに高慢な態度をとる',
|
878
|
-
'民の小さな失敗をなじる',
|
879
|
-
'肩にとまった小鳥と語らう',
|
880
|
-
'翼を広げ、他者に手をさしのべる',
|
881
|
-
'袖から小鳥が飛び立つ',
|
882
|
-
'ハミングで歌を口ずさむ',
|
883
|
-
'上空で鳥が輪を描き、歌う',
|
884
|
-
'他者に愛想よく微笑みかける',
|
885
|
-
'無数の黒い鳥の羽根が宙を舞う',
|
886
|
-
'他者を翼で包み抱きしめる',
|
887
|
-
'美しい声で歌い始める',
|
888
|
-
'肩に舞い降りた鳥が耳元で鳴く',
|
889
|
-
'周囲に無数の小鳥が集まる'
|
890
|
-
]},
|
891
|
-
{type: "M",
|
892
|
-
name: "メリュジーヌ",
|
893
|
-
table: [
|
894
|
-
'ぼんやりと遠くを眺める',
|
895
|
-
'口から小さく威嚇音を漏らす',
|
896
|
-
'一瞬舌を出し、香りを舐めとる',
|
897
|
-
'つまらなさそうに様子を眺める',
|
898
|
-
'過去を思い出すように考え込む',
|
899
|
-
'目を見開き、他者に感心する',
|
900
|
-
'湿った風が渦巻く',
|
901
|
-
'下半身を人間のものに変える',
|
902
|
-
'手から水を生み出し、杯に注ぐ',
|
903
|
-
'周囲に水たまりができる',
|
904
|
-
'謎めいた笑みを浮かべる',
|
905
|
-
'舌を伸ばし、他者の顔を舐める',
|
906
|
-
'下半身の蛇を、他者に絡ませる',
|
907
|
-
'興味深そうに質問する',
|
908
|
-
'毒蛇を具現化し、身に絡め弄ぶ',
|
909
|
-
'袖から無数の蛇が現れる',
|
910
|
-
'卵を取り出して丸呑みする',
|
911
|
-
'他者に下半身を絡め抱きしめる'
|
912
|
-
]},
|
913
|
-
{type: "F",
|
914
|
-
name: "フォーン",
|
915
|
-
table: [
|
916
|
-
'より退廃的な衣装をまとう',
|
917
|
-
'悪戯っぽく首をかしげてみせる',
|
918
|
-
'よこしまな笑顔を見せる',
|
919
|
-
'ふしだらな舌なめずりをする',
|
920
|
-
'顔を上気させ、ため息をつく',
|
921
|
-
'己を抱きしめて身をよじる',
|
922
|
-
'己の指先をちろりと舐め上げる',
|
923
|
-
'ひどく淫らな声を漏らす',
|
924
|
-
'武器にいやらしく舌を這わす',
|
925
|
-
'濡れた上目遣いを見せる',
|
926
|
-
'扇情的な仕草をする',
|
927
|
-
'頭髪があやしく波打つ',
|
928
|
-
'妖しい流し目を送る',
|
929
|
-
'他者の耳元に囁き、息をかける',
|
930
|
-
'他者にしなだれかかる',
|
931
|
-
'他者の体に手を這わせ愛撫する',
|
932
|
-
'謎めいた笑みを浮かべる',
|
933
|
-
'他者を口説き始める'
|
934
|
-
]},
|
935
|
-
{type: "H",
|
936
|
-
name: "ホムンクルス",
|
937
|
-
table: [
|
938
|
-
'苦しそうに咳き込みながら膝をつく',
|
939
|
-
'ふらつき、壁や他の騎士にもたれる',
|
940
|
-
'己の胸に手を当て、沈痛な顔を見せる',
|
941
|
-
'腕か脚が一瞬、霧のように崩れかける',
|
942
|
-
'自嘲的な乾いた笑いが漏れる',
|
943
|
-
'無表情に周りの様子をぼんやり眺める',
|
944
|
-
'月光を避けるように影や屋内に入る',
|
945
|
-
'他の騎士に手を伸ばしかけて、止める',
|
946
|
-
'不意に月光を浴びてしまい、苦痛を耐える',
|
947
|
-
'会話に入ろうとするが、やめてしまう',
|
948
|
-
'具現化した花の消える様子に己を重ねる',
|
949
|
-
'他の騎士たちをまぶしそうに見守る',
|
950
|
-
'未来について、詳細な推理を述べる',
|
951
|
-
'疲れた様子で、淡く光る吐息を深々と吐く',
|
952
|
-
'瞬時に予想し、落ちかけた品を受け止める',
|
953
|
-
'遠い先の話題に、自虐的な笑みを漏らす',
|
954
|
-
'一刻後の天候を、正確に言い当てる',
|
955
|
-
'ほんのかすかな笑顔が浮かぶ'
|
956
|
-
]},
|
957
|
-
{type: "E",
|
958
|
-
name: "エナメルム",
|
959
|
-
table: [
|
960
|
-
'人形の虚ろな表情からは何もわからない',
|
961
|
-
'居心地悪そうに、隅にいる',
|
962
|
-
'何かを口にしかけるが、うつむいてしまう',
|
963
|
-
'何かに触れ、カチンと金属音を立てる',
|
964
|
-
'ぎこちない動きで体を動かす',
|
965
|
-
'誰かに無言で、何かを訴える',
|
966
|
-
'身振り手振りで、己の感情を伝えようとする',
|
967
|
-
'せめて感触を得ようと、誰かに触れ続ける',
|
968
|
-
'誰かをじっと、硝子の瞳で見つめている',
|
969
|
-
'人の体にはできない動きで、奇妙に舞う',
|
970
|
-
'立ったまま、微動だにしない',
|
971
|
-
'己の記憶を取り戻そうと、辺りを見回す',
|
972
|
-
'無意識に、表情も動かぬまま涙が溢れる',
|
973
|
-
'誰かの所作を、己に取り入れようとする',
|
974
|
-
'声ではない、楽器の音色のような歌を披露',
|
975
|
-
'無機的な目で、冷たく誰かを一瞥する',
|
976
|
-
'無言でただそっと、誰かに寄り添う',
|
977
|
-
'断片的に、かつての魂の記憶が蘇る'
|
978
|
-
]},
|
979
|
-
{type: "S2",
|
980
|
-
name: "サングィナリエ",
|
981
|
-
table: [
|
982
|
-
'怒りや欲望で、顔が怪物のように醜くゆがむ',
|
983
|
-
'衝動的に誰かを抱き寄せ、首筋に顔を寄せる',
|
984
|
-
'騎士を嘲るように見て、鼻で笑う',
|
985
|
-
'渇きと共に、口の端から紅い唾液が垂れる',
|
986
|
-
'足元から真紅の血だまりが広がり、場を覆う',
|
987
|
-
'目が光り、誰かの首筋を舐めるように見る',
|
988
|
-
'騎士道の偽善性を説き、嘲笑う',
|
989
|
-
'誰かの首筋を、じいっと凝視する',
|
990
|
-
'胸に手を当て、深呼吸して己を落ち着かせる',
|
991
|
-
'誰かの血の味を口の中に思い出し、ほくそ笑む',
|
992
|
-
'切なげなため息をつき、舌なめずりする',
|
993
|
-
'誰かに、慇懃無礼な皮肉めいた誉め言葉を送る',
|
994
|
-
'マントをひるがえして誰かに近づくか、傍から退く',
|
995
|
-
'目が異様な光を灯す、民がいるなら陶然となる',
|
996
|
-
'わざとらしく衣装についた埃を払ってみせる',
|
997
|
-
'高らかに、サングィナリエの血統を名乗る',
|
998
|
-
'騎士の在り方について、異端の論を披露する',
|
999
|
-
'余裕のある不敵な笑みを浮かべる'
|
1000
|
-
]},
|
1001
|
-
{type: "A",
|
1002
|
-
name: "アールヴ",
|
1003
|
-
table: [
|
1004
|
-
'平然と場の空気を無視した発言をする',
|
1005
|
-
'他の誰かが褒められて様子に、嫉妬する',
|
1006
|
-
'ハミングで、妖精の歌を口ずさむ',
|
1007
|
-
'好奇心も露に、誰かに話しかける',
|
1008
|
-
'肩にとまった小鳥と語らう',
|
1009
|
-
'野の花をそっと愛でて、微笑む',
|
1010
|
-
'誰かに、剣での立ち合いを求める',
|
1011
|
-
'流れるような動きで誰かに近づき、手を取る',
|
1012
|
-
'妖精の美酒を手元に出し、誰かの盃に注ぐ',
|
1013
|
-
'周囲に小さな妖精たちが、光の点となって舞う',
|
1014
|
-
'妖精郷の歌や舞を披露してみせる',
|
1015
|
-
'様々な人々との談笑にふける',
|
1016
|
-
'誰かに愛の言葉を捧げ、口説き始める',
|
1017
|
-
'誰かについて、惜しみない称賛を語る',
|
1018
|
-
'少し奇妙な言い回しで、誰かを賛辞する',
|
1019
|
-
'騎士道について、熱く語る',
|
1020
|
-
'己の属する妖精郷の宮廷に、誰かを誘う',
|
1021
|
-
'誰かの振る舞いに嘆息し、大いに感動を覚える'
|
1022
|
-
]},
|
1023
|
-
{type: "V2",
|
1024
|
-
name: "ヴィーヴル",
|
1025
|
-
table: [
|
1026
|
-
'周囲の者は、圧迫感と居心地の悪さを感じる',
|
1027
|
-
'誰かに、理不尽な我儘を言う',
|
1028
|
-
'つまらなさそうに他の者達の様子を眺める',
|
1029
|
-
'話題を断ち切り、己の目的を率直に遂げんとす',
|
1030
|
-
'傲慢とも取れる目で誰かを見下ろし、品定めする',
|
1031
|
-
'威嚇するように、腕に翼を大きく広げる',
|
1032
|
-
'誰かを子供扱いし、わざと挑発してからかう',
|
1033
|
-
'幻に包まれたように、その姿が一瞬だけ揺らぐ',
|
1034
|
-
'表情を変えずとも、ぞわりと龍体の色が変わる',
|
1035
|
-
'浮かんだまま、遠い目をする',
|
1036
|
-
'他の者達の絆の強さを、見定めようと観察する',
|
1037
|
-
'誰かに髪の手入れを求める',
|
1038
|
-
'各地の様々な事象について、次々と質問する',
|
1039
|
-
'真祖と龍と月について、滔々と語り始める',
|
1040
|
-
'誰かの行いを諫め、戒める',
|
1041
|
-
'誰かを龍の翼で包むように抱きしめ、褒める',
|
1042
|
-
'誰かを慈しむように撫で、いたわる',
|
1043
|
-
'その姿が一瞬、巨大な龍に見える'
|
1044
|
-
]},
|
1045
|
-
{type: "L2",
|
1046
|
-
name: "ルーガルー",
|
1047
|
-
table: [
|
1048
|
-
'巨大な狼の姿となって、警戒も露にうなる',
|
1049
|
-
'怒りを耐えるように、拳をきつく握りしめる',
|
1050
|
-
'苛立たしげに、狼の口から牙を剥きだしてうなる',
|
1051
|
-
'怒りを抑えるが、獣毛が逆立つ',
|
1052
|
-
'疲労や緊張から、獣のように呼吸が荒くなる',
|
1053
|
-
'疲れ、乾いた笑みを浮かべる',
|
1054
|
-
'周囲の些細な音に警戒し、耳を動かす',
|
1055
|
-
'誰かを睨みつけ、威圧する',
|
1056
|
-
'狼の鼻先が、ひくひくと動く',
|
1057
|
-
'鋭い視線を無表情で巡らせ、状況を把握する',
|
1058
|
-
'目を閉じ、腕を組んで、じっと立ち続ける',
|
1059
|
-
'1人遠く、故郷の方角へと視線を向けて佇む',
|
1060
|
-
'決意した顔で、正面から誰かと向かい合う',
|
1061
|
-
'沈痛な面持ちで空を見上げ、うなる',
|
1062
|
-
'自然の在り様について、言葉少なに語る',
|
1063
|
-
'たとえ屋内であろうと、野の風が吹く',
|
1064
|
-
'誰かの美しさに、思わず目を奪われる',
|
1065
|
-
'目を閉じて、故郷たる自然に思いを馳せる'
|
1066
|
-
]},
|
1067
|
-
{type: "A2",
|
1068
|
-
name: "アルラウネ",
|
1069
|
-
table: [
|
1070
|
-
'不満を漏らしたり、軽い我儘を言ったりする',
|
1071
|
-
'そっと誰かの耳元に何かを囁く',
|
1072
|
-
'己の髪に指を絡め、梳いたり弄ったりする',
|
1073
|
-
'感じ取った未来を口にしかけるが、やめてしまう',
|
1074
|
-
'1悪戯っほい、謎めいた笑みを浮かべる',
|
1075
|
-
'誰かに己の身をすりつけるように、絡みつく',
|
1076
|
-
'瞬時に予知し、落ちかけた品を受け止める',
|
1077
|
-
'わずかに動くごとに、周囲を花の香りが包む',
|
1078
|
-
'舞うような足取りで、誰かに密着するよう近づく',
|
1079
|
-
'煽情的な仕草をしつつ、妖しい流し目を送る',
|
1080
|
-
'誰かに甘えるようにもたれかかる',
|
1081
|
-
'誰かの運命について、断片的に口にする',
|
1082
|
-
'足元に妖しくも美しい花畑が具現化される',
|
1083
|
-
'具現化した蔓と葉が、その肢体に絡みつく',
|
1084
|
-
'周囲に無数の花弁を具現化しつつ、舞う',
|
1085
|
-
'より華麗で美しい衣装をまとう',
|
1086
|
-
'未来について、曖昧な予言を口にする',
|
1087
|
-
'己に咲く花を摘み、誰かに手渡す(瞬時に再生)'
|
1088
|
-
]},
|
1089
|
-
{type: "F2",
|
1090
|
-
name: "フリッガ",
|
1091
|
-
table: [
|
1092
|
-
'その影が巨大な蜘蛛となって、蠢く',
|
1093
|
-
'他の騎士や異端にとにかく謝る',
|
1094
|
-
'居心地悪そうに、隅にいる',
|
1095
|
-
'ほがらかな笑顔だが、目は笑っていない',
|
1096
|
-
'恋の話題に、自虐的な笑みしか浮かばない',
|
1097
|
-
'己に口い聞かせるように、独り言を言う',
|
1098
|
-
'会話に入ろうとするが、やめてしまう',
|
1099
|
-
'申し訳なさそうな顔で、うつむいてしまう',
|
1100
|
-
'無意識に、己の腹をいとおしげに撫でる',
|
1101
|
-
'誰かの腕や袖をしっかりと掴んで、離さない',
|
1102
|
-
'誰かを思いつめた目で、じっと見つめている',
|
1103
|
-
'目を潤ませ、熱い溜息をつく',
|
1104
|
-
'他の騎士に手を伸ばしかけて、止める',
|
1105
|
-
'具現化した糸を、誰かの指とつなぐ',
|
1106
|
-
'困ったような、泣き笑いの微笑みを浮かべる',
|
1107
|
-
'誰かにびったりと密着して離れない',
|
1108
|
-
'そっと相手の唇に指を当て、言葉を封じる',
|
1109
|
-
'誰かに、狂気の如き恋心を抱き始める'
|
1110
|
-
]},
|
1111
|
-
]
|
1112
|
-
|
1113
|
-
return infos
|
1114
|
-
end
|
1115
|
-
|
1116
|
-
def getHeresyReactionInfoStyle
|
1117
|
-
infos =
|
1118
|
-
[
|
1119
|
-
{type: "W",
|
1120
|
-
name: "野伏",
|
1121
|
-
table: [
|
1122
|
-
'露骨に、騎士から距離をとる',
|
1123
|
-
'騎士や民を見て、舌打ちする',
|
1124
|
-
'騎士について不満を口にする',
|
1125
|
-
'民の在り様について批判する',
|
1126
|
-
'獰猛な笑みで周りをねめつける',
|
1127
|
-
'粗野に体をぼりぼりと掻く',
|
1128
|
-
'床に唾を吐き捨てる',
|
1129
|
-
'武骨な武具を具現化する',
|
1130
|
-
'革袋の酒や水を飲み干す',
|
1131
|
-
'他者に咎めるような目を向ける',
|
1132
|
-
'手づかみで、粗野に食事する',
|
1133
|
-
'騎士を見下した目で見る',
|
1134
|
-
'正面から相手を見据え会話する',
|
1135
|
-
'取り出した肉を噛みちぎり喰らう',
|
1136
|
-
'自然の力について語る',
|
1137
|
-
'周囲を厳しい目で見渡す',
|
1138
|
-
'無礼な発言をする',
|
1139
|
-
'己の土地について語る'
|
1140
|
-
]},
|
1141
|
-
{type: "N",
|
1142
|
-
name: "流浪",
|
1143
|
-
table: [
|
1144
|
-
'呆れた様子でため息をつく',
|
1145
|
-
'欠伸を噛み殺す',
|
1146
|
-
'大げさに肩をすくめて見せる',
|
1147
|
-
'他から距離を取り、様子を眺める',
|
1148
|
-
'具現化した果実を食べる',
|
1149
|
-
'口笛を吹く',
|
1150
|
-
'一組のカードを具現化して弄ぶ',
|
1151
|
-
'名もなき野草の花を愛でる',
|
1152
|
-
'楽器を具現化し、音を奏でる',
|
1153
|
-
'他者と世間話をする',
|
1154
|
-
'風評を元に他者を褒めたたえる',
|
1155
|
-
'吹く風に目を細める',
|
1156
|
-
'小鳥や虫、植物らに話しかける',
|
1157
|
-
'仲間の肩を叩く、あるいは抱く',
|
1158
|
-
'風に髪をなびかせる',
|
1159
|
-
'旅の土産話を披露する',
|
1160
|
-
'目を閉じてリラックスする',
|
1161
|
-
'他者に異郷の珍しい品を渡す'
|
1162
|
-
]},
|
1163
|
-
{type: "S",
|
1164
|
-
name: "密使",
|
1165
|
-
table: [
|
1166
|
-
'周りを値踏みする目で見る',
|
1167
|
-
'冷たい目で外を眺める',
|
1168
|
-
'濁った眼で、他者をじっと見る',
|
1169
|
-
'無感情に状況を検分する',
|
1170
|
-
'小さな名もなき花を目に留める',
|
1171
|
-
'他の騎士に目で合図を送る',
|
1172
|
-
'感情のない目で他者を見る',
|
1173
|
-
'小さく自嘲的な笑みを浮かべる',
|
1174
|
-
'過剰なほどに周囲を警戒する',
|
1175
|
-
'他者をちらちらと観察する',
|
1176
|
-
'手の中でナイフを弄ぶ',
|
1177
|
-
'騎士に深々と礼をする',
|
1178
|
-
'自虐的な言葉を呟く',
|
1179
|
-
'そっと騎士に寄り添い控える',
|
1180
|
-
'他者と世間話をし、談笑する',
|
1181
|
-
'主の名を、心の中で唱える',
|
1182
|
-
'騎士を褒めたたえる',
|
1183
|
-
'他者に積極的に話しかける'
|
1184
|
-
]},
|
1185
|
-
{type: "H",
|
1186
|
-
name: "魔女",
|
1187
|
-
table: [
|
1188
|
-
'誰もいないところに話しかける',
|
1189
|
-
'含み笑いから、やがて高笑いへ',
|
1190
|
-
'眉を寄せて、水面を見つめる',
|
1191
|
-
'騎士を胡乱な目で見る',
|
1192
|
-
'大鍋を具現化し、かき混ぜる',
|
1193
|
-
'胡散臭い笑みを浮かべる',
|
1194
|
-
'足元をゴブリンが駆けていく',
|
1195
|
-
'小さく含み笑いを漏らす',
|
1196
|
-
'奇妙な言い回しの言葉を言う',
|
1197
|
-
'具現化した杖で、床を叩く',
|
1198
|
-
'思わせぶりな言葉や仕草をする',
|
1199
|
-
'周囲を魔法や妖精の光が舞う',
|
1200
|
-
'奇妙な知識で状況説明する',
|
1201
|
-
'奇怪な呪文を呟く',
|
1202
|
-
'あやしげな護符を取り出す',
|
1203
|
-
'袖から現れた小動物と会話する',
|
1204
|
-
'他者の人相などを占う',
|
1205
|
-
'手の中に青白い炎を具現化する'
|
1206
|
-
]},
|
1207
|
-
{type: "F",
|
1208
|
-
name: "剣士",
|
1209
|
-
table: [
|
1210
|
-
'騎士の礼儀作法を嘲笑い、茶化す',
|
1211
|
-
'具現化した武器の柄に手を伸ばす',
|
1212
|
-
'凶悪な笑みを浮かべ、相手をねめつける',
|
1213
|
-
'油断なく周囲に視線を走らせ、警戒する',
|
1214
|
-
'剣を手の中に具現化し、弄ぶ',
|
1215
|
-
'口笛やハミングで、簡単な曲を奏でる',
|
1216
|
-
'不敵な笑みを浮かべながら、名乗る',
|
1217
|
-
'周囲の騎士や異端との戦いを、思い描く',
|
1218
|
-
'誰かに関する風聞と、実際の印象を語る',
|
1219
|
-
'警戒と同時に、手が武器に伸びてしまう',
|
1220
|
-
'自信に溢れた様子で、堂々と会話する',
|
1221
|
-
'過去の敗北から得た教訓について語る',
|
1222
|
-
'闘志により周りの風景が、ぐにゃりと歪む',
|
1223
|
-
'周囲に風が渦巻き、衣装をはためかせる',
|
1224
|
-
'気に入った相手を口説こうとする',
|
1225
|
-
'勇ましく迫力に満ちた剣舞を披露する',
|
1226
|
-
'騎士や民に目を向けて、舌打ちする',
|
1227
|
-
'かつての戦いや冒険について語る'
|
1228
|
-
]},
|
1229
|
-
{type: "X",
|
1230
|
-
name: "検体",
|
1231
|
-
table: [
|
1232
|
-
'肉体が異形化しようとするように、波打つ',
|
1233
|
-
'発作的にうずくまり、呻き苦しむ',
|
1234
|
-
'指の長さが異様に伸びたり縮んだりする',
|
1235
|
-
'ふとした金属音に、異様なほど怯える',
|
1236
|
-
'汗をかきながら、俯いて深呼吸する',
|
1237
|
-
'己に言い聞かせるように、独り言をいう',
|
1238
|
-
'蘇る苦痛の記憶に、震えが止まらない',
|
1239
|
-
'誰かにぴったりとしがみついて離れない',
|
1240
|
-
'一瞬、肌に無数の傷跡が浮かび上がる',
|
1241
|
-
'過去を振り払うように、首を打ち振る',
|
1242
|
-
'初対面の人物の所作に、怯え隠れる',
|
1243
|
-
'体の内から、脈打つように異様な光を放つ',
|
1244
|
-
'一瞬、爪や犬歯が伸びて異形の姿となる',
|
1245
|
-
'何かの拍子に、異様なほどの跳躍をする',
|
1246
|
-
'他の者を妬み呪う言葉が口から溢れる',
|
1247
|
-
'目から血が涙のように流れ出す',
|
1248
|
-
'壁にすがりつき、何かを抑え嗚咽を漏らす',
|
1249
|
-
'誰かに、己の苦しみからの助けを求める'
|
1250
|
-
]},
|
1251
|
-
]
|
1252
|
-
|
1253
|
-
return infos
|
1254
|
-
end
|
1255
|
-
|
1256
199
|
def getCorruptionDiceCommandResult(command)
|
1257
200
|
return nil unless command =~ /^CT(\d+)$/
|
1258
201
|
|
1259
202
|
modify = Regexp.last_match(1).to_i
|
1260
203
|
|
1261
|
-
name = "
|
204
|
+
name = translate("Dracurouge.CT.name")
|
1262
205
|
table =
|
1263
206
|
[
|
1264
|
-
[0, "
|
1265
|
-
[1, "
|
1266
|
-
[3, "
|
1267
|
-
[5, "
|
1268
|
-
[6, "
|
1269
|
-
[7, "
|
1270
|
-
[8, "
|
1271
|
-
[99, "
|
207
|
+
[0, translate("Dracurouge.CT.table.0")],
|
208
|
+
[1, translate("Dracurouge.CT.table.1")],
|
209
|
+
[3, translate("Dracurouge.CT.table.3")],
|
210
|
+
[5, translate("Dracurouge.CT.table.5")],
|
211
|
+
[6, translate("Dracurouge.CT.table.6")],
|
212
|
+
[7, translate("Dracurouge.CT.table.7")],
|
213
|
+
[8, translate("Dracurouge.CT.table.8")],
|
214
|
+
[99, translate("Dracurouge.CT.table.99")],
|
1272
215
|
]
|
1273
216
|
|
1274
217
|
dice_list = @randomizer.roll_barabara(2, 6)
|
@@ -1282,575 +225,330 @@ module BCDice
|
|
1282
225
|
return "2D6[#{number_text}]-#{modify} > #{name}(#{index}) > #{text}"
|
1283
226
|
end
|
1284
227
|
|
1285
|
-
|
1286
|
-
|
1287
|
-
|
1288
|
-
|
1289
|
-
|
1290
|
-
|
1291
|
-
|
1292
|
-
|
1293
|
-
|
1294
|
-
|
1295
|
-
when '2D6'
|
1296
|
-
get_table_by_2d6(table)
|
1297
|
-
when '1D6'
|
1298
|
-
get_table_by_1d6(table)
|
1299
|
-
when 'D66'
|
1300
|
-
get_table_by_d66(table)
|
1301
|
-
end
|
1302
|
-
|
1303
|
-
return nil if text.nil?
|
1304
|
-
|
1305
|
-
return "#{name}(#{number}) > #{text}"
|
1306
|
-
end
|
1307
|
-
|
1308
|
-
def getSourceSceneDiceCommandResult(command)
|
1309
|
-
return nil unless command =~ /^ST$/
|
1310
|
-
|
1311
|
-
name = "原風景表"
|
1312
|
-
table = getSourceSceneTable
|
1313
|
-
return getTitleD66TableResult(name, table)
|
1314
|
-
end
|
1315
|
-
|
1316
|
-
def getPassionDiceCommandResult(command)
|
1317
|
-
return nil unless command =~ /^PN$/
|
1318
|
-
|
1319
|
-
name = "受難表"
|
1320
|
-
table = getPassionTable
|
1321
|
-
return getTitleD66TableResult(name, table)
|
1322
|
-
end
|
1323
|
-
|
1324
|
-
def getTitleD66TableResult(name, table)
|
1325
|
-
debug("getTitleD66TableResult")
|
1326
|
-
item, index = get_table_by_d66(table)
|
1327
|
-
return nil if item.nil?
|
1328
|
-
|
1329
|
-
title, text, = item
|
1330
|
-
|
1331
|
-
return "#{name}(#{index}) > #{title}:#{text}"
|
1332
|
-
end
|
1333
|
-
|
1334
|
-
def getConfermentDiceCommandResult(command)
|
1335
|
-
return nil unless command =~ /^CO$/
|
1336
|
-
|
1337
|
-
name = "叙勲表"
|
1338
|
-
table = getConfermentTable
|
1339
|
-
yearTitle = "叙勲年齢"
|
1340
|
-
|
1341
|
-
return getYearTableResult(name, table, yearTitle)
|
1342
|
-
end
|
1343
|
-
|
1344
|
-
def getConfermentAfterDiceCommandResult(command)
|
1345
|
-
return nil unless command =~ /^CA$/
|
1346
|
-
|
1347
|
-
name = "叙勲後表"
|
1348
|
-
table = getConfermentAfterTable
|
1349
|
-
yearTitle = "騎士歴"
|
1350
|
-
|
1351
|
-
return getYearTableResult(name, table, yearTitle)
|
1352
|
-
end
|
1353
|
-
|
1354
|
-
def getElderPastDiceCommandResult(command)
|
1355
|
-
return nil unless command =~ /^EP$/
|
1356
|
-
|
1357
|
-
name = "遥か過去表"
|
1358
|
-
table = getElderPastTable
|
1359
|
-
yearTitle = "騎士歴"
|
1360
|
-
|
1361
|
-
return getYearTableResult(name, table, yearTitle)
|
1362
|
-
end
|
1363
|
-
|
1364
|
-
def getOriginalSinDiceCommandResult(command)
|
1365
|
-
return nil unless command =~ /^OS$/
|
1366
|
-
|
1367
|
-
name = "原罪表"
|
1368
|
-
table = getOriginalSinTable
|
1369
|
-
yearTitle = "外見年齢"
|
1370
|
-
|
1371
|
-
return getYearTableResult(name, table, yearTitle)
|
1372
|
-
end
|
1373
|
-
|
1374
|
-
def getRecentStateDiceCommandResult(command)
|
1375
|
-
return nil unless command =~ /^RS$/
|
1376
|
-
|
1377
|
-
name = "近況表"
|
1378
|
-
table = getRecentStateTable
|
1379
|
-
yearTitle = "活動年数"
|
1380
|
-
|
1381
|
-
return getYearTableResult(name, table, yearTitle)
|
1382
|
-
end
|
1383
|
-
|
1384
|
-
def getPeacefulPastDiceCommandResult(command)
|
1385
|
-
return nil unless command =~ /^PP$/
|
1386
|
-
|
1387
|
-
name = "平和な過去表"
|
1388
|
-
table = getPeacefulPastTable
|
1389
|
-
yearTitle = "外見年齢"
|
1390
|
-
|
1391
|
-
return getYearTableResult(name, table, yearTitle)
|
1392
|
-
end
|
1393
|
-
|
1394
|
-
def getYearTableResult(name, table, yearTitle)
|
1395
|
-
item, index = get_table_by_d66(table)
|
1396
|
-
return nil if item.nil?
|
1397
|
-
|
1398
|
-
title, text, yearText, = item
|
1399
|
-
year, calculateText = getYear(yearText)
|
228
|
+
class YearTable
|
229
|
+
# @param key [String]
|
230
|
+
# @param locale [Symbol]
|
231
|
+
# @param years [Array<String>]
|
232
|
+
# @return [YearTable]
|
233
|
+
def self.from_i18n(key, locale, years)
|
234
|
+
table = I18n.translate(key, locale: locale, raise: true)
|
235
|
+
items = table[:items].zip(years)
|
236
|
+
return new(table[:name], table[:year_title], items)
|
237
|
+
end
|
1400
238
|
|
1401
|
-
|
1402
|
-
|
239
|
+
# @param name [String]
|
240
|
+
# @param year_title [String]
|
241
|
+
# @param items [Array<Array<(String, String)>>]
|
242
|
+
def initialize(name, year_title, items)
|
243
|
+
@name = name
|
244
|
+
@year_title = year_title
|
245
|
+
@items = items.freeze
|
246
|
+
end
|
1403
247
|
|
1404
|
-
|
1405
|
-
|
1406
|
-
|
248
|
+
# @param randomizer [Randomizer]
|
249
|
+
# @return [String]
|
250
|
+
def roll(randomizer)
|
251
|
+
tens, ones = randomizer.roll_barabara(2, 6)
|
252
|
+
index = (tens - 1) * 6 + (ones - 1)
|
1407
253
|
|
1408
|
-
|
1409
|
-
|
1410
|
-
|
254
|
+
text, year_expr = @items[index]
|
255
|
+
interim_expr = year_expr.gsub(/\d+D6+/) { |expr| roll_d6x(expr, randomizer) }
|
256
|
+
year = ArithmeticEvaluator.eval(interim_expr.gsub("×", "*"))
|
1411
257
|
|
1412
|
-
|
1413
|
-
|
1414
|
-
|
1415
|
-
count.times do |_i|
|
1416
|
-
number = 0
|
258
|
+
"#{@name}(#{tens}#{ones}) > #{text} > #{@year_title}:#{year_expr} > (#{interim_expr}) > #{@year_title}:#{year}年"
|
259
|
+
end
|
1417
260
|
|
1418
|
-
|
1419
|
-
|
1420
|
-
|
1421
|
-
|
261
|
+
private
|
262
|
+
|
263
|
+
# D66と同様の形式でD666などにも対応したダイスロール
|
264
|
+
#
|
265
|
+
# @param expr [String]
|
266
|
+
# @param randomizer [Randomizer]
|
267
|
+
# @return [Integer]
|
268
|
+
def roll_d6x(expr, randomizer)
|
269
|
+
times, sides = expr.split("D", 2)
|
270
|
+
times = times.to_i
|
271
|
+
|
272
|
+
list = Array.new(times) do
|
273
|
+
randomizer.roll_barabara(sides.length, 6)
|
274
|
+
.reverse # テスト系の互換性のために反転する
|
275
|
+
.map.with_index { |x, idx| x * (10**idx) }
|
276
|
+
.sum()
|
1422
277
|
end
|
1423
278
|
|
1424
|
-
|
279
|
+
return list.sum()
|
1425
280
|
end
|
1426
|
-
|
1427
|
-
return total.to_s
|
1428
|
-
end
|
1429
|
-
|
1430
|
-
def getSourceSceneTable
|
1431
|
-
table =
|
1432
|
-
[
|
1433
|
-
["虐待", "あの地獄のような日々で、貴卿がされてきたことを思えば……騎士となっても、人を見る目は暗い。"],
|
1434
|
-
["野良犬の如く", "孤児だった貴卿はひたすら盗み殺し騙して。手段を問わず生き抜いた。騎士の前には罪人として突き出された。"],
|
1435
|
-
["悪行", "貴卿は叙勲以前、悪しき不徳の行いに手を染めていた。幸いにも主には気づかれず、騎士となったが……行いは正されているだろうか?"],
|
1436
|
-
["忌まわしの火", "故郷は太陽の欠片に襲われた。家族は命を落とし、騎士が貴卿を救った。あの呪わしい炎を貴卿は忘れない。"],
|
1437
|
-
["太陽の夢", "今はなき太陽の照らす……美しく生命に満ちた世界を、幼い頃から夢で見る。奇妙な疑念が内から消えない。"],
|
1438
|
-
["黒い衝動", "暴力性や残虐性が、貴卿の中に眠っている。それは時折突発的に現れて……大事なものを破壊するのだ。"],
|
1439
|
-
["氷の心", "過酷な日々を暮らす中、貴卿の心は凍てついた。能力を買われ騎士となるが……心の氷はまだ溶けない。"],
|
1440
|
-
["腰抜け", "かつての貴卿は、立ち向かうべきものから逃げ出した。それは騎士となってなお残る、心の疵だ。"],
|
1441
|
-
["孤独", "貴卿はずっと孤独だった。手を差し伸べてくれたのは主のみ。主なき日々など考えられない。"],
|
1442
|
-
["野心", "貴卿はより高い地位が欲しい。民では足りない。騎士になりたい。もっともっと多くを支配したいのだ。"],
|
1443
|
-
["惚れっぽい", "簡単に恋をしてしまう。わずかな縁でも恋人のつもりになって、心から尽くしてしまうのだ。"],
|
1444
|
-
["間近の堕落", "故郷の領主が堕落し、暴虐を為した。貴卿は、騎士というものについて他ほど無邪気には信じられまい。"],
|
1445
|
-
["妄想", "夢見がちな貴卿は、自らが騎士となる夢想を何度もしてきた。今も、ともすれば夢を見ているのだろうか。"],
|
1446
|
-
["空白", "かつての時間の中には思い出せない時期がある。その間に何があったのか、貴卿には何もわからない。"],
|
1447
|
-
["敬虔なる心", "貴卿は人の頃より紅き月とドラクルを深く信仰してきた。たゆまぬ信仰こそ、己を騎士に導いたと信じている。"],
|
1448
|
-
["妖精の導き", "入ってはならぬ森で妖精と親しくなった。そして戯れる中、気づけば貴卿は騎士の城にいた。"],
|
1449
|
-
["従者の一族", "生まれつき従者として生きる一族もいる。貴卿はその中に生まれ、才見出されて騎士となったのだ。"],
|
1450
|
-
["市井の心", "ごく凡俗な民の家にて長く育った貴卿は世俗的ながらも、民の視野を持つ騎士となるであろう。"],
|
1451
|
-
["流浪", "貴卿は人の頃から流浪の身。視野を広げるつもりの旅であったが、従者としてこの地に居つくこととなった。"],
|
1452
|
-
["人の血縁", "血縁者が騎士となった。そしたまた貴卿も……。貴卿には、人としての血縁者が、同胞にいるのだ。"],
|
1453
|
-
["妖精の友", "妖精を引き寄せる、奇妙な魅力を持って生まれた。幼き頃より、貴卿は妖精や獣の友である。"],
|
1454
|
-
["無垢なる魂", "浮世の邪念から余りに遠く生きて来たがゆえに、貴卿の魂はあまりに気高く美しい。そして脆い。"],
|
1455
|
-
["戦場の獣", "主と共に、貴卿は数多の戦場を渡った。戦いは貴卿の呼吸であり歩み。何処にあろうとも戦いの嵐は逃さぬ。"],
|
1456
|
-
["古き格式", "貴卿は非常に格式を重んじる地に生まれ育った。たとえ形骸化しようと、古き格式を忘れて何が騎士か。"],
|
1457
|
-
["カリスマ", "人に頼られ注目を浴びやすい。貴卿は生まれつき、人々のまとめ役だ。騎士には必要な才と言えるだろう。"],
|
1458
|
-
["鍛錬の日々", "騎士となる日を目指し、幼き頃から武の鍛錬欠かさず。いまや貴卿はこれほどの武勇を得たのだ。"],
|
1459
|
-
["恩返し", "かつて、貴卿はある騎士に助けられた。そして彼の方を助けるべく従者となり……ついに騎士となったのだ。"],
|
1460
|
-
["騎士の養子", "幼くして見いだされ、物ごころついた頃には、騎士手づからの教育と鍛錬を受けて来た。人の親は知らない。"],
|
1461
|
-
["英雄志願", "守られる民としての生活に耐えられなかった。貴卿は英雄への道を求め家を飛び出し、従者となったのだ。"],
|
1462
|
-
["燃える恋", "一目見て、ある騎士に恋をした。人の身では叶わぬ恋。しかし貴卿はついに叙勲を受け、騎士となる。"],
|
1463
|
-
["救世の想い", "人々は様々な恐怖に怯え、困窮している。己の努力で何とかできれば……と、貴卿は騎士への道を選んだ。"],
|
1464
|
-
["美貌", "貴卿の美貌が評判になる頃、その美を耳にした騎士が訪れ、貴卿を城に導いた。"],
|
1465
|
-
["憧れの騎士", "貴卿には憧れる騎士がいる。いつかきっとその人と同じ高みに立つのだと、心に決めた人物がいるのだ。"],
|
1466
|
-
["ドラクルの夢", "ある日の夢の中、貴卿のもとにドラクルが降りた。そして人生の全てを変える神託を賜ったのだ。"],
|
1467
|
-
["神童", "時として、貴卿のように有り余る才を持って生まれる者がいる。そして定められたように騎士への道を歩むのだ。"],
|
1468
|
-
["運命の子", "貴卿の生まれた折、旅の賢者が訪れた。貴卿はきっと伝説に残る騎士となるだろう。そう約束されているのだ。"],
|
1469
|
-
]
|
1470
|
-
return table
|
1471
|
-
end
|
1472
|
-
|
1473
|
-
def getConfermentTable
|
1474
|
-
table =
|
1475
|
-
[
|
1476
|
-
["堕落の血", "貴卿は堕落者に襲われ、その結果……騎士となった。貴卿に流れるは堕落した血なのだ。", "7+1D6×1D6"],
|
1477
|
-
["忌まわしの血", "乱心した主は堕落の間際、公爵の許しも得ず貴卿を叙勲した。残された貴卿には……疑いの目が向けられた。", "7+1D6×1D6"],
|
1478
|
-
["悪しき取引", "貴卿は主と悪しき取引の後、叙勲を受けた。主は不徳の身、今や貴卿の立場は主の奴隷も同然である。", "7+1D6×1D6"],
|
1479
|
-
["裏切の予言", "叙勲の折、賢者は貴卿に予言をした……いずれ信じた者に裏切られる日が来るであろうと。", "7+1D6×1D6"],
|
1480
|
-
["謀略", "貴卿は騎士にあるまじき行いによって他を蹴落とし、叙勲を得た。その秘密を知る者はいない。今のところは。", "7+1D6×1D6"],
|
1481
|
-
["不吉な予言", "叙勲の折、賢者は貴卿に予言をした……大切な人を自らの手で殺めるだろうと。", "7+1D6×1D6"],
|
1482
|
-
["堕落の誘い", "その叙勲の折、貴卿の脳裏に堕落した己が現れた。そして、堕落すべしと囁きかけて来た。今も、時折。", "7+1D6×1D6"],
|
1483
|
-
["不相応", "他の従者はみんな優れた才能を持っていた。貴卿には何もない……なのに主は、なぜか貴卿を選んだ。", "10+2D6"],
|
1484
|
-
["矮小なる主", "叙勲と共にものの見方は変わる。叙勲後、主がくだらない存在と見えた。貴卿は主のもとを離れた。", "7+1D6×1D6"],
|
1485
|
-
["家庭あれど", "貴卿は人として家庭を築いていた。しかし、主より叙勲を受けられるならばと……貴卿は家庭を捨てたのだ。", "14+1D6×1D6"],
|
1486
|
-
["かき口説き", "貴卿は主を甘き言葉で口説き、心蕩かして叙勲を与えさせた。精神面において主はむしろ……貴卿なのだ。", "7+1D6×1D6"],
|
1487
|
-
["不安", "騎士とは何か。叙勲とは何か。騎士そのものとなった今も、貴卿は言い知れぬ不安を感じている……。", "10+1D6×1D6"],
|
1488
|
-
["忘却", "誰が貴卿を騎士にしたのか。正直わからない……気が付いたら騎士になっていたのだ。", "7+1D6×1D6"],
|
1489
|
-
["ある夜の寝室", "それは衝動的な行いだったのだろう。主はある夜、突如訪れ……あなたに口づけをし、叙勲を施したのだ。", "10+2D6"],
|
1490
|
-
["生存者", "堕落者、あるいは太陽の欠片の襲撃を受け、主の従者は全滅。貴卿のみが生き延び……叙勲を受けた。", "7+1D6×1D6"],
|
1491
|
-
["献身の誓い", "叙勲の折、貴卿は民を守り続けると誓った。貴卿は民の盾にして、数多の敵を退ける矛である。", "14+1D6×1D6"],
|
1492
|
-
["罪許されて", "貴卿は罪を犯した。罪人として処罰を受ける中、主は貴卿を認め叙勲すら与えてくれた。報わねばなるまい。", "10+2D6"],
|
1493
|
-
["守秘の誓い", "叙勲の折、貴卿は主から秘密を知らされた。そしてそれを決して他に漏らさぬ誓いを立てたのだ。", "7+1D6×1D6"],
|
1494
|
-
["勝者は一人", "その日、主の従者数多において武術の試合が行われた。貴卿は最後に勝ち残り、ついに叙勲を得たのだ。", "14+1D6×1D6"],
|
1495
|
-
["磨かれし技", "今まで一つの技を磨き、極め続けた。その愚直に磨かれた技が評価され、貴卿は叙勲を受けたのだ。", "18+1D6×1D6"],
|
1496
|
-
["武勲の予言", "叙勲の折、賢者は貴卿に予言をした……いずれ大乱が起こる中にて目覚ましき武勲を上げんと。", "10+2D6"],
|
1497
|
-
["癒えぬ傷痕", "貴卿の体には消えぬ傷痕が刻まれている。しかし、傷を受けてまで主を守った功こそ、貴卿を騎士にした。", "7+1D6×1D6"],
|
1498
|
-
["隆盛の予言", "叙勲の折、賢者は貴卿に予言をした……その名は財と誉れに包まれ安らかにあらんと。", "7+1D6×1D6"],
|
1499
|
-
["胆力", "貴卿は主と共に堕落者に襲われ……一歩も退かずあれば、その胆力を認められ叙勲を受けた。", "7+1D6×1D6"],
|
1500
|
-
["友情の予言", "叙勲の折、賢者は貴卿に予言をした……いずれ素晴らしき友を得んと。", "7+1D6×1D6"],
|
1501
|
-
["惜しまれり", "長く従者として生きる中、貴卿は老いた。しかし、老いてなお、主は貴卿を必要とした。それゆえの叙勲である。", "30+1D6×1D6"],
|
1502
|
-
["守護の誓い", "叙勲の折、ある人を、町を、国を守ると誓った。それを背に敵に立ち向かう限り、あなたは逃げ出したりしない。", "14+1D6×1D6"],
|
1503
|
-
["返しきれぬ恩", "あの日、貴卿は死んだ……。しかし貴卿は、主の叙勲により蘇った。主は罰を受けたが、それでも笑っていた。", "7+1D6×1D6"],
|
1504
|
-
["信仰の誓い", "叙勲の折、貴卿はドラクルへの篤き信仰を誓った。紅き月の下、貴卿の勝利はドラクルに捧げられよう。", "14+1D6×1D6"],
|
1505
|
-
["終わらじの恋", "騎士と互いに恋に落ちた。甘く狂おしい時間、移ろいゆく時。貴卿は恋人の手で叙勲を受け、騎士となった。", "10+2D6"],
|
1506
|
-
["英雄の予言", "叙勲の折、賢者は貴卿に予言をした……恐るべき敵を打ち倒し、その名は諸国に響くであろうと。", "14+1D6×1D6"],
|
1507
|
-
["忠義の誓い", "叙勲の折、ある人に深き忠誠を誓った。たとえ世界を敵に回そうと、貴卿が裏切ることなどありはしない。", "14+1D6×1D6"],
|
1508
|
-
["生ける芸術", "叙勲により、貴卿の美貌はさらなる高みに上った。もはや貴卿を見て心奪われぬ者などいない。", "7+4D6"],
|
1509
|
-
["思わぬ武勲", "貴卿は従者の身ながら、思わぬ武勲を立てた。その功は叙勲を受けるに十分のものである。", "14+1D6×1D6"],
|
1510
|
-
["当主の寵愛", "貴卿は、公爵家当主その人の寵愛を得た。宮廷において、重き地位を得られるであろう。", "7+1D6×1D6"],
|
1511
|
-
["始祖の寵愛", "貴卿は、始祖その人の寵愛を得た。真祖ドラクルに最も近しい、誇るべき身の一人となったのだ。", "7+1D6×1D6"],
|
1512
|
-
]
|
1513
|
-
return table
|
1514
|
-
end
|
1515
|
-
|
1516
|
-
def getConfermentAfterTable
|
1517
|
-
table =
|
1518
|
-
[
|
1519
|
-
["滅亡", "貴卿の領地は敵に滅ぼされた。守るべき民は絶え、名誉は失われた。彼の者らを許すわけにはいかない。", "2D6×10"],
|
1520
|
-
["冤罪", "貴卿は身に覚えのない罪を背負っている。何者かの陰謀が貴卿を絡めとり、罪を負わせたのだ。", "1D6×1D6"],
|
1521
|
-
["呪い", "かつて貴卿は、妖精から呪いを受けた。呪いはゆっくりと貴卿を蝕み、その身に災いを招いている。", "1D6×1D6"],
|
1522
|
-
["血の昂ぶり", "戦った後は体が火照り昂ぶり、どうしようもなく疼く。堕落の日は遠くない……貴卿の中には確信がある。", "2D6×5"],
|
1523
|
-
["報復の序章", "かつて貴卿の名誉は友に裏切られ、奪われた。今や新たな道を歩んでいるが、復讐は今も忘れていない。", "2D6×10"],
|
1524
|
-
["仇敵", "忘れてはならぬ敵がいる。やつの胸を貫き、首を落とすまで、貴卿に安息の日は来ない。来ないのだ。", "1D6×1D6"],
|
1525
|
-
["堕落の共鳴", "貴卿の魂は堕ちかけているのだろうか。堕落した者たちがどうしようもなく近しく思えてしまうのだ。", "2D6×10"],
|
1526
|
-
["不徳の日々", "かつての貴卿は品行方正とは言い難い人物だった。心入れかえた貴卿だが、まだまだ世間の目は厳しい。", "1D6×5"],
|
1527
|
-
["主の堕落", "貴卿を叙勲した主が堕落した。主を誇って来た貴卿は、心ない他の騎士から、侮蔑や疑惑を受けがちだ。", "2D6×10"],
|
1528
|
-
["冥王の虜囚", "冥王の侵攻の中。貴卿は敗れ、一時なれど虜囚の辱めを受けた。奴らを許すわけにはいかない。", "2D6×3"],
|
1529
|
-
["近しき堕落", "貴卿の友や恋人が堕落した。それは決して拭えず、忘れられない。常に心に幽鬼の如く頭をもたげるのだ。", "1D6×1D6"],
|
1530
|
-
["修羅", "貴卿は戦い続けて来た。功を他に譲ってでも戦い、戦い、戦い続けて。戦うだけの存在となりつつある。", "1D6×1D6"],
|
1531
|
-
["空白", "騎士となってから、思い出せない時期がある。その間に何があったのか、貴卿には何もわからない。", "2D6×10"],
|
1532
|
-
["追跡", "堕落した友を捜している。彼の者が大切だからこそ、貴卿がケリをつけねばならないのだ。", "2D6×10"],
|
1533
|
-
["退屈", "変わらぬ日常。甲斐なき日々。仲間の武勲を聞き、貴卿は自らも勲を立てんと立ち上がった。", "2D6×20"],
|
1534
|
-
["失恋", "愛深きゆえに貴卿は愛を捨てた。……捨てきってはいないかもしれないが、捨てたと信じた。", "2D6×10"],
|
1535
|
-
["隠遁", "戦いに虚しさを感じたのはいつからか。勇猛な騎士だったあなただが、今は静かに隠者として暮らしている。", "2D6×20"],
|
1536
|
-
["謎の失踪", "貴卿の大切な人が突然、姿を消してしまった。攫われたのか、逃げたのか、それともまさか……。", "1D6×1D6"],
|
1537
|
-
["井の中の蛙", "己こそ最高の騎士と思っていた貴卿だが……彼の騎士を見て全ては崩れた。まだまだ修練が足りぬ。", "1D6×3"],
|
1538
|
-
["賢者の予言", "貴卿は予言に導かれている。貴卿は誰かと出会わねばならぬ。それは主君か友か恋人……あるいは敵か。", "1D6×1D6"],
|
1539
|
-
["浮名", "多くの恋を振りまく貴卿の名は宮廷では有名だ。敵も味方も、きっと抱えきれぬほどにいることだろう。", "1D6×5"],
|
1540
|
-
["見届け人", "民の移り変わる様をじっと眺めている。貴卿は目まぐるしく変わる彼らを眺めるのが好きなのだ。", "2D6×10"],
|
1541
|
-
["人捜し", "貴卿はその心を動かした人を捜している。人間だ。人は脆く移ろいやすい……早く見つけねば。", "1D6×1D6"],
|
1542
|
-
["深い寵愛", "貴卿は主より深い愛情を注がれ続けた。そのため叙勲は随分以前だが、騎士の活動は始めたばかりだ。", "2D6×10"],
|
1543
|
-
["血気盛ん", "貴卿は多くの騎士と立ち合い、自らの技と力を磨きたい。腕のある騎士を見れば、挑まずにいられぬ。", "2D6"],
|
1544
|
-
["啓蒙", "至高なる騎士と違い、世界は愚かで哀れな民で溢れている。騎士として彼らを導いてやらねばなるまい……。", "1D6×1D6"],
|
1545
|
-
["叙勲すべし", "必要な人がいる。彼の人を叙勲せねばならぬ。貴卿はそのため、功に焦り始めている。", "2D6"],
|
1546
|
-
["憂国の士", "貴卿は己が国の現状を憂う。宮廷の問題を正さねばならぬと、心に深く誓っている。", "1D6×1D6"],
|
1547
|
-
["叙勲与えり", "功少なくともそれなりの古株として、貴卿は己の従者を叙勲し、騎士に取り立てた経験がある。", "2D6×20"],
|
1548
|
-
["堕落の虜囚", "貴卿は一時、堕落者の虜囚となり、慰み者として日々を過ごしたことがある。屈辱であり汚名だ……。", "2D6×10"],
|
1549
|
-
["名勝負", "貴卿は己の意志を貫くため決闘し、勝利した。その決闘は、近隣でも噂の名勝負とされている。", "1D6×1D6"],
|
1550
|
-
["長き眠り", "貴卿はかつて太陽の欠片と戦い、体の多くを喪失して眠りについた……随分と長く寝ていたようだ。", "2D6×50"],
|
1551
|
-
["世界は広く", "騎士となって世界の広さを知った。可能な限り世界を知りたい……貴卿は広き世界を見聞せんとしている。", "2D6×10"],
|
1552
|
-
["王器", "叙勲以来、人をひれ伏させる圧倒的な魅力を得た。それはまさしく、支配者となるべく与えられた資質だ。", "1D6×1D6"],
|
1553
|
-
["高名", "数多の決闘や馬上試合で実力を示してきた。あなたは実力ある騎士として名を馳せている。", "2D6×5"],
|
1554
|
-
["伝説", "貴卿は未だ偉業わずかなれど、その逸話は伝説の域。すでに吟遊詩人らの歌にさえ歌われている。", "1D6×1D6"],
|
1555
|
-
]
|
1556
|
-
|
1557
|
-
return table
|
1558
281
|
end
|
1559
282
|
|
1560
|
-
|
1561
|
-
|
1562
|
-
|
1563
|
-
|
1564
|
-
|
1565
|
-
|
1566
|
-
|
1567
|
-
|
1568
|
-
|
1569
|
-
|
1570
|
-
|
1571
|
-
|
1572
|
-
|
1573
|
-
|
1574
|
-
|
1575
|
-
|
1576
|
-
|
1577
|
-
|
1578
|
-
|
1579
|
-
|
1580
|
-
|
1581
|
-
|
1582
|
-
|
1583
|
-
|
1584
|
-
|
1585
|
-
|
1586
|
-
|
1587
|
-
|
1588
|
-
|
1589
|
-
|
1590
|
-
|
1591
|
-
|
1592
|
-
|
1593
|
-
|
1594
|
-
|
1595
|
-
|
1596
|
-
|
1597
|
-
|
1598
|
-
|
1599
|
-
|
1600
|
-
|
1601
|
-
|
1602
|
-
|
1603
|
-
|
1604
|
-
|
1605
|
-
|
1606
|
-
|
1607
|
-
|
1608
|
-
|
1609
|
-
|
1610
|
-
|
1611
|
-
|
1612
|
-
|
1613
|
-
|
1614
|
-
|
1615
|
-
|
1616
|
-
|
1617
|
-
|
1618
|
-
|
1619
|
-
|
1620
|
-
|
1621
|
-
|
1622
|
-
|
1623
|
-
|
1624
|
-
|
1625
|
-
|
1626
|
-
|
1627
|
-
|
1628
|
-
|
1629
|
-
|
1630
|
-
|
1631
|
-
|
1632
|
-
|
1633
|
-
|
1634
|
-
|
1635
|
-
|
1636
|
-
|
1637
|
-
|
1638
|
-
|
1639
|
-
|
1640
|
-
|
1641
|
-
|
1642
|
-
|
1643
|
-
|
1644
|
-
|
1645
|
-
|
1646
|
-
|
1647
|
-
|
1648
|
-
|
1649
|
-
|
1650
|
-
|
1651
|
-
|
1652
|
-
|
1653
|
-
|
1654
|
-
|
1655
|
-
|
1656
|
-
|
1657
|
-
|
1658
|
-
|
1659
|
-
|
1660
|
-
|
1661
|
-
|
1662
|
-
|
1663
|
-
|
1664
|
-
|
1665
|
-
|
1666
|
-
|
1667
|
-
|
1668
|
-
|
1669
|
-
|
1670
|
-
|
1671
|
-
|
1672
|
-
|
1673
|
-
|
1674
|
-
|
1675
|
-
|
1676
|
-
|
1677
|
-
|
1678
|
-
|
1679
|
-
|
1680
|
-
|
1681
|
-
|
1682
|
-
|
1683
|
-
|
1684
|
-
|
1685
|
-
|
1686
|
-
|
1687
|
-
|
1688
|
-
|
1689
|
-
|
1690
|
-
|
1691
|
-
|
1692
|
-
|
1693
|
-
|
1694
|
-
|
1695
|
-
|
1696
|
-
|
1697
|
-
|
1698
|
-
|
1699
|
-
|
1700
|
-
|
1701
|
-
|
1702
|
-
|
1703
|
-
|
1704
|
-
|
1705
|
-
|
1706
|
-
|
1707
|
-
|
1708
|
-
|
1709
|
-
|
1710
|
-
|
1711
|
-
|
1712
|
-
|
1713
|
-
|
1714
|
-
|
1715
|
-
|
1716
|
-
|
1717
|
-
|
1718
|
-
|
1719
|
-
|
1720
|
-
|
1721
|
-
|
1722
|
-
|
1723
|
-
|
1724
|
-
|
1725
|
-
|
1726
|
-
|
1727
|
-
|
1728
|
-
|
1729
|
-
|
1730
|
-
|
283
|
+
class << self
|
284
|
+
private
|
285
|
+
|
286
|
+
def translate_tables(locale)
|
287
|
+
{
|
288
|
+
"CO" => YearTable.from_i18n(
|
289
|
+
"Dracurouge.table.CO",
|
290
|
+
locale,
|
291
|
+
[
|
292
|
+
"7+1D6×1D6",
|
293
|
+
"7+1D6×1D6",
|
294
|
+
"7+1D6×1D6",
|
295
|
+
"7+1D6×1D6",
|
296
|
+
"7+1D6×1D6",
|
297
|
+
"7+1D6×1D6",
|
298
|
+
"7+1D6×1D6",
|
299
|
+
"10+2D6",
|
300
|
+
"7+1D6×1D6",
|
301
|
+
"14+1D6×1D6",
|
302
|
+
"7+1D6×1D6",
|
303
|
+
"10+1D6×1D6",
|
304
|
+
"7+1D6×1D6",
|
305
|
+
"10+2D6",
|
306
|
+
"7+1D6×1D6",
|
307
|
+
"14+1D6×1D6",
|
308
|
+
"10+2D6",
|
309
|
+
"7+1D6×1D6",
|
310
|
+
"14+1D6×1D6",
|
311
|
+
"18+1D6×1D6",
|
312
|
+
"10+2D6",
|
313
|
+
"7+1D6×1D6",
|
314
|
+
"7+1D6×1D6",
|
315
|
+
"7+1D6×1D6",
|
316
|
+
"7+1D6×1D6",
|
317
|
+
"30+1D6×1D6",
|
318
|
+
"14+1D6×1D6",
|
319
|
+
"7+1D6×1D6",
|
320
|
+
"14+1D6×1D6",
|
321
|
+
"10+2D6",
|
322
|
+
"14+1D6×1D6",
|
323
|
+
"14+1D6×1D6",
|
324
|
+
"7+4D6",
|
325
|
+
"14+1D6×1D6",
|
326
|
+
"7+1D6×1D6",
|
327
|
+
"7+1D6×1D6",
|
328
|
+
]
|
329
|
+
),
|
330
|
+
"CA" => YearTable.from_i18n(
|
331
|
+
"Dracurouge.table.CA",
|
332
|
+
locale,
|
333
|
+
[
|
334
|
+
"2D6×10",
|
335
|
+
"1D6×1D6",
|
336
|
+
"1D6×1D6",
|
337
|
+
"2D6×5",
|
338
|
+
"2D6×10",
|
339
|
+
"1D6×1D6",
|
340
|
+
"2D6×10",
|
341
|
+
"1D6×5",
|
342
|
+
"2D6×10",
|
343
|
+
"2D6×3",
|
344
|
+
"1D6×1D6",
|
345
|
+
"1D6×1D6",
|
346
|
+
"2D6×10",
|
347
|
+
"2D6×10",
|
348
|
+
"2D6×20",
|
349
|
+
"2D6×10",
|
350
|
+
"2D6×20",
|
351
|
+
"1D6×1D6",
|
352
|
+
"1D6×3",
|
353
|
+
"1D6×1D6",
|
354
|
+
"1D6×5",
|
355
|
+
"2D6×10",
|
356
|
+
"1D6×1D6",
|
357
|
+
"2D6×10",
|
358
|
+
"2D6",
|
359
|
+
"1D6×1D6",
|
360
|
+
"2D6",
|
361
|
+
"1D6×1D6",
|
362
|
+
"2D6×20",
|
363
|
+
"2D6×10",
|
364
|
+
"1D6×1D6",
|
365
|
+
"2D6×50",
|
366
|
+
"2D6×10",
|
367
|
+
"1D6×1D6",
|
368
|
+
"2D6×5",
|
369
|
+
"1D6×1D6",
|
370
|
+
]
|
371
|
+
),
|
372
|
+
"EP" => YearTable.from_i18n(
|
373
|
+
"Dracurouge.table.EP",
|
374
|
+
locale,
|
375
|
+
[
|
376
|
+
"1D66+1300",
|
377
|
+
"1D666",
|
378
|
+
"1D666",
|
379
|
+
"1D666",
|
380
|
+
"1D66+1250",
|
381
|
+
"1D666",
|
382
|
+
"3D6×100",
|
383
|
+
"2D6×100",
|
384
|
+
"1D66+1210",
|
385
|
+
"1D666",
|
386
|
+
"2D6×100",
|
387
|
+
"3D6×100",
|
388
|
+
"1D66+1300",
|
389
|
+
"2D6×100",
|
390
|
+
"1D6+1250",
|
391
|
+
"1D666",
|
392
|
+
"1D666",
|
393
|
+
"1D666",
|
394
|
+
"1D66+1250",
|
395
|
+
"2D6×100",
|
396
|
+
"1D666",
|
397
|
+
"3D6×100",
|
398
|
+
"2D6×100",
|
399
|
+
"2D6×100",
|
400
|
+
"1D6×150",
|
401
|
+
"2D6×100",
|
402
|
+
"1D66+1250",
|
403
|
+
"1D66+400",
|
404
|
+
"1212",
|
405
|
+
"2D6×100",
|
406
|
+
"2D6×100",
|
407
|
+
"1D66×10",
|
408
|
+
"3D6×100",
|
409
|
+
"3D6×100",
|
410
|
+
"1D66+1300",
|
411
|
+
"1D66+1833",
|
412
|
+
]
|
413
|
+
),
|
414
|
+
"OS" => YearTable.from_i18n(
|
415
|
+
"Dracurouge.table.OS",
|
416
|
+
locale,
|
417
|
+
[
|
418
|
+
"7+1D6×1D6",
|
419
|
+
"7+1D6×1D6",
|
420
|
+
"7+1D6×1D6",
|
421
|
+
"7+1D6×1D6",
|
422
|
+
"7+1D6×1D6",
|
423
|
+
"7+1D6×1D6",
|
424
|
+
"7+1D6×1D6",
|
425
|
+
"7+1D6×1D6",
|
426
|
+
"7+1D6×1D6",
|
427
|
+
"13+1D6×1D6",
|
428
|
+
"7+1D6×1D6",
|
429
|
+
"13+1D6×1D6",
|
430
|
+
"7+1D6×1D6",
|
431
|
+
"13+1D6×1D6",
|
432
|
+
"13+1D6×1D6",
|
433
|
+
"13+1D6×1D6",
|
434
|
+
"7+1D6×1D6",
|
435
|
+
"7+1D6×1D6",
|
436
|
+
"10+1D6×1D6",
|
437
|
+
"7+1D6×1D6",
|
438
|
+
"15+1D6×1D6",
|
439
|
+
"6+2D6",
|
440
|
+
"7+1D6×1D6",
|
441
|
+
"7+1D6×1D6",
|
442
|
+
"13+1D6×1D6",
|
443
|
+
"35+1D6×1D6",
|
444
|
+
"9+2D6",
|
445
|
+
"13+1D6×1D6",
|
446
|
+
"9+2D6",
|
447
|
+
"6+2D6",
|
448
|
+
"7+1D6×1D6",
|
449
|
+
"7+2D6",
|
450
|
+
"7+1D6×1D5",
|
451
|
+
"7+1D6×1D6",
|
452
|
+
"13+1D6×1D6",
|
453
|
+
"7+1D6×1D6",
|
454
|
+
]
|
455
|
+
),
|
456
|
+
"RS" => YearTable.from_i18n(
|
457
|
+
"Dracurouge.table.RS",
|
458
|
+
locale,
|
459
|
+
[
|
460
|
+
"2D6×10",
|
461
|
+
"1D6×1D6",
|
462
|
+
"1D6×1D6",
|
463
|
+
"1D6×1D6",
|
464
|
+
"3D6×30",
|
465
|
+
"3D6×30",
|
466
|
+
"2D6×10",
|
467
|
+
"2D6×10",
|
468
|
+
"2D6×10",
|
469
|
+
"2D6×10",
|
470
|
+
"2D6×20",
|
471
|
+
"1D6×1D6",
|
472
|
+
"1D6×1D6",
|
473
|
+
"1D6×1D6",
|
474
|
+
"1",
|
475
|
+
"2D6×10",
|
476
|
+
"2D6×20",
|
477
|
+
"1D6×1D6",
|
478
|
+
"1D6×1D6",
|
479
|
+
"3D6×30",
|
480
|
+
"3D6×20",
|
481
|
+
"1D6×1D6",
|
482
|
+
"3D6×30",
|
483
|
+
"3D6×20",
|
484
|
+
"1D6×1D6",
|
485
|
+
"1D6×1D6",
|
486
|
+
"1D6×1D6",
|
487
|
+
"1D6×1D6",
|
488
|
+
"1D6×10",
|
489
|
+
"2D6×10",
|
490
|
+
"3D6×50",
|
491
|
+
"1D6×1D6",
|
492
|
+
"3D6×20",
|
493
|
+
"2D6×10",
|
494
|
+
"1D6×1D6",
|
495
|
+
"3D6×50",
|
496
|
+
]
|
497
|
+
),
|
498
|
+
"PP" => YearTable.from_i18n(
|
499
|
+
"Dracurouge.table.PP",
|
500
|
+
locale,
|
501
|
+
[
|
502
|
+
"8+2D6",
|
503
|
+
"6+2D6",
|
504
|
+
"7+1D6×1D6",
|
505
|
+
"15+1D6×1D6",
|
506
|
+
"7+1D6×1D6",
|
507
|
+
"7+1D6×1D6",
|
508
|
+
"7+1D6×1D6",
|
509
|
+
"7+1D6×1D6",
|
510
|
+
"7+1D6×1D6",
|
511
|
+
"7+1D6×1D6",
|
512
|
+
"7+1D6×1D6",
|
513
|
+
"7+1D6×1D6",
|
514
|
+
"6+2D6",
|
515
|
+
"7+1D6×1D6",
|
516
|
+
"9+2D6",
|
517
|
+
"15+1D6×1D6",
|
518
|
+
"9+3D6",
|
519
|
+
"7+1D6×1D6",
|
520
|
+
"10+1D6×1D6",
|
521
|
+
"9+2D6",
|
522
|
+
"9+2D6",
|
523
|
+
"9+3D6",
|
524
|
+
"6+2D6",
|
525
|
+
"7+1D6×1D6",
|
526
|
+
"7+1D6×1D6",
|
527
|
+
"7+1D6×1D6",
|
528
|
+
"6+2D6",
|
529
|
+
"10+1D6×1D6",
|
530
|
+
"7+1D6×1D6",
|
531
|
+
"12+1D6×1D6",
|
532
|
+
"15+1D6×1D6",
|
533
|
+
"9+3D6",
|
534
|
+
"7+1D6×1D6",
|
535
|
+
"7+1D6×1D6",
|
536
|
+
"7+1D6×1D6",
|
537
|
+
"12+4D6",
|
538
|
+
]
|
539
|
+
),
|
540
|
+
"ST" => DiceTable::D66Table.from_i18n("Dracurouge.table.ST", locale),
|
541
|
+
"PN" => DiceTable::D66Table.from_i18n("Dracurouge.table.PN", locale),
|
542
|
+
"CS" => DiceTable::Table.from_i18n("Dracurouge.table.CS", locale),
|
543
|
+
"ECS" => DiceTable::D66Table.from_i18n("Dracurouge.table.ECS", locale),
|
544
|
+
"BT" => DiceTable::Table.from_i18n("Dracurouge.table.BT", locale),
|
545
|
+
}
|
546
|
+
end
|
1731
547
|
end
|
1732
548
|
|
1733
|
-
|
1734
|
-
table =
|
1735
|
-
[
|
1736
|
-
["乱暴者", "短気で、気性が荒く、ついつい手が出て乱暴を働いてしまう。故郷での評判はあまりよくない。今はどうだろう?", "8+2D6"],
|
1737
|
-
["孤児", "親兄弟もなく、ただ一人で知恵を働かせて生きて来た。自由だが、厳しい環境の中で御身の魂は磨かれてきたのだ。", "6+2D6"],
|
1738
|
-
["絶対の恐怖", "ある生き物が、どうしようもなく恐い。とにかく生理的に無理。それを見れば御身は無様に飛び上がり逃げまどう。", "7+1D6×1D6"],
|
1739
|
-
["酒乱", "昔から酒に酔うと、どうにもろくなことをしない。民でなくなった今、酒には酔わないはずだが……。", "15+1D6×1D6"],
|
1740
|
-
["怠け者", "才能はあっても、動くのはどうにも億劫で。いつも、どうにかしてラクに過ごそうと、そればかり考えていた。", "7+1D6×1D6"],
|
1741
|
-
["内気", "臆病で人見知りする性格。人との交流も苦手。付き合いは深く狭く。そんな御身でも縁はあるもので……。", "7+1D6×1D6"],
|
1742
|
-
["血気盛ん", "性急に過ぎると、古くから言われていた。しかし年を経ても、気質は直らぬ。御身の心は今も若く、未熟だ。", "7+1D6×1D6"],
|
1743
|
-
["幼馴染", "とても仲のいい幼馴染がおり、将来について語り合っていた。今、彼の人はどうしていることだろうか。", "7+1D6×1D6"],
|
1744
|
-
["忘れざる味", "御身には、どうしても忘れがたい大好物がある。民でなくなった今も、それを夢中で口にしてしまうだろう。", "7+1D6×1D6"],
|
1745
|
-
["朴念仁", "かつて多数の異性から想いを向けられたが、御身は気づかなかった。最近ふと思い出し、気づいたのだ。", "7+1D6×1D6"],
|
1746
|
-
["ある別れ", "親友や家族が、騎士または異端となり……故郷を離れた。しかし、同じ時を生きる今なら、きっと会 えるはずだ。", "7+1D6×1D6"],
|
1747
|
-
["本の虫", "静かに本を読むのが好きだ。本の中の世界、己の世界に没頭したい。外で駆けまわるのは苦手なのだ。", "7+1D6×1D6"],
|
1748
|
-
["はねっかえり", "どうにも人の言葉を、素直に聞けない。ついつい反抗しては周りに迷惑をかけてしまう。時を経た今も変わらず。", "6+2D6"],
|
1749
|
-
["お調子者", "あれこれと失敗しているのに、ついつい調子に乗ってしまう。勢いのままに、無謀な行動をしてしまいがちだ。", "7+1D6×1D6"],
|
1750
|
-
["好奇心", "気を引くものがあれば、目を向ける。秘密とあれば暴かずにいられない。知らぬままでは、済ませられぬのだ。", "9+2D6"],
|
1751
|
-
["説教癖", "何かと人の所作が気になり、つい人にうるさく言ってしまう。己自身にも厳しくあろうとしているのだが……。", "15+1D6×1D6"],
|
1752
|
-
["腕自慢", "恵まれた体躯と身体能力で、故郷において並ぶものなき腕自慢、力自慢だった。無論、民としては……だが。", "9+3D6"],
|
1753
|
-
["自然の中で", "故郷が僻地にあったのか。それとも野に暮らしていたのか。御身は自然に溶け込み、自然をよく知っている。", "7+1D6×1D6"],
|
1754
|
-
["旅人", "様々な村や街を行き来する旅人だった。流浪の異端や、遍歴の騎士にも、それなりの知り合いがいる。", "10+1D6×1D6"],
|
1755
|
-
["自由に焦がれ", "平凡な日々への反発。己という枠を超えて、異端になってしまえば、きっと自由になれると思った。", "9+2D6"],
|
1756
|
-
["叶わぬ初恋", "ある民に恋をした。恋は叶わず、彼の人は御身の前から姿を消した。けれど、あの笑顔は、今も御身を力づける。", "9+2D6"],
|
1757
|
-
["奇妙な初恋", "一人の異端と出会い、その美しさに恋をした。彼の人を求め、すべてを打ち捨て……同じ時を生きる身となった", "9+3D6"],
|
1758
|
-
["移り気", "どうにも目先のものに気をとられがちだ。落ち着いてものごとを考えられない。年経ても変わらぬ性分だ。", "6+2D6"],
|
1759
|
-
["鳥獣の友", "鳥や獣の意思がなんとなくわかる。御身は彼らの友であり、様々な場で助けられ、また助けてもきた。", "7+1D6×1D6"],
|
1760
|
-
["妖精の友", "妖精を引き寄せる、奇妙な魅力を持って生まれた。幼き頃より、御身は妖精や獣の友である。", "7+1D6×1D6"],
|
1761
|
-
["おせっかい", "周りの人が気になって仕方がない。困っている人には、迷惑がられても口出ししてしまう性分なのだ。", "7+1D6×1D6"],
|
1762
|
-
["無垢なる魂", "浮世の邪念から余りに遠く生きて来たがゆえに、御身の魂はどこまでも穢れなく美しい。そして脆い。", "6+2D6"],
|
1763
|
-
["修道僧", "真祖の拝殿にて、僧正に仕える修道僧だった。もっとも、異端審問のような視野の狭い考えは持っていない。", "10+1D6×1D6"],
|
1764
|
-
["平穏", "御身は家族に囲まれ、愛情に満ちた生活を送っていた。平凡な生活、平凡な日々。とても、とても幸せだった。", "7+1D6×1D6"],
|
1765
|
-
["働き者", "故郷では評判の働き者。誠実な人柄でも知られていた。その気質は今も変わらず、余裕を持って行動できない。", "12+1D6×1D6"],
|
1766
|
-
["熟練者", "ある専門技術について、天才的な能力を持っている。故郷の領主も、御身の意見や技術を頼みとしたほどだ。", "15+1D6×1D6"],
|
1767
|
-
["熱愛", "とても深く、激しい、熱病のような恋をした。恋の炎は今も、御身の中でくすぶっている。決して消えてはいない。", "9+3D6"],
|
1768
|
-
["美貌", "誰もが羨み、振り返る美貌。その美貌は周囲に響き、また騎士すらも御身を賛美した。", "7+1D6×1D6"],
|
1769
|
-
["魔女の弟子", "故郷の近くに住む魔女にかわいがられていた。薬草や占い、異端について、御身は人よりよく知るだろう。", "7+1D6×1D6"],
|
1770
|
-
["騎士の友", "ある騎士によく寵愛を受けていた。否、立場の差を超えた、友情や親愛と言ってもいい対等の絆をつないだのだ。", "7+1D6×1D6"],
|
1771
|
-
["血統を遺す身", "伴侶を得て、子を為し、家庭を築いた。その血は、御身が民ならざる身となった今も脈絡と続いている。", "12+4D6"],
|
1772
|
-
]
|
1773
|
-
return table
|
1774
|
-
end
|
549
|
+
TABLES = translate_tables(:ja_jp)
|
1775
550
|
|
1776
|
-
TABLES
|
1777
|
-
{
|
1778
|
-
'CS' => {
|
1779
|
-
name: "堕落の兆し表",
|
1780
|
-
type: '2D6',
|
1781
|
-
table: [
|
1782
|
-
'あなたは完全に堕落した。この時点であなたは[壁の華]となり、人狼、黒山羊、夜獣卿のいずれかとなる。その[幕]の終了後にセッションから退場する。247ページの「消滅・完全なる堕落」も参照すること。',
|
1783
|
-
'獣そのものの頭(狼、山羊、蝙蝠のいずれか)',
|
1784
|
-
'夜鳥の翼',
|
1785
|
-
'コウモリの翼',
|
1786
|
-
'鉤爪ある異形の腕',
|
1787
|
-
'ねじれた二本角',
|
1788
|
-
'狼の耳と尾',
|
1789
|
-
'青ざめた肌',
|
1790
|
-
'異様な光を宿す目',
|
1791
|
-
'突き出した犬歯',
|
1792
|
-
'目に見える変化はない……'
|
1793
|
-
],
|
1794
|
-
},
|
1795
|
-
|
1796
|
-
'ECS' => {
|
1797
|
-
name: "拡張・堕落の兆し表",
|
1798
|
-
type: 'D66',
|
1799
|
-
table: [
|
1800
|
-
'完全なる堕落:あなたは〔壁の華〕となり、いずれかの堕落者となる。その〔幕〕の終了後にセッションから退場する。(基本247ページ参照)',
|
1801
|
-
'異様な体躯:体が膨れ上がったように、過剰なまでの筋肉を付け、体格も巨躯となる。堕落は近い。',
|
1802
|
-
'殺戮鬼:民に触れれば、もう貴卿は衝動を抑えきれない。引き裂き殺し、血を啜ってしまう。民に近づいてはならない……。',
|
1803
|
-
'獣頭:頭が狼や山羊、蝙蝠そのものとなる。遠目にもわかる異常であり、人狼と間違えられて討たれる騎士もいるという。',
|
1804
|
-
'原初の鎧:体の多くが硬い漆黒の塊となり、禍々しい怪物のような体となる。顔または顔の半分は、元の形を維持できるだろう。',
|
1805
|
-
'夜鳥の翼:背中に黒い鳥の翼が生える。ストリガともはや変わらず、貴卿は常に異端と並べ揶揄されるだろう。',
|
1806
|
-
'蝙蝠の翼:背中に蝙蝠の翼が生える。決して隠せず、限定的ながらも空を飛べる……毛の生えた黒い翼だ。',
|
1807
|
-
'割れた肌:全身の肌がひび割れる。中からじわりと紅い光が常に漏れる。姿が美しかろうと、その様子はもはや怪物だ。',
|
1808
|
-
'退廃の香り:甘く心蕩かす香りが体から発せられる。騎士ならばともかく、民には麻薬や媚薬のように作用するものだ。',
|
1809
|
-
'異形の腕:悪鬼を思わせる鉤爪を備えた腕。表面はタールのような漆黒の塊で覆われ……歪んだ凶悪な形をしている。',
|
1810
|
-
'鬼火を宿す目:目に鬼火が宿る。この異様な光は目から溢れ、炎となって常に揺らめいている。貴卿とまともに向き合う者はもういない。',
|
1811
|
-
'悪の棘:肘や膝、拳、額、あるいはより思わぬところから、黒か赤の鋭い棘が生える。周囲の皮膚も硬質化を始める。',
|
1812
|
-
'異様なる刻印:顔を含めた全身の肌に、紅い光による異端の如き刻印が現れる。欲望の性質によって、刻印の様相は常に変わる。',
|
1813
|
-
'毒蛇:肩からか、あるいは尾のように、禍々しい毒蛇が生える。袖や裾から見せれば具現化させた使役獣に見えなくもないが……。',
|
1814
|
-
'第三の目:貴卿の額に、第三の目が開く。髪やフードで隠せなくもないが……隠し通すのは難しいだろう。',
|
1815
|
-
'拡がる鱗:貴卿の体のそこかしこが鱗に覆われ始める。ゆっくりと拡がるそれは、やがて隠しきれなくなるだろう。',
|
1816
|
-
'獣の唸り:貴卿の内から、獣の唸り声が聞こえるようになる。やがては獣臭も漂い始めるだろう。内は既に獣となりつつある。',
|
1817
|
-
'変身:なぜこのような……貴卿は性別、外見年齢、体格のいずれか、時にはすべてが大きく変わってしまう。',
|
1818
|
-
'山羊の角:頭から二本の、ねじれた長い山羊角が生えてくる。この角は、具現化などによって隠したりはできない。',
|
1819
|
-
'牙の咢:歯が全て犬歯となり、口自体も大きく開くようになる。笑顔も、威嚇しているかのように見えるだろう。',
|
1820
|
-
'竜の翼:背中に鱗で覆われた頑強な翼が生える。滑空程度はできるだろう。幸いにも竜翼は……吉兆と見る騎士も多い。',
|
1821
|
-
'山羊の脚:衣装で何とか隠せるのが救いだが……その脚は黒山羊のものとなってしまった。見た者は嫌悪に眉をひそめるだろう。',
|
1822
|
-
'狼の耳と尾:貴卿の頭に狼の耳が、尻に狼の尾が現れる。これらは獣のように、貴卿の感情に合わせて動く。',
|
1823
|
-
'闇溢れの目:目の、白目が黒くなる。さらに目からは闇がにじみ出しあふれ、黒い炎の如く揺らめく。',
|
1824
|
-
'青ざめた肌:死体のように冷たく、また異様に青ざめた肌となる。一見して貴卿の堕落は明らかだ。',
|
1825
|
-
'発作的変身:【渇き】が増えるごとに貴卿の姿は一瞬だけ、特定の堕落者の姿に変身してしまう。おぞましき末路の暗示なのだ。',
|
1826
|
-
'具現化不安定:具現化が不安定となる。貴卿が具現化するものは全て歪み、優雅さを失った異形となるだろう。',
|
1827
|
-
'異様に光る眼:目が鬼火のように光っている。それは闇におぞましい尾を引いて、無意識の内に獲物を狙うだろう。',
|
1828
|
-
'目立つ犬歯:八重歯と言うには長く、鋭すぎる犬歯。口づけの折、ともすれば相手の肌を傷つけてしまいそうになる……。',
|
1829
|
-
'魔女爪:手足の爪が、異様な鉤爪となる。具現化でごまかすこともできない……籠手などを常に着けておけば可能だろうか。',
|
1830
|
-
'加減困難:貴卿の力は制御が難しくなる。ふとした拍子に、家具を壊したり民を傷つけてしまうだろう。',
|
1831
|
-
'長い舌:貴卿の舌は、己の目まで届くほどに長くなる。幸いにも伸ばして見せない限りは、外部からわかるまいが……。',
|
1832
|
-
'不埒な口づけ:口づけのごとに、貴卿を異様な劣情が襲う。その作法は浅ましく、淫らがましいものとなってしまうだろう。',
|
1833
|
-
'堕落の影:紅い月光が照らす貴卿の影は、もはや堕落者のものだ。初対面ならともかく、長く気づかれずには……いられまい。',
|
1834
|
-
'月光欲:屋根があると不快感を感じる。なるべく月光を浴びられる場所でいたい。宮廷でも庭園やバルコニーを好むだろう。',
|
1835
|
-
'幸運:自覚するような兆しはないようだが……己を戒めねばなるまい。貴卿は今や堕落の瀬戸際にいると自覚せよ。'
|
1836
|
-
],
|
1837
|
-
},
|
1838
|
-
|
1839
|
-
'BT' => {
|
1840
|
-
name: "絆内容決定表:ルージュ/ノワール",
|
1841
|
-
type: '1D6',
|
1842
|
-
table: [
|
1843
|
-
'憐(Pity) 相手を憐れみ、慈しむ。/侮(Contempt) 相手を侮り、軽蔑する。',
|
1844
|
-
'友(Friend) 相手に友情を持つ。/妬(Jealousy) 相手を羨望し、妬む。',
|
1845
|
-
'信(Trust) 相手を信頼する。/欲(Desire) 相手を欲し、我がものにしたいと思う。',
|
1846
|
-
'恋(Love) 相手に恋し、愛する。/怒(Anger) 相手に怒りを感じる。',
|
1847
|
-
'敬(Respect) 相手の実力や精神を敬う。/殺(Kill) 相手に殺意を持ち、滅ぼそうと思う。',
|
1848
|
-
'主(Obey) 相手を主と仰ぎ、忠誠を誓う。/仇(Vendetta) 相手を怨み、仇と狙う。'
|
1849
|
-
],
|
1850
|
-
},
|
1851
|
-
}.freeze
|
1852
|
-
|
1853
|
-
register_prefix(['DR.*', 'RT.*', 'HRT.*', 'CT\d+', "ST", "CO", "CA", "EP", "OS", "PN", "RS", "PP"] + TABLES.keys)
|
551
|
+
register_prefix('DR', 'RT', 'HRT', 'CT\d+', TABLES.keys)
|
1854
552
|
end
|
1855
553
|
end
|
1856
554
|
end
|