OSDN Git Service

[Feature] MonraceDefinitionsの射撃定義を打撃定義から独立
authordis- <dis.rogue@gmail.com>
Sun, 12 May 2024 13:58:49 +0000 (22:58 +0900)
committerdis- <dis.rogue@gmail.com>
Sat, 18 May 2024 10:06:51 +0000 (19:06 +0900)
 fix #4045

これまで射撃威力は打撃攻撃定義に依存していた。
この依存関係を解消するため定義ファイルを変更し射撃威力定義の項目を新規に追加した。
合わせて読込部分を変更し、内部データでも射撃威力を独自に保持するようにした。

15 files changed:
lib/edit/MonraceDefinitions.jsonc
schema/MonraceDefinitions.schema.json
src/info-reader/race-info-tokens-table.cpp
src/info-reader/race-reader.cpp
src/lore/combat-types-setter.cpp
src/melee/melee-switcher.cpp
src/melee/monster-attack-monster.cpp
src/monster-attack/monster-attack-describer.cpp
src/monster-attack/monster-attack-player.cpp
src/monster-attack/monster-attack-table.h
src/mspell/mspell-damage-calculator.cpp
src/object/warning.cpp
src/system/monster-race-info.h
src/view/display-lore-attacks.cpp
src/view/display-lore.cpp

index 710d4e6..fd98930 100644 (file)
@@ -41,7 +41,7 @@
       ###打撃手段一覧###\r
         "HIT", "TOUCH","PUNCH","KICK", "CLAW", "BITE", "STING", "SLASH", \r
         "BUTT", "CRUSH", "ENGULF", "CHARGE","CRAWL", "DROOL", "SPIT","EXPLODE",\r
-        "GAZE", "WAIL", "SPORE", "BEG", "INSULT", "MOAN","SHOW","SHOOT"\r
+        "GAZE", "WAIL", "SPORE", "BEG", "INSULT", "MOAN","SHOW"\r
       ###打撃属性一覧###\r
         "HURT", "POISON", "UN_BONUS", "UN_POWER", "EAT_GOLD", "EAT_ITEM", "EAT_FOOD", "EAT_LITE", \r
         "ACID", "ELEC", "FIRE", "COLD", "BLIND", "CONFUSE", "TERRIFY", "PARALYZE", \r
 \r
       "skill": { モンスターの発動型能力設定\r
         "probability": "発動型能力使用確率 1_IN_Xの形式",\r
-        "list": ["発動型能力リスト", "複数設定可能"]\r
+        "list": ["発動型能力リスト", "複数設定可能"],\r
+        "shoot" : "射撃ダメージダイス XdY形式。射撃を使用する場合のみ"\r
       },\r
       ###発動型能力一覧###\r
-      "SHRIEK", "DISPEL", "ROCKET", "SHOOT", "BR_ACID", "BR_ELEC", "BR_FIRE", "BR_COLD",\r
+      "SHRIEK", "DISPEL", "ROCKET", "BR_ACID", "BR_ELEC", "BR_FIRE", "BR_COLD",\r
       "BR_POIS", "BR_NETH", "BR_LITE", "BR_DARK", "BR_CONF", "BR_SOUN", "BR_CHAO", "BR_DISE",\r
       "BR_NEXU", "BR_TIME", "BR_INER", "BR_GRAV", "BR_SHAR", "BR_PLAS", "BR_FORC", "BR_MANA",\r
       "BA_NUKE", "BR_NUKE", "BA_CHAO", "BR_DISI", "BR_VOID", "BR_ABYSS", \r
       "evolve": { "need_exp": 500, "to": 1039 },\r
       "sex": "MALE",\r
       "blows": [\r
-        { "method": "SHOOT", "effect": "HURT", "damage_dice": "2d7" },\r
         { "method": "HIT", "effect": "HURT", "damage_dice": "1d7" },\r
         { "method": "HIT", "effect": "HURT", "damage_dice": "1d7" }\r
       ],\r
         "BASH_DOOR",\r
         "WILD_WOOD"\r
       ],\r
-      "skill": { "probability": "1_IN_9", "list": ["SHOOT", "MISSILE"] },\r
+      "skill": { "probability": "1_IN_9", "list": ["MISSILE"], "shoot": "2d7" },\r
       "flavor": {\r
         "ja": "機敏な野伏で、常に戦闘を意識している。",\r
         "en": "An agile hunter, ready and relaxed."\r
       "rarity": 2,\r
       "exp": 20,\r
       "blows": [\r
-        { "method": "SHOOT", "effect": "HURT", "damage_dice": "2d5" },\r
         { "method": "HIT", "effect": "HURT", "damage_dice": "2d4" },\r
         { "method": "HIT", "effect": "HURT", "damage_dice": "2d4" }\r
       ],\r
         "WILD_WOOD",\r
         "HAS_LITE_1"\r
       ],\r
-      "skill": { "probability": "1_IN_8", "list": ["SHOOT"] },\r
+      "skill": { "probability": "1_IN_8", "shoot": "2d5" },\r
       "flavor": {\r
         "ja": "それは小さな毛むくじゃらのかわいい熊で、商業的価値が高い。",\r
         "en": "A cute, furry little animal, full of merchandising potential."\r
       "evolve": { "need_exp": 140, "to": 219 },\r
       "sex": "MALE",\r
       "blows": [\r
-        { "method": "SHOOT", "effect": "HURT", "damage_dice": "2d5" },\r
         { "method": "HIT", "effect": "HURT", "damage_dice": "1d5" },\r
         { "method": "HIT", "effect": "HURT", "damage_dice": "1d5" }\r
       ],\r
         "OPEN_DOOR",\r
         "BASH_DOOR"\r
       ],\r
-      "skill": { "probability": "1_IN_3", "list": ["SHOOT"] },\r
+      "skill": { "probability": "1_IN_3", "shoot": "2d5" },\r
       "flavor": {\r
         "ja": "弓と矢を持った、背の低いやっかいな奴だ。",\r
         "en": "A nasty little fellow with a bow and arrow."\r
       "sex": "MALE",\r
       "odds_correction_ratio": 75,\r
       "blows": [\r
-        { "method": "SHOOT", "effect": "HURT", "damage_dice": "3d6" },\r
         { "method": "HIT", "effect": "HURT", "damage_dice": "2d6" },\r
         { "method": "TOUCH", "effect": "EAT_GOLD" },\r
         { "method": "TOUCH", "effect": "EAT_ITEM" }\r
         "DROP_SKELETON",\r
         "DROP_CORPSE"\r
       ],\r
-      "skill": { "probability": "1_IN_5", "list": ["SHOOT", "HEAL", "TRAPS"] },\r
+      "skill": { "probability": "1_IN_5", "list": ["HEAL", "TRAPS"], "shoot": "3d6" },\r
       "artifacts": [{ "drop_artifact_id": 221, "drop_probability": 5 }],\r
       "flavor": {\r
         "ja": "この伝説の射手は金持ち(あなたは合格)から金を盗む。",\r
       "evolve": { "need_exp": 500, "to": 1039 },\r
       "sex": "MALE",\r
       "blows": [\r
-        { "method": "SHOOT", "effect": "HURT", "damage_dice": "2d7" },\r
         { "method": "HIT", "effect": "HURT", "damage_dice": "1d7" },\r
         { "method": "HIT", "effect": "HURT", "damage_dice": "1d7" }\r
       ],\r
         "OPEN_DOOR",\r
         "BASH_DOOR"\r
       ],\r
-      "skill": { "probability": "1_IN_9", "list": ["SHOOT", "MISSILE"] },\r
+      "skill": { "probability": "1_IN_9", "list": ["MISSILE"], "shoot": "2d7" },\r
       "flavor": {\r
         "ja": "機敏な野伏で、常に戦闘を意識している。そして仲間たちが追跡の手助けをしている。",\r
         "en": "An agile hunter, ready and relaxed."\r
       "level": 10,\r
       "rarity": 2,\r
       "exp": 3,\r
-      "blows": [\r
-        { "method": "SHOOT", "effect": "HURT", "damage_dice": "2d5" },\r
-        { "method": "SPORE", "effect": "CONFUSE", "damage_dice": "1d1" }\r
-      ],\r
+      "blows": [{ "method": "SPORE", "effect": "CONFUSE", "damage_dice": "1d1" }],\r
       "flags": [\r
         "NEVER_MOVE",\r
         "COLD_BLOOD",\r
         "NO_SLEEP",\r
         "NO_FEAR"\r
       ],\r
-      "skill": { "probability": "1_IN_5", "list": ["SHOOT"] },\r
+      "skill": { "probability": "1_IN_5", "shoot": "2d5" },\r
       "flavor": { "ja": "それは奇妙に見える。", "en": "It looks weird." }\r
     },\r
     //#J0#\r
       "exp": 40,\r
       "sex": "MALE",\r
       "blows": [\r
-        { "method": "SHOOT", "effect": "HURT", "damage_dice": "4d6" },\r
         { "method": "HIT", "effect": "HURT", "damage_dice": "3d4" },\r
         { "method": "HIT", "effect": "HURT", "damage_dice": "3d4" }\r
       ],\r
         "DROP_SKELETON",\r
         "DROP_CORPSE"\r
       ],\r
