OSDN Git Service

[Refactor] #40561 Separated random-art-slay.c/h from artifact.c
authorHourier <hourier@users.sourceforge.jp>
Tue, 14 Jul 2020 09:22:17 +0000 (18:22 +0900)
committerHourier <hourier@users.sourceforge.jp>
Tue, 14 Jul 2020 09:22:17 +0000 (18:22 +0900)
Hengband/Hengband/Hengband.vcxproj
Hengband/Hengband/Hengband.vcxproj.filters
src/Makefile.am
src/artifact/random-art-slay.c [new file with mode: 0644]
src/artifact/random-art-slay.h [new file with mode: 0644]
src/object-enchant/artifact.c

index a23a8cd..1c74494 100644 (file)
     <ClCompile Include="..\..\src\action\weapon-shield.c" />\r
     <ClCompile Include="..\..\src\artifact\random-art-misc.c" />\r
     <ClCompile Include="..\..\src\artifact\random-art-resistance.c" />\r
+    <ClCompile Include="..\..\src\artifact\random-art-slay.c" />\r
     <ClCompile Include="..\..\src\birth\auto-roller.c" />\r
     <ClCompile Include="..\..\src\birth\birth-body-spec.c" />\r
     <ClCompile Include="..\..\src\birth\birth-select-class.c" />\r
     <ClInclude Include="..\..\src\art-definition\random-art-effects.h" />\r
     <ClInclude Include="..\..\src\artifact\random-art-misc.h" />\r
     <ClInclude Include="..\..\src\artifact\random-art-resistance.h" />\r
+    <ClInclude Include="..\..\src\artifact\random-art-slay.h" />\r
     <ClInclude Include="..\..\src\birth\auto-roller.h" />\r
     <ClInclude Include="..\..\src\birth\birth-body-spec.h" />\r
     <ClInclude Include="..\..\src\birth\birth-select-class.h" />\r
index 58fb493..f876b7e 100644 (file)
     <ClCompile Include="..\..\src\artifact\random-art-misc.c">
       <Filter>artifact</Filter>
     </ClCompile>
+    <ClCompile Include="..\..\src\artifact\random-art-slay.c">
+      <Filter>artifact</Filter>
+    </ClCompile>
   </ItemGroup>
   <ItemGroup>
     <ClInclude Include="..\..\src\combat\shoot.h">
     <ClInclude Include="..\..\src\artifact\random-art-misc.h">
       <Filter>artifact</Filter>
     </ClInclude>
+    <ClInclude Include="..\..\src\artifact\random-art-slay.h">
+      <Filter>artifact</Filter>
+    </ClInclude>
   </ItemGroup>
   <ItemGroup>
     <None Include="..\..\src\wall.bmp" />
index 6116238..e5bd910 100644 (file)
@@ -15,8 +15,10 @@ hengband_SOURCES = \
        action/weapon-shield.c action/weapon-shield.h \
        \
        artifact/random-art-bias-types.h \
+       artifact/random-art-misc.c artifact/random-art-misc.h \
        artifact/random-art-pval-investor.c artifact/random-art-pval-investor.h \
        artifact/random-art-resistance.c artifact/random-art-resistance.h \
+       artifact/random-art-slay.c artifact/random-art-slay.h \
        \
        art-definition/art-accessory-types.h \
        art-definition/art-armor-types.h \
