OSDN Git Service

改めて★ダイアナの長弓の追加
authordaradarach <daradarach@gmail.com>
Tue, 16 Nov 2021 13:07:44 +0000 (22:07 +0900)
committerdaradarach <daradarach@gmail.com>
Tue, 16 Nov 2021 13:07:44 +0000 (22:07 +0900)
lib/edit/a_info.txt
src/artifact/random-art-effects.h
src/object-activation/activation-others.cpp
src/object-activation/activation-others.h
src/object-activation/activation-switcher.cpp
src/object-enchant/activation-info-table.cpp

index a19eec4..3f170ad 100644 (file)
@@ -4502,3 +4502,18 @@ P:0:3d11:10:10:0
 F:STR | CHR | HIDE_TYPE | BRAND_COLD | RES_COLD | SHOW_MODS |
 D:$A frozen Swordfish wielded as a great sword. Proof of the owner's angling mastery.
 D:メカジキを凍らせたもの。最強釣り師の証でもある。分類は大剣。
+
+N:270:『ダイアナの長弓』
+E:The Longbow of Diana
+I:19:13:0
+W:35:97:30:4000
+P:0:1d2:15:0:0
+F:REFLECT | ACTIVATE
+U:CREATE_AMMO
+D:「よくやった! 私は無理ではないかと恐れていたのだ!
+D:「ダイアナの長弓を持って戻ってきたな!
+D:「私は今,かのケンタウロスが別の大蠍を選ぶことを恐れている.
+D:それはいつかなされるだろう,しかし,その前にお前がビーナスのために
+D:イェンダーの魔除けを取り戻すことができれば,我々は永遠に安泰だ.
+D:「ダイアナの長弓を持って行くがいい.魔除けを探す冒険の助けとなるだろう.」
+D:(勇者オリオン,JNethack)
index db3fde8..89e5e76 100644 (file)
@@ -137,6 +137,7 @@ enum class RandomArtActType : short {
     ULTIMATE_RESIST = 138,
     ELBERETH = 139,
     DETECT_TREASURE = 140,
+    CREATE_AMMO = 141,
     /* 141 - 245 unused */
     FALLING_STAR = 246,
     STRAIN_HASTE = 247,
index dc78f9a..2e7989e 100644 (file)
@@ -14,6 +14,7 @@
 #include "effect/effect-processor.h"
 #include "game-option/special-options.h"
 #include "hpmp/hp-mp-processor.h"
+#include "mind/mind-archer.h"
 #include "monster-race/monster-race.h"
 #include "monster-race/race-flags1.h"
 #include "monster-race/race-indice-types.h"
@@ -397,3 +398,9 @@ bool activate_detect_treasure(PlayerType *player_ptr)
     msg_print(_("金と銀に彩られている...", "It shines with gold and silver..."));
     return detect_treasure(player_ptr, DETECT_RAD_DEFAULT);
 }
+
+bool activate_create_ammo(PlayerType *player_ptr)
+{
+    msg_print(_("ダイアナの祝福を感じた...", "You feel Diana's breath..."));
+    return create_ammo(player_ptr);
+}
index 02e99b7..2a75d05 100644 (file)
@@ -43,3 +43,4 @@ bool activate_recall(PlayerType *player_ptr);
 bool activate_tree_creation(PlayerType *player_ptr, object_type *o_ptr, concptr name);
 bool activate_animate_dead(PlayerType *player_ptr, object_type *o_ptr);
 bool activate_detect_treasure(PlayerType *player_ptr);
+bool activate_create_ammo(PlayerType *player_ptr);
index cf38b70..155e3d6 100644 (file)
@@ -371,6 +371,8 @@ bool switch_activation(PlayerType *player_ptr, object_type **o_ptr_ptr, const ac
         return activate_bloody_moon(player_ptr, o_ptr);
     case RandomArtActType::CRIMSON:
         return activate_crimson(player_ptr, o_ptr);
+    case RandomArtActType::CREATE_AMMO:
+        return activate_create_ammo(player_ptr);
     default:
         msg_format(_("Unknown activation effect: %d.", "Unknown activation effect: %d."), act_ptr->index);
         return false;
index 8c4be49..a2c8a98 100644 (file)
@@ -148,5 +148,6 @@ const std::vector<activation_type> activation_info = {
     { "TREE_CREATION", RandomArtActType::TREE_CREATION, 50, 25000, { 1000, 0 }, _("森林生成", "tree creation") },
     { "ELBERETH", RandomArtActType::ELBERETH, 10, 30000, { 75, 0 }, _("エルベレスの結界", "Rune of Elbereth") },
     { "DETECT_TREASURE", RandomArtActType::DETECT_TREASURE, 10, 3000, {35, 0}, _("財宝感知", "detect treasure") },
+    { "CREATE_AMMO", RandomArtActType::CREATE_AMMO, 10, 30000, { 200, 0 }, _("弾/矢の製造", "Create Ammo") },
     { nullptr, RandomArtActType::NONE, 0, 0, { 0, 0 }, "" },
 };