bcdice 3.13.0 → 3.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +104 -0
- data/i18n/Arianrhod/ko_kr.yml +3 -0
- data/i18n/Cthulhu/en_us.yml +11 -0
- data/i18n/Cthulhu/zh_hant.yml +1 -1
- data/i18n/CyberpunkRed/ja_jp.yml +389 -0
- data/i18n/CyberpunkRed/ko_kr.yml +389 -0
- data/i18n/DoubleCross/ja_jp.yml +53 -0
- data/i18n/DoubleCross/ko_kr.yml +52 -0
- data/i18n/FinalFantasyXIV/en_us.yml +4 -0
- data/i18n/FinalFantasyXIV/ja_jp.yml +4 -0
- data/i18n/FutariSousa/ja_jp.yml +284 -127
- data/i18n/KillDeathBusiness/ja_jp.yml +198 -0
- data/i18n/KizunaBullet/ja_jp.yml +653 -0
- data/i18n/MagicaLogia/ko_kr.yml +2 -2
- data/i18n/MonotoneMuseum/ja_jp.yml +246 -14
- data/i18n/MonotoneMuseum/ko_kr.yml +227 -0
- data/i18n/SkynautsBouken/ja_jp.yml +114 -0
- data/i18n/SkynautsBouken/ko_kr.yml +114 -0
- data/i18n/StratoShout/ko_kr.yml +102 -102
- data/i18n/TensaiGunshiNiNaro/ja_jp.yml +126 -0
- data/i18n/UnsungDuet/ja_jp.yml +62 -0
- data/i18n/UnsungDuet/ko_kr.yml +62 -0
- data/i18n/en_us.yml +5 -0
- data/i18n/zh_hant.yml +5 -0
- data/lib/bcdice/dice_table/range_table.rb +24 -0
- data/lib/bcdice/game_system/Agnostos.rb +248 -0
- data/lib/bcdice/game_system/Aionia.rb +131 -0
- data/lib/bcdice/game_system/AniMalus.rb +99 -59
- data/lib/bcdice/game_system/Arianrhod_Korean.rb +32 -0
- data/lib/bcdice/game_system/ArknightsFan.rb +245 -87
- data/lib/bcdice/game_system/BlackJacket.rb +244 -0
- data/lib/bcdice/game_system/BlackJacket_Korean.rb +244 -0
- data/lib/bcdice/game_system/CharonSanctions.rb +112 -0
- data/lib/bcdice/game_system/ConvictorDrive.rb +5 -4
- data/lib/bcdice/game_system/Cthulhu7th.rb +1 -1
- data/lib/bcdice/game_system/Cthulhu7th_ChineseTraditional/full_auto.rb +293 -0
- data/lib/bcdice/game_system/Cthulhu7th_ChineseTraditional/rollable.rb +43 -0
- data/lib/bcdice/game_system/Cthulhu7th_ChineseTraditional.rb +470 -306
- data/lib/bcdice/game_system/Cthulhu_English.rb +59 -0
- data/lib/bcdice/game_system/CyberpunkRed.rb +15 -6
- data/lib/bcdice/game_system/CyberpunkRed_Korean.rb +66 -0
- data/lib/bcdice/game_system/DivineCharger.rb +841 -0
- data/lib/bcdice/game_system/DoubleCross.rb +18 -1
- data/lib/bcdice/game_system/DoubleCross_Korean.rb +5 -1
- data/lib/bcdice/game_system/FinalFantasyXIV.rb +115 -0
- data/lib/bcdice/game_system/FinalFantasyXIV_English.rb +39 -0
- data/lib/bcdice/game_system/FullFace.rb +63 -12
- data/lib/bcdice/game_system/FutariSousa.rb +105 -13
- data/lib/bcdice/game_system/Garactier.rb +479 -0
- data/lib/bcdice/game_system/GardenOrder.rb +390 -9
- data/lib/bcdice/game_system/GundogRevised.rb +8 -8
- data/lib/bcdice/game_system/Insane_Korean.rb +1 -1
- data/lib/bcdice/game_system/InvisibleLiar.rb +79 -0
- data/lib/bcdice/game_system/KillDeathBusiness.rb +155 -3
- data/lib/bcdice/game_system/KimitoYell.rb +568 -0
- data/lib/bcdice/game_system/KizunaBullet.rb +240 -0
- data/lib/bcdice/game_system/KyokoShinshoku.rb +51 -8
- data/lib/bcdice/game_system/Magius.rb +125 -0
- data/lib/bcdice/game_system/Magius_3rdNewTokyoCity.rb +62 -0
- data/lib/bcdice/game_system/MonotoneMuseum.rb +14 -1
- data/lib/bcdice/game_system/MonotoneMuseum_Korean.rb +4 -4
- data/lib/bcdice/game_system/NRR.rb +2 -2
- data/lib/bcdice/game_system/NSSQ.rb +17 -9
- data/lib/bcdice/game_system/NervWhitePaper.rb +129 -0
- data/lib/bcdice/game_system/RogueLikeHalf.rb +198 -0
- data/lib/bcdice/game_system/RuneQuestRoleplayingInGlorantha.rb +16 -13
- data/lib/bcdice/game_system/ShinobiGami.rb +73 -43
- data/lib/bcdice/game_system/ShuumatsuBargainWars.rb +203 -0
- data/lib/bcdice/game_system/SkynautsBouken.rb +49 -134
- data/lib/bcdice/game_system/SkynautsBouken_Korean.rb +57 -0
- data/lib/bcdice/game_system/StratoShout_Korean.rb +1 -1
- data/lib/bcdice/game_system/SwordWorld.rb +5 -1
- data/lib/bcdice/game_system/SwordWorld2_5.rb +3 -2
- data/lib/bcdice/game_system/TensaiGunshiNiNaro.rb +262 -0
- data/lib/bcdice/game_system/TheIndieHack.rb +82 -0
- data/lib/bcdice/game_system/TheOneRing2nd.rb +406 -0
- data/lib/bcdice/game_system/TheUnofficialHollowKnightRPG.rb +185 -0
- data/lib/bcdice/game_system/TorgEternity.rb +35 -6
- data/lib/bcdice/game_system/TrailOfCthulhu.rb +139 -0
- data/lib/bcdice/game_system/UnsungDuet.rb +17 -75
- data/lib/bcdice/game_system/UnsungDuet_Korean.rb +41 -0
- data/lib/bcdice/game_system/Utakaze.rb +55 -2
- data/lib/bcdice/game_system/Warhammer4.rb +124 -3
- data/lib/bcdice/game_system/WoW.rb +161 -0
- data/lib/bcdice/game_system/YankeeMustDie.rb +192 -0
- data/lib/bcdice/game_system/YearZeroEngine.rb +225 -28
- data/lib/bcdice/game_system/Yotabana.rb +62 -0
- data/lib/bcdice/game_system/YuMyoKishi.rb +141 -0
- data/lib/bcdice/game_system/cyberpunk_red/tables.rb +111 -473
- data/lib/bcdice/game_system/kizuna_bullet/tables.rb +171 -0
- data/lib/bcdice/game_system/sword_world/rating_lexer.rb +1 -0
- data/lib/bcdice/game_system/sword_world/rating_options.rb +4 -1
- data/lib/bcdice/game_system/sword_world/rating_parsed.rb +5 -0
- data/lib/bcdice/game_system/sword_world/rating_parser.rb +129 -115
- data/lib/bcdice/game_system.rb +31 -0
- data/lib/bcdice/version.rb +1 -1
- metadata +50 -6
@@ -1,5 +1,8 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require "bcdice/game_system/Cthulhu7th_ChineseTraditional/rollable"
|
4
|
+
require "bcdice/game_system/Cthulhu7th_ChineseTraditional/full_auto"
|
5
|
+
|
3
6
|
module BCDice
|
4
7
|
module GameSystem
|
5
8
|
class Cthulhu7th_ChineseTraditional < Base
|
@@ -14,373 +17,534 @@ module BCDice
|
|
14
17
|
|
15
18
|
# ダイスボットの使い方
|
16
19
|
HELP_MESSAGE = <<~INFO_MESSAGE_TEXT
|
17
|
-
・判定
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
20
|
+
・判定 CC(x)<=(目標值)
|
21
|
+
x:獎勵或懲罰骰,可以省略。
|
22
|
+
即使沒有目標值,也會顯示1D100。
|
23
|
+
自動判定:大失敗/失敗/成功/一般成功/困難成功/極限成功/大成功。
|
24
|
+
例)CC<=30,CC2<=50,CC(+2)<=50,CC(-1)<=75,CC-1<=50,CC1<=65,CC+1<=65,CC
|
25
|
+
|
26
|
+
・技能擲骰的難度指定 CC(x)<=(目標值)(難度)
|
27
|
+
透過指定難度,大失敗/成功/失敗/大成功/失敗將自動判定。
|
28
|
+
指定難度:
|
29
|
+
r:常規,h:困難,e:極限,c:大成功
|
30
|
+
例)CC<=70r,CC1<=60h,CC-2<=50e,CC2<=99c
|
31
|
+
|
32
|
+
・組合判定 (CBR(x,y))
|
33
|
+
對於目標值 x 和 y 進行百分比擲骰並判定成敗。
|
34
|
+
例)CBR(50,20)
|
35
|
+
|
36
|
+
・機關槍的射擊判定 FAR(w,x,y,z,d,v)
|
37
|
+
w:子彈數量(1~100), x:技能值(1~100), y:故障值,
|
38
|
+
z:獎勵或懲罰骰(-2~2),可以省略。
|
39
|
+
d:指定難度以結束連射(常規:r,困難:h,極限:e),可以省略。
|
40
|
+
v:更改彈藥的數量,可以省略。
|
41
|
+
只計算命中數和貫通數,剩餘彈藥數。傷害計算不包括在內。
|
42
|
+
例)FAR(25,70,98), FAR(50,80,98,-1), far(30,70,99,1,R)
|
43
|
+
far(25,88,96,2,h,5), FaR(40,77,100,,e,4), fAr(20,47,100,,,3)
|
44
|
+
|
45
|
+
・各種表
|
46
|
+
【狂氣相關】
|
47
|
+
・即時型瘋狂檢定(Bouts of Madness Real Time) CCRT
|
48
|
+
・總結型瘋狂檢定(Bouts of Madness Summary) CCSU
|
49
|
+
・恐懼症表(Sample Phobias) CCPH/狂熱症表(Sample Manias) CCMA
|
50
|
+
【魔術相關】
|
51
|
+
・推骰時施法失敗擲骰表(Casting Roll)
|
52
|
+
弱小咒語的情況 CCCL/強力咒語的情況 CCPC
|
36
53
|
INFO_MESSAGE_TEXT
|
37
54
|
|
38
|
-
register_prefix('CC', 'CBR', 'FAR')
|
39
|
-
|
40
|
-
def initialize(command)
|
41
|
-
super(command)
|
42
|
-
|
43
|
-
@bonus_dice_range = (-2..2)
|
44
|
-
end
|
55
|
+
register_prefix('CC', 'CBR', 'FAR', 'CCRT', 'CCSU', 'CCCL', 'CCPC', 'CCPH', 'CCMA')
|
45
56
|
|
46
57
|
def eval_game_system_specific_command(command)
|
47
58
|
case command
|
48
|
-
when /
|
49
|
-
|
50
|
-
when /
|
51
|
-
|
52
|
-
when
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
unless @bonus_dice_range.include?(bonus_dice_count)
|
67
|
-
return "錯誤。獎勵、懲罰骰値為#{@bonus_dice_range.min}~#{@bonus_dice_range.max}。"
|
68
|
-
end
|
69
|
-
|
70
|
-
output = ""
|
71
|
-
output += "(1D100<=#{diff})"
|
72
|
-
output += " 獎勵、懲罰骰値[#{bonus_dice_count}]"
|
73
|
-
|
74
|
-
units_digit = rollPercentD10
|
75
|
-
total_list = getTotalLists(bonus_dice_count, units_digit)
|
76
|
-
|
77
|
-
total = getTotal(total_list, bonus_dice_count)
|
78
|
-
result_text = getCheckResultText(total, diff)
|
79
|
-
|
80
|
-
output += " > #{total_list.join(', ')} > #{total} > #{result_text}"
|
81
|
-
|
82
|
-
return output
|
83
|
-
end
|
84
|
-
|
85
|
-
def rollPercentD10
|
86
|
-
dice = @randomizer.roll_once(10)
|
87
|
-
dice = 0 if dice == 10
|
88
|
-
|
89
|
-
return dice
|
90
|
-
end
|
91
|
-
|
92
|
-
def getTotalLists(bonus_dice_count, units_digit)
|
93
|
-
total_list = []
|
94
|
-
|
95
|
-
tens_digit_count = 1 + bonus_dice_count.abs
|
96
|
-
tens_digit_count.times do
|
97
|
-
bonus = rollPercentD10
|
98
|
-
total = (bonus * 10) + units_digit
|
99
|
-
total = 100 if total == 0
|
100
|
-
|
101
|
-
total_list.push(total)
|
59
|
+
when /^CBR/i
|
60
|
+
combine_roll(command)
|
61
|
+
when /^FAR/i
|
62
|
+
getFullAutoResult(command)
|
63
|
+
when "CCRT" # 狂氣の發作(即時)
|
64
|
+
roll_CCRT_table()
|
65
|
+
when "CCSU" # 狂気の發作(總結型)
|
66
|
+
roll_CCSU_table()
|
67
|
+
when "CCCL" # キャスティング・ロールのプッシュに失敗した場合(小)
|
68
|
+
roll_1d8_table("推骰時施法失敗擲骰表(小)", FAILED_CASTING_L_TABLE)
|
69
|
+
when "CCPC" # キャスティング・ロールのプッシュに失敗した場合(大)
|
70
|
+
roll_1d8_table("推骰時施法失敗擲骰表(大)", FAILED_CASTING_M_TABLE)
|
71
|
+
when "CCPH" # 恐懼症表
|
72
|
+
roll_1d100_table("恐懼症表", PHOBIAS_TABLE)
|
73
|
+
when "CCMA" # 狂熱症表
|
74
|
+
roll_1d100_table("狂熱症表", MANIAS_TABLE)
|
75
|
+
when /^CC/i
|
76
|
+
skill_roll(command)
|
102
77
|
end
|
103
|
-
|
104
|
-
return total_list
|
105
78
|
end
|
106
79
|
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
80
|
+
class ResultLevel
|
81
|
+
LEVEL = [
|
82
|
+
:fumble,
|
83
|
+
:failure,
|
84
|
+
:success,
|
85
|
+
:regular_success,
|
86
|
+
:hard_success,
|
87
|
+
:extreme_success,
|
88
|
+
:critical,
|
89
|
+
].freeze
|
90
|
+
|
91
|
+
LEVEL_TO_S = {
|
92
|
+
critical: "大成功",
|
93
|
+
extreme_success: "極限成功",
|
94
|
+
hard_success: "困難成功",
|
95
|
+
regular_success: "一般成功",
|
96
|
+
success: "成功",
|
97
|
+
fumble: "大失敗",
|
98
|
+
failure: "失敗",
|
99
|
+
}.freeze
|
100
|
+
|
101
|
+
def self.with_difficulty_level(total, difficulty)
|
102
|
+
fumble = difficulty < 50 ? 96 : 100
|
103
|
+
|
104
|
+
if total == 1
|
105
|
+
ResultLevel.new(:critical)
|
106
|
+
elsif total >= fumble
|
107
|
+
ResultLevel.new(:fumble)
|
108
|
+
elsif total <= difficulty
|
109
|
+
ResultLevel.new(:success)
|
129
110
|
else
|
130
|
-
|
111
|
+
ResultLevel.new(:failure)
|
131
112
|
end
|
132
113
|
end
|
133
114
|
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
successList = ["決定性的成功", "極限的成功", "困難的成功", "通常成功"]
|
149
|
-
|
150
|
-
succesCount = 0
|
151
|
-
succesCount += 1 if successList.include?(result_1)
|
152
|
-
succesCount += 1 if successList.include?(result_2)
|
153
|
-
debug("succesCount", succesCount)
|
154
|
-
|
155
|
-
rank =
|
156
|
-
if succesCount >= 2
|
157
|
-
"成功"
|
158
|
-
elsif succesCount == 1
|
159
|
-
"部分的成功"
|
115
|
+
def self.from_values(total, difficulty, fumbleable = false)
|
116
|
+
fumble = difficulty < 50 || fumbleable ? 96 : 100
|
117
|
+
|
118
|
+
if total == 1
|
119
|
+
ResultLevel.new(:critical)
|
120
|
+
elsif total >= fumble
|
121
|
+
ResultLevel.new(:fumble)
|
122
|
+
elsif total <= (difficulty / 5)
|
123
|
+
ResultLevel.new(:extreme_success)
|
124
|
+
elsif total <= (difficulty / 2)
|
125
|
+
ResultLevel.new(:hard_success)
|
126
|
+
elsif total <= difficulty
|
127
|
+
ResultLevel.new(:regular_success)
|
160
128
|
else
|
161
|
-
|
129
|
+
ResultLevel.new(:failure)
|
162
130
|
end
|
131
|
+
end
|
163
132
|
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
return nil unless /^FAR\((-?\d+)(,(-?\d+))(,(-?\d+))(,(-?\d+))?\)/i =~ command
|
169
|
-
|
170
|
-
bullet_count = Regexp.last_match(1).to_i
|
171
|
-
diff = Regexp.last_match(3).to_i
|
172
|
-
broken_number = Regexp.last_match(5).to_i
|
173
|
-
bonus_dice_count = (Regexp.last_match(7) || 0).to_i
|
174
|
-
|
175
|
-
output = ""
|
176
|
-
|
177
|
-
# 射擊數不超過(8回*(PC技能値最大値/10))=72的上限
|
178
|
-
bullet_count_limit = 100
|
179
|
-
if bullet_count > bullet_count_limit
|
180
|
-
output += "\n彈藥太多。請改裝填#{bullet_count_limit}發。\n"
|
181
|
-
bullet_count = bullet_count_limit
|
133
|
+
def initialize(level)
|
134
|
+
@level = level
|
135
|
+
@level_index = LEVEL.index(level)
|
136
|
+
raise ArgumentError unless @level_index
|
182
137
|
end
|
183
138
|
|
184
|
-
|
185
|
-
|
139
|
+
def success?
|
140
|
+
@level_index >= LEVEL.index(:success)
|
141
|
+
end
|
186
142
|
|
187
|
-
|
188
|
-
|
189
|
-
broken_number = broken_number.abs
|
143
|
+
def failure?
|
144
|
+
@level_index <= LEVEL.index(:failure)
|
190
145
|
end
|
191
146
|
|
192
|
-
|
193
|
-
|
147
|
+
def critical?
|
148
|
+
@level == :critical
|
194
149
|
end
|
195
150
|
|
196
|
-
|
197
|
-
|
151
|
+
def fumble?
|
152
|
+
@level == :fumble
|
153
|
+
end
|
198
154
|
|
199
|
-
|
155
|
+
def to_s
|
156
|
+
LEVEL_TO_S[@level]
|
157
|
+
end
|
200
158
|
end
|
201
159
|
|
202
|
-
|
203
|
-
output = ""
|
204
|
-
loopCount = 0
|
205
|
-
|
206
|
-
counts = {
|
207
|
-
hit_bullet: 0,
|
208
|
-
impale_bullet: 0,
|
209
|
-
bullet: bullet_count,
|
210
|
-
}
|
211
|
-
|
212
|
-
# 難度變更用Loop
|
213
|
-
4.times do |more_difficlty|
|
214
|
-
output += getNextDifficltyMessage(more_difficlty)
|
215
|
-
|
216
|
-
# ペナルティダイスを減らしながらロール用ループ削減獎勵骰時角色用Loop
|
217
|
-
while dice_num >= @bonus_dice_range.min
|
218
|
-
|
219
|
-
loopCount += 1
|
220
|
-
hit_result, total, total_list = getHitResultInfos(dice_num, diff, more_difficlty)
|
221
|
-
output += "\n#{loopCount}次: > #{total_list.join(', ')} > #{hit_result}"
|
222
|
-
|
223
|
-
if total >= broken_number
|
224
|
-
output += "卡彈"
|
225
|
-
return getHitResultText(output, counts)
|
226
|
-
end
|
227
|
-
|
228
|
-
hit_type = getHitType(more_difficlty, hit_result)
|
229
|
-
hit_bullet, impale_bullet, lost_bullet = getBulletResults(counts[:bullet], hit_type, diff)
|
160
|
+
private
|
230
161
|
|
231
|
-
|
232
|
-
counts[:impale_bullet] += impale_bullet
|
233
|
-
counts[:bullet] -= lost_bullet
|
162
|
+
include Rollable
|
234
163
|
|
235
|
-
|
164
|
+
def roll_1d8_table(table_name, table)
|
165
|
+
total_n = @randomizer.roll_once(8)
|
166
|
+
index = total_n - 1
|
236
167
|
|
237
|
-
|
238
|
-
end
|
239
|
-
|
240
|
-
dice_num += 1
|
241
|
-
end
|
168
|
+
text = table[index]
|
242
169
|
|
243
|
-
return
|
170
|
+
return "#{table_name}(#{total_n}) > #{text}"
|
244
171
|
end
|
245
172
|
|
246
|
-
def
|
247
|
-
|
248
|
-
|
249
|
-
total = getTotal(total_list, dice_num)
|
173
|
+
def roll_1d100_table(table_name, table)
|
174
|
+
total_n = @randomizer.roll_once(100)
|
175
|
+
index = total_n - 1
|
250
176
|
|
251
|
-
|
252
|
-
hit_result = getCheckResultText(total, diff, fumbleable)
|
177
|
+
text = table[index]
|
253
178
|
|
254
|
-
return
|
179
|
+
return "#{table_name}(#{total_n}) > #{text}"
|
255
180
|
end
|
256
181
|
|
257
|
-
def
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
successList, impaleBulletList = getSuccessListImpaleBulletList(more_difficlty)
|
263
|
-
|
264
|
-
return :hit if successList.include?(hit_result)
|
265
|
-
return :impale if impaleBulletList.include?(hit_result)
|
266
|
-
|
267
|
-
return ""
|
268
|
-
end
|
182
|
+
def skill_roll(command)
|
183
|
+
m = /^CC([-+]?\d+)?(?:<=(\d+)([RHEC])?)?$/.match(command)
|
184
|
+
unless m
|
185
|
+
return nil
|
186
|
+
end
|
269
187
|
|
270
|
-
|
271
|
-
|
272
|
-
|
273
|
-
|
188
|
+
bonus_dice = m[1].to_i
|
189
|
+
difficulty = m[2]&.to_i
|
190
|
+
difficulty_level = m[3]
|
191
|
+
|
192
|
+
if difficulty == 0
|
193
|
+
difficulty = nil
|
194
|
+
elsif difficulty_level == "H"
|
195
|
+
difficulty /= 2
|
196
|
+
elsif difficulty_level == "E"
|
197
|
+
difficulty /= 5
|
198
|
+
elsif difficulty_level == "C"
|
199
|
+
difficulty = 0
|
200
|
+
end
|
274
201
|
|
275
|
-
|
276
|
-
|
277
|
-
|
202
|
+
if bonus_dice == 0 && difficulty.nil?
|
203
|
+
dice = @randomizer.roll_once(100)
|
204
|
+
return "1D100 > #{dice}"
|
205
|
+
end
|
278
206
|
|
279
|
-
if
|
207
|
+
if bonus_dice.abs > 100
|
208
|
+
return "請將獎勵・懲罰骰的數量設置在-100以上及100以下"
|
209
|
+
end
|
280
210
|
|
281
|
-
|
282
|
-
when :hit
|
283
|
-
hit_bullet_count = hit_bullet_count_base # 正常命中彈藥數之計算
|
211
|
+
total, total_list = roll_with_bonus(bonus_dice)
|
284
212
|
|
285
|
-
|
286
|
-
|
287
|
-
|
213
|
+
expr = difficulty.nil? ? "1D100" : "1D100<=#{difficulty}"
|
214
|
+
result =
|
215
|
+
if difficulty_level
|
216
|
+
ResultLevel.with_difficulty_level(total, difficulty)
|
217
|
+
elsif difficulty
|
218
|
+
ResultLevel.from_values(total, difficulty)
|
288
219
|
end
|
289
220
|
|
290
|
-
|
291
|
-
|
292
|
-
|
293
|
-
|
294
|
-
|
295
|
-
|
296
|
-
|
297
|
-
|
298
|
-
|
299
|
-
|
300
|
-
|
301
|
-
|
302
|
-
|
221
|
+
sequence = [
|
222
|
+
"(#{expr}) 獎勵・懲罰骰[#{bonus_dice}]",
|
223
|
+
total_list.join(", "),
|
224
|
+
total,
|
225
|
+
result,
|
226
|
+
].compact
|
227
|
+
|
228
|
+
Result.new.tap do |r|
|
229
|
+
r.text = sequence.join(" > ")
|
230
|
+
if result
|
231
|
+
r.condition = result.success?
|
232
|
+
r.critical = result.critical?
|
233
|
+
r.fumble = result.fumble?
|
303
234
|
end
|
304
|
-
|
305
|
-
lost_bullet_count = bullet_count
|
306
235
|
end
|
307
|
-
|
308
|
-
return hit_bullet_count, impale_bullet_count, lost_bullet_count
|
309
236
|
end
|
310
237
|
|
311
|
-
def
|
312
|
-
|
313
|
-
impaleBulletList = []
|
314
|
-
|
315
|
-
case more_difficlty
|
316
|
-
when 0
|
317
|
-
successList = ["困難的成功", "通常成功"]
|
318
|
-
impaleBulletList = ["決定性的成功", "極限的成功"]
|
319
|
-
when 1
|
320
|
-
successList = ["困難的成功"]
|
321
|
-
impaleBulletList = ["決定性的成功", "極限的成功"]
|
322
|
-
when 2
|
323
|
-
successList = []
|
324
|
-
impaleBulletList = ["決定性的成功", "極限的成功"]
|
325
|
-
when 3
|
326
|
-
successList = ["決定性的成功"]
|
327
|
-
impaleBulletList = []
|
328
|
-
end
|
329
|
-
|
330
|
-
return successList, impaleBulletList
|
238
|
+
def getFullAutoResult(command)
|
239
|
+
FullAuto.eval(command, @randomizer)
|
331
240
|
end
|
332
241
|
|
333
|
-
def
|
334
|
-
|
335
|
-
|
336
|
-
return "\n 變更難度為困難的成功"
|
337
|
-
when 2
|
338
|
-
return "\n 變更難度為極限的成功"
|
339
|
-
when 3
|
340
|
-
return "\n 變更難度為決定性的成功"
|
341
|
-
end
|
342
|
-
|
343
|
-
return ""
|
344
|
-
end
|
242
|
+
def combine_roll(command)
|
243
|
+
m = /^CBR\((\d+),(\d+)\)$/.match(command)
|
244
|
+
return nil unless m
|
345
245
|
|
346
|
-
|
347
|
-
|
246
|
+
difficulty_1 = m[1].to_i
|
247
|
+
difficulty_2 = m[2].to_i
|
348
248
|
|
349
|
-
|
350
|
-
bullet_set_count = 1 # 技能值9以下的最低限度保障處理
|
351
|
-
end
|
249
|
+
total = @randomizer.roll_once(100)
|
352
250
|
|
353
|
-
|
354
|
-
|
251
|
+
result_1 = ResultLevel.from_values(total, difficulty_1)
|
252
|
+
result_2 = ResultLevel.from_values(total, difficulty_2)
|
355
253
|
|
356
|
-
|
357
|
-
|
254
|
+
rank =
|
255
|
+
if result_1.success? && result_2.success?
|
256
|
+
"成功"
|
257
|
+
elsif result_1.success? || result_2.success?
|
258
|
+
"部分成功"
|
259
|
+
else
|
260
|
+
"失敗"
|
261
|
+
end
|
358
262
|
|
359
|
-
|
360
|
-
|
263
|
+
Result.new.tap do |r|
|
264
|
+
r.text = "(1d100<=#{difficulty_1},#{difficulty_2}) > #{total}[#{result_1},#{result_2}] > #{rank}"
|
265
|
+
r.success = result_1.success? && result_2.success?
|
266
|
+
r.failure = result_1.failure? && result_2.failure?
|
361
267
|
end
|
362
|
-
|
363
|
-
return hit_bullet_count_base
|
364
268
|
end
|
365
269
|
|
366
|
-
|
367
|
-
|
368
|
-
|
270
|
+
# 表一式
|
271
|
+
# 即時の恐懼症表
|
272
|
+
def roll_CCRT_table()
|
273
|
+
total_n = @randomizer.roll_once(10)
|
274
|
+
text = MADNESS_REAL_TIME_TABLE[total_n - 1]
|
369
275
|
|
370
|
-
|
371
|
-
# 在剩餘彈藥為1的最低限度保障處理
|
372
|
-
if bullet_count == 1
|
373
|
-
return 1
|
374
|
-
end
|
276
|
+
time_n = @randomizer.roll_once(10)
|
375
277
|
|
376
|
-
|
377
|
-
return count
|
278
|
+
return "瘋狂發作(即時型)(#{total_n}) > #{text}(1D10>#{time_n}回合)"
|
378
279
|
end
|
379
280
|
|
380
|
-
|
381
|
-
|
382
|
-
|
281
|
+
MADNESS_REAL_TIME_TABLE = [
|
282
|
+
'失憶(Amnesia):調查員完全忘記了自上個安全地點以來的所有記憶。對他們而言,似乎上一刻還在享用早餐,下一瞬卻面對著可怕的怪物。',
|
283
|
+
'假性殘疾(Psychosomatic Disability):調查員經歷著心理上的失明、失聰或肢體缺失感,陷入無法自救的困境。',
|
284
|
+
'暴力傾向(Violence):調查員在一陣狂暴中失去理智,對周圍的敵人與友方展開毫不留情的攻擊。',
|
285
|
+
'偏執(Paranoia):調查員經歷著嚴重的偏執妄想,他感覺到每個人都在暗中威脅他!沒有一個人可被信任!他被無形的目光監視;他將被背叛;所見的一切皆是詭計,萬事皆虛。',
|
286
|
+
'人際依賴(Significant Person):守秘人細心檢視調查員背景中的重要人物條目。調查員誤將場景中的另一人視為其重要人物,並基於這種錯誤的認知行動。',
|
287
|
+
'昏厥(Faint):調查員突然失去意識,陷入短暫的昏迷。',
|
288
|
+
'逃避行為(Flee in Panic):調查員在極度恐慌中,無論如何都想逃離當前的境地,即使這意味著奪走唯一的交通工具且撇下他人。',
|
289
|
+
'歇斯底里(Physical Hysterics or Emotional Outburst):調查員在情緒的漩渦中崩潰,表現出無法控制的大笑、哭泣或尖叫等極端情感。',
|
290
|
+
'恐懼(Phobia):調查員突如其來地產生一種新的恐懼症,例如幽閉恐懼症、惡靈恐懼症或蟑螂恐懼症。即使恐懼的來源並不在場,他們在接下來的輪數中仍會想像其存在,所有行動都將受到懲罰骰的影響。',
|
291
|
+
'狂躁(Mania):調查員獲得一種新的狂躁症,例如嚴重的潔癖強迫症、非理性的說謊強迫症或異常喜愛蠕蟲的強迫症。在接下來的輪數內,他們會不斷追求滿足這種狂躁,所有行動都將受到懲罰骰的影響。',
|
292
|
+
].freeze
|
293
|
+
|
294
|
+
# 略式の恐怖表
|
295
|
+
def roll_CCSU_table()
|
296
|
+
total_n = @randomizer.roll_once(10)
|
297
|
+
text = MADNESS_SUMMARY_TABLE[total_n - 1]
|
298
|
+
|
299
|
+
time_n = @randomizer.roll_once(10)
|
300
|
+
|
301
|
+
return "狂氣發作(總結型)(#{total_n}) > #{text}(1D10>#{time_n}時間)"
|
383
302
|
end
|
303
|
+
|
304
|
+
MADNESS_SUMMARY_TABLE = [
|
305
|
+
'失憶(Amnesia):調查員回過神來,發現自己身處一個陌生的地方,完全忘記了自己的身份。記憶將隨著時間的推移逐漸恢復。',
|
306
|
+
'被盜(Robbed):調查員在恢復意識後,驚覺自己身體無恙,卻遭到盜竊。如果他們攜帶了珍貴之物(見調查員背景),則需進行幸運檢定以決定是否被竊取。其他所有有價值的物品則自動消失。',
|
307
|
+
'遍體鱗傷(Battered):調查員在醒來後,發現自己滿身是傷,傷痕纍累。生命值減少至瘋狂前的一半,但不會造成重傷。他們並未遭到盜竊,傷害的來源由守秘人決定。',
|
308
|
+
'暴力傾向(Violence):調查員陷入一場強烈的暴力與破壞的狂潮。當他們回過神來時,可能會意識到自己所做的事情,也可能完全失去記憶。調查員施加暴力的對象,以及是否造成死亡或僅僅是傷害,均由守秘人決定。',
|
309
|
+
'極端信念(Ideology/Beliefs):查看調查員背景中的思想與信念。調查員將以極端且瘋狂的方式表現出某種信念。例如,一位虔誠的信徒可能會在地鐵上高聲傳道。',
|
310
|
+
'重要之人(Significant People):考慮調查員背景中對其至關重要的人物及其原因。在那1D10小時或更久的時間內,調查員曾不顧一切地接近那個人,並努力加深彼此的關係。',
|
311
|
+
'被收容(Institutionalized):調查員在精神病院病房或警察局牢房中醒來,慢慢回想起導致自己被關押的經過。',
|
312
|
+
'逃避行為(Flee in panic):調查員恢復意識時,發現自己身處遙遠的地方,可能迷失在荒野,或是在開往未知目的地的列車或長途巴士上。',
|
313
|
+
'恐懼(Phobia):調查員突然獲得一種新的恐懼症。擲1D100以決定具體的恐懼症狀,或由守秘人選擇。調查員醒來後,會開始採取各種措施以避開恐懼的源頭。',
|
314
|
+
'狂躁(Mania):調查員獲得一種新的狂躁症。在表中擲1D100以決定具體的狂躁症狀,或由守秘人選擇。在這次瘋狂的發作中,調查員將全然沉浸於新的狂躁症狀中。該症狀是否對他人可見則取決於守秘人和調查員。',
|
315
|
+
].freeze
|
316
|
+
|
317
|
+
# キャスティング・ロールのプッシュに失敗した場合(小)
|
318
|
+
FAILED_CASTING_L_TABLE = [
|
319
|
+
'視力模糊或暫時失明。',
|
320
|
+
'殘缺不全的尖叫聲、聲音或其他噪音。',
|
321
|
+
'強烈的風或其他大氣效應。',
|
322
|
+
'流血——可能是由於施法者、在場其他人或環境(如牆壁)的出血。',
|
323
|
+
'奇異的幻象和幻覺。',
|
324
|
+
'周圍的小動物爆炸。',
|
325
|
+
'異臭的硫磺味。',
|
326
|
+
'不小心召喚了神話生物。',
|
327
|
+
].freeze
|
328
|
+
|
329
|
+
# キャスティング・ロールのプッシュに失敗した場合(大)
|
330
|
+
FAILED_CASTING_M_TABLE = [
|
331
|
+
'大地震動,牆壁破裂。',
|
332
|
+
'巨大的雷電聲。',
|
333
|
+
'血從天而降。',
|
334
|
+
'施法者的手被乾枯和燒焦。',
|
335
|
+
'施法者不正常地老化(年齡增加2D10歲,並應用特徵修正,請參見老化規則)。',
|
336
|
+
'強大或眾多的神話生物出現,從施法者開始攻擊附近所有人!',
|
337
|
+
'施法者或附近的所有人被吸到遙遠的時間或地方。',
|
338
|
+
'不小心召喚了神話神明。',
|
339
|
+
].freeze
|
340
|
+
|
341
|
+
# 恐懼症表
|
342
|
+
PHOBIAS_TABLE = [
|
343
|
+
'洗澡恐懼症(Ablutophobia):對於洗滌或洗澡的恐懼。',
|
344
|
+
'恐高症(Acrophobia):對於身處高處的恐懼。',
|
345
|
+
'飛行恐懼症(Aerophobia):對飛行的恐懼。',
|
346
|
+
'廣場恐懼症(Agoraphobia):對於開放的(擁擠)公共場所的恐懼。',
|
347
|
+
'恐鶏症(Alektorophobia):對鶏的恐懼。',
|
348
|
+
'大蒜恐懼症(Alliumphobia):對大蒜的恐懼。',
|
349
|
+
'乘車恐懼症(Amaxophobia):對於乘坐地面載具的恐懼。',
|
350
|
+
'恐風症(Ancraophobia):對風的恐懼。',
|
351
|
+
'男性恐懼症(Androphobia):對於成年男性的恐懼。',
|
352
|
+
'恐英症(Anglophobia):對英格蘭或英格蘭文化的恐懼。',
|
353
|
+
'恐花症(Anthophobia):對花的恐懼。',
|
354
|
+
'截肢者恐懼症(Apotemnophobia):對截肢者的恐懼。',
|
355
|
+
'蜘蛛恐懼症(Arachnophobia):對蜘蛛的恐懼。',
|
356
|
+
'閃電恐懼症(Astraphobia):對閃電的恐懼。',
|
357
|
+
'廢墟恐懼症(Atephobia):對遺迹或殘址的恐懼。',
|
358
|
+
'長笛恐懼症(Aulophobia):對長笛的恐懼。',
|
359
|
+
'細菌恐懼症(Bacteriophobia):對細菌的恐懼。',
|
360
|
+
'導彈/子彈恐懼症(Ballistophobia):對導彈或子彈的恐懼。',
|
361
|
+
'跌落恐懼症(Basophobia):對於跌倒或摔落的恐懼。',
|
362
|
+
'書籍恐懼症(Bibliophobia):對書籍的恐懼。',
|
363
|
+
'植物恐懼症(Botanophobia):對植物的恐懼。',
|
364
|
+
'美女恐懼症(Caligynephobia):對美貌女性的恐懼。',
|
365
|
+
'寒冷恐懼症(Cheimaphobia):對寒冷的恐懼。',
|
366
|
+
'恐鐘錶症(Chronomentrophobia):對於鐘錶的恐懼。',
|
367
|
+
'幽閉恐懼症(Claustrophobia):對於處在封閉的空間中的恐懼。',
|
368
|
+
'小丑恐懼症(Coulrophobia):對小丑的恐懼。',
|
369
|
+
'恐犬症(Cynophobia):對狗的恐懼。',
|
370
|
+
'惡魔恐懼症(Demonophobia):對邪靈或惡魔的恐懼。',
|
371
|
+
'人群恐懼症(Demophobia):對人群的恐懼。',
|
372
|
+
'牙科恐懼症①(Dentophobia):對牙醫的恐懼。',
|
373
|
+
'丟弃恐懼症(Disposophobia):對於丟弃物件的恐懼(貯藏癖)。',
|
374
|
+
'皮毛恐懼症(Doraphobia):對動物皮毛的恐懼。',
|
375
|
+
'過馬路恐懼症(Dromophobia):對於過馬路的恐懼。',
|
376
|
+
'教堂恐懼症(Ecclesiophobia):對教堂的恐懼。',
|
377
|
+
'鏡子恐懼症(Eisoptrophobia):對鏡子的恐懼。',
|
378
|
+
'針尖恐懼症(Enetophobia):對針或大頭針的恐懼。',
|
379
|
+
'昆蟲恐懼症(Entomophobia):對昆蟲的恐懼。',
|
380
|
+
'恐猫症(Felinophobia):對猫的恐懼。',
|
381
|
+
'過橋恐懼症(Gephyrophobia):對於過橋的恐懼。',
|
382
|
+
'恐老症(Gerontophobia):對於老年人或變老的恐懼。',
|
383
|
+
'恐女症(Gynophobia):對女性的恐懼。',
|
384
|
+
'恐血症(Haemaphobia):對血的恐懼。',
|
385
|
+
'宗教罪行恐懼症(Hamartophobia):對宗教罪行的恐懼。',
|
386
|
+
'觸摸恐懼症(Haphophobia):對於被觸摸的恐懼。',
|
387
|
+
'爬蟲恐懼症(Herpetophobia):對爬行動物的恐懼。',
|
388
|
+
'迷霧恐懼症(Homichlophobia):對霧的恐懼。',
|
389
|
+
'火器恐懼症(Hoplophobia):對火器的恐懼。',
|
390
|
+
'恐水症(Hydrophobia):對水的恐懼。',
|
391
|
+
'催眠恐懼症①(Hypnophobia):對於睡眠或被催眠的恐懼。',
|
392
|
+
'白袍恐懼症(Iatrophobia):對醫生的恐懼。',
|
393
|
+
'魚類恐懼症(Ichthyophobia):對魚的恐懼。',
|
394
|
+
'蟑螂恐懼症(Katsaridaphobia):對蟑螂的恐懼。',
|
395
|
+
'雷鳴恐懼症(Keraunophobia):對雷聲的恐懼。',
|
396
|
+
'蔬菜恐懼症(Lachanophobia):對蔬菜的恐懼。',
|
397
|
+
'噪音恐懼症(Ligyrophobia):對刺耳噪音的恐懼。',
|
398
|
+
'恐湖症(Limnophobia):對湖泊的恐懼。',
|
399
|
+
'機械恐懼症(Mechanophobia):對機器或機械的恐懼。',
|
400
|
+
'巨物恐懼症(Megalophobia):對於龐大物件的恐懼。',
|
401
|
+
'捆綁恐懼症(Merinthophobia):對於被捆綁或緊縛的恐懼。',
|
402
|
+
'流星恐懼症(Meteorophobia):對流星或隕石的恐懼。',
|
403
|
+
'孤獨恐懼症(Monophobia):對於一人獨處的恐懼。',
|
404
|
+
'不潔恐懼症(Mysophobia):對污垢或污染的恐懼。',
|
405
|
+
'粘液恐懼症(Myxophobia):對粘液(史萊姆)的恐懼。',
|
406
|
+
'屍體恐懼症(Necrophobia):對屍體的恐懼。',
|
407
|
+
'數字8恐懼症(Octophobia):對數字8的恐懼。',
|
408
|
+
'恐牙症(Odontophobia):對牙齒的恐懼。',
|
409
|
+
'恐夢症(Oneirophobia):對夢境的恐懼。',
|
410
|
+
'稱呼恐懼症(Onomatophobia):對於特定詞語的恐懼。',
|
411
|
+
'恐蛇症(Ophidiophobia):對蛇的恐懼。',
|
412
|
+
'恐鳥症(Ornithophobia):對鳥的恐懼。',
|
413
|
+
'寄生蟲恐懼症(Parasitophobia):對寄生蟲的恐懼。',
|
414
|
+
'人偶恐懼症(Pediophobia):對人偶的恐懼。',
|
415
|
+
'吞咽恐懼症(Phagophobia):對於吞咽或被吞咽的恐懼。',
|
416
|
+
'藥物恐懼症(Pharmacophobia):對藥物的恐懼。',
|
417
|
+
'幽靈恐懼症(Phasmophobia):對鬼魂的恐懼。',
|
418
|
+
'日光恐懼症(Phenogophobia):對日光的恐懼。',
|
419
|
+
'鬍鬚恐懼症(Pogonophobia):對鬍鬚的恐懼。',
|
420
|
+
'河流恐懼症(Potamophobia):對河流的恐懼。',
|
421
|
+
'酒精恐懼症(Potophobia):對酒或酒精的恐懼。',
|
422
|
+
'恐火症(Pyrophobia):對火的恐懼。',
|
423
|
+
'魔法恐懼症(Rhabdophobia):對魔法的恐懼。',
|
424
|
+
'黑暗恐懼症(Scotophobia):對黑暗或夜晚的恐懼。',
|
425
|
+
'恐月症(Selenophobia):對月亮的恐懼。',
|
426
|
+
'火車恐懼症(Siderodromophobia):對於乘坐火車出行的恐懼。',
|
427
|
+
'恐星症(Siderophobia):對星星的恐懼。',
|
428
|
+
'狹室恐懼症(Stenophobia):對狹小物件或地點的恐懼。',
|
429
|
+
'對稱恐懼症(Symmetrophobia):對對稱的恐懼。',
|
430
|
+
'活埋恐懼症(Taphephobia):對於被活埋或墓地的恐懼。',
|
431
|
+
'公牛恐懼症(Taurophobia):對公牛的恐懼。',
|
432
|
+
'電話恐懼症(Telephonophobia):對電話的恐懼。',
|
433
|
+
'怪物恐懼症①(Teratophobia):對怪物的恐懼。',
|
434
|
+
'深海恐懼症(Thalassophobia):對海洋的恐懼。',
|
435
|
+
'手術恐懼症(Tomophobia):對外科手術的恐懼。',
|
436
|
+
'十三恐懼症(Triskadekaphobia):對數字13的恐懼症。',
|
437
|
+
'衣物恐懼症(Vestiphobia):對衣物的恐懼。',
|
438
|
+
'女巫恐懼症(Wiccaphobia):對女巫與巫術的恐懼。',
|
439
|
+
'黃色恐懼症(Xanthophobia):對黃色或「黃」字的恐懼。',
|
440
|
+
'外語恐懼症(Xenoglossophobia):對外語的恐懼。',
|
441
|
+
'异域恐懼症(Xenophobia):對陌生人或外國人的恐懼。',
|
442
|
+
'動物恐懼症(Zoophobia):對動物的恐懼。',
|
443
|
+
].freeze
|
444
|
+
|
445
|
+
# 狂熱症表
|
446
|
+
MANIAS_TABLE = [
|
447
|
+
'沐浴癖(Ablutomania):執著於清洗自己。',
|
448
|
+
'猶豫癖(Aboulomania):病態地猶豫不定。',
|
449
|
+
'喜暗狂(Achluomania):對黑暗的過度熱愛。',
|
450
|
+
'喜高狂(Acromaniaheights):狂熱迷戀高處。',
|
451
|
+
'親切癖(Agathomania):病態地對他人友好。',
|
452
|
+
'喜曠症(Agromania):强烈地傾向於待在開闊空間中。',
|
453
|
+
'喜尖狂(Aichmomania):痴迷於尖銳或鋒利的物體。',
|
454
|
+
'戀猫狂(Ailuromania):近乎病態地對猫友善。',
|
455
|
+
'疼痛癖(Algomania):痴迷於疼痛。',
|
456
|
+
'喜蒜狂(Alliomania):痴迷於大蒜。',
|
457
|
+
'乘車癖(Amaxomania):痴迷於乘坐車輛。',
|
458
|
+
'欣快癖(Amenomania):不正常地感到喜悅。',
|
459
|
+
'喜花狂(Anthomania):痴迷於花朵。',
|
460
|
+
'計算癖(Arithmomania):狂熱地痴迷於數字。',
|
461
|
+
'消費癖(Asoticamania):魯莽衝動地消費。',
|
462
|
+
'隱居癖(Eremiomania):過度地熱愛獨自隱居。',
|
463
|
+
'芭蕾癖(Balletmania):痴迷於芭蕾舞。',
|
464
|
+
'竊書癖(Biliokleptomania):無法克制偷竊書籍的衝動。',
|
465
|
+
'戀書狂(Bibliomania):痴迷於書籍和/或閱讀',
|
466
|
+
'磨牙癖(Bruxomania):無法克制磨牙的衝動。',
|
467
|
+
'靈臆症(Cacodemomania):病態地堅信自己已被一個邪惡的靈體占據。',
|
468
|
+
'美貌狂(Callomania):痴迷於自身的美貌。',
|
469
|
+
'地圖狂(Cartacoethes):在何時何處都無法控制查閱地圖的衝動。',
|
470
|
+
'跳躍狂(Catapedamania):痴迷於從高處跳下。',
|
471
|
+
'喜冷症(Cheimatomania):對寒冷或寒冷的物體的反常喜愛。',
|
472
|
+
'舞蹈狂(Choreomania):無法控制地起舞或發顫。',
|
473
|
+
'戀床癖(Clinomania):過度地熱愛待在床上。',
|
474
|
+
'戀墓狂(Coimetormania):痴迷於墓地。',
|
475
|
+
'色彩狂(Coloromania):痴迷於某種顔色。',
|
476
|
+
'小丑狂(Coulromania):痴迷於小丑。',
|
477
|
+
'恐懼狂(Countermania):執著於經歷恐怖的場面。',
|
478
|
+
'殺戮癖(Dacnomania):痴迷於殺戮。',
|
479
|
+
'魔臆症(Demonomania):病態地堅信自己已被惡魔附身。',
|
480
|
+
'抓撓癖(Dermatillomania):執著於抓撓自己的皮膚。',
|
481
|
+
'正義狂(Dikemania):痴迷於目睹正義被伸張。',
|
482
|
+
'嗜酒狂(Dipsomania):反常地渴求酒精。',
|
483
|
+
'毛皮狂(Doramania):痴迷於擁有毛皮。',
|
484
|
+
'贈物癖(Doromania):痴迷於贈送禮物。',
|
485
|
+
'漂泊症(Drapetomania):執著於逃離。',
|
486
|
+
'漫游癖(Ecdemiomania):執著於四處漫游。',
|
487
|
+
'自戀狂(Egomania):近乎病態地以自我爲中心或自我崇拜。',
|
488
|
+
'職業狂(Empleomania):對於工作的無盡病態渴求。',
|
489
|
+
'臆罪症(Enosimania):病態地堅信自己帶有罪孽。',
|
490
|
+
'學識狂(Epistemomania):痴迷於獲取學識。',
|
491
|
+
'靜止癖(Eremiomania):執著於保持安靜。',
|
492
|
+
'乙醚上癮(Etheromania):渴求乙醚。',
|
493
|
+
'求婚狂(Gamomania):痴迷於進行奇特的求婚。',
|
494
|
+
'狂笑癖(Geliomania):無法自製地,强迫性的大笑。',
|
495
|
+
'巫術狂(Goetomania):痴迷於女巫與巫術。',
|
496
|
+
'寫作癖(Graphomania):痴迷於將每一件事寫下來。',
|
497
|
+
'裸體狂(Gymnomania):執著於裸露身體。',
|
498
|
+
'妄想狂(Habromania):近乎病態地充滿愉快的妄想(而不顧現實狀况如何)。',
|
499
|
+
'蠕蟲狂(Helminthomania):過度地喜愛蠕蟲。',
|
500
|
+
'槍械狂(Hoplomania):痴迷於火器。',
|
501
|
+
'飲水狂(Hydromania):反常地渴求水分。',
|
502
|
+
'喜魚癖(Ichthyomania):痴迷於魚類。',
|
503
|
+
'圖標狂(Iconomania):痴迷於圖標與肖像',
|
504
|
+
'偶像狂(Idolomania):痴迷於甚至願獻身於某個偶像。',
|
505
|
+
'信息狂(Infomania):痴迷於積累各種信息與資訊。',
|
506
|
+
'射擊狂(Klazomania):反常地執著於射擊。',
|
507
|
+
'偷竊癖(Kleptomania):反常地執著於偷竊。',
|
508
|
+
'噪音癖(Ligyromania):無法自製地執著於製造響亮或刺耳的噪音。',
|
509
|
+
'喜綫癖(Linonomania):痴迷於綫繩。',
|
510
|
+
'彩票狂(Lotterymania):極端地執著於購買彩票。',
|
511
|
+
'抑鬱症(Lypemania):近乎病態的重度抑鬱傾向。',
|
512
|
+
'巨石狂(Megalithomania):當站在石環中或立起的巨石旁時,就會近乎病態地寫出各種奇怪的創意。',
|
513
|
+
'旋律狂(Melomania):痴迷於音樂或一段特定的旋律。',
|
514
|
+
'作詩癖(Metromania):無法抑制地想要不停作詩。',
|
515
|
+
'憎恨癖(Misomania):憎恨一切事物,痴迷於憎恨某個事物或團體。',
|
516
|
+
'偏執狂(Monomania):近乎病態地痴迷與專注某個特定的想法或創意。',
|
517
|
+
'誇大癖(Mythomania):以一種近乎病態的程度說謊或誇大事物。',
|
518
|
+
'臆想症(Nosomania):妄想自己正在被某種臆想出的疾病折磨。',
|
519
|
+
'記錄癖(Notomania):執著於記錄一切事物(例如攝影)',
|
520
|
+
'戀名狂(Onomamania):痴迷於名字(人物的、地點的、事物的)',
|
521
|
+
'稱名癖(Onomatomania):無法抑制地不斷重複某個詞語的衝動。',
|
522
|
+
'剔指癖(Onychotillomania):執著於剔指甲。',
|
523
|
+
'戀食癖(Opsomania):對某種食物的病態熱愛。',
|
524
|
+
'抱怨癖(Paramania):一種在抱怨時産生的近乎病態的愉悅感。',
|
525
|
+
'面具狂(Personamania):執著於佩戴面具。',
|
526
|
+
'幽靈狂(Phasmomania):痴迷於幽靈。',
|
527
|
+
'謀殺癖(Phonomania):病態的謀殺傾向。',
|
528
|
+
'渴光癖(Photomania):對光的病態渴求。',
|
529
|
+
'背德癖(ASPD):病態地渴求違背社會道德。',
|
530
|
+
'求財癖(Plutomania):對財富的强迫性的渴望。',
|
531
|
+
'欺騙狂(Pseudomania):無法抑制的執著於撒謊。',
|
532
|
+
'縱火狂(Pyromania):執著於縱火。',
|
533
|
+
'提問狂(Questiong-Asking Mania):執著於提問。',
|
534
|
+
'挖鼻癖(Rhinotillexomania):執著於挖鼻子。',
|
535
|
+
'塗鴉癖(Scribbleomania):沉迷於塗鴉。',
|
536
|
+
'列車狂(Siderodromomania):認爲火車或類似的依靠軌道交通的旅行方式充滿魅力。',
|
537
|
+
'臆智症(Sophomania):臆想自己擁有難以置信的智慧。',
|
538
|
+
'科技狂(Technomania):痴迷於新的科技。',
|
539
|
+
'臆咒狂(Thanatomania):堅信自己已被某種死亡魔法所詛咒。',
|
540
|
+
'臆神狂(Theomania):堅信自己是一位神靈。',
|
541
|
+
'抓撓癖(Titillomaniac):抓撓自己的强迫傾向。',
|
542
|
+
'手術狂(Tomomania):對進行手術的不正常愛好。',
|
543
|
+
'拔毛癖(Trichotillomania):執著於拔下自己的頭髮。',
|
544
|
+
'臆盲症(Typhlomania):病理性的失明。',
|
545
|
+
'嗜外狂(Xenomania):痴迷於异國的事物。',
|
546
|
+
'喜獸癖(Zoomania):對待動物的態度近乎瘋狂地友好。',
|
547
|
+
].freeze
|
384
548
|
end
|
385
549
|
end
|
386
550
|
end
|