diff --git a/src/artifact/random-art-slay.c b/src/artifact/random-art-slay.c
new file mode 100644 (file)
index 0000000..4a87503
--- /dev/null
@@ -0,0 +1,311 @@
+#include "artifact/random-art-slay.h"
+#include "artifact/random-art-bias-types.h"
+#include "object-enchant/tr-types.h"
+#include "sv-definition/sv-weapon-types.h"
+#include "system/object-type-definition.h"
+#include "util/bit-flags-calculator.h"
+
+/*!
+ * @brief ランダムアーティファクト生成中、対象のオブジェクトにスレイ効果を付加する。/ Add one slaying on generation of randam artifact.
+ * @details 優先的に付加される耐性がランダムアーティファクトバイアスに依存して存在する。
+ * 原則的候補は強力射、高速射、混沌効果、吸血効果、祝福、投擲しやすい、焼棄、凍結、電撃、溶解、毒殺、
+ * 動物スレイ、邪悪スレイ、悪魔スレイ、不死スレイ、オークスレイ、トロルスレイ、巨人スレイ、ドラゴンスレイ、
+ * *ドラゴンスレイ*、人間スレイ、切れ味、地震、理力。
+ * @attention オブジェクトのtval、svalに依存したハードコーディング処理がある。
+ * @param o_ptr 対象のオブジェクト構造体ポインタ
+ * @return なし
+ */
+void random_slay(object_type *o_ptr)
+{
+    if (o_ptr->tval == TV_BOW) {
+        switch (randint1(6)) {
+        case 1:
+        case 2:
+        case 3:
+            add_flag(o_ptr->art_flags, TR_XTRA_MIGHT);
+            if (!one_in_(7))
+                remove_flag(o_ptr->art_flags, TR_XTRA_SHOTS);
+            if (!o_ptr->artifact_bias && one_in_(9))
+                o_ptr->artifact_bias = BIAS_RANGER;
+            break;
+        default:
+            add_flag(o_ptr->art_flags, TR_XTRA_SHOTS);
+            if (!one_in_(7))
+                remove_flag(o_ptr->art_flags, TR_XTRA_MIGHT);
+            if (!o_ptr->artifact_bias && one_in_(9))
+                o_ptr->artifact_bias = BIAS_RANGER;
+            break;
+        }
+
+        return;
+    }
+
+    switch (o_ptr->artifact_bias) {
+    case BIAS_CHAOS:
+        if (!(have_flag(o_ptr->art_flags, TR_CHAOTIC))) {
+            add_flag(o_ptr->art_flags, TR_CHAOTIC);
+            if (one_in_(2))
+                return;
+        }
+
+        break;
+
+    case BIAS_PRIESTLY:
+        if ((o_ptr->tval == TV_SWORD || o_ptr->tval == TV_POLEARM) && !(have_flag(o_ptr->art_flags, TR_BLESSED))) {
+            /* A free power for "priestly" random artifacts */
+            add_flag(o_ptr->art_flags, TR_BLESSED);
+        }
+
+        break;
+
+    case BIAS_NECROMANTIC:
+        if (!(have_flag(o_ptr->art_flags, TR_VAMPIRIC))) {
+            add_flag(o_ptr->art_flags, TR_VAMPIRIC);
+            if (one_in_(2))
+                return;
+        }
+
+        if (!(have_flag(o_ptr->art_flags, TR_BRAND_POIS)) && one_in_(2)) {
+            add_flag(o_ptr->art_flags, TR_BRAND_POIS);
+            if (one_in_(2))
+                return;
+        }
+
+        break;
+
+    case BIAS_RANGER:
+        if (!(have_flag(o_ptr->art_flags, TR_SLAY_ANIMAL))) {
+            add_flag(o_ptr->art_flags, TR_SLAY_ANIMAL);
+            if (one_in_(2))
+                return;
+        }
+
+        break;
+
+    case BIAS_ROGUE:
+        if ((((o_ptr->tval == TV_SWORD) && (o_ptr->sval == SV_DAGGER)) || ((o_ptr->tval == TV_POLEARM) && (o_ptr->sval == SV_SPEAR)))
+            && !(have_flag(o_ptr->art_flags, TR_THROW))) {
+            /* Free power for rogues... */
+            add_flag(o_ptr->art_flags, TR_THROW);
+        }
+
+        if (!(have_flag(o_ptr->art_flags, TR_BRAND_POIS))) {
+            add_flag(o_ptr->art_flags, TR_BRAND_POIS);
+            if (one_in_(2))
+                return;
+        }
+
+        break;
+
+    case BIAS_POIS:
+        if (!(have_flag(o_ptr->art_flags, TR_BRAND_POIS))) {
+            add_flag(o_ptr->art_flags, TR_BRAND_POIS);
+            if (one_in_(2))
+                return;
+        }
+
+        break;
+
+    case BIAS_FIRE:
+        if (!(have_flag(o_ptr->art_flags, TR_BRAND_FIRE))) {
+            add_flag(o_ptr->art_flags, TR_BRAND_FIRE);
+            if (one_in_(2))
+                return;
+        }
+
+        break;
+
+    case BIAS_COLD:
+        if (!(have_flag(o_ptr->art_flags, TR_BRAND_COLD))) {
+            add_flag(o_ptr->art_flags, TR_BRAND_COLD);
+            if (one_in_(2))
+                return;
+        }
+
+        break;
+
+    case BIAS_ELEC:
+        if (!(have_flag(o_ptr->art_flags, TR_BRAND_ELEC))) {
+            add_flag(o_ptr->art_flags, TR_BRAND_ELEC);
+            if (one_in_(2))
+                return;
+        }
+
+        break;
+
+    case BIAS_ACID:
+        if (!(have_flag(o_ptr->art_flags, TR_BRAND_ACID))) {
+            add_flag(o_ptr->art_flags, TR_BRAND_ACID);
+            if (one_in_(2))
+                return;
+        }
+
+        break;
+
+    case BIAS_LAW:
+        if (!(have_flag(o_ptr->art_flags, TR_SLAY_EVIL))) {
+            add_flag(o_ptr->art_flags, TR_SLAY_EVIL);
+            if (one_in_(2))
+                return;
+        }
+
+        if (!(have_flag(o_ptr->art_flags, TR_SLAY_UNDEAD))) {
+            add_flag(o_ptr->art_flags, TR_SLAY_UNDEAD);
+            if (one_in_(2))
+                return;
+        }
+
+        if (!(have_flag(o_ptr->art_flags, TR_SLAY_DEMON))) {
+            add_flag(o_ptr->art_flags, TR_SLAY_DEMON);
+            if (one_in_(2))
+                return;
+        }
+
+        break;
+    }
+
+    switch (randint1(36)) {
+    case 1:
+    case 2:
+        if (one_in_(4)) {
+            add_flag(o_ptr->art_flags, TR_KILL_ANIMAL);
+        } else {
+            add_flag(o_ptr->art_flags, TR_SLAY_ANIMAL);
+        }
+        break;
+    case 3:
+    case 4:
+        if (one_in_(8)) {
+            add_flag(o_ptr->art_flags, TR_KILL_EVIL);
+        } else {
+            add_flag(o_ptr->art_flags, TR_SLAY_EVIL);
+        }
+        if (!o_ptr->artifact_bias && one_in_(2))
+            o_ptr->artifact_bias = BIAS_LAW;
+        else if (!o_ptr->artifact_bias && one_in_(9))
+            o_ptr->artifact_bias = BIAS_PRIESTLY;
+        break;
+    case 5:
+    case 6:
+        if (one_in_(4)) {
+            add_flag(o_ptr->art_flags, TR_KILL_UNDEAD);
+        } else {
+            add_flag(o_ptr->art_flags, TR_SLAY_UNDEAD);
+        }
+        if (!o_ptr->artifact_bias && one_in_(9))
+            o_ptr->artifact_bias = BIAS_PRIESTLY;
+        break;
+    case 7:
+    case 8:
+        if (one_in_(4)) {
+            add_flag(o_ptr->art_flags, TR_KILL_DEMON);
+        } else {
+            add_flag(o_ptr->art_flags, TR_SLAY_DEMON);
+        }
+        if (!o_ptr->artifact_bias && one_in_(9))
+            o_ptr->artifact_bias = BIAS_PRIESTLY;
+        break;
+    case 9:
+    case 10:
+        if (one_in_(4)) {
+            add_flag(o_ptr->art_flags, TR_KILL_ORC);
+        } else {
+            add_flag(o_ptr->art_flags, TR_SLAY_ORC);
+        }
+        break;
+    case 11:
+    case 12:
+        if (one_in_(4)) {
+            add_flag(o_ptr->art_flags, TR_KILL_TROLL);
+        } else {
+            add_flag(o_ptr->art_flags, TR_SLAY_TROLL);
+        }
+        break;
+    case 13:
+    case 14:
+        if (one_in_(4)) {
+            add_flag(o_ptr->art_flags, TR_KILL_GIANT);
+        } else {
+            add_flag(o_ptr->art_flags, TR_SLAY_GIANT);
+        }
+
+        break;
+    case 15:
+    case 16:
+        add_flag(o_ptr->art_flags, TR_SLAY_DRAGON);
+        break;
+    case 17:
+        add_flag(o_ptr->art_flags, TR_KILL_DRAGON);
+        break;
+    case 18:
+    case 19:
+        if (o_ptr->tval == TV_SWORD) {
+            add_flag(o_ptr->art_flags, TR_VORPAL);
+            if (!o_ptr->artifact_bias && one_in_(9))
+                o_ptr->artifact_bias = BIAS_WARRIOR;
+        } else
+            random_slay(o_ptr);
+        break;
+    case 20:
+        add_flag(o_ptr->art_flags, TR_IMPACT);
+        break;
+    case 21:
+    case 22:
+        add_flag(o_ptr->art_flags, TR_BRAND_FIRE);
+        if (!o_ptr->artifact_bias)
+            o_ptr->artifact_bias = BIAS_FIRE;
+        break;
+    case 23:
+    case 24:
+        add_flag(o_ptr->art_flags, TR_BRAND_COLD);
+        if (!o_ptr->artifact_bias)
+            o_ptr->artifact_bias = BIAS_COLD;
+        break;
+    case 25:
+    case 26:
+        add_flag(o_ptr->art_flags, TR_BRAND_ELEC);
+        if (!o_ptr->artifact_bias)
+            o_ptr->artifact_bias = BIAS_ELEC;
+        break;
+    case 27:
+    case 28:
+        add_flag(o_ptr->art_flags, TR_BRAND_ACID);
+        if (!o_ptr->artifact_bias)
+            o_ptr->artifact_bias = BIAS_ACID;
+        break;
+    case 29:
+    case 30:
+        add_flag(o_ptr->art_flags, TR_BRAND_POIS);
+        if (!o_ptr->artifact_bias && !one_in_(3))
+            o_ptr->artifact_bias = BIAS_POIS;
+        else if (!o_ptr->artifact_bias && one_in_(6))
+            o_ptr->artifact_bias = BIAS_NECROMANTIC;
+        else if (!o_ptr->artifact_bias)
+            o_ptr->artifact_bias = BIAS_ROGUE;
+        break;
+    case 31:
+        add_flag(o_ptr->art_flags, TR_VAMPIRIC);
+        if (!o_ptr->artifact_bias)
+            o_ptr->artifact_bias = BIAS_NECROMANTIC;
+        break;
+    case 32:
+        add_flag(o_ptr->art_flags, TR_FORCE_WEAPON);
+        if (!o_ptr->artifact_bias)
+            o_ptr->artifact_bias = (one_in_(2) ? BIAS_MAGE : BIAS_PRIESTLY);
+        break;
+    case 33:
+    case 34:
+        if (one_in_(4)) {
+            add_flag(o_ptr->art_flags, TR_KILL_HUMAN);
+        } else {
+            add_flag(o_ptr->art_flags, TR_SLAY_HUMAN);
+        }
+
+        break;
+    default:
+        add_flag(o_ptr->art_flags, TR_CHAOTIC);
+        if (!o_ptr->artifact_bias)
+            o_ptr->artifact_bias = BIAS_CHAOS;
+        break;
+    }
+}
diff --git a/src/artifact/random-art-slay.h b/src/artifact/random-art-slay.h
new file mode 100644 (file)
index 0000000..0f377c8
--- /dev/null
@@ -0,0 +1,5 @@
+#pragma once
+
+#include "system/angband.h"
+
+void random_slay(object_type *o_ptr);
index 7f5ec9b..6861551 100644 (file)
@@ -14,6 +14,7 @@
 #include "artifact/random-art-misc.h"
 #include "artifact/random-art-pval-investor.h"
 #include "artifact/random-art-resistance.h"
