bcdice 3.0.0.pre.alpha.1
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 +7 -0
- data/.editorconfig +21 -0
- data/.github/.codecov.yaml +10 -0
- data/.github/workflows/coverage.yaml +21 -0
- data/.github/workflows/lint.yaml +13 -0
- data/.github/workflows/test.yml +20 -0
- data/.gitignore +14 -0
- data/.rubocop.yml +96 -0
- data/.rubocop_todo.yml +113 -0
- data/CHANGELOG.md +868 -0
- data/Gemfile +11 -0
- data/LICENSE +29 -0
- data/README.md +38 -0
- data/ROADMAP.md +30 -0
- data/Rakefile +118 -0
- data/bcdice.gemspec +27 -0
- data/bin/repl.rb +21 -0
- data/docs/README.txt +2028 -0
- data/docs/dicebot_sort_key.md +72 -0
- data/docs/how_to_make_dicebot.md +453 -0
- data/lib/bcdice.rb +8 -0
- data/lib/bcdice/arithmetic_evaluator.rb +167 -0
- data/lib/bcdice/base.rb +423 -0
- data/lib/bcdice/command_parser.rb +242 -0
- data/lib/bcdice/common_command.rb +23 -0
- data/lib/bcdice/common_command/add_dice.rb +54 -0
- data/lib/bcdice/common_command/add_dice/node.rb +488 -0
- data/lib/bcdice/common_command/add_dice/parser.rb +282 -0
- data/lib/bcdice/common_command/add_dice/randomizer.rb +48 -0
- data/lib/bcdice/common_command/barabara_dice.rb +57 -0
- data/lib/bcdice/common_command/calc.rb +39 -0
- data/lib/bcdice/common_command/choice.rb +35 -0
- data/lib/bcdice/common_command/d66_dice.rb +63 -0
- data/lib/bcdice/common_command/reroll_dice.rb +190 -0
- data/lib/bcdice/common_command/upper_dice.rb +165 -0
- data/lib/bcdice/common_command/version.rb +26 -0
- data/lib/bcdice/dice_table.rb +8 -0
- data/lib/bcdice/dice_table/chain_table.rb +33 -0
- data/lib/bcdice/dice_table/d66_grid_table.rb +26 -0
- data/lib/bcdice/dice_table/d66_range_table.rb +26 -0
- data/lib/bcdice/dice_table/d66_table.rb +34 -0
- data/lib/bcdice/dice_table/range_table.rb +267 -0
- data/lib/bcdice/dice_table/roll_result.rb +43 -0
- data/lib/bcdice/dice_table/sai_fic_skill_table.rb +32 -0
- data/lib/bcdice/dice_table/table.rb +35 -0
- data/lib/bcdice/enum.rb +15 -0
- data/lib/bcdice/format.rb +36 -0
- data/lib/bcdice/game_system.rb +187 -0
- data/lib/bcdice/game_system/AFF2e.rb +141 -0
- data/lib/bcdice/game_system/AceKillerGene.rb +55 -0
- data/lib/bcdice/game_system/Airgetlamh.rb +117 -0
- data/lib/bcdice/game_system/Alsetto.rb +124 -0
- data/lib/bcdice/game_system/Alshard.rb +27 -0
- data/lib/bcdice/game_system/AlterRaise.rb +282 -0
- data/lib/bcdice/game_system/Amadeus.rb +622 -0
- data/lib/bcdice/game_system/Amadeus_Korean.rb +501 -0
- data/lib/bcdice/game_system/AnimaAnimus.rb +96 -0
- data/lib/bcdice/game_system/Arianrhod.rb +50 -0
- data/lib/bcdice/game_system/ArsMagica.rb +149 -0
- data/lib/bcdice/game_system/Avandner.rb +101 -0
- data/lib/bcdice/game_system/BBN.rb +143 -0
- data/lib/bcdice/game_system/BadLife.rb +435 -0
- data/lib/bcdice/game_system/BarnaKronika.rb +188 -0
- data/lib/bcdice/game_system/BattleTech.rb +530 -0
- data/lib/bcdice/game_system/BeastBindTrinity.rb +348 -0
- data/lib/bcdice/game_system/BeginningIdol.rb +2527 -0
- data/lib/bcdice/game_system/BeginningIdol_Korean.rb +2378 -0
- data/lib/bcdice/game_system/BladeOfArcana.rb +252 -0
- data/lib/bcdice/game_system/BlindMythos.rb +460 -0
- data/lib/bcdice/game_system/BloodCrusade.rb +423 -0
- data/lib/bcdice/game_system/BloodMoon.rb +213 -0
- data/lib/bcdice/game_system/CardRanker.rb +249 -0
- data/lib/bcdice/game_system/ChaosFlare.rb +181 -0
- data/lib/bcdice/game_system/Chill.rb +163 -0
- data/lib/bcdice/game_system/Chill3.rb +52 -0
- data/lib/bcdice/game_system/CodeLayerd.rb +132 -0
- data/lib/bcdice/game_system/ColossalHunter.rb +569 -0
- data/lib/bcdice/game_system/CrashWorld.rb +81 -0
- data/lib/bcdice/game_system/Cthulhu.rb +252 -0
- data/lib/bcdice/game_system/Cthulhu7th.rb +767 -0
- data/lib/bcdice/game_system/Cthulhu7th_ChineseTraditional.rb +386 -0
- data/lib/bcdice/game_system/Cthulhu7th_Korean.rb +383 -0
- data/lib/bcdice/game_system/CthulhuTech.rb +263 -0
- data/lib/bcdice/game_system/Cthulhu_ChineseTraditional.rb +243 -0
- data/lib/bcdice/game_system/Cthulhu_Korean.rb +240 -0
- data/lib/bcdice/game_system/DarkBlaze.rb +207 -0
- data/lib/bcdice/game_system/DarkDaysDrive.rb +425 -0
- data/lib/bcdice/game_system/DarkSouls.rb +91 -0
- data/lib/bcdice/game_system/DeadlineHeroes.rb +583 -0
- data/lib/bcdice/game_system/DemonParasite.rb +524 -0
- data/lib/bcdice/game_system/DetatokoSaga.rb +310 -0
- data/lib/bcdice/game_system/DetatokoSaga_Korean.rb +310 -0
- data/lib/bcdice/game_system/DiceBot.rb +17 -0
- data/lib/bcdice/game_system/DiceOfTheDead.rb +111 -0
- data/lib/bcdice/game_system/DoubleCross.rb +373 -0
- data/lib/bcdice/game_system/DoubleCross_Korean.rb +371 -0
- data/lib/bcdice/game_system/Dracurouge.rb +1856 -0
- data/lib/bcdice/game_system/Dracurouge_Korean.rb +310 -0
- data/lib/bcdice/game_system/DungeonsAndDragons.rb +19 -0
- data/lib/bcdice/game_system/EarthDawn.rb +225 -0
- data/lib/bcdice/game_system/EarthDawn3.rb +275 -0
- data/lib/bcdice/game_system/EarthDawn4.rb +272 -0
- data/lib/bcdice/game_system/EclipsePhase.rb +51 -0
- data/lib/bcdice/game_system/Elric.rb +36 -0
- data/lib/bcdice/game_system/Elysion.rb +1213 -0
- data/lib/bcdice/game_system/EmbryoMachine.rb +227 -0
- data/lib/bcdice/game_system/EndBreaker.rb +132 -0
- data/lib/bcdice/game_system/EtrianOdysseySRS.rb +27 -0
- data/lib/bcdice/game_system/Fiasco.rb +123 -0
- data/lib/bcdice/game_system/Fiasco_Korean.rb +122 -0
- data/lib/bcdice/game_system/FilledWith.rb +1543 -0
- data/lib/bcdice/game_system/FullMetalPanic.rb +27 -0
- data/lib/bcdice/game_system/FutariSousa.rb +994 -0
- data/lib/bcdice/game_system/FutariSousa_Korean.rb +994 -0
- data/lib/bcdice/game_system/Garako.rb +559 -0
- data/lib/bcdice/game_system/GardenOrder.rb +451 -0
- data/lib/bcdice/game_system/GehennaAn.rb +136 -0
- data/lib/bcdice/game_system/GeishaGirlwithKatana.rb +120 -0
- data/lib/bcdice/game_system/GoblinSlayer.rb +168 -0
- data/lib/bcdice/game_system/GoldenSkyStories.rb +77 -0
- data/lib/bcdice/game_system/Gorilla.rb +44 -0
- data/lib/bcdice/game_system/GranCrest.rb +518 -0
- data/lib/bcdice/game_system/Gundog.rb +52 -0
- data/lib/bcdice/game_system/GundogRevised.rb +294 -0
- data/lib/bcdice/game_system/GundogZero.rb +261 -0
- data/lib/bcdice/game_system/Gurps.rb +403 -0
- data/lib/bcdice/game_system/GurpsFW.rb +2330 -0
- data/lib/bcdice/game_system/HarnMaster.rb +208 -0
- data/lib/bcdice/game_system/HatsuneMiku.rb +706 -0
- data/lib/bcdice/game_system/Hieizan.rb +48 -0
- data/lib/bcdice/game_system/HouraiGakuen.rb +270 -0
- data/lib/bcdice/game_system/HuntersMoon.rb +503 -0
- data/lib/bcdice/game_system/Illusio.rb +89 -0
- data/lib/bcdice/game_system/InfiniteFantasia.rb +51 -0
- data/lib/bcdice/game_system/Insane.rb +822 -0
- data/lib/bcdice/game_system/Insane_Korean.rb +773 -0
- data/lib/bcdice/game_system/IthaWenUa.rb +38 -0
- data/lib/bcdice/game_system/JamesBond.rb +45 -0
- data/lib/bcdice/game_system/Kamigakari.rb +394 -0
- data/lib/bcdice/game_system/Kamigakari_Korean.rb +428 -0
- data/lib/bcdice/game_system/KanColle.rb +938 -0
- data/lib/bcdice/game_system/KemonoNoMori.rb +258 -0
- data/lib/bcdice/game_system/KillDeathBusiness.rb +1420 -0
- data/lib/bcdice/game_system/KillDeathBusiness_Korean.rb +1510 -0
- data/lib/bcdice/game_system/KurayamiCrying.rb +49 -0
- data/lib/bcdice/game_system/LiveraDoll.rb +375 -0
- data/lib/bcdice/game_system/LogHorizon.rb +3567 -0
- data/lib/bcdice/game_system/LogHorizon_Korean.rb +1407 -0
- data/lib/bcdice/game_system/LostRecord.rb +30 -0
- data/lib/bcdice/game_system/LostRoyal.rb +242 -0
- data/lib/bcdice/game_system/MagicaLogia.rb +1148 -0
- data/lib/bcdice/game_system/MeikyuDays.rb +415 -0
- data/lib/bcdice/game_system/MeikyuKingdom.rb +466 -0
- data/lib/bcdice/game_system/MeikyuKingdomBasic.rb +269 -0
- data/lib/bcdice/game_system/MetalHead.rb +249 -0
- data/lib/bcdice/game_system/MetalHeadExtream.rb +917 -0
- data/lib/bcdice/game_system/MetallicGuardian.rb +31 -0
- data/lib/bcdice/game_system/MonotoneMuseum.rb +354 -0
- data/lib/bcdice/game_system/MonotoneMuseum_Korean.rb +304 -0
- data/lib/bcdice/game_system/Nechronica.rb +211 -0
- data/lib/bcdice/game_system/Nechronica_Korean.rb +160 -0
- data/lib/bcdice/game_system/NeverCloud.rb +74 -0
- data/lib/bcdice/game_system/NightWizard.rb +231 -0
- data/lib/bcdice/game_system/NightWizard3rd.rb +24 -0
- data/lib/bcdice/game_system/NightmareHunterDeep.rb +117 -0
- data/lib/bcdice/game_system/NinjaSlayer.rb +274 -0
- data/lib/bcdice/game_system/NjslyrBattle.rb +54 -0
- data/lib/bcdice/game_system/Nuekagami.rb +293 -0
- data/lib/bcdice/game_system/OneWayHeroics.rb +134 -0
- data/lib/bcdice/game_system/OracleEngine.rb +265 -0
- data/lib/bcdice/game_system/OrgaRain.rb +77 -0
- data/lib/bcdice/game_system/Oukahoushin3rd.rb +162 -0
- data/lib/bcdice/game_system/Paradiso.rb +323 -0
- data/lib/bcdice/game_system/Paranoia.rb +64 -0
- data/lib/bcdice/game_system/ParanoiaRebooted.rb +109 -0
- data/lib/bcdice/game_system/ParasiteBlood.rb +231 -0
- data/lib/bcdice/game_system/Pathfinder.rb +21 -0
- data/lib/bcdice/game_system/Peekaboo.rb +324 -0
- data/lib/bcdice/game_system/Pendragon.rb +39 -0
- data/lib/bcdice/game_system/PhantasmAdventure.rb +73 -0
- data/lib/bcdice/game_system/Postman.rb +185 -0
- data/lib/bcdice/game_system/PulpCthulhu.rb +184 -0
- data/lib/bcdice/game_system/Raisondetre.rb +171 -0
- data/lib/bcdice/game_system/RecordOfLodossWar.rb +58 -0
- data/lib/bcdice/game_system/RecordOfSteam.rb +149 -0
- data/lib/bcdice/game_system/RokumonSekai2.rb +110 -0
- data/lib/bcdice/game_system/RoleMaster.rb +24 -0
- data/lib/bcdice/game_system/RuneQuest.rb +47 -0
- data/lib/bcdice/game_system/RyuTuber.rb +266 -0
- data/lib/bcdice/game_system/Ryutama.rb +199 -0
- data/lib/bcdice/game_system/SRS.rb +348 -0
- data/lib/bcdice/game_system/SamsaraBallad.rb +111 -0
- data/lib/bcdice/game_system/Satasupe.rb +1173 -0
- data/lib/bcdice/game_system/ScreamHighSchool.rb +128 -0
- data/lib/bcdice/game_system/SevenFortressMobius.rb +34 -0
- data/lib/bcdice/game_system/ShadowRun.rb +26 -0
- data/lib/bcdice/game_system/ShadowRun4.rb +49 -0
- data/lib/bcdice/game_system/ShadowRun5.rb +80 -0
- data/lib/bcdice/game_system/SharedFantasia.rb +69 -0
- data/lib/bcdice/game_system/ShinMegamiTenseiKakuseihen.rb +85 -0
- data/lib/bcdice/game_system/ShinkuuGakuen.rb +506 -0
- data/lib/bcdice/game_system/ShinobiGami.rb +680 -0
- data/lib/bcdice/game_system/ShoujoTenrankai.rb +677 -0
- data/lib/bcdice/game_system/Skynauts.rb +324 -0
- data/lib/bcdice/game_system/SteamPunkers.rb +485 -0
- data/lib/bcdice/game_system/StellarKnights.rb +856 -0
- data/lib/bcdice/game_system/SterileLife.rb +452 -0
- data/lib/bcdice/game_system/StrangerOfSwordCity.rb +103 -0
- data/lib/bcdice/game_system/StratoShout.rb +316 -0
- data/lib/bcdice/game_system/StratoShout_Korean.rb +314 -0
- data/lib/bcdice/game_system/Strave.rb +223 -0
- data/lib/bcdice/game_system/SwordWorld.rb +491 -0
- data/lib/bcdice/game_system/SwordWorld2_0.rb +295 -0
- data/lib/bcdice/game_system/SwordWorld2_5.rb +121 -0
- data/lib/bcdice/game_system/TherapieSein.rb +93 -0
- data/lib/bcdice/game_system/TokumeiTenkousei.rb +96 -0
- data/lib/bcdice/game_system/TokyoGhostResearch.rb +122 -0
- data/lib/bcdice/game_system/TokyoNova.rb +19 -0
- data/lib/bcdice/game_system/Torg.rb +364 -0
- data/lib/bcdice/game_system/Torg1_5.rb +139 -0
- data/lib/bcdice/game_system/TorgEternity.rb +414 -0
- data/lib/bcdice/game_system/TrinitySeven.rb +364 -0
- data/lib/bcdice/game_system/TunnelsAndTrolls.rb +287 -0
- data/lib/bcdice/game_system/TwilightGunsmoke.rb +527 -0
- data/lib/bcdice/game_system/Utakaze.rb +153 -0
- data/lib/bcdice/game_system/VampireTheMasquerade5th.rb +132 -0
- data/lib/bcdice/game_system/Villaciel.rb +555 -0
- data/lib/bcdice/game_system/WARPS.rb +33 -0
- data/lib/bcdice/game_system/WaresBlade.rb +34 -0
- data/lib/bcdice/game_system/Warhammer.rb +336 -0
- data/lib/bcdice/game_system/WitchQuest.rb +275 -0
- data/lib/bcdice/game_system/WorldOfDarkness.rb +135 -0
- data/lib/bcdice/game_system/YankeeYogSothoth.rb +440 -0
- data/lib/bcdice/game_system/YearZeroEngine.rb +134 -0
- data/lib/bcdice/game_system/ZettaiReido.rb +142 -0
- data/lib/bcdice/game_system/meikyu_kingdom/item_table.rb +383 -0
- data/lib/bcdice/game_system/meikyu_kingdom/kingdom_name_table.rb +89 -0
- data/lib/bcdice/game_system/meikyu_kingdom/landscape_table.rb +196 -0
- data/lib/bcdice/game_system/meikyu_kingdom/name_tables.rb +223 -0
- data/lib/bcdice/game_system/meikyu_kingdom/placename_table.rb +214 -0
- data/lib/bcdice/game_system/meikyu_kingdom/tables.rb +610 -0
- data/lib/bcdice/game_system/meikyu_kingdom/word_table.rb +117 -0
- data/lib/bcdice/game_system/meikyu_kingdom_basic/item_table.rb +380 -0
- data/lib/bcdice/game_system/meikyu_kingdom_basic/kingdom_table.rb +184 -0
- data/lib/bcdice/game_system/meikyu_kingdom_basic/name_table.rb +417 -0
- data/lib/bcdice/game_system/meikyu_kingdom_basic/table.rb +912 -0
- data/lib/bcdice/game_system/meikyu_kingdom_basic/word_table.rb +121 -0
- data/lib/bcdice/game_system/one_way_heroics/dungeon_table.rb +67 -0
- data/lib/bcdice/game_system/one_way_heroics/random_event_table.rb +166 -0
- data/lib/bcdice/game_system/one_way_heroics/tables.rb +668 -0
- data/lib/bcdice/loader.rb +37 -0
- data/lib/bcdice/normalize.rb +38 -0
- data/lib/bcdice/preprocessor.rb +87 -0
- data/lib/bcdice/randomizer.rb +137 -0
- data/lib/bcdice/repl.rb +155 -0
- data/lib/bcdice/user_defined_dice_table.rb +153 -0
- data/lib/bcdice/version.rb +3 -0
- metadata +304 -0
@@ -0,0 +1,91 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module BCDice
|
4
|
+
module GameSystem
|
5
|
+
class DarkSouls < Base
|
6
|
+
# ゲームシステムの識別子
|
7
|
+
ID = 'DarkSouls'
|
8
|
+
|
9
|
+
# ゲームシステム名
|
10
|
+
NAME = 'ダークソウルTRPG'
|
11
|
+
|
12
|
+
# ゲームシステム名の読みがな
|
13
|
+
SORT_KEY = 'たあくそうるTRPG'
|
14
|
+
|
15
|
+
# ダイスボットの使い方
|
16
|
+
HELP_MESSAGE = <<~MESSAGETEXT
|
17
|
+
・行為判定:[n]DS[a±b][@t] []内のコマンドは省略可
|
18
|
+
・能動判定:[n]ADS[a±b][@t] FP消費を判定
|
19
|
+
n:ダイス数。省略時は「2」
|
20
|
+
a±b:修正値。「1+2-1」のように、複数定可
|
21
|
+
@t:目標値。省略時は達成値を、指定時は判定の正否を表示
|
22
|
+
例)DS → 2D6の達成値を表示
|
23
|
+
1DS → 1D6の達成値を表示
|
24
|
+
ADS+2-2 → 2D6+2の達成値を表示(能動判定)
|
25
|
+
DS+2@10 → 2D6+2で目標値10の判定
|
26
|
+
MESSAGETEXT
|
27
|
+
|
28
|
+
register_prefix(['(\d+)?(A)?DS([-+\d]*)(@\d+)?'])
|
29
|
+
|
30
|
+
def eval_game_system_specific_command(command)
|
31
|
+
return nil unless (m = /(\d+)?(A)?DS([-+\d]*)(@(\d+))?$/i.match(command.upcase))
|
32
|
+
|
33
|
+
diceCount = (m[1] || 2).to_i
|
34
|
+
isActive = !m[2].nil?
|
35
|
+
modify = getValue(m[3])
|
36
|
+
target = (m[5] || 0).to_i
|
37
|
+
|
38
|
+
output = checkRoll(diceCount, isActive, modify, target)
|
39
|
+
|
40
|
+
return output
|
41
|
+
end
|
42
|
+
|
43
|
+
def checkRoll(diceCount, isActive, modify, target)
|
44
|
+
dice_list = @randomizer.roll_barabara(diceCount, 6)
|
45
|
+
dice = dice_list.sum()
|
46
|
+
diceText = dice_list.join(",")
|
47
|
+
|
48
|
+
successValue = dice + modify
|
49
|
+
modifyText = getValueText(modify)
|
50
|
+
targetText = (target == 0 ? '' : ">=#{target}")
|
51
|
+
|
52
|
+
if isActive
|
53
|
+
diceArray = diceText.split(/,/).map(&:to_i)
|
54
|
+
focusDamage = diceArray.count { |i| i == 1 }
|
55
|
+
|
56
|
+
if focusDamage > 0
|
57
|
+
focusText = "■" * focusDamage
|
58
|
+
focusText = "(FP#{focusText}消費)"
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
result = "(#{diceCount}D6#{modifyText}#{targetText})"
|
63
|
+
result += " > #{dice}(#{diceText})#{modifyText}"
|
64
|
+
result += " > #{successValue}#{targetText}"
|
65
|
+
|
66
|
+
if target > 0
|
67
|
+
if successValue >= target
|
68
|
+
result += " > 【成功】"
|
69
|
+
else
|
70
|
+
result += " > 【失敗】"
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
result += focusText.to_s
|
75
|
+
return result
|
76
|
+
end
|
77
|
+
|
78
|
+
def getValue(text)
|
79
|
+
text ||= ""
|
80
|
+
return ArithmeticEvaluator.eval(text)
|
81
|
+
end
|
82
|
+
|
83
|
+
def getValueText(value)
|
84
|
+
return "" if value == 0
|
85
|
+
return value.to_s if value < 0
|
86
|
+
|
87
|
+
return "\+#{value}"
|
88
|
+
end
|
89
|
+
end
|
90
|
+
end
|
91
|
+
end
|
@@ -0,0 +1,583 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'bcdice/dice_table/range_table'
|
4
|
+
|
5
|
+
module BCDice
|
6
|
+
module GameSystem
|
7
|
+
class DeadlineHeroes < Base
|
8
|
+
# ゲームシステムの識別子
|
9
|
+
ID = 'DeadlineHeroes'
|
10
|
+
|
11
|
+
# ゲームシステム名
|
12
|
+
NAME = 'デッドラインヒーローズRPG'
|
13
|
+
|
14
|
+
# ゲームシステム名の読みがな
|
15
|
+
SORT_KEY = 'てつとらいんひいろおすRPG'
|
16
|
+
|
17
|
+
# ダイスボットの使い方
|
18
|
+
HELP_MESSAGE = <<~INFO_MESSAGE_TEXT
|
19
|
+
・行為判定(DLHx)
|
20
|
+
x:成功率
|
21
|
+
例)DLH80
|
22
|
+
クリティカル、ファンブルの自動的判定を行います。
|
23
|
+
「DLH50+20-30」のように加減算記述も可能。
|
24
|
+
成功率は上限100%、下限0%
|
25
|
+
・デスチャート(DCxY)
|
26
|
+
x:チャートの種類。肉体:DCL、精神:DCS、環境:DCC
|
27
|
+
Y=マイナス値
|
28
|
+
例)DCL5:ライフが -5 の判定
|
29
|
+
DCS3:サニティーが -3 の判定
|
30
|
+
DCC0:クレジット 0 の判定
|
31
|
+
・ヒーローネームチャート(HNC)
|
32
|
+
・リアルネームチャート 日本(RNCJ)、海外(RNCO)
|
33
|
+
INFO_MESSAGE_TEXT
|
34
|
+
|
35
|
+
register_prefix([
|
36
|
+
'DLH\\d+([\\+\\-]\\d+)*',
|
37
|
+
'DC(L|S|C)\d+',
|
38
|
+
'RNC[JO]',
|
39
|
+
'HNC'
|
40
|
+
])
|
41
|
+
|
42
|
+
def eval_game_system_specific_command(command)
|
43
|
+
case command
|
44
|
+
when /^DLH/i
|
45
|
+
resolute_action(command)
|
46
|
+
when /^DC\w/i
|
47
|
+
roll_death_chart(command)
|
48
|
+
when 'HNC'
|
49
|
+
roll_hero_name_chart()
|
50
|
+
else
|
51
|
+
roll_tables(command, TABLES)
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
private
|
56
|
+
|
57
|
+
def resolute_action(command)
|
58
|
+
m = /^DLH(\d+([\+\-]\d+)*)$/.match(command)
|
59
|
+
unless m
|
60
|
+
return nil
|
61
|
+
end
|
62
|
+
|
63
|
+
success_rate = ArithmeticEvaluator.eval(m[1])
|
64
|
+
|
65
|
+
roll_result, dice10, dice01 = roll_d100
|
66
|
+
roll_result_text = format('%02d', roll_result)
|
67
|
+
|
68
|
+
result = action_result(roll_result, dice10, dice01, success_rate)
|
69
|
+
|
70
|
+
sequence = [
|
71
|
+
"行為判定(成功率:#{success_rate}%)",
|
72
|
+
"1D100[#{dice10},#{dice01}]=#{roll_result_text}",
|
73
|
+
roll_result_text.to_s,
|
74
|
+
result
|
75
|
+
]
|
76
|
+
|
77
|
+
return sequence.join(" > ")
|
78
|
+
end
|
79
|
+
|
80
|
+
SUCCESS_STR = "成功"
|
81
|
+
FAILURE_STR = "失敗"
|
82
|
+
CRITICAL_STR = (SUCCESS_STR + " > クリティカル! パワーの代償1/2").freeze
|
83
|
+
FUMBLE_STR = (FAILURE_STR + " > ファンブル! パワーの代償2倍&振り直し不可").freeze
|
84
|
+
|
85
|
+
def action_result(total, tens, ones, success_rate)
|
86
|
+
if total == 100 || success_rate <= 0
|
87
|
+
FUMBLE_STR
|
88
|
+
elsif total <= success_rate - 100
|
89
|
+
CRITICAL_STR
|
90
|
+
elsif tens == ones
|
91
|
+
if total <= success_rate
|
92
|
+
CRITICAL_STR
|
93
|
+
else
|
94
|
+
FUMBLE_STR
|
95
|
+
end
|
96
|
+
elsif total <= success_rate
|
97
|
+
SUCCESS_STR
|
98
|
+
else
|
99
|
+
FAILURE_STR
|
100
|
+
end
|
101
|
+
end
|
102
|
+
|
103
|
+
def roll_d100
|
104
|
+
dice10 = @randomizer.roll_once(10)
|
105
|
+
dice10 = 0 if dice10 == 10
|
106
|
+
dice01 = @randomizer.roll_once(10)
|
107
|
+
dice01 = 0 if dice01 == 10
|
108
|
+
|
109
|
+
roll_result = dice10 * 10 + dice01
|
110
|
+
roll_result = 100 if roll_result == 0
|
111
|
+
|
112
|
+
return roll_result, dice10, dice01
|
113
|
+
end
|
114
|
+
|
115
|
+
class DeathChart
|
116
|
+
def initialize(name, chart)
|
117
|
+
@name = name
|
118
|
+
@chart = chart.freeze
|
119
|
+
|
120
|
+
if @chart.size != 11
|
121
|
+
raise ArgumentError, "unexpected chart size #{name.inspect} (given #{@chart.size}, expected 11)"
|
122
|
+
end
|
123
|
+
end
|
124
|
+
|
125
|
+
# @param randomizer [Randomizer]
|
126
|
+
# @param minus_score [Integer]
|
127
|
+
# @return [String]
|
128
|
+
def roll(randomizer, minus_score)
|
129
|
+
dice = randomizer.roll_once(10)
|
130
|
+
key_number = dice + minus_score
|
131
|
+
|
132
|
+
key_text, chosen = at(key_number)
|
133
|
+
|
134
|
+
return "デスチャート(#{@name})[マイナス値:#{minus_score} + 1D10(->#{dice}) = #{key_number}] > #{key_text} : #{chosen}"
|
135
|
+
end
|
136
|
+
|
137
|
+
private
|
138
|
+
|
139
|
+
# key_numberの10から20がindexの0から10に対応する
|
140
|
+
def at(key_number)
|
141
|
+
if key_number < 10
|
142
|
+
["10以下", @chart.first]
|
143
|
+
elsif key_number > 20
|
144
|
+
["20以上", @chart.last]
|
145
|
+
else
|
146
|
+
[key_number.to_s, @chart[key_number - 10]]
|
147
|
+
end
|
148
|
+
end
|
149
|
+
end
|
150
|
+
|
151
|
+
def roll_death_chart(command)
|
152
|
+
m = /^DC([LSC])(\d+)$/i.match(command)
|
153
|
+
unless m
|
154
|
+
return m
|
155
|
+
end
|
156
|
+
|
157
|
+
chart = DEATH_CHARTS[m[1]]
|
158
|
+
minus_score = m[2].to_i
|
159
|
+
|
160
|
+
return chart.roll(@randomizer, minus_score)
|
161
|
+
end
|
162
|
+
|
163
|
+
DEATH_CHARTS = {
|
164
|
+
'L' => DeathChart.new(
|
165
|
+
'肉体',
|
166
|
+
[
|
167
|
+
"何も無し。キミは奇跡的に一命を取り留めた。闘いは続く。",
|
168
|
+
"激痛が走る。以後、イベント終了時まで、全ての判定の成功率-10%。",
|
169
|
+
"キミは[硬直]ポイント2点を得る。[硬直]ポイントを所持している間、キミは「属性:妨害」のパワーを使用することができない。各ラウンド終了時、キミは所持している[硬直]ポイントを1点減らしてもよい。",
|
170
|
+
"渾身の一撃!! キミは〈生存〉判定を行なう。失敗した場合、[死亡]する。",
|
171
|
+
"キミは[気絶]ポイント2点を得る。[気絶]ポイントを所持している間、キミはあらゆるパワーを使用できず、自身のターンを得ることもできない。各ラウンド終了時、キミは所持している[気絶]ポイントを1点減らしてもよい。",
|
172
|
+
"以後、イベント終了時まで、全ての判定の成功率-20%。",
|
173
|
+
"記録的一撃!! キミは〈生存〉-20%の判定を行なう。失敗した場合、[死亡]する。",
|
174
|
+
"キミは[瀕死]ポイント2点を得る。[瀕死]ポイントを所持している間、キミはあらゆるパワーを使用できず、自身のターンを得ることもできない。各ラウンド終了時、キミは所持している[瀕死]ポイントを1点を失う。全ての[瀕死]ポイントを失う前に戦闘が終了しなかった場合、キミは[死亡]する。",
|
175
|
+
"叙事詩的一撃!! キミは〈生存〉-30%の判定を行なう。失敗した場合、[死亡]する。",
|
176
|
+
"以後、イベント終了時まで、全ての判定の成功率-30%。",
|
177
|
+
"神話的一撃!! キミは宙を舞って三回転ほどした後、地面に叩きつけられる。見るも無惨な姿。肉体は原型を留めていない(キミは[死亡]した)。",
|
178
|
+
]
|
179
|
+
),
|
180
|
+
'S' => DeathChart.new(
|
181
|
+
'精神',
|
182
|
+
[
|
183
|
+
"何も無し。キミは歯を食いしばってストレスに耐えた。",
|
184
|
+
"以後、イベント終了時まで、全ての判定の成功率-10%。",
|
185
|
+
"キミは[恐怖]ポイント2点を得る。[恐怖]ポイントを所持している間、キミは「属性:攻撃」のパワーを使用できない。各ラウンド終了時、キミは所持している[恐怖]ポイントを1点減らしてもよい。",
|
186
|
+
"とても傷ついた。キミは〈意志〉判定を行なう。失敗した場合、[絶望]してNPCとなる。",
|
187
|
+
"キミは[気絶]ポイント2点を得る。[気絶]ポイントを所持している間、キミはあらゆるパワーを使用できず、自身のターンを得ることもできない。各ラウンド終了時、キミは所持している[気絶]ポイントを1点減らしてもよい。",
|
188
|
+
"以後、イベント終了時まで、全ての判定の成功率-20%。",
|
189
|
+
"信じるものに裏切られたような痛み。キミは〈意志〉-20%の判定を行なう。失敗した場合、[絶望]してNPCとなる。",
|
190
|
+
"キミは[混乱]ポイント2点を得る。[混乱]ポイントを所持している間、キミは本来味方であったキャラクターに対して、可能な限り最大の被害を与える様、行動し続ける。各ラウンド終了時、キミは所持している[混乱]ポイントを1点減らしてもよい。",
|
191
|
+
"あまりに残酷な現実。キミは〈意志〉-30%の判定を行なう。失敗した場合、[絶望]してNPCとなる。",
|
192
|
+
"以後、イベント終了時まで、全ての判定の成功率-30%。",
|
193
|
+
"宇宙開闢の理に触れるも、それは人類の認識限界を超える何かであった。キミは[絶望]し、以後NPCとなる。",
|
194
|
+
]
|
195
|
+
),
|
196
|
+
'C' => DeathChart.new(
|
197
|
+
'環境',
|
198
|
+
[
|
199
|
+
"何も無し。キミは黒い噂を握りつぶした。",
|
200
|
+
"以後、イベント終了時まで、全ての判定の成功率-10%。",
|
201
|
+
"ピンチ! 以後、イベント終了時まで、キミは《支援》を使用できない。",
|
202
|
+
"裏切り!! キミは〈経済〉判定を行なう。失敗した場合、キミはヒーローとしての名声を失い、[汚名]を受ける。",
|
203
|
+
"以後、シナリオ終了時まで、代償にクレジットを消費するパワーを使用できない。",
|
204
|
+
"キミの悪評は大変なもののようだ。協力者からの支援が打ち切られる。以後、シナリオ終了時まで、全ての判定の成功率-20%。",
|
205
|
+
"信頼の失墜!! キミは〈経済〉-20%の判定を行なう。失敗した場合、キミはヒーローとしての名声を失い、[汚名]を受ける。",
|
206
|
+
"以後、シナリオ終了時まで、【環境】系の技能のレベルがすべて0となる。",
|
207
|
+
"捏造報道!! 身の覚えのない犯罪への荷担が、スクープとして報道される。キミは〈経済〉-30%の判定を行なう。失敗した場合、キミはヒーローとしての名声を失い、[汚名]を受ける。",
|
208
|
+
"以後、イベント終了時まで、全ての判定の成功率-30%。",
|
209
|
+
"キミの名は史上最悪の汚点として永遠に歴史に刻まれる。もはやキミを信じる仲間はなく、キミを助ける社会もない。キミは[汚名]を受けた。",
|
210
|
+
]
|
211
|
+
)
|
212
|
+
}.freeze
|
213
|
+
|
214
|
+
class RealNameChart < DiceTable::RangeTable
|
215
|
+
def initialize(name, columns, chart)
|
216
|
+
items = chart.map { |l| mix_column(columns, l) }
|
217
|
+
super(name, "1D100", items)
|
218
|
+
end
|
219
|
+
|
220
|
+
private
|
221
|
+
|
222
|
+
def mix_column(columns, item)
|
223
|
+
range, names = item
|
224
|
+
if names.size == 1
|
225
|
+
return range, names[0]
|
226
|
+
end
|
227
|
+
|
228
|
+
candidate = columns.zip(names).map { |l| "\n" + l.join(": ") }.join("")
|
229
|
+
return range, candidate
|
230
|
+
end
|
231
|
+
end
|
232
|
+
|
233
|
+
TABLES = {
|
234
|
+
'RNCJ' => RealNameChart.new(
|
235
|
+
'リアルネームチャート(日本)',
|
236
|
+
['姓', '名(男)', '名(女)'],
|
237
|
+
[
|
238
|
+
[1..6, ['アイカワ/相川、愛川', 'アキラ/晶、章', 'アン/杏']],
|
239
|
+
[7..12, ['アマミヤ/雨宮', 'エイジ/映司、英治', 'イノリ/祈鈴、祈']],
|
240
|
+
[13..18, ['イブキ/伊吹', 'カズキ/和希、一輝', 'エマ/英真、恵茉']],
|
241
|
+
[19..24, ['オガミ/尾上', 'ギンガ/銀河', 'カノン/花音、観音']],
|
242
|
+
[25..30, ['カイ/甲斐', 'ケンイチロウ/健一郎', 'サラ/沙羅']],
|
243
|
+
[31..36, ['サカキ/榊、阪木', 'ゴウ/豪、剛', 'シズク/雫']],
|
244
|
+
[37..42, ['シシド/宍戸', 'ジロー/次郎、治郎', 'チズル/千鶴、千尋']],
|
245
|
+
[43..48, ['タチバナ/橘、立花', 'タケシ/猛、武', 'ナオミ/直美、尚美']],
|
246
|
+
[49..54, ['ツブラヤ/円谷', 'ツバサ/翼', 'ハル/華、波留']],
|
247
|
+
[55..60, ['ハヤカワ/早川', 'テツ/鉄、哲', 'ヒカル/光']],
|
248
|
+
[61..66, ['ハラダ/原田', 'ヒデオ/英雄', 'ベニ/紅']],
|
249
|
+
[67..72, ['フジカワ/藤川', 'マサムネ/正宗、政宗', 'マチ/真知、町']],
|
250
|
+
[73..78, ['ホシ/星', 'ヤマト/大和', 'ミア/深空、美杏']],
|
251
|
+
[79..84, ['ミゾグチ/溝口', 'リュウセイ/流星', 'ユリコ/由里子']],
|
252
|
+
[85..90, ['ヤシダ/矢志田', 'レツ/烈、裂', 'ルイ/瑠衣、涙']],
|
253
|
+
[91..96, ['ユウキ/結城', 'レン/連、錬', 'レナ/玲奈']],
|
254
|
+
[97..100, ['名無し(何らかの理由で名前を持たない、もしくは失った)']],
|
255
|
+
]
|
256
|
+
),
|
257
|
+
'RNCO' => RealNameChart.new(
|
258
|
+
'リアルネームチャート(海外)',
|
259
|
+
['名(男)', '名(女)', '姓'],
|
260
|
+
[
|
261
|
+
[1..6, ['アルバス', 'アイリス', 'アレン']],
|
262
|
+
[7..12, ['クリス', 'オリーブ', 'ウォーケン']],
|
263
|
+
[13..18, ['サミュエル', 'カーラ', 'ウルフマン']],
|
264
|
+
[19..24, ['シドニー', 'キルスティン', 'オルセン']],
|
265
|
+
[25..30, ['スパイク', 'グウェン', 'カーター']],
|
266
|
+
[31..36, ['ダミアン', 'サマンサ', 'キャラダイン']],
|
267
|
+
[37..42, ['ディック', 'ジャスティナ', 'シーゲル']],
|
268
|
+
[43..48, ['デンゼル', 'タバサ', 'ジョーンズ']],
|
269
|
+
[49..54, ['ドン', 'ナディン', 'パーカー']],
|
270
|
+
[55..60, ['ニコラス', 'ノエル', 'フリーマン']],
|
271
|
+
[61..66, ['ネビル', 'ハーリーン', 'マーフィー']],
|
272
|
+
[67..72, ['バリ', 'マルセラ', 'ミラー']],
|
273
|
+
[73..78, ['ビリー', 'ラナ', 'ムーア']],
|
274
|
+
[79..84, ['ブルース', 'リンジー', 'リーヴ']],
|
275
|
+
[85..90, ['マーヴ', 'ロザリー', 'レイノルズ']],
|
276
|
+
[91..96, ['ライアン', 'ワンダ', 'ワード']],
|
277
|
+
[97..100, ['名無し(何らかの理由で名前を持たない、もしくは失った)']],
|
278
|
+
]
|
279
|
+
)
|
280
|
+
}.freeze
|
281
|
+
|
282
|
+
def roll_hero_name_chart()
|
283
|
+
dice = @randomizer.roll_once(10)
|
284
|
+
template = HERO_NAME_TEMPLATES[dice - 1]
|
285
|
+
|
286
|
+
template_result = "ヒーローネームチャート(#{dice}) > #{template[:text]}"
|
287
|
+
if template[:text] == "任意"
|
288
|
+
return template_result
|
289
|
+
end
|
290
|
+
|
291
|
+
results = [template_result]
|
292
|
+
elements = []
|
293
|
+
template[:elements].each do |type|
|
294
|
+
base_chart = HERO_NAME_BASE_CHARTS[type]
|
295
|
+
unless base_chart
|
296
|
+
elements.push(type)
|
297
|
+
next
|
298
|
+
end
|
299
|
+
|
300
|
+
result, element = base_chart.roll(@randomizer)
|
301
|
+
results.push(result)
|
302
|
+
elements.push(element)
|
303
|
+
end
|
304
|
+
|
305
|
+
hero_name = elements.join("").gsub(/・{2,}/, "・").sub(/・$/, "")
|
306
|
+
results.push("ヒーローネーム > #{hero_name}")
|
307
|
+
|
308
|
+
return results.join("\n")
|
309
|
+
end
|
310
|
+
|
311
|
+
HERO_NAME_TEMPLATES = [
|
312
|
+
{text: 'ベースA+ベースA', elements: ['ベースA', 'ベースB']},
|
313
|
+
{text: 'ベースB', elements: ['ベースB']},
|
314
|
+
{text: 'ベースB×2回', elements: ['ベースB', 'ベースB']},
|
315
|
+
{text: 'ベースB+ベースC', elements: ['ベースB', 'ベースC']},
|
316
|
+
{text: 'ベースA+ベースB+ベースC', elements: ['ベースA', 'ベースB', 'ベースC']},
|
317
|
+
{text: 'ベースA+ベースB×2回', elements: ['ベースA', 'ベースB', 'ベースB']},
|
318
|
+
{text: 'ベースB×2回+ベースC', elements: ['ベースB', 'ベースB', 'ベースC']},
|
319
|
+
{text: '(ベースB)・オブ・(ベースB)', elements: ['ベースB', '・オブ・', 'ベースB']},
|
320
|
+
{text: '(ベースB)・ザ・(ベースB)', elements: ['ベースB', '・ザ・', 'ベースB']},
|
321
|
+
{text: '任意', elements: ['任意']},
|
322
|
+
].freeze
|
323
|
+
|
324
|
+
class HeroNameBaseChart
|
325
|
+
def initialize(name, items)
|
326
|
+
@name = name
|
327
|
+
@items = items
|
328
|
+
end
|
329
|
+
|
330
|
+
# @param randomizer [Randomizer]
|
331
|
+
# @return [Array<(String, String)>]
|
332
|
+
def roll(randomizer)
|
333
|
+
dice = randomizer.roll_once(10)
|
334
|
+
chosen = @items[dice - 1]
|
335
|
+
|
336
|
+
result = "#{@name}(#{dice}) > #{chosen}"
|
337
|
+
if (m = chosen.match(/^[(.+)]$/))
|
338
|
+
element_type = m[1]
|
339
|
+
element_chart = HERO_NAME_ELEMENT_CHARTS[element_type]
|
340
|
+
|
341
|
+
element_result, chosen = element_chart.roll(randomizer)
|
342
|
+
result = [result, element_result].join(" > ")
|
343
|
+
end
|
344
|
+
|
345
|
+
return result, chosen
|
346
|
+
end
|
347
|
+
end
|
348
|
+
|
349
|
+
class HeroNameElementChart
|
350
|
+
def initialize(name, items)
|
351
|
+
@name = name
|
352
|
+
@items = items
|
353
|
+
end
|
354
|
+
|
355
|
+
# @param randomizer [Randomizer]
|
356
|
+
# @return [Array<(String, String)>]
|
357
|
+
def roll(randomizer)
|
358
|
+
dice = randomizer.roll_once(10)
|
359
|
+
chosen = @items[dice - 1]
|
360
|
+
|
361
|
+
result = "#{@name}(#{dice}) > #{chosen[:element]} (意味:#{chosen[:mean]})"
|
362
|
+
return result, chosen[:element]
|
363
|
+
end
|
364
|
+
end
|
365
|
+
|
366
|
+
HERO_NAME_BASE_CHARTS = {
|
367
|
+
"ベースA" => HeroNameBaseChart.new(
|
368
|
+
"ベースA",
|
369
|
+
[
|
370
|
+
"ザ・",
|
371
|
+
"キャプテン・",
|
372
|
+
"ミスター/ミス/ミセス・",
|
373
|
+
"ドクター/プロフェッサー・",
|
374
|
+
"ロード/バロン/ジェネラル・",
|
375
|
+
"マン・オブ・",
|
376
|
+
"[強さ]",
|
377
|
+
"[色]",
|
378
|
+
"マダム/ミドル・",
|
379
|
+
"数字(1~10)・",
|
380
|
+
]
|
381
|
+
),
|
382
|
+
"ベースB" => HeroNameBaseChart.new(
|
383
|
+
"ベースB",
|
384
|
+
[
|
385
|
+
"[神話/夢]",
|
386
|
+
"[武器]",
|
387
|
+
"[動物]",
|
388
|
+
"[鳥]",
|
389
|
+
"[虫/爬虫類]",
|
390
|
+
"[部位]",
|
391
|
+
"[光]",
|
392
|
+
"[攻撃]",
|
393
|
+
"[その他]",
|
394
|
+
"数字(1~10)・",
|
395
|
+
]
|
396
|
+
),
|
397
|
+
"ベースC" => HeroNameBaseChart.new(
|
398
|
+
"ベースC",
|
399
|
+
[
|
400
|
+
"マン/ウーマン",
|
401
|
+
"ボーイ/ガール",
|
402
|
+
"マスク/フード",
|
403
|
+
"ライダー",
|
404
|
+
"マスター",
|
405
|
+
"ファイター/ソルジャー",
|
406
|
+
"キング/クイーン",
|
407
|
+
"[色]",
|
408
|
+
"ヒーロー/スペシャル",
|
409
|
+
"ヒーロー/スペシャル",
|
410
|
+
]
|
411
|
+
),
|
412
|
+
}.freeze
|
413
|
+
|
414
|
+
HERO_NAME_ELEMENT_CHARTS = {
|
415
|
+
"部位" => HeroNameElementChart.new(
|
416
|
+
"部位",
|
417
|
+
[
|
418
|
+
{element: "ハート", mean: "心臓"},
|
419
|
+
{element: "フェイス", mean: "顔"},
|
420
|
+
{element: "アーム", mean: "腕"},
|
421
|
+
{element: "ショルダー", mean: "肩"},
|
422
|
+
{element: "ヘッド", mean: "頭"},
|
423
|
+
{element: "アイ", mean: "眼"},
|
424
|
+
{element: "フィスト", mean: "拳"},
|
425
|
+
{element: "ハンド", mean: "手"},
|
426
|
+
{element: "クロウ", mean: "爪"},
|
427
|
+
{element: "ボーン", mean: "骨"},
|
428
|
+
]
|
429
|
+
),
|
430
|
+
"武器" => HeroNameElementChart.new(
|
431
|
+
"武器",
|
432
|
+
[
|
433
|
+
{element: "ナイヴス", mean: "短剣"},
|
434
|
+
{element: "ソード", mean: "剣"},
|
435
|
+
{element: "ハンマー", mean: "鎚"},
|
436
|
+
{element: "ガン", mean: "銃"},
|
437
|
+
{element: "スティール", mean: "刃"},
|
438
|
+
{element: "タスク", mean: "牙"},
|
439
|
+
{element: "ニューク", mean: "核"},
|
440
|
+
{element: "アロー", mean: "矢"},
|
441
|
+
{element: "ソウ", mean: "ノコギリ"},
|
442
|
+
{element: "レイザー", mean: "剃刀"},
|
443
|
+
]
|
444
|
+
),
|
445
|
+
"色" => HeroNameElementChart.new(
|
446
|
+
"色",
|
447
|
+
[
|
448
|
+
{element: "ブラック", mean: "黒"},
|
449
|
+
{element: "グリーン", mean: "緑"},
|
450
|
+
{element: "ブルー", mean: "青"},
|
451
|
+
{element: "イエロー", mean: "黃"},
|
452
|
+
{element: "レッド", mean: "赤"},
|
453
|
+
{element: "バイオレット", mean: "紫"},
|
454
|
+
{element: "シルバー", mean: "銀"},
|
455
|
+
{element: "ゴールド", mean: "金"},
|
456
|
+
{element: "ホワイト", mean: "白"},
|
457
|
+
{element: "クリア", mean: "透明"},
|
458
|
+
]
|
459
|
+
),
|
460
|
+
"動物" => HeroNameElementChart.new(
|
461
|
+
"動物",
|
462
|
+
[
|
463
|
+
{element: "バニー", mean: "ウサギ"},
|
464
|
+
{element: "タイガー", mean: "虎"},
|
465
|
+
{element: "シャーク", mean: "鮫"},
|
466
|
+
{element: "キャット", mean: "猫"},
|
467
|
+
{element: "コング", mean: "ゴリラ"},
|
468
|
+
{element: "ドッグ", mean: "犬"},
|
469
|
+
{element: "フォックス", mean: "狐"},
|
470
|
+
{element: "パンサー", mean: "豹"},
|
471
|
+
{element: "アス", mean: "ロバ"},
|
472
|
+
{element: "バット", mean: "蝙蝠"},
|
473
|
+
]
|
474
|
+
),
|
475
|
+
"神話/夢" => HeroNameElementChart.new(
|
476
|
+
"神話/夢",
|
477
|
+
[
|
478
|
+
{element: "アポカリプス", mean: "黙示録"},
|
479
|
+
{element: "ウォー", mean: "戦争"},
|
480
|
+
{element: "エターナル", mean: "永遠"},
|
481
|
+
{element: "エンジェル", mean: "天使"},
|
482
|
+
{element: "デビル", mean: "悪魔"},
|
483
|
+
{element: "イモータル", mean: "死なない"},
|
484
|
+
{element: "デス", mean: "死神"},
|
485
|
+
{element: "ドリーム", mean: "夢"},
|
486
|
+
{element: "ゴースト", mean: "幽霊"},
|
487
|
+
{element: "デッド", mean: "死んでいる"},
|
488
|
+
]
|
489
|
+
),
|
490
|
+
"攻撃" => HeroNameElementChart.new(
|
491
|
+
"攻撃",
|
492
|
+
[
|
493
|
+
{element: "ストローク", mean: "一撃"},
|
494
|
+
{element: "クラッシュ", mean: "壊す"},
|
495
|
+
{element: "ブロウ", mean: "吹き飛ばす"},
|
496
|
+
{element: "ヒット", mean: "打つ"},
|
497
|
+
{element: "パンチ", mean: "殴る"},
|
498
|
+
{element: "キック", mean: "蹴る"},
|
499
|
+
{element: "スラッシュ", mean: "斬る"},
|
500
|
+
{element: "ペネトレイト", mean: "貫く"},
|
501
|
+
{element: "ショット", mean: "撃つ"},
|
502
|
+
{element: "キル", mean: "殺す"},
|
503
|
+
]
|
504
|
+
),
|
505
|
+
"その他" => HeroNameElementChart.new(
|
506
|
+
"その他",
|
507
|
+
[
|
508
|
+
{element: "ヒューマン", mean: "人間"},
|
509
|
+
{element: "エージェント", mean: "代理人"},
|
510
|
+
{element: "ブースター", mean: "泥棒"},
|
511
|
+
{element: "アイアン", mean: "鉄"},
|
512
|
+
{element: "サンダー", mean: "雷"},
|
513
|
+
{element: "ウォッチャー", mean: "監視者"},
|
514
|
+
{element: "プール", mean: "水たまり"},
|
515
|
+
{element: "マシーン", mean: "機械"},
|
516
|
+
{element: "コールド", mean: "冷たい"},
|
517
|
+
{element: "サイド", mean: "側面"},
|
518
|
+
]
|
519
|
+
),
|
520
|
+
"鳥" => HeroNameElementChart.new(
|
521
|
+
"鳥",
|
522
|
+
[
|
523
|
+
{element: "ホーク", mean: "鷹"},
|
524
|
+
{element: "ファルコン", mean: "隼"},
|
525
|
+
{element: "キャナリー", mean: "カナリア"},
|
526
|
+
{element: "ロビン", mean: "コマツグミ"},
|
527
|
+
{element: "イーグル", mean: "鷲"},
|
528
|
+
{element: "オウル", mean: "フクロウ"},
|
529
|
+
{element: "レイブン", mean: "ワタリガラス"},
|
530
|
+
{element: "ダック", mean: "アヒル"},
|
531
|
+
{element: "ペンギン", mean: "ペンギン"},
|
532
|
+
{element: "フェニックス", mean: "不死鳥"},
|
533
|
+
]
|
534
|
+
),
|
535
|
+
"光" => HeroNameElementChart.new(
|
536
|
+
"光",
|
537
|
+
[
|
538
|
+
{element: "ライト", mean: "光"},
|
539
|
+
{element: "シャドウ", mean: "影"},
|
540
|
+
{element: "ファイアー", mean: "炎"},
|
541
|
+
{element: "ダーク", mean: "暗い"},
|
542
|
+
{element: "ナイト", mean: "夜"},
|
543
|
+
{element: "ファントム", mean: "幻影"},
|
544
|
+
{element: "トーチ", mean: "灯火"},
|
545
|
+
{element: "フラッシュ", mean: "閃光"},
|
546
|
+
{element: "ランタン", mean: "手さげランプ"},
|
547
|
+
{element: "サン", mean: "太陽"},
|
548
|
+
]
|
549
|
+
),
|
550
|
+
"虫/爬虫類" => HeroNameElementChart.new(
|
551
|
+
"虫/爬虫類",
|
552
|
+
[
|
553
|
+
{element: "ビートル", mean: "甲虫"},
|
554
|
+
{element: "バタフライ/モス", mean: "蝶/蛾"},
|
555
|
+
{element: "スネーク/コブラ", mean: "蛇"},
|
556
|
+
{element: "アリゲーター", mean: "ワニ"},
|
557
|
+
{element: "ローカスト", mean: "バッタ"},
|
558
|
+
{element: "リザード", mean: "トカゲ"},
|
559
|
+
{element: "タートル", mean: "亀"},
|
560
|
+
{element: "スパイダー", mean: "蜘蛛"},
|
561
|
+
{element: "アント", mean: "アリ"},
|
562
|
+
{element: "マンティス", mean: "カマキリ"},
|
563
|
+
]
|
564
|
+
),
|
565
|
+
"強さ" => HeroNameElementChart.new(
|
566
|
+
"強さ",
|
567
|
+
[
|
568
|
+
{element: "スーパー/ウルトラ", mean: "超"},
|
569
|
+
{element: "ワンダー", mean: "驚異的"},
|
570
|
+
{element: "アルティメット", mean: "究極の"},
|
571
|
+
{element: "ファンタスティック", mean: "途方もない"},
|
572
|
+
{element: "マイティ", mean: "強い"},
|
573
|
+
{element: "インクレディブル", mean: "凄い"},
|
574
|
+
{element: "アメージング", mean: "素晴らしい"},
|
575
|
+
{element: "ワイルド", mean: "狂乱の"},
|
576
|
+
{element: "グレイテスト", mean: "至高の"},
|
577
|
+
{element: "マーベラス", mean: "驚くべき"},
|
578
|
+
]
|
579
|
+
),
|
580
|
+
}.freeze
|
581
|
+
end
|
582
|
+
end
|
583
|
+
end
|