-      "skill": { "probability": "1_IN_8", "list": ["SHOOT"] },\r
+      "skill": { "probability": "1_IN_8", "shoot": "4d6" },\r
       "flavor": {\r
         "ja": "射撃だけでなく接近戦にも優れた戦士だ。",\r
         "en": "A warrior trained in melee as well as missile weapons."\r
       "rarity": 2,\r
       "exp": 55,\r
       "blows": [\r
-        { "method": "SHOOT", "effect": "HURT", "damage_dice": "3d6" },\r
         { "method": "HIT", "effect": "HURT", "damage_dice": "1d12" },\r
         { "method": "HIT", "effect": "HURT", "damage_dice": "1d12" },\r
         { "method": "BITE", "effect": "POISON", "damage_dice": "1d6" }\r
       "flags": ["PREVENT_SUDDEN_MAGIC", "BASH_DOOR", "DROP_SKELETON", "EVIL", "IM_POIS"],\r
       "skill": {\r
         "probability": "1_IN_8",\r
-        "list": ["CONF", "CAUSE_1", "DARKNESS", "MISSILE", "SHOOT"]\r
+        "list": ["CONF", "CAUSE_1", "DARKNESS", "MISSILE"],\r
+        "shoot": "3d6"\r
       },\r
       "flavor": {\r
         "ja": "それは上半身がエルフで、下半身には巨大蜘蛛のような膨れた腹を持っている。",\r
       "exp": 45,\r
       "sex": "MALE",\r
       "blows": [\r
-        { "method": "SHOOT", "effect": "HURT", "damage_dice": "2d7" },\r
         { "method": "HIT", "effect": "HURT", "damage_dice": "3d4" },\r
         { "method": "HIT", "effect": "HURT", "damage_dice": "3d4" }\r
       ],\r
         "HURT_LITE",\r
         "RES_DARK"\r
       ],\r
-      "skill": { "probability": "1_IN_15", "list": ["SHOOT"] },\r
+      "skill": { "probability": "1_IN_15", "shoot": "2d7" },\r
       "flavor": {\r
         "ja": "彼は強い力と漆黒の肌を持った大きなオークだ。",\r
         "en": "He is a large orc with powerful arms and deep black skin."\r
       "rarity": 1,\r
       "exp": 50,\r
       "blows": [\r
-        { "method": "SHOOT", "effect": "HURT", "damage_dice": "4d5" },\r
         { "method": "CLAW", "effect": "HURT", "damage_dice": "2d3" },\r
         { "method": "CLAW", "effect": "HURT", "damage_dice": "2d3" },\r
         { "method": "BITE", "effect": "HURT", "damage_dice": "2d3" }\r
         "IM_ELEC",\r
         "IM_ACID"\r
       ],\r
-      "skill": { "probability": "1_IN_10", "list": ["SHOOT"] },\r
+      "skill": { "probability": "1_IN_10", "shoot": "4d5" },\r
       "flavor": {\r
         "ja": "その体は半分がライオンで、半分が鷲だ。それは冒険者の方へ威嚇的に飛んでくる。",\r
         "en": "It is half lion, half eagle.  It flies menacingly towards you."\r
       "exp": 40,\r
       "sex": "MALE",\r
       "blows": [\r
-        { "method": "SHOOT", "effect": "HURT", "damage_dice": "3d6" },\r
         { "method": "HIT", "effect": "HURT", "damage_dice": "3d4" },\r
         { "method": "HIT", "effect": "HURT", "damage_dice": "3d4" },\r
         { "method": "HIT", "effect": "HURT", "damage_dice": "3d4" }\r
         "RES_DARK",\r
         "SPEAK_ALL"\r
       ],\r
-      "skill": { "probability": "1_IN_15", "list": ["SHOOT"] },\r
+      "skill": { "probability": "1_IN_15", "shoot": "3d6" },\r
       "flavor": {\r
         "ja": "鎧を着たオークで、威厳のある雰囲気を漂わせている。",\r
         "en": "An armoured orc with an air of authority."\r
       "exp": 68,\r
       "sex": "MALE",\r
       "blows": [\r
-        { "method": "SHOOT", "effect": "HURT", "damage_dice": "3d5" },\r
         { "method": "HIT", "effect": "HURT", "damage_dice": "3d5" },\r
         { "method": "HIT", "effect": "HURT", "damage_dice": "3d5" }\r
       ],\r
         "IM_POIS",\r
         "RES_DARK"\r
       ],\r
-      "skill": { "probability": "1_IN_12", "list": ["SHOOT"] },\r
+      "skill": { "probability": "1_IN_12", "shoot": "3d5" },\r
       "flavor": {\r
         "ja": "彼はずる賢くて力のあるオークで、背丈は人間と同じぐらいだが力は人間より強い。彼は恐れるということを知らない。",\r
         "en": "He is a cunning orc of power, as tall as a man, and stronger.  It fears little."\r
       "exp": 350,\r
       "evolve": { "need_exp": 2000, "to": 490 },\r
       "blows": [\r
-        { "method": "SHOOT", "effect": "HURT", "damage_dice": "7d6" },\r
         { "method": "HIT", "effect": "HURT", "damage_dice": "9d8" },\r
         { "method": "HIT", "effect": "HURT", "damage_dice": "9d8" }\r
       ],\r
         "IM_ACID",\r
         "GIANT"\r
       ],\r
-      "skill": { "probability": "1_IN_8", "list": ["SHOOT"] },\r
+      "skill": { "probability": "1_IN_8", "shoot": "7d6" },\r
       "flavor": {\r
         "ja": "一つ目の巨人だ。",\r
         "en": "A gigantic humanoid with but one eye."\r
       "rarity": 2,\r
       "exp": 300,\r
       "blows": [\r
-        { "method": "SHOOT", "effect": "HURT", "damage_dice": "7d6" },\r
         { "method": "HIT", "effect": "HURT", "damage_dice": "4d4" },\r
         { "method": "HIT", "effect": "HURT", "damage_dice": "4d4" },\r
         { "method": "HIT", "effect": "HURT", "damage_dice": "4d4" }\r
         "RIDING",\r
         "EVIL"\r
       ],\r
-      "skill": { "probability": "1_IN_5", "list": ["SHOOT"] },\r
+      "skill": { "probability": "1_IN_5", "shoot": "7d6" },\r
       "flavor": {\r
         "ja": "それは羽の生えたライオンの体と、人間の上半身と、邪悪な刺に覆われた尻尾を持った生物だ。",\r
         "en": "It is a winged lion's body with a human torso and a tail covered in vicious spikes."\r
       "exp": 1200,\r
       "evolve": { "need_exp": 4500, "to": 1186 },\r
       "blows": [\r
-        { "method": "SHOOT", "effect": "HURT", "damage_dice": "9d6" },\r
         { "method": "HIT", "effect": "HURT", "damage_dice": "11d8" },\r
         { "method": "HIT", "effect": "HURT", "damage_dice": "11d8" }\r
       ],\r
         "IM_ACID",\r
         "GIANT"\r
       ],\r
-      "skill": { "probability": "1_IN_8", "list": ["SHOOT"] },\r
+      "skill": { "probability": "1_IN_8", "shoot": "9d6" },\r
       "flavor": {\r
         "ja": "なんということだ、あぁ!それは最も自然の摂理に反していて、考えうる限り最も忌まわしい生き物だ。二つ目のサイクロプス!この自然の汚点は根絶されなければならない!",\r
         "en": "Oh, no! Aaargh! It is the most unnatural, most disgusting creature imaginable: a two-eyed cyclops! This perversion of nature must be exterminated!"\r
       "exp": 330,\r
       "sex": "MALE",\r
       "blows": [\r
-        { "method": "SHOOT", "effect": "HURT", "damage_dice": "6d6" },\r
         { "method": "HIT", "effect": "HURT", "damage_dice": "2d6" },\r
         { "method": "HIT", "effect": "HURT", "damage_dice": "2d6" }\r
       ],\r
         "DROP_SKELETON",\r
         "DROP_CORPSE"\r
       ],\r
-      "skill": { "probability": "1_IN_3", "list": ["SHOOT"] },\r
+      "skill": { "probability": "1_IN_3", "shoot": "6d6" },\r
       "flavor": {\r
         "ja": "ハーフリング(ホビット)の弓術の伝統を拒否したはぐれ者だ。",\r
         "en": "A rebel halfling who has rejected the halfling tradition of archery."\r
         "NO_FEAR",\r
         "HURT_ROCK"\r
       ],\r
-      "skill": { "probability": "1_IN_8", "list": ["SHOOT"] },\r
+      "skill": { "probability": "1_IN_8", "shoot": "10d10" },\r
       "flavor": {\r
         "ja": "タイタンに似たような姿をした、石でできた巨大な構造物だ。わき目もふらずに冒険者の方に大股で歩み寄ってきて、その拳を大地も揺るがすかのように振り回す。",\r
         "en": "An enormous construct resembling a titan made from stone.  It strides purposefully towards you, swinging its slow fists with earth-shattering power."\r
       ],\r
       "skill": {\r
         "probability": "1_IN_6",\r
-        "list": ["BLIND", "SLOW", "CONF", "SHOOT", "BR_POIS"]\r
+        "list": ["BLIND", "SLOW", "CONF", "BR_POIS"],\r
+        "shoot": "5d8"\r
       },\r
       "flavor": {\r
         "ja": "人工的に作られたドラゴンであるドローレムは屈強な力強さを持っている。その創造に際しては強力な呪文が用いられ、それがこのモンスターを恐るべき強敵に仕立て上げているのだ。その目には知性のかけらも見いだすことはできず、唯一知っていることは、出会ったもの全てを倒すということだけだ。",\r
       ],\r
       "skill": {\r
         "probability": "1_IN_6",\r
-        "list": ["SLOW", "SHOOT", "BO_MANA", "BO_PLAS", "BA_ELEC", "BR_FORC"]\r
+        "list": ["SLOW", "BO_MANA", "BO_PLAS", "BA_ELEC", "BR_FORC"],\r
+        "shoot": "12d13"\r
       },\r
       "flavor": {\r
         "ja": "牛の頭を持った恐るべきデーモンであるバフォメットは、刃向かう者に呪いの言葉を吐きかけながら大きな斧を振り回している。",\r
       "sex": "MALE",\r
       "odds_correction_ratio": 75,\r
       "blows": [\r
-        { "method": "SHOOT", "effect": "HURT", "damage_dice": "10d15" },\r
         { "method": "HIT", "effect": "HURT", "damage_dice": "9d15" },\r
         { "method": "HIT", "effect": "HURT", "damage_dice": "9d15" },\r
         { "method": "HIT", "effect": "LOSE_CON", "damage_dice": "1d30" }\r
         "list": [\r
           "TPORT",\r
           "TELE_TO",\r
-          "SHOOT",\r
           "SHRIEK",\r
           "SCARE",\r
           "DARKNESS",\r
           "TRAPS",\r
           "BO_WATE",\r
           "BO_ELEC"\r
-        ]\r
+        ],\r
+        "shoot": "10d15"\r
       },\r
       "artifacts": [{ "drop_artifact_id": 23, "drop_probability": 45 }],\r
       "escorts": [\r
       "rarity": 2,\r
       "exp": 25,\r
       "odds_correction_ratio": 300,\r
-      "blows": [{ "method": "SHOOT", "effect": "HURT", "damage_dice": "4d6" }],\r
       "flags": ["NEVER_BLOW", "RAND_25", "ANIMAL", "WILD_WOOD"],\r
-      "skill": { "probability": "1_IN_1", "list": ["SHOOT"] },\r
+      "skill": { "probability": "1_IN_1", "shoot": "4d6" },\r
       "flavor": {\r
         "ja": "たくさんの脚で逃げ回り、小石を恐ろしいスピードで口から発射する虫。「で、その《ビハインダー》とやらは、どんな格好をしているのかね?」「はっきりこうとは言えないね。だってそれは、いつも、つかまえようとする相手の背後にいるからさ。(中略)まだ《カルヴァリン》もいる--口から小石を発射することができるんだよ」(マンリー・ウェイド・ウェルマン、深町眞理子訳『悪魔なんかこわくない』 国書刊行会、アーカムハウス叢書、p.146)",\r
         "en": "A many legged scuttling thing, it spits pebbles with deadly force."\r
       "level": 70,\r
       "rarity": 6,\r
       "exp": 2000,\r
-      "blows": [\r
-        { "method": "SHOOT", "effect": "HURT", "damage_dice": "15d10" },\r
-        { "method": "EXPLODE", "effect": "HURT", "damage_dice": "15d5" }\r
-      ],\r
+      "blows": [{ "method": "EXPLODE", "effect": "HURT", "damage_dice": "15d5" }],\r
       "flags": [\r
         "CHAR_CLEAR",\r
         "ATTR_CLEAR",\r
       ],\r
       "skill": {\r
         "probability": "1_IN_3",\r
-        "list": ["ROCKET", "SHOOT", "BLINK", "BR_POIS", "BR_CHAO", "BR_NEXU"]\r
+        "list": ["ROCKET", "BLINK", "BR_POIS", "BR_CHAO", "BR_NEXU"],\r
+        "shoot": "15d10"\r
       },\r
       "flavor": {\r
         "ja": "それは侵入者に対して使用するために置かれている。",\r
       "rarity": 3,\r
       "exp": 4000,\r
       "blows": [\r
-        { "method": "SHOOT", "effect": "HURT", "damage_dice": "7d6" },\r
         { "method": "SPIT", "effect": "COLD", "damage_dice": "10d10" },\r
         { "method": "SPIT", "effect": "COLD", "damage_dice": "10d10" },\r
         { "method": "GAZE", "effect": "BLIND" }\r
       ],\r
       "skill": {\r
         "probability": "1_IN_5",\r
-        "list": ["BR_LITE", "BA_COLD", "BR_COLD", "BO_ICEE", "BO_COLD", "BR_TIME", "SHOOT"]\r
+        "list": ["BR_LITE", "BA_COLD", "BR_COLD", "BO_ICEE", "BO_COLD", "BR_TIME"],\r
+        "shoot": "7d6"\r
       },\r
       "flavor": {\r
         "ja": "この世のものとは思えない程のパワーと呪文の嵐であなたを叩きつけている間、このゴーレムの黒曜石の目はじっとあなたを凝視している。",\r
       "exp": 555,\r
       "sex": "MALE",\r
       "blows": [\r
-        { "method": "SHOOT", "effect": "HURT", "damage_dice": "7d6" },\r
         { "method": "HIT", "effect": "HURT", "damage_dice": "1d9" },\r
         { "method": "HIT", "effect": "HURT", "damage_dice": "1d9" },\r
         { "method": "HIT", "effect": "HURT", "damage_dice": "4d8" }\r
       ],\r
       "skill": {\r
         "probability": "1_IN_3",\r
-        "list": ["HEAL", "BLINK", "TPORT", "BA_FIRE", "SHOOT", "BA_COLD"]\r
+        "list": ["HEAL", "BLINK", "TPORT", "BA_FIRE", "BA_COLD"],\r
+        "shoot": "7d6"\r
       },\r
       "flavor": {\r
         "ja": "強力な力を持つエルフの指導者だ。魔法も使う事ができる。",\r
           "SHRIEK",\r
           "DISPEL",\r
           "ROCKET",\r
-          "SHOOT",\r
           "BR_ACID",\r
           "BR_ELEC",\r
           "BR_FIRE",\r
           "S_UNIQUE",\r
           "BA_LITE",\r
           "S_DEAD_UNIQUE"\r
-        ]\r
+        ],\r
+        "shoot": "1d200"\r
       },\r
       "flavor": {\r
         "ja": "それは何が何だか分からない。",\r
       "rarity": 2,\r
       "exp": 300,\r
       "blows": [\r
-        { "method": "SHOOT", "effect": "HURT", "damage_dice": "4d6" },\r
         { "method": "HIT", "effect": "HURT", "damage_dice": "2d4" },\r
         { "method": "HIT", "effect": "HURT", "damage_dice": "2d4" },\r
         { "method": "HIT", "effect": "HURT", "damage_dice": "2d4" }\r
       ],\r
       "flags": ["PREVENT_SUDDEN_MAGIC", "DROP_CORPSE", "RAND_50", "ANIMAL"],\r
-      "skill": { "probability": "1_IN_2", "list": ["SHOOT"] },\r
+      "skill": { "probability": "1_IN_2", "shoot": "4d6" },\r
       "flavor": {\r
         "ja": "この二本足で歩行する亀のような生き物は、投擲を非常に得意としている。",\r
         "en": "A large turtle creature walking on two legs, proudly throwing hammers from an unlimited supply."\r
       "rarity": 3,\r
       "exp": 40,\r
       "blows": [\r
-        { "method": "SHOOT", "effect": "HURT", "damage_dice": "3d6" },\r
         { "method": "HIT", "effect": "HURT", "damage_dice": "1d5" },\r
         { "method": "HIT", "effect": "HURT", "damage_dice": "1d5" }\r
       ],\r
         "EVIL",\r
         "RES_DARK"\r
       ],\r
-      "skill": { "probability": "1_IN_2", "list": ["SHOOT"] },\r
+      "skill": { "probability": "1_IN_2", "shoot": "3d6" },\r
       "flavor": {\r
         "ja": "めったに見せない発明の才によって、オークは信じられないほど破壊的な兵器を発明した。このオーク弩弓隊の兵士の大半は、その有効性に疑問を投げかけた者たちが務めている。",\r
         "en": "In a rare display of ingenuity, the Orcs invented an incredibly destructive weapon. Most Orcish artillerists are those who dared criticize its effectiveness."\r
       "exp": 500,\r
       "sex": "MALE",\r
       "blows": [\r
-        { "method": "SHOOT", "effect": "HURT", "damage_dice": "9d6" },\r
         { "method": "HIT", "effect": "HURT", "damage_dice": "10d8" },\r
         { "method": "HIT", "effect": "HURT", "damage_dice": "10d8" }\r
       ],\r
         "RES_WATE",\r
         "RES_NETH"\r
       ],\r
-      "skill": { "probability": "1_IN_2", "list": ["SHOOT"] },\r
+      "skill": { "probability": "1_IN_2", "shoot": "9d6" },\r
       "flavor": {\r
         "ja": "緑のクロークをまとい、長弓を使うエルフだ。",\r
         "en": "An elf cloaked in green wielding a longbow."\r
       "exp": 55,\r
       "sex": "MALE",\r
       "blows": [\r
-        { "method": "SHOOT", "effect": "HURT", "damage_dice": "5d6" },\r
         { "method": "HIT", "effect": "HURT", "damage_dice": "5d4" },\r
         { "method": "HIT", "effect": "HURT", "damage_dice": "5d4" }\r
       ],\r
       "flags": ["HUMAN", "DROP_1D2", "TAKE_ITEM", "OPEN_DOOR", "BASH_DOOR"],\r
       "skill": {\r
         "probability": "1_IN_4",\r
-        "list": ["SHOOT", "MISSILE", "S_MONSTER", "BO_ELEC", "BLINK"]\r
+        "list": ["MISSILE", "S_MONSTER", "BO_ELEC", "BLINK"],\r
+        "shoot": "5d6"\r
       },\r
       "flavor": {\r
         "ja": "自然と共に戦う戦士だ。弓にも剣にも達者で、多少の魔法も使うことができ、動物達を飼い、従えている。",\r
       "exp": 10000,\r
       "sex": "MALE",\r
       "blows": [\r
-        { "method": "SHOOT", "effect": "HURT", "damage_dice": "16d6" },\r
         { "method": "SLASH", "effect": "EXP_VAMP", "damage_dice": "6d8" },\r
         { "method": "SLASH", "effect": "EXP_VAMP", "damage_dice": "6d8" },\r
         { "method": "TOUCH", "effect": "EAT_ITEM" }\r
       ],\r
       "skill": {\r
         "probability": "1_IN_2",\r
-        "list": ["SHOOT", "TELE_AWAY", "TPORT", "HASTE", "BLINK", "HEAL"]\r
+        "list": ["TELE_AWAY", "TPORT", "HASTE", "BLINK", "HEAL"],\r
+        "shoot": "16d6"\r
       },\r
       "flavor": {\r
         "ja": "彼はこの世界で最も偉大ないかさま師だ。いかなる剣の達人も彼に深い傷を負わせる事は不可能であり、死角を付いて嵐のように射ち出される彼の聖なる矢は幾多の犠牲者を葬ってきた。",\r
         "OPEN_DOOR",\r
         "BASH_DOOR"\r
       ],\r
-      "skill": { "probability": "1_IN_5", "list": ["SHOOT"] },\r
+      "skill": { "probability": "1_IN_5", "shoot": "1d10" },\r
       "flavor": {\r
         "ja": "南蛮王孟獲の援軍として現れた南蛮の将だ。孟獲の義理の弟にあたる。",\r
         "en": "He is one of the captains of Nanman.  He comes to help his sister and her husband Meng Huo."\r
       "exp": 150,\r
       "sex": "MALE",\r
       "blows": [\r
-        { "method": "SHOOT", "effect": "HURT", "damage_dice": "5d6" },\r
         { "method": "HIT", "effect": "HURT", "damage_dice": "1d6" },\r
         { "method": "HIT", "effect": "HURT", "damage_dice": "1d6" },\r
         { "method": "HIT", "effect": "HURT", "damage_dice": "1d6" }\r
         "DROP_SKELETON",\r
         "DROP_CORPSE"\r
       ],\r
-      "skill": { "probability": "1_IN_4", "list": ["SHOOT", "BLINK"] },\r
+      "skill": { "probability": "1_IN_4", "list": ["BLINK"], "shoot": "5d6" },\r
       "flavor": {\r
         "ja": "アルファガン、ビジュームベルト、スカイロッドなどの破壊兵器を所持し、毎日のようにジュラル星人を大量虐殺している小学生だ。 「チャージマン!殺してやる!」「それは僕が言う言葉だ!」(『チャージマン研!』アニメ第36話・『戦慄!悪魔の病院』)",\r
         "en": "He is an elementary school student who, with his weapons such as the Alpha Gun, Visual Belt, and Sky Rod, indiscriminately slaughters Juralians on a daily basis."\r
       "rarity": 8,\r
       "exp": 20,\r
       "blows": [\r
-        { "method": "SHOOT", "effect": "HURT", "damage_dice": "1d5" },\r
         { "method": "HIT", "effect": "HURT", "damage_dice": "1d4" },\r
         { "method": "HIT", "effect": "HURT", "damage_dice": "1d4" }\r
       ],\r
         "WILD_WOOD",\r
         "HAS_LITE_1"\r
       ],\r
-      "skill": { "probability": "1_IN_6", "list": ["SHOOT"] },\r
+      "skill": { "probability": "1_IN_6", "shoot": "1d5" },\r
       "flavor": {\r
         "ja": "彼等の文明は地球より500年進んでいるそうだ。「これから毎日家を焼こうぜ」(『チャージマン研!』アニメ第25話・『雄一少年を救え!』)",\r
         "en": "This maroon-colored, vaguely humanoid, creature with one eye, tentacle-like limbs, slim waist and broad chest is a member of an advanced civilization from another world.  They have invaded this world to steal its resources."\r
       "exp": 100,\r
       "sex": "MALE",\r
       "blows": [\r
-        { "method": "SHOOT", "effect": "HURT", "damage_dice": "1d12" },\r
         { "method": "HIT", "effect": "HURT", "damage_dice": "1d10" },\r
         { "method": "HIT", "effect": "HURT", "damage_dice": "1d10" }\r
       ],\r
         "OPEN_DOOR",\r
         "BASH_DOOR"\r
       ],\r
-      "skill": { "probability": "1_IN_2", "list": ["SHOOT", "SHRIEK"] },\r
+      "skill": { "probability": "1_IN_2", "list": ["SHRIEK"], "shoot": "1d12" },\r
       "flavor": {\r
         "ja": "環境の悪化したジュラル星に変わる新天地を求め、地球侵略を企てるジュラル星人の統率者だ。「諸君、今から命令をすりゅ!地球の子供達をかたっぱしからとらえて君! 」(『チャージマン研!』アニメ第1話・『危機!!子供宇宙ステーション』)",\r
         "en": "He leads the force of Juralians invading this world."\r
       "rarity": 3,\r
       "exp": 3200,\r
       "sex": "MALE",\r
-      "blows": [\r
-        { "method": "SHOOT", "effect": "HURT", "damage_dice": "20d10" },\r
-        { "method": "HIT", "effect": "HURT", "damage_dice": "2d10" }\r
-      ],\r
+      "blows": [{ "method": "HIT", "effect": "HURT", "damage_dice": "2d10" }],\r
       "flags": [\r
         "BASH_DOOR",\r
         "OPEN_DOOR",\r
         "DROP_CORPSE",\r
         "DROP_SKELETON"\r
       ],\r
-      "skill": { "probability": "1_IN_3", "list": ["SHOOT"] },\r
+      "skill": { "probability": "1_IN_3", "shoot": "20d10" },\r
       "flavor": {\r
         "ja": "アンバーの王子コーウィンは、並行世界の化学的作用が必ずしも共通でない事を知っている。そこで彼はあらゆる影から数多くの鉱物を取り寄せ、各世界で作用する火薬を生産し、現代地球の銃器で利用できる手法を確立した。彼はその武器を自らを絶対の神と崇める世界の民に与えて、軍隊を組織している。その自動小銃の砲口は、前近代的な忠義の軍隊を粉々に消し飛ばすだろう。",\r
         "en": "Firearms were not used in Amber since gunpowder does not work there: chemistry is not always the same in Amber and the parallel worlds that are shadows of it.  Prince Corwin, by accident, had found a substance in Avalon that could work as powder and primer in Amber and its closest shadows.  With that in mind, he devised a plan to take Amber using a small force armed with automatic rifles.  This gunner, from a parallel world where Corwin is worshipped as a god, is one of that force."\r
       "exp": 80,\r
       "sex": "MALE",\r
       "blows": [\r
-        { "method": "SHOOT", "effect": "HURT", "damage_dice": "2d10" },\r
         { "method": "HIT", "effect": "HURT", "damage_dice": "2d4" },\r
         { "method": "HIT", "effect": "HURT", "damage_dice": "2d4" },\r
         { "method": "HIT", "effect": "HURT", "damage_dice": "2d4" }\r
         "ORC",\r
         "RES_DARK"\r
       ],\r
-      "skill": { "probability": "1_IN_3", "list": ["SHOOT"] },\r
+      "skill": { "probability": "1_IN_3", "shoot": "2d10" },\r
       "flavor": {\r
         "ja": "ムズガッシュは弱いオークの部隊を指揮する隊長で、上役にへつらい出世を企んでいる。「お前さんには二度も話してるぜ、ゴルバグの豚どものほうが先に門を出たとね、そしておれたちのほうはだれも出ちゃおらんとね。ラグドゥフとムズガッシュの野郎が駆け抜けたが、二人とも矢で射たれた。」(J.R.R.トールキン、瀬田貞二・田中明子訳 新版指輪物語) ",\r
         "en": "A captain of a regiment of weaker orcs, Muzgash schemes promotion by flattering his superiors.  \"I've told you twice that Gorbag's swine got to the gate first, and none of ours got out.  Lagduf and Muzgash ran through, but they were shot.\""\r
       "exp": 600,\r
       "sex": "MALE",\r
       "blows": [\r
-        { "method": "SHOOT", "effect": "HURT", "damage_dice": "8d4" },\r
         { "method": "HIT", "effect": "HURT", "damage_dice": "8d4" },\r
         { "method": "HIT", "effect": "FIRE", "damage_dice": "8d4" }\r
       ],\r
         "WILD_VOLCANO",\r
         "AURA_FIRE"\r
       ],\r
-      "skill": { "probability": "1_IN_8", "list": ["SHOOT", "BO_FIRE"] },\r
+      "skill": { "probability": "1_IN_8", "list": ["BO_FIRE"], "shoot": "8d4" },\r
       "flavor": {\r
         "ja": "このオークの体にはデーモンの血が流れており、そこから来る暗黒の炎をまとっている。この不浄な結合は、暗き風習を持つ生き物の中でしばしば育まれる。",\r
         "en": "Cloaked in black flame, this orc must be the descendant of a demon.  Such creatures are often seen among the foulest orcs."\r
       "exp": 1800,\r
       "sex": "MALE",\r
       "blows": [\r
-        { "method": "SHOOT", "effect": "HURT", "damage_dice": "10d10" },\r
         { "method": "SLASH", "effect": "HURT", "damage_dice": "8d4" },\r
         { "method": "KICK", "effect": "HURT", "damage_dice": "4d5" },\r
         { "method": "SLASH", "effect": "ELEC", "damage_dice": "14d4" }\r
       ],\r
       "skill": {\r
         "probability": "1_IN_5",\r
-        "list": ["S_KIN", "SHOOT", "BO_ELEC"]\r
+        "list": ["S_KIN", "BO_ELEC"],\r
+        "shoot": "10d10"\r
       },\r
       "flavor": {\r
         "ja": "葦名一心亡き後の故国の存亡を憂うこの一門の将は、いかなる異形の力をも顧みず手に入れようとする。ゆえにそれらを求め鉄獄に至ったこともまた必然であるだろう。",\r
       "level": 4,\r
       "rarity": 1,\r
       "exp": 40,\r
-      "blows": [\r
-        { "method": "SHOOT", "effect": "HURT", "damage_dice": "2d6" },\r
-        { "method": "CRUSH", "effect": "HURT", "damage_dice": "4d4" }\r
-      ],\r
+      "blows": [{ "method": "CRUSH", "effect": "HURT", "damage_dice": "4d4" }],\r
       "flags": ["UNIQUE", "FORCE_MAXHP", "EVIL", "NONLIVING", "DROP_90", "DROP_4D2", "ONLY_GOLD"],\r
-      "skill": { "probability": "1_IN_8", "list": ["MISSILE", "ROCKET"] },\r
+      "skill": { "probability": "1_IN_8", "list": ["MISSILE", "ROCKET"], "shoot": "2d6" },\r
       "flavor": {\r
         "ja": "この機体は動力炉を剥き出しにしたままバクテリアン軍の本拠地を守っていた。最近暇を出されたようだ。",\r
         "en": "This aircraft protects the home of the Bacterian army with the power reactor exposed.  Recently this unit seemed to be fired."\r
       "exp": 200,\r
       "sex": "MALE",\r
       "blows": [\r
-        { "method": "SHOOT", "effect": "HURT", "damage_dice": "6d7" },\r
         { "method": "SLASH", "effect": "HURT", "damage_dice": "2d10" },\r
         { "method": "HIT", "effect": "HURT", "damage_dice": "1d12" }\r
       ],\r
       "flags": ["NAZGUL", "FORCE_MAXHP", "HUMAN", "UNDEAD", "DROP_60"],\r
-      "skill": { "probability": "1_IN_6", "list": ["SHOOT"] },\r
+      "skill": { "probability": "1_IN_6", "shoot": "6d7" },\r
       "flavor": {\r
         "ja": "累に殺された者たちの亡霊だ。",\r
         "en": "These corps are the ghosts killed by Rui."\r
       "exp": 320,\r
       "sex": "MALE",\r
       "blows": [\r
-        { "method": "SHOOT", "effect": "HURT", "damage_dice": "8d7" },\r
         { "method": "STING", "effect": "HURT", "damage_dice": "5d6" },\r
         { "method": "STING", "effect": "HURT", "damage_dice": "5d6" }\r
       ],\r
         "RES_SOUN",\r
         "NO_STUN"\r
       ],\r
-      "skill": { "probability": "1_IN_6", "list": ["SHOOT"] },\r
+      "skill": { "probability": "1_IN_6", "shoot": "8d7" },\r
       "flavor": {\r
         "ja": "三兄弟の長男で、クロスボウからの一撃に要注意だ!",\r
         "en": "He is the eldest son of the three brothers, and be wary of his crossbow shots!"\r
       "rarity": 3,\r
       "exp": 2000,\r
       "blows": [\r
-        { "method": "SHOOT", "effect": "HURT", "damage_dice": "9d9" },\r
         { "method": "HIT", "effect": "HURT", "damage_dice": "15d8" },\r
         { "method": "HIT", "effect": "HURT", "damage_dice": "15d8" }\r
       ],\r
         "IM_ACID",\r
         "GIANT"\r
       ],\r
-      "skill": { "probability": "1_IN_8", "list": ["SHOOT"] },\r
+      "skill": { "probability": "1_IN_8", "shoot": "9d9" },\r
       "flavor": {\r
         "ja": "三つ目のサイクロプス!? 一体何が起きているというんだ!?",\r
         "en": "A three-eyes cyclops!?  What the hell is going on!?"\r
       "exp": 3500,\r
       "sex": "FEMALE",\r
       "blows": [\r
-        { "method": "SHOOT", "effect": "HURT", "damage_dice": "8d8" },\r
         { "method": "SLASH", "effect": "HURT", "damage_dice": "8d8" },\r
         { "method": "SLASH", "effect": "HURT", "damage_dice": "9d7" },\r
         { "method": "HIT", "effect": "HURT", "damage_dice": "10d2" }\r
       ],\r
       "skill": {\r
         "probability": "1_IN_8",\r
-        "list": ["SHOOT", "HEAL", "CAUSE_3"]\r
+        "list": ["HEAL", "CAUSE_3"],\r
+        "shoot": "8d8"\r
       },\r
       "flavor": {\r
         "ja": "この世には善良なドラゴンもいる。そのことを理解できない頑迷さと、その意見を貫き通せるだけの強さを併せ持っている。",\r
       "rarity": 5,\r
       "exp": 1600,\r
       "blows": [\r
-        { "method": "SHOOT", "effect": "HURT", "damage_dice": "15d15" },\r
         { "method": "HIT", "effect": "HURT", "damage_dice": "11d10" },\r
         { "method": "HIT", "effect": "HURT", "damage_dice": "11d10" },\r
         { "method": "INSULT", "effect": "HURT", "damage_dice": "11d10" }\r
         "NO_CONF",\r
         "DROP_60"\r
       ],\r
-      "skill": { "probability": "1_IN_5", "list": ["SHOOT"] },\r
+      "skill": { "probability": "1_IN_5", "shoot": "15d15" },\r
       "flavor": {\r
         "ja": "ミラークの堕落した願いに賛同している者共の一人だ。彼らはあなたをミラークの崇高な意志に反する者として執拗に追っている。",\r
         "en": "It is one of those who agree with Miraak's corrupt wishes.  They relentlessly chase you, seeing you as threat to Miraak's noble will."\r
       "exp": 70,\r
       "evolve": { "need_exp": 450, "to": 1216 },\r
       "blows": [\r
-        { "method": "SHOOT", "effect": "HURT", "damage_dice": "7d7" },\r
         { "method": "HIT", "effect": "HURT", "damage_dice": "2d6" },\r
         { "method": "SLASH", "effect": "HURT", "damage_dice": "2d6" }\r
       ],\r
         "NO_FEAR",\r
         "COLD_BLOOD"\r
       ],\r
-      "skill": { "probability": "1_IN_9", "list": ["SHOOT", "BA_COLD"] },\r
+      "skill": { "probability": "1_IN_9", "list": ["BA_COLD"], "shoot": "7d7" },\r
       "flavor": {\r
         "ja": "太古に埋葬された戦士だ。財宝を狙う侵入者を決して容赦しない。",\r
         "en": "It is a warrior buried in ancient times.  It never forgives treasure-seeking intruders."\r
       "exp": 200,\r
       "evolve": { "need_exp": 1200, "to": 1217 },\r
       "blows": [\r
-        { "method": "SHOOT", "effect": "HURT", "damage_dice": "8d9" },\r
         { "method": "HIT", "effect": "HURT", "damage_dice": "4d6" },\r
         { "method": "SLASH", "effect": "HURT", "damage_dice": "4d6" },\r
         { "method": "CRUSH", "effect": "HURT", "damage_dice": "4d6" }\r
         "DROP_90",\r
         "FRIENDS"\r
       ],\r
-      "skill": { "probability": "1_IN_8", "list": ["SHOOT", "BA_COLD"] },\r
+      "skill": { "probability": "1_IN_8", "list": ["BA_COLD"], "shoot": "8d9" },\r
       "flavor": {\r
         "ja": "この戦士は墳墓を延々と守り続けている。あなたも眷属にされるかもしれない!",\r
         "en": "This warrior has continued to protect its tomb for a long time.  It may conscript you as an assistant guard!"\r
       "exp": 400,\r
       "evolve": { "need_exp": 2500, "to": 1218 },\r
       "blows": [\r
-        { "method": "SHOOT", "effect": "HURT", "damage_dice": "10d9" },\r
         { "method": "HIT", "effect": "HURT", "damage_dice": "7d6" },\r
         { "method": "SLASH", "effect": "HURT", "damage_dice": "7d6" },\r
         { "method": "CRUSH", "effect": "HURT", "damage_dice": "7d6" }\r
       ],\r
       "skill": {\r
         "probability": "1_IN_6",\r
-        "list": ["SHOOT", "SCARE", "BA_COLD", "BR_COLD", "BR_SOUN"]\r
+        "list": ["SCARE", "BA_COLD", "BR_COLD", "BR_SOUN"],\r
+        "shoot": "10d9"\r
       },\r
       "flavor": {\r
         "ja": "独特の叫びを会得したドラウグルだ。それは侵入者の存在を周囲に知らせる。",\r
       "rarity": 3,\r
       "exp": 3200,\r
       "blows": [\r
-        { "method": "SHOOT", "effect": "HURT", "damage_dice": "12d10" },\r
         { "method": "HIT", "effect": "SUPERHURT", "damage_dice": "8d8" },\r
         { "method": "SLASH", "effect": "SUPERHURT", "damage_dice": "8d8" },\r
         { "method": "CRUSH", "effect": "HURT", "damage_dice": "8d9" }\r
       ],\r
       "skill": {\r
         "probability": "1_IN_5",\r
-        "list": ["SHOOT", "SCARE", "BA_COLD", "BR_COLD", "BR_SOUN", "S_UNDEAD"]\r
+        "list": ["SCARE", "BA_COLD", "BR_COLD", "BR_SOUN", "S_UNDEAD"],\r
+        "shoot": "12d10"\r
       },\r
       "flavor": {\r
         "ja": "太古に埋葬された戦士だ。それはドラウグル達を統括し、侵入者を注意深く見守っている。",\r
       "rarity": 4,\r
       "exp": 13000,\r
       "blows": [\r
-        { "method": "SHOOT", "effect": "SUPERHURT", "damage_dice": "12d13" },\r
         { "method": "HIT", "effect": "SUPERHURT", "damage_dice": "12d11" },\r
         { "method": "SLASH", "effect": "SUPERHURT", "damage_dice": "12d11" },\r
         { "method": "CRUSH", "effect": "HURT", "damage_dice": "8d11" }\r
       ],\r
       "skill": {\r
         "probability": "1_IN_5",\r
-        "list": [\r
-          "SHOOT",\r
-          "SCARE",\r
-          "HOLD",\r
-          "BA_POIS",\r
-          "BA_COLD",\r
-          "BR_COLD",\r
-          "BR_SOUN",\r
-          "S_UNDEAD",\r
-          "S_KIN"\r
-        ]\r
+        "list": ["SCARE", "HOLD", "BA_POIS", "BA_COLD", "BR_COLD", "BR_SOUN", "S_UNDEAD", "S_KIN"],\r
+        "shoot": "12d13"\r
       },\r
       "flavor": {\r
         "ja": "あらゆるドラウグル達の上位に立つ最強の戦士だ。世界でも埋葬された数はごく少ない。",\r
       "rarity": 2,\r
       "exp": 350,\r
       "evolve": { "need_exp": 2100, "to": 1228 },\r
-      "blows": [\r
-        { "method": "SHOOT", "effect": "HURT", "damage_dice": "8d8" },\r
-        { "method": "HIT", "effect": "POISON", "damage_dice": "11d7" }\r
-      ],\r
+      "blows": [{ "method": "HIT", "effect": "POISON", "damage_dice": "11d7" }],\r
       "flags": [\r
         "EVIL",\r
         "FRIENDS",\r
         "RES_DARK",\r
         "BASH_DOOR"\r
       ],\r
-      "skill": { "probability": "1_IN_8", "list": ["SHOOT", "BA_POIS"] },\r
+      "skill": { "probability": "1_IN_8", "list": ["BA_POIS"], "shoot": "8d8" },\r
       "flavor": {\r
         "ja": "シャウラスの殻で身体を覆ったファルメルだ。目が見えないので光に身をすくめることもない。",\r
         "en": "A falmer whose body is covered with a chaurus shell.  It is blind and is not bothered by light."\r
       "exp": 1400,\r
       "evolve": { "need_exp": 10000, "to": 1229 },\r
       "blows": [\r
-        { "method": "SHOOT", "effect": "HURT", "damage_dice": "13d8" },\r
         { "method": "SLASH", "effect": "POISON", "damage_dice": "9d9" },\r
         { "method": "SLASH", "effect": "POISON", "damage_dice": "9d7" }\r
       ],\r
       ],\r
       "skill": {\r
         "probability": "1_IN_7",\r
-        "list": ["SHOOT", "BA_POIS", "BR_POIS", "CONF", "HOLD", "BLIND"]\r
+        "list": ["BA_POIS", "BR_POIS", "CONF", "HOLD", "BLIND"],\r
+        "shoot": "13d8"\r
       },\r
       "flavor": {\r
         "ja": "シャウラスの殻でできた剣と盾を手にしたファルメルだ。",\r
       "exp": 4200,\r
       "evolve": { "need_exp": 35000, "to": 1230 },\r
       "blows": [\r
-        { "method": "SHOOT", "effect": "HURT", "damage_dice": "15d10" },\r
         { "method": "SLASH", "effect": "POISON", "damage_dice": "14d12" },\r
         { "method": "SLASH", "effect": "POISON", "damage_dice": "12d10" },\r
         { "method": "SLASH", "effect": "POISON", "damage_dice": "12d10" }\r
       ],\r
       "skill": {\r
         "probability": "1_IN_7",\r
-        "list": ["SHOOT", "BA_POIS", "BR_POIS", "CONF", "HOLD", "BLIND"]\r
+        "list": ["BA_POIS", "BR_POIS", "CONF", "HOLD", "BLIND"],\r
+        "shoot": "15d10"\r
       },\r
       "flavor": {\r
         "ja": "鍛え上げたファルメルの重戦士だ。",\r
       "exp": 10000,\r
       "evolve": { "need_exp": 140000, "to": 1231 },\r
       "blows": [\r
-        { "method": "SHOOT", "effect": "HURT", "damage_dice": "18d10" },\r
         { "method": "SLASH", "effect": "POISON", "damage_dice": "16d13" },\r
         { "method": "SLASH", "effect": "POISON", "damage_dice": "14d11" },\r
         { "method": "SLASH", "effect": "POISON", "damage_dice": "14d11" }\r
       ],\r
       "skill": {\r
         "probability": "1_IN_6",\r
-        "list": ["SHOOT", "BA_ELEC", "BA_POIS", "BR_POIS", "CONF", "HOLD", "BLIND"]\r
+        "list": ["BA_ELEC", "BA_POIS", "BR_POIS", "CONF", "HOLD", "BLIND"],\r
+        "shoot": "18d10"\r
       },\r
       "flavor": {\r
         "ja": "魔術すら身に着けたファルメルだ。迂闊には近寄らない方がいい。",\r
       "exp": 18000,\r
       "evolve": { "need_exp": 200000, "to": 1232 },\r
       "blows": [\r
-        { "method": "SHOOT", "effect": "HURT", "damage_dice": "21d10" },\r
         { "method": "SLASH", "effect": "POISON", "damage_dice": "17d16" },\r
         { "method": "SLASH", "effect": "POISON", "damage_dice": "17d11" },\r
         { "method": "SLASH", "effect": "POISON", "damage_dice": "17d11" }\r
       ],\r
       "skill": {\r
         "probability": "1_IN_6",\r
-        "list": ["SHOOT", "BA_ELEC", "BA_POIS", "BR_POIS", "CONF", "HOLD", "BLIND"]\r
+        "list": ["BA_ELEC", "BA_POIS", "BR_POIS", "CONF", "HOLD", "BLIND"],\r
+        "shoot": "21d10"\r
       },\r
       "flavor": {\r
         "ja": "一般兵士の中では最強のファルメルだ。",\r
       "level": 33,\r
       "rarity": 3,\r
       "exp": 700,\r
-      "blows": [\r
-        { "method": "SHOOT", "effect": "HURT", "damage_dice": "11d8" },\r
-        { "method": "SLASH", "effect": "POISON", "damage_dice": "14d10" }\r
-      ],\r
+      "blows": [{ "method": "SLASH", "effect": "POISON", "damage_dice": "14d10" }],\r
       "flags": [\r
         "FORCE_MAXHP",\r
         "EVIL",\r
       ],\r
       "skill": {\r
         "probability": "1_IN_8",\r
-        "list": ["SHOOT", "BA_ELEC", "BA_POIS", "BR_POIS", "CONF", "HOLD", "BLIND"]\r
+        "list": ["BA_ELEC", "BA_POIS", "BR_POIS", "CONF", "HOLD", "BLIND"],\r
+        "shoot": "11d8"\r
       },\r
       "flavor": {\r
         "ja": "ファルメルの鼻はどんな冒険者の匂いも嗅ぎ分ける。",\r
       "rarity": 3,\r
       "exp": 1700,\r
       "blows": [\r
-        { "method": "SHOOT", "effect": "HURT", "damage_dice": "13d10" },\r
         { "method": "SLASH", "effect": "POISON", "damage_dice": "12d10" },\r
         { "method": "SLASH", "effect": "POISON", "damage_dice": "11d10" }\r
       ],\r
       ],\r
       "skill": {\r
         "probability": "1_IN_6",\r
-        "list": ["SHOOT", "BA_ELEC", "BA_POIS", "BR_POIS", "CONF", "HOLD", "BLIND"]\r
+        "list": ["BA_ELEC", "BA_POIS", "BR_POIS", "CONF", "HOLD", "BLIND"],\r
+        "shoot": "13d10"\r
       },\r
       "flavor": {\r
         "ja": "それは財宝をいくつも抱えているが、探りに行くのは愚策だろう。",\r
       "rarity": 3,\r
       "exp": 10000,\r
       "blows": [\r
-        { "method": "SHOOT", "effect": "HURT", "damage_dice": "15d12" },\r
         { "method": "SLASH", "effect": "POISON", "damage_dice": "17d11" },\r
         { "method": "SLASH", "effect": "POISON", "damage_dice": "15d11" },\r
         { "method": "SLASH", "effect": "POISON", "damage_dice": "13d11" }\r
       ],\r
       "skill": {\r
         "probability": "1_IN_5",\r
-        "list": ["SHOOT", "BA_ELEC", "BA_POIS", "BR_POIS", "CONF", "HOLD", "BLIND"]\r
+        "list": ["BA_ELEC", "BA_POIS", "BR_POIS", "CONF", "HOLD", "BLIND"],\r
+        "shoot": "15d12"\r
       },\r
       "flavor": {\r
         "ja": "いよいよ危険なファルメルだ。毒の刃で切り刻まれないように気をつけろ!",\r
       "rarity": 4,\r
       "exp": 18000,\r
       "blows": [\r
-        { "method": "SHOOT", "effect": "HURT", "damage_dice": "20d13" },\r
         { "method": "SLASH", "effect": "POISON", "damage_dice": "22d11" },\r
         { "method": "SLASH", "effect": "POISON", "damage_dice": "20d11" },\r
         { "method": "SLASH", "effect": "POISON", "damage_dice": "18d11" }\r
       ],\r
       "skill": {\r
         "probability": "1_IN_4",\r
-        "list": ["SHOOT", "BA_ELEC", "BA_POIS", "BR_POIS", "CONF", "HOLD", "BLIND"]\r
+        "list": ["BA_ELEC", "BA_POIS", "BR_POIS", "CONF", "HOLD", "BLIND"],\r
+        "shoot": "20d13"\r
       },\r
       "flavor": {\r
         "ja": "極めて危険なファルメルの一体だ。視界と引き換えに強烈な一撃を繰り出してくる。",\r
       "rarity": 4,\r
       "exp": 27000,\r
       "blows": [\r
-        { "method": "SHOOT", "effect": "HURT", "damage_dice": "21d15" },\r
         { "method": "SLASH", "effect": "POISON", "damage_dice": "25d11" },\r
         { "method": "SLASH", "effect": "POISON", "damage_dice": "23d11" },\r
         { "method": "SLASH", "effect": "POISON", "damage_dice": "21d11" }\r
       ],\r
       "skill": {\r
         "probability": "1_IN_3",\r
-        "list": ["SHOOT", "BA_ELEC", "BA_POIS", "BR_POIS", "CONF", "HOLD", "BLIND"]\r
+        "list": ["BA_ELEC", "BA_POIS", "BR_POIS", "CONF", "HOLD", "BLIND"],\r
+        "shoot": "21d15"\r
       },\r
       "flavor": {\r
         "ja": "数多の眷属を抱える最強のファルメルだ。近づく前に細切れにされてしまうだろう!",\r
       "rarity": 2,\r
       "exp": 13500,\r
       "blows": [\r
-        { "method": "SHOOT", "effect": "HURT", "damage_dice": "10d10" },\r
         { "method": "HIT", "effect": "HURT", "damage_dice": "10d10" },\r
         { "method": "HIT", "effect": "HURT", "damage_dice": "10d10" },\r
         { "method": "HIT", "effect": "HURT", "damage_dice": "10d10" }\r
         "INVISIBLE",\r
         "REFLECTING"\r
       ],\r
-      "skill": { "probability": "1_IN_4", "list": ["SHOOT"] },\r
+      "skill": { "probability": "1_IN_4", "shoot": "10d10" },\r
       "escorts": [{ "escorts_id": 990, "escort_num": "1d4" }],\r
       "flavor": {\r
         "ja": "それは彫刻のような素晴らしい勇壮な姿をしている。あなたを倒すべき敵とみなして、磨き抜かれた盾を持ち、姿を隠している。",\r
       "rarity": 2,\r
       "exp": 300,\r
       "blows": [\r
-        { "method": "SHOOT", "effect": "HURT", "damage_dice": "13d1" },\r
         { "method": "BITE", "effect": "SUPERHURT", "damage_dice": "5d4" },\r
         { "method": "BITE", "effect": "SUPERHURT", "damage_dice": "5d4" }\r
       ],\r
       ],\r
       "skill": {\r
         "probability": "1_IN_4",\r
-        "list": ["SHOOT", "BO_FIRE", "BA_POIS"]\r
+        "list": ["BO_FIRE", "BA_POIS"],\r
+        "shoot": "13d1"\r
       },\r
       "flavor": {\r
         "ja": "食虫植物が意思を持った凶暴な人喰い花で、鋭い牙を生やしている。おもに土管の中に潜んでおり、時々顔を出して愚かにも自分を踏もうとした人間を捕食する。口から炎や毒ガスやシューリンガンなどを吐き出して攻撃してくる個体もいる。",\r
       "exp": 558,\r
       "sex": "FEMALE",\r
       "blows": [\r
-        { "method": "SHOOT", "effect": "HURT", "damage_dice": "13d13" },\r
         { "method": "SLASH", "effect": "HURT", "damage_dice": "13d13" },\r
         { "method": "SLASH", "effect": "UN_POWER", "damage_dice": "13d13" },\r
         { "method": "ENGULF", "effect": "CONFUSE", "damage_dice": "13d13" }\r
       "skill": {\r
         "probability": "1_IN_5",\r
         "list": [\r
-          "SHOOT",\r
           "BR_NEXU",\r
           "BR_CHAO",\r
           "TPORT",\r
           "BRAIN_SMASH",\r
           "BO_MANA",\r
           "PSY_SPEAR"\r
-        ]\r
+        ],\r
+        "shoot": "13d13"\r
       },\r
       "escorts": [{ "escorts_id": 904, "escort_num": "3d5" }],\r
       "flavor": {\r
       "exp": 35000,\r
       "sex": "FEMALE",\r
       "blows": [\r
-        { "method": "SHOOT", "effect": "HURT", "damage_dice": "12d12" },\r
         { "method": "PUNCH", "effect": "SUPERHURT", "damage_dice": "12d12" },\r
         { "method": "HIT", "effect": "HURT", "damage_dice": "8d8" },\r
         { "method": "KICK", "effect": "HURT", "damage_dice": "8d8" }\r
       ],\r
       "skill": {\r
         "probability": "1_IN_2",\r
-        "list": ["ROCKET", "PSY_SPEAR", "BO_LITE", "SHOOT", "S_KIN"]\r
+        "list": ["ROCKET", "PSY_SPEAR", "BO_LITE", "S_KIN"],\r
+        "shoot": "12d12"\r
       },\r
       "escorts": [{ "escorts_id": 1357, "escort_num": "2d1" }],\r
       "flavor": {\r
index d89f7d3..3360558 100644 (file)
                     },\r
                     "alertness": {\r
                         "type": "integer",\r
-                        "description": "警戒度。高いほど@を察知しやすい",\r
+                        "description": "警戒度。0=起きた状態で生成。高いほど起きにくい。",\r
                         "minimum": 0,\r
                         "maximum": 255\r
                     },\r
                     },\r
                     "odds_correction_ratio": {\r
                         "type": "integer",\r
-                        "description": "闘技場オッズ補正値",\r
+                        "description": "闘技場オッズ補正値。1/100を使用、100で等倍200で2倍",\r
                         "minimum": 1,\r
                         "maximum": 9999\r
                     },\r
                                         "BEG",\r
                                         "INSULT",\r
                                         "MOAN",\r
-                                        "SHOW",\r
-                                        "SHOOT"\r
+                                        "SHOW"\r
                                     ]\r
                                 },\r
                                 "effect": {\r
                         "type": "object",\r
                         "description": "発動型能力",\r
                         "additionalProperties": false,\r
-                        "required": [\r
-                            "probability",\r
-                            "list"\r
+                        "anyOf": [\r
+                            {\r
+                                "required": [\r
+                                    "probability",\r
+                                    "list"\r
+                                ]\r
+                            },\r
+                            {\r
+                                "required": [\r
+                                    "probability",\r
+                                    "shoot"\r
+                                ]\r
+                            },\r
+                            {\r
+                                "required": [\r
+                                    "probability",\r
+                                    "list",\r
+                                    "shoot"\r
+                                ]\r
+                            }\r
                         ],\r
                         "properties": {\r
                             "probability": {\r
                                 "description": "能力使用確率",\r
                                 "pattern": "1_IN_[1-9][0-9]*"\r
                             },\r
+                            "shoot": {\r
+                                "type": "string",\r
+                                "description": "射撃威力。XdY方式",\r
+                                "pattern": "[1-9][0-9]*d[1-9][0-9]*"\r
+                            },\r
                             "list": {\r
                                 "type": "array",\r
                                 "description": "発動型能力リスト",\r
                                         "SHRIEK",\r
                                         "DISPEL",\r
                                         "ROCKET",\r
-                                        "SHOOT",\r
                                         "BR_ACID",\r
                                         "BR_ELEC",\r
                                         "BR_FIRE",\r
index 41b54cb..3303215 100644 (file)
@@ -43,7 +43,6 @@ const std::unordered_map<std::string_view, RaceBlowMethodType> r_info_blow_metho
     { "INSULT", RaceBlowMethodType::INSULT },
     { "MOAN", RaceBlowMethodType::MOAN },
     { "SHOW", RaceBlowMethodType::SHOW },
-    { "SHOOT", RaceBlowMethodType::SHOOT },
 };
 
 /*!
index a730162..4ee822e 100644 (file)
@@ -601,8 +601,7 @@ static errr set_mon_skills(const nlohmann::json &skill_data, MonsterRaceInfo &mo
         return PARSE_ERROR_TOO_FEW_ARGUMENTS;
     }
 
-    const auto prob_str = prob.get<std::string>();
-    const auto &prob_token = str_split(prob_str, '_', false, 2);
+    const auto &prob_token = str_split(prob.get<std::string>(), '_', false, 2);
     if (prob_token.size() == 3 && prob_token[1] == "IN") {
         if (prob_token[0] != "1") {
             return PARSE_ERROR_GENERIC;
@@ -612,12 +611,24 @@ static errr set_mon_skills(const nlohmann::json &skill_data, MonsterRaceInfo &mo
         monrace.freq_spell = 100 / denominator;
     }
 
-    const auto &skill_list = skill_data["list"];
-    if (!skill_list.is_array()) {
-        return PARSE_ERROR_TOO_FEW_ARGUMENTS;
+    const auto &shoot_dice = skill_data.find("shoot");
+    const auto shoot = (shoot_dice != skill_data.end());
+    if (shoot) {
+        const auto &dice = str_split(shoot_dice->get<std::string>(), 'd', false, 2);
+        info_set_value(monrace.shoot_dam_dice, dice[0]);
+        info_set_value(monrace.shoot_dam_side, dice[1]);
+        monrace.ability_flags.set(MonsterAbilityType::SHOOT);
+    }
+
+    const auto &skill_list = skill_data.find("list");
+    if (skill_list == skill_data.end()) {
+        if (!shoot) {
+            return PARSE_ERROR_TOO_FEW_ARGUMENTS;
+        }
+        return PARSE_ERROR_NONE;
     }
 
-    for (auto &skill : skill_list.items()) {
+    for (auto &skill : skill_list->items()) {
         if (!grab_one_spell_flag(monrace, skill.value().get<std::string>())) {
             return PARSE_ERROR_INVALID_FLAG;
         }
index f310bec..e0d8a85 100644 (file)
@@ -102,7 +102,6 @@ void set_monster_blow_method(lore_type *lore_ptr, int m)
         break;
 
     case RaceBlowMethodType::NONE:
-    case RaceBlowMethodType::SHOOT:
     case RaceBlowMethodType::MAX:
         break;
     }
index 713b7e2..c70eb29 100644 (file)
@@ -173,7 +173,6 @@ void describe_melee_method(PlayerType *player_ptr, mam_type *mam_ptr)
     }
 
     case RaceBlowMethodType::NONE:
-    case RaceBlowMethodType::SHOOT:
     case RaceBlowMethodType::MAX:
         break;
     }
index 7b6a55b..292f128 100644 (file)
@@ -320,10 +320,6 @@ void repeat_melee(PlayerType *player_ptr, mam_type *mam_ptr)
             break;
         }
 
-        if (mam_ptr->method == RaceBlowMethodType::SHOOT) {
-            continue;
-        }
-
         mam_ptr->power = mbe_info[enum2i(mam_ptr->effect)].power;
         process_melee(player_ptr, mam_ptr);
         if (!is_original_ap_and_seen(player_ptr, mam_ptr->m_ptr) || mam_ptr->do_silly_attack) {
index 174d39c..d5f1a8f 100644 (file)
@@ -222,7 +222,6 @@ void describe_monster_attack_method(MonsterAttackPlayer *monap_ptr)
     }
 
     case RaceBlowMethodType::NONE:
-    case RaceBlowMethodType::SHOOT:
     case RaceBlowMethodType::MAX:
         break;
     }
index 38b8a4a..02e733a 100644 (file)
@@ -164,10 +164,6 @@ bool MonsterAttackPlayer::process_monster_blows()
             break;
         }
 
-        if (this->method == RaceBlowMethodType::SHOOT) {
-            continue;
-        }
-
         // フレーバーの打撃は必中扱い。それ以外は通常の命中判定を行う。
         this->ac = this->player_ptr->ac + this->player_ptr->to_a;
         bool hit;
index 2d10346..abeb576 100644 (file)
@@ -37,7 +37,6 @@ enum class RaceBlowMethodType {
     INSULT = 22, /*!< モンスターの攻撃種別:侮辱する */
     MOAN = 23, /*!< モンスターの攻撃種別:うめく */
     SHOW = 24, /*!< モンスターの攻撃種別:歌う */
-    SHOOT = 25, /*!< モンスターの攻撃種別:射撃(非打撃) */
 
     MAX, /*!< enum バリアント数 */
 };
index 5886067..3bcb709 100644 (file)
@@ -452,42 +452,6 @@ static int monspell_damage_base(
 }
 
 /*!
- * @brief モンスターの使う射撃のダイス情報を返す /
- * @param r_ptr モンスター種族への参照ポインタ
- * @param dd ダイス数への参照ポインタ
- * @param ds ダイス面への参照ポインタ
- */
-void monspell_shoot_dice(MonsterRaceInfo *r_ptr, int *dd, int *ds)
-{
-    int p = -1; /* Position of SHOOT */
-    int n = 0; /* Number of blows */
-    const int max_blows = 4;
-    for (int m = 0; m < max_blows; m++) {
-        if (r_ptr->blows[m].method != RaceBlowMethodType::NONE) {
-            n++;
-        } /* Count blows */
-
-        if (r_ptr->blows[m].method == RaceBlowMethodType::SHOOT) {
-            p = m; /* Remember position */
-            break;
-        }
-    }
-
-    /* When full blows, use a first damage */
-    if (n == max_blows) {
-        p = 0;
-    }
-
-    if (p < 0) {
-        (*dd) = 0;
-        (*ds) = 0;
-    } else {
-        (*dd) = r_ptr->blows[p].d_dice;
-        (*ds) = r_ptr->blows[p].d_side;
-    }
-}
-
-/*!
  * @brief モンスターの使う呪文の威力を返す /
  * @param player_ptr プレイヤーへの参照ポインタ
  * @param ms_type 呪文番号
@@ -502,10 +466,8 @@ int monspell_damage(PlayerType *player_ptr, MonsterAbilityType ms_type, MONSTER_
     auto *r_ptr = &m_ptr->get_monrace();
     DEPTH rlev = monster_level_idx(floor_ptr, m_idx);
     int hp = (TYPE == DAM_ROLL) ? m_ptr->hp : m_ptr->max_maxhp;
-    int shoot_dd, shoot_ds;
 
-    monspell_shoot_dice(r_ptr, &shoot_dd, &shoot_ds);
-    return monspell_damage_base(player_ptr, ms_type, hp, rlev, monster_is_powerful(floor_ptr, m_idx), shoot_dd, shoot_ds, 0, TYPE);
+    return monspell_damage_base(player_ptr, ms_type, hp, rlev, monster_is_powerful(floor_ptr, m_idx), r_ptr->shoot_dam_dice, r_ptr->shoot_dam_side, 0, TYPE);
 }
 
 /*!
@@ -522,10 +484,8 @@ int monspell_race_damage(PlayerType *player_ptr, MonsterAbilityType ms_type, Mon
     DEPTH rlev = ((r_ptr->level >= 1) ? r_ptr->level : 1);
     bool powerful = r_ptr->misc_flags.has(MonsterMiscType::POWERFUL);
     int hp = r_ptr->hdice * (ironman_nightmare ? 2 : 1) * r_ptr->hside;
-    int shoot_dd, shoot_ds;
 
-    monspell_shoot_dice(r_ptr, &shoot_dd, &shoot_ds);
-    return monspell_damage_base(player_ptr, ms_type, std::min(MONSTER_MAXHP, hp), rlev, powerful, shoot_dd, shoot_ds, 0, TYPE);
+    return monspell_damage_base(player_ptr, ms_type, std::min(MONSTER_MAXHP, hp), rlev, powerful, r_ptr->shoot_dam_dice, r_ptr->shoot_dam_side, 0, TYPE);
 }
 
 /*!
index 3f61805..9bba96d 100644 (file)
@@ -502,7 +502,7 @@ bool process_warning(PlayerType *player_ptr, POSITION xx, POSITION yy)
             int dam_melee = 0;
             for (const auto &blow : r_ptr->blows) {
                 /* Skip non-attacks */
-                if (blow.method == RaceBlowMethodType::NONE || (blow.method == RaceBlowMethodType::SHOOT)) {
+                if (blow.method == RaceBlowMethodType::NONE) {
                     continue;
                 }
 
index 2b5cb15..1c95983 100644 (file)
@@ -94,6 +94,8 @@ public:
     EnumClassFlagGroup<MonsterSpecialType> special_flags; //!< 能力フラグ(特殊) / Special Flags
     EnumClassFlagGroup<MonsterMiscType> misc_flags; //!< 能力フラグ(その他) / Speaking Other
     MonsterBlow blows[MAX_NUM_BLOWS]{}; //!< 打撃能力定義 / Up to four blows per round
+    DICE_NUMBER shoot_dam_dice{}; //!< 射撃ダメージダイス数 / shoot damage dice count
+    DICE_SID shoot_dam_side{}; //!< 射撃ダメージダイス面数 / shoot damage dice sides
 
     //! 指定護衛リスト <モンスター種族ID,護衛数ダイス数,護衛数ダイス面>
     std::vector<std::tuple<MonsterRaceId, DICE_NUMBER, DICE_SID>> reinforces;
index 473fbfc..ad98879 100644 (file)
@@ -114,7 +114,7 @@ void display_monster_blows(lore_type *lore_ptr)
 {
     const int max_attack_numbers = 4;
     for (int m = 0; m < max_attack_numbers; m++) {
-        if (lore_ptr->r_ptr->blows[m].method == RaceBlowMethodType::NONE || (lore_ptr->r_ptr->blows[m].method == RaceBlowMethodType::SHOOT)) {
+        if (lore_ptr->r_ptr->blows[m].method == RaceBlowMethodType::NONE) {
             continue;
         }
 
@@ -125,7 +125,7 @@ void display_monster_blows(lore_type *lore_ptr)
 
     int attack_numbers = 0;
     for (int m = 0; m < max_attack_numbers; m++) {
-        if (lore_ptr->r_ptr->blows[m].method == RaceBlowMethodType::NONE || (lore_ptr->r_ptr->blows[m].method == RaceBlowMethodType::SHOOT) || (((lore_ptr->r_ptr->r_blows[m] == 0) && !lore_ptr->know_everything))) {
+        if (lore_ptr->r_ptr->blows[m].method == RaceBlowMethodType::NONE || (((lore_ptr->r_ptr->r_blows[m] == 0) && !lore_ptr->know_everything))) {
             continue;
         }
 
index 548b879..9c0faf6 100644 (file)
@@ -601,32 +601,9 @@ void display_monster_launching(PlayerType *player_ptr, lore_type *lore_ptr)
         return;
     }
 
-    int p = -1; /* Position of SHOOT */
-    int n = 0; /* Number of blows */
-    const int max_blows = 4;
-    for (int m = 0; m < max_blows; m++) {
-        if (lore_ptr->r_ptr->blows[m].method != RaceBlowMethodType::NONE) {
-            n++;
-        } /* Count blows */
-
-        if (lore_ptr->r_ptr->blows[m].method == RaceBlowMethodType::SHOOT) {
-            p = m; /* Remember position */
-            break;
-        }
-    }
-
-    /* When full blows, use a first damage */
-    if (n == max_blows) {
-        p = 0;
-    }
-
-    if (p < 0) {
-        return;
-    }
-
     if (know_armour(lore_ptr->r_idx, lore_ptr->know_everything)) {
-        strnfmt(lore_ptr->tmp_msg[lore_ptr->vn], sizeof(lore_ptr->tmp_msg[lore_ptr->vn]), _("威力 %dd%d の射撃をする", "fire an arrow (Power:%dd%d)"), lore_ptr->r_ptr->blows[p].d_dice,
-            lore_ptr->r_ptr->blows[p].d_side);
+        strnfmt(lore_ptr->tmp_msg[lore_ptr->vn], sizeof(lore_ptr->tmp_msg[lore_ptr->vn]), _("威力 %dd%d の射撃をする", "fire an arrow (Power:%dd%d)"), lore_ptr->r_ptr->shoot_dam_dice,
+            lore_ptr->r_ptr->shoot_dam_side);
     } else {
         angband_strcpy(lore_ptr->tmp_msg[lore_ptr->vn], _("射撃をする", "fire an arrow"), sizeof(lore_ptr->tmp_msg[lore_ptr->vn]));
     }