+#include "artifact/random-art-slay.h"
 #include "art-definition/art-armor-types.h"
 #include "art-definition/art-protector-types.h"
 #include "art-definition/art-sword-types.h"
@@ -127,311 +128,6 @@ static void curse_artifact(player_type *player_ptr, object_type *o_ptr)
 }
 
 /*!
- * @brief ランダムアーティファクト生成中、対象のオブジェクトにスレイ効果を付加する。/ Add one slaying on generation of randam artifact.
- * @details 優先的に付加される耐性がランダムアーティファクトバイアスに依存して存在する。
- * 原則的候補は強力射、高速射、混沌効果、吸血効果、祝福、投擲しやすい、焼棄、凍結、電撃、溶解、毒殺、
- * 動物スレイ、邪悪スレイ、悪魔スレイ、不死スレイ、オークスレイ、トロルスレイ、巨人スレイ、ドラゴンスレイ、
- * *ドラゴンスレイ*、人間スレイ、切れ味、地震、理力。
- * @attention オブジェクトのtval、svalに依存したハードコーディング処理がある。
- * @param o_ptr 対象のオブジェクト構造体ポインタ
- * @return なし
- */
-static void random_slay(object_type *o_ptr)
-{
-    if (o_ptr->tval == TV_BOW) {
-        switch (randint1(6)) {
-        case 1:
-        case 2:
-        case 3:
-            add_flag(o_ptr->art_flags, TR_XTRA_MIGHT);
-            if (!one_in_(7))
-                remove_flag(o_ptr->art_flags, TR_XTRA_SHOTS);
-            if (!o_ptr->artifact_bias && one_in_(9))
-                o_ptr->artifact_bias = BIAS_RANGER;
-            break;
-        default:
-            add_flag(o_ptr->art_flags, TR_XTRA_SHOTS);
-            if (!one_in_(7))
-                remove_flag(o_ptr->art_flags, TR_XTRA_MIGHT);
-            if (!o_ptr->artifact_bias && one_in_(9))
-                o_ptr->artifact_bias = BIAS_RANGER;
-            break;
-        }
-
-        return;
-    }
-
-    switch (o_ptr->artifact_bias) {
-    case BIAS_CHAOS:
-        if (!(have_flag(o_ptr->art_flags, TR_CHAOTIC))) {
-            add_flag(o_ptr->art_flags, TR_CHAOTIC);
-            if (one_in_(2))
-                return;
-        }
-
-        break;
-
-    case BIAS_PRIESTLY:
-        if ((o_ptr->tval == TV_SWORD || o_ptr->tval == TV_POLEARM) && !(have_flag(o_ptr->art_flags, TR_BLESSED))) {
-            /* A free power for "priestly" random artifacts */
-            add_flag(o_ptr->art_flags, TR_BLESSED);
-        }
-
-        break;
-
-    case BIAS_NECROMANTIC:
-        if (!(have_flag(o_ptr->art_flags, TR_VAMPIRIC))) {
-            add_flag(o_ptr->art_flags, TR_VAMPIRIC);
-            if (one_in_(2))
-                return;
-        }
-
-        if (!(have_flag(o_ptr->art_flags, TR_BRAND_POIS)) && one_in_(2)) {
-            add_flag(o_ptr->art_flags, TR_BRAND_POIS);
-            if (one_in_(2))
-                return;
-        }
-
-        break;
-
-    case BIAS_RANGER:
-        if (!(have_flag(o_ptr->art_flags, TR_SLAY_ANIMAL))) {
-            add_flag(o_ptr->art_flags, TR_SLAY_ANIMAL);
-            if (one_in_(2))
-                return;
-        }
-
-        break;
-
-    case BIAS_ROGUE:
-        if ((((o_ptr->tval == TV_SWORD) && (o_ptr->sval == SV_DAGGER)) || ((o_ptr->tval == TV_POLEARM) && (o_ptr->sval == SV_SPEAR)))
-            && !(have_flag(o_ptr->art_flags, TR_THROW))) {
-            /* Free power for rogues... */
-            add_flag(o_ptr->art_flags, TR_THROW);
-        }
-
-        if (!(have_flag(o_ptr->art_flags, TR_BRAND_POIS))) {
-            add_flag(o_ptr->art_flags, TR_BRAND_POIS);
-            if (one_in_(2))
-                return;
-        }
-
-        break;
-
-    case BIAS_POIS:
-        if (!(have_flag(o_ptr->art_flags, TR_BRAND_POIS))) {
-            add_flag(o_ptr->art_flags, TR_BRAND_POIS);
-            if (one_in_(2))
-                return;
-        }
-
-        break;
-
-    case BIAS_FIRE:
-        if (!(have_flag(o_ptr->art_flags, TR_BRAND_FIRE))) {
-            add_flag(o_ptr->art_flags, TR_BRAND_FIRE);
-            if (one_in_(2))
-                return;
-        }
-
-        break;
-
-    case BIAS_COLD:
-        if (!(have_flag(o_ptr->art_flags, TR_BRAND_COLD))) {
-            add_flag(o_ptr->art_flags, TR_BRAND_COLD);
-            if (one_in_(2))
-                return;
-        }
-
-        break;
-
-    case BIAS_ELEC:
-        if (!(have_flag(o_ptr->art_flags, TR_BRAND_ELEC))) {
-            add_flag(o_ptr->art_flags, TR_BRAND_ELEC);
-            if (one_in_(2))
-                return;
-        }
-
-        break;
-
-    case BIAS_ACID:
-        if (!(have_flag(o_ptr->art_flags, TR_BRAND_ACID))) {
-            add_flag(o_ptr->art_flags, TR_BRAND_ACID);
-            if (one_in_(2))
-                return;
-        }
-
-        break;
-
-    case BIAS_LAW:
-        if (!(have_flag(o_ptr->art_flags, TR_SLAY_EVIL))) {
-            add_flag(o_ptr->art_flags, TR_SLAY_EVIL);
-            if (one_in_(2))
-                return;
-        }
-
-        if (!(have_flag(o_ptr->art_flags, TR_SLAY_UNDEAD))) {
-            add_flag(o_ptr->art_flags, TR_SLAY_UNDEAD);
-            if (one_in_(2))
-                return;
-        }
-
-        if (!(have_flag(o_ptr->art_flags, TR_SLAY_DEMON))) {
-            add_flag(o_ptr->art_flags, TR_SLAY_DEMON);
-            if (one_in_(2))
-                return;
-        }
-
-        break;
-    }
-
-    switch (randint1(36)) {
-    case 1:
-    case 2:
-        if (one_in_(4)) {
-            add_flag(o_ptr->art_flags, TR_KILL_ANIMAL);
-        } else {
-            add_flag(o_ptr->art_flags, TR_SLAY_ANIMAL);
-        }
-        break;
-    case 3:
-    case 4:
-        if (one_in_(8)) {
-            add_flag(o_ptr->art_flags, TR_KILL_EVIL);
-        } else {
-            add_flag(o_ptr->art_flags, TR_SLAY_EVIL);
-        }
-        if (!o_ptr->artifact_bias && one_in_(2))
-            o_ptr->artifact_bias = BIAS_LAW;
-        else if (!o_ptr->artifact_bias && one_in_(9))
-            o_ptr->artifact_bias = BIAS_PRIESTLY;
-        break;
-    case 5:
-    case 6:
-        if (one_in_(4)) {
-            add_flag(o_ptr->art_flags, TR_KILL_UNDEAD);
-        } else {
-            add_flag(o_ptr->art_flags, TR_SLAY_UNDEAD);
-        }
-        if (!o_ptr->artifact_bias && one_in_(9))
-            o_ptr->artifact_bias = BIAS_PRIESTLY;
-        break;
-    case 7:
-    case 8:
-        if (one_in_(4)) {
-            add_flag(o_ptr->art_flags, TR_KILL_DEMON);
-        } else {
-            add_flag(o_ptr->art_flags, TR_SLAY_DEMON);
-        }
-        if (!o_ptr->artifact_bias && one_in_(9))
-            o_ptr->artifact_bias = BIAS_PRIESTLY;
-        break;
-    case 9:
-    case 10:
-        if (one_in_(4)) {
-            add_flag(o_ptr->art_flags, TR_KILL_ORC);
-        } else {
-            add_flag(o_ptr->art_flags, TR_SLAY_ORC);
-        }
-        break;
-    case 11:
-    case 12:
-        if (one_in_(4)) {
-            add_flag(o_ptr->art_flags, TR_KILL_TROLL);
-        } else {
-            add_flag(o_ptr->art_flags, TR_SLAY_TROLL);
-        }
-        break;
-    case 13:
-    case 14:
-        if (one_in_(4)) {
-            add_flag(o_ptr->art_flags, TR_KILL_GIANT);
-        } else {
-            add_flag(o_ptr->art_flags, TR_SLAY_GIANT);
-        }
-
-        break;
-    case 15:
-    case 16:
-        add_flag(o_ptr->art_flags, TR_SLAY_DRAGON);
-        break;
-    case 17:
-        add_flag(o_ptr->art_flags, TR_KILL_DRAGON);
-        break;
-    case 18:
-    case 19:
-        if (o_ptr->tval == TV_SWORD) {
-            add_flag(o_ptr->art_flags, TR_VORPAL);
-            if (!o_ptr->artifact_bias && one_in_(9))
-                o_ptr->artifact_bias = BIAS_WARRIOR;
-        } else
-            random_slay(o_ptr);
-        break;
-    case 20:
-        add_flag(o_ptr->art_flags, TR_IMPACT);
-        break;
-    case 21:
-    case 22:
-        add_flag(o_ptr->art_flags, TR_BRAND_FIRE);
-        if (!o_ptr->artifact_bias)
-            o_ptr->artifact_bias = BIAS_FIRE;
-        break;
-    case 23:
-    case 24:
-        add_flag(o_ptr->art_flags, TR_BRAND_COLD);
-        if (!o_ptr->artifact_bias)
-            o_ptr->artifact_bias = BIAS_COLD;
-        break;
-    case 25:
-    case 26:
-        add_flag(o_ptr->art_flags, TR_BRAND_ELEC);
-        if (!o_ptr->artifact_bias)
-            o_ptr->artifact_bias = BIAS_ELEC;
-        break;
-    case 27:
-    case 28:
-        add_flag(o_ptr->art_flags, TR_BRAND_ACID);
-        if (!o_ptr->artifact_bias)
-            o_ptr->artifact_bias = BIAS_ACID;
-        break;
-    case 29:
-    case 30:
-        add_flag(o_ptr->art_flags, TR_BRAND_POIS);
-        if (!o_ptr->artifact_bias && !one_in_(3))
-            o_ptr->artifact_bias = BIAS_POIS;
-        else if (!o_ptr->artifact_bias && one_in_(6))
-            o_ptr->artifact_bias = BIAS_NECROMANTIC;
-        else if (!o_ptr->artifact_bias)
-            o_ptr->artifact_bias = BIAS_ROGUE;
-        break;
-    case 31:
-        add_flag(o_ptr->art_flags, TR_VAMPIRIC);
-        if (!o_ptr->artifact_bias)
-            o_ptr->artifact_bias = BIAS_NECROMANTIC;
-        break;
-    case 32:
-        add_flag(o_ptr->art_flags, TR_FORCE_WEAPON);
-        if (!o_ptr->artifact_bias)
-            o_ptr->artifact_bias = (one_in_(2) ? BIAS_MAGE : BIAS_PRIESTLY);
-        break;
-    case 33:
-    case 34:
-        if (one_in_(4)) {
-            add_flag(o_ptr->art_flags, TR_KILL_HUMAN);
-        } else {
-            add_flag(o_ptr->art_flags, TR_SLAY_HUMAN);
-        }
-
-        break;
-    default:
-        add_flag(o_ptr->art_flags, TR_CHAOTIC);
-        if (!o_ptr->artifact_bias)
-            o_ptr->artifact_bias = BIAS_CHAOS;
-        break;
-    }
-}
-
-/*!
  * @brief ランダムアーティファクト生成中、対象のオブジェクトにバイアスに依存した発動を与える。/ Add one activaton of randam artifact depend on bias.
  * @details バイアスが無い場合、一部のバイアスの確率によっては one_ability() に処理が移行する。
  * @param o_ptr 対象のオブジェクト構造体ポインタ