• R/O
  • HTTP
  • SSH
  • HTTPS

hengband: Commit

変愚蛮怒のメインリポジトリです


Commit MetaInfo

Revision8fc6a1c0803e0eb0122c3275a9b2ebc67963d9c9 (tree)
Time2013-01-29 21:41:42
Authoriks <iks@0568...>
Commiteriks

Log Message

固定アーティファクトの発動は全部外部フラグ化し終わった。

Change Summary

Incremental Difference

--- a/lib/edit/a_info.txt
+++ b/lib/edit/a_info.txt
@@ -412,6 +412,7 @@ W:60:150:100:100000
412412 P:0:0d0:20:20:0
413413 F:SPEED | STEALTH | RES_NETHER |
414414 F:ACTIVATE | SHOW_MODS | INSTA_ART | XTRA_POWER | XTRA_H_RES
415+U:CRIMSON
415416 D:$"-- In there, the whole town had turned into monsters' nest.
416417 D:$ This gun gotten by Echizen unexpectedly, 'Crimson', helped
417418 D:$ him in his missions, and it evolved into greater weapon
@@ -2739,6 +2740,7 @@ P:0:0d0:0:8:0
27392740 F:SHOW_MODS | HIDE_TYPE |
27402741 F:SUST_STR | RES_FEAR | ACTIVATE |
27412742 F:INSTA_ART
2743+U:SCARE_AREA
27422744 D:$A massive golden torque, made of innumerable strands of gold and steel
27432745 D:$intermingled, with great golden hounds set at either end.
27442746 D:黄金と黒鋼の無数のより糸で編み上げられた重厚な金の首飾りで、
@@ -2752,6 +2754,7 @@ P:0:10d5:0:0:-20
27522754 F:HIDE_TYPE | BLOWS | VORPAL | VAMPIRIC | SLAY_HUMAN |
27532755 F:SHOW_MODS | SPEED | ACTIVATE | RES_DISEN | NO_TELE |
27542756 F:DRAIN_EXP | AGGRAVATE | RES_DARK | RES_NETHER | TY_CURSE |
2757+U:MURAMASA
27552758 D:$Muramasa the legendaly bracksmith forged this sword 'Muramasa'.
27562759 D:$ It always wants more blood thirstily, although it already
27572760 D:$ drained blood from many person.
@@ -2994,6 +2997,7 @@ I:40:20:2
29942997 W:30:80:3:100000
29952998 F:INT | WIS | CHR | SEARCH | INFRA | SEE_INVIS | ACTIVATE |
29962999 F:HIDE_TYPE | INSTA_ART
3000+U:INROU
29973001 D:毎週月曜日の20:45に絶大な力を発揮するらしい。
29983002
29993003 N:167:『噛尾刀』
@@ -3031,6 +3035,7 @@ I:21:4:3
30313035 W:25:5:15:808
30323036 P:0:1d2:-3:-7:6
30333037 F:SEARCH | ACTIVATE | SHOW_MODS | HIDE_TYPE
3038+U:AGGRAVATE
30343039 D:角柱二本の互いの端が、細い縄で結ばれている。
30353040 D:武器としては見るからに貧相だが、 防火をその任とする衛士たちが使った、
30363041 D:由緒正しい武器だといわれている。
@@ -3405,6 +3410,7 @@ I:22:30:2
34053410 W:70:12:250:180000
34063411 P:0:8d4:8:8:8
34073412 F:ACTIVATE | SHOW_MODS
3413+U:BLOODY_MOON
34083414
34093415 N:200:ダ
34103416 E:'Dasai'
--- a/src/artifact.c
+++ b/src/artifact.c
@@ -2567,6 +2567,42 @@ bool activate_random_artifact(object_type *o_ptr)
25672567 break;
25682568 }
25692569
2570+ case ACT_SCARE_AREA:
2571+ {
2572+ if (music_singing_any()) stop_singing();
2573+ if (hex_spelling_any()) stop_hex_spell_all();
2574+#ifdef JP
2575+ msg_print("あなたは力強い突風を吹き鳴らした。周囲の敵が震え上っている!");
2576+#else
2577+ msg_print("You wind a mighty blast; your enemies tremble!");
2578+#endif
2579+ (void)turn_monsters((3 * p_ptr->lev / 2) + 10);
2580+ o_ptr->timeout = randint0(40) + 40;
2581+ break;
2582+ }
2583+
2584+ case ACT_AGGRAVATE:
2585+ {
2586+ if (o_ptr->name1 == ART_HYOUSIGI)
2587+ {
2588+#ifdef JP
2589+ msg_print("拍子木を打った。");
2590+#else
2591+ msg_print("You beat Your wooden clappers.");
2592+#endif
2593+ }
2594+ else
2595+ {
2596+#ifdef JP
2597+ msg_format("%sは不快な物音を立てた。", name);
2598+#else
2599+ msg_format("The %s sounds an unpleasant noise.", name);
2600+#endif
2601+ }
2602+ aggravate_monsters(0);
2603+ break;
2604+ }
2605+
25702606 /* Activate for summoning / charming */
25712607
25722608 case ACT_CHARM_ANIMAL:
@@ -3594,6 +3630,165 @@ bool activate_random_artifact(object_type *o_ptr)
35943630 break;
35953631 }
35963632
3633+ case ACT_INROU:
3634+ {
3635+ int count = 0, i;
3636+ monster_type *m_ptr;
3637+#ifndef JP
3638+ cptr kakusan = "";
3639+#endif
3640+ if (summon_named_creature(0, py, px, MON_SUKE, PM_FORCE_PET))
3641+ {
3642+#ifdef JP
3643+ msg_print("『助さん』が現れた。");
3644+#else
3645+ msg_print("Suke-san apperars.");
3646+ kakusan = "Suke-san";
3647+#endif
3648+ count++;
3649+ }
3650+ if (summon_named_creature(0, py, px, MON_KAKU, PM_FORCE_PET))
3651+ {
3652+#ifdef JP
3653+ msg_print("『格さん』が現れた。");
3654+#else
3655+ msg_print("Kaku-san appears.");
3656+ kakusan = "Kaku-san";
3657+#endif
3658+ count++;
3659+ }
3660+ if (!count)
3661+ {
3662+ for (i = m_max - 1; i > 0; i--)
3663+ {
3664+ m_ptr = &m_list[i];
3665+ if (!m_ptr->r_idx) continue;
3666+ if (!((m_ptr->r_idx == MON_SUKE) || (m_ptr->r_idx == MON_KAKU))) continue;
3667+ if (!los(m_ptr->fy, m_ptr->fx, py, px)) continue;
3668+ if (!projectable(m_ptr->fy, m_ptr->fx, py, px)) continue;
3669+ count++;
3670+ break;
3671+ }
3672+ }
3673+
3674+ if (count)
3675+ {
3676+#ifdef JP
3677+ msg_print("「者ども、ひかえおろう!!!このお方をどなたとこころえる。」");
3678+#else
3679+ msg_format("%^s says 'WHO do you think this person is! Bow your head, down your knees!'", kakusan);
3680+#endif
3681+ sukekaku = TRUE;
3682+ stun_monsters(120);
3683+ confuse_monsters(120);
3684+ turn_monsters(120);
3685+ stasis_monsters(120);
3686+ sukekaku = FALSE;
3687+ }
3688+ else
3689+ {
3690+#ifdef JP
3691+ msg_print("しかし、何も起きなかった。");
3692+#else
3693+ msg_print("Nothing happen.");
3694+#endif
3695+ }
3696+ o_ptr->timeout = randint0(150) + 150;
3697+ break;
3698+ }
3699+
3700+ case ACT_MURAMASA:
3701+ {
3702+ /* Only for Muramasa */
3703+ if (o_ptr->name1 != ART_MURAMASA) return FALSE;
3704+#ifdef JP
3705+ if (get_check("本当に使いますか?"))
3706+#else
3707+ if (get_check("Are you sure?!"))
3708+#endif
3709+ {
3710+#ifdef JP
3711+ msg_print("村正が震えた...");
3712+#else
3713+ msg_print("The Muramasa pulsates...");
3714+#endif
3715+ do_inc_stat(A_STR);
3716+ if (one_in_(2))
3717+ {
3718+#ifdef JP
3719+ msg_print("村正は壊れた!");
3720+#else
3721+ msg_print("The Muramasa is destroyed!");
3722+#endif
3723+ curse_weapon_object(TRUE, o_ptr);
3724+ }
3725+ }
3726+ break;
3727+ }
3728+
3729+ case ACT_BLOODY_MOON:
3730+ {
3731+ /* Only for Bloody Moon */
3732+ if (o_ptr->name1 != ART_BLOOD) return FALSE;
3733+#ifdef JP
3734+ msg_print("鎌が明るく輝いた...");
3735+#else
3736+ msg_print("Your scythe glows brightly!");
3737+#endif
3738+ get_bloody_moon_flags(o_ptr);
3739+ o_ptr->timeout = 3333;
3740+ if (p_ptr->prace == RACE_ANDROID) calc_android_exp();
3741+ p_ptr->update |= (PU_BONUS | PU_HP);
3742+ break;
3743+ }
3744+
3745+ case ACT_CRIMSON:
3746+ {
3747+ int num = 1;
3748+ int i;
3749+ int flg = PROJECT_STOP | PROJECT_GRID | PROJECT_ITEM | PROJECT_KILL;
3750+ int tx, ty;
3751+
3752+ /* Only for Crimson */
3753+ if (o_ptr->name1 != ART_CRIMSON) return FALSE;
3754+
3755+#ifdef JP
3756+ msg_print("せっかくだから『クリムゾン』をぶっぱなすぜ!");
3757+#else
3758+ msg_print("I'll fire CRIMSON! SEKKAKUDAKARA!");
3759+#endif
3760+
3761+ if (!get_aim_dir(&dir)) return FALSE;
3762+
3763+ /* Use the given direction */
3764+ tx = px + 99 * ddx[dir];
3765+ ty = py + 99 * ddy[dir];
3766+
3767+ /* Hack -- Use an actual "target" */
3768+ if ((dir == 5) && target_okay())
3769+ {
3770+ tx = target_col;
3771+ ty = target_row;
3772+ }
3773+
3774+ if (p_ptr->pclass == CLASS_ARCHER)
3775+ {
3776+ /* Extra shot at level 10 */
3777+ if (p_ptr->lev >= 10) num++;
3778+
3779+ /* Extra shot at level 30 */
3780+ if (p_ptr->lev >= 30) num++;
3781+
3782+ /* Extra shot at level 45 */
3783+ if (p_ptr->lev >= 45) num++;
3784+ }
3785+
3786+ for (i = 0; i < num; i++)
3787+ project(0, p_ptr->lev/20+1, ty, tx, p_ptr->lev*p_ptr->lev*6/50, GF_ROCKET, flg, -1);
3788+ o_ptr->timeout = 15;
3789+ break;
3790+ }
3791+
35973792 default:
35983793 {
35993794 #ifdef JP
--- a/src/cmd6.c
+++ b/src/cmd6.c
@@ -4176,180 +4176,8 @@ static void do_cmd_activate_aux(int item)
41764176 /* Choose effect */
41774177 switch (o_ptr->name1)
41784178 {
4179- case ART_CRIMSON:
4180- {
4181- int num = 1;
4182- int i;
4183- int flg = PROJECT_STOP | PROJECT_GRID | PROJECT_ITEM | PROJECT_KILL;
4184- int tx, ty;
4185-#ifdef JP
4186- msg_print("せっかくだから『クリムゾン』をぶっぱなすぜ!");
4187-#else
4188- msg_print("I'll fire CRIMSON! SEKKAKUDAKARA!");
4189-#endif
4190-
4191- if (!get_aim_dir(&dir)) return;
4192-
4193- /* Use the given direction */
4194- tx = px + 99 * ddx[dir];
4195- ty = py + 99 * ddy[dir];
4196-
4197- /* Hack -- Use an actual "target" */
4198- if ((dir == 5) && target_okay())
4199- {
4200- tx = target_col;
4201- ty = target_row;
4202- }
4203-
4204- if (p_ptr->pclass == CLASS_ARCHER)
4205- {
4206- /* Extra shot at level 10 */
4207- if (p_ptr->lev >= 10) num++;
4208-
4209- /* Extra shot at level 30 */
4210- if (p_ptr->lev >= 30) num++;
4211-
4212- /* Extra shot at level 45 */
4213- if (p_ptr->lev >= 45) num++;
4214- }
4215-
4216- for (i = 0; i < num; i++)
4217- project(0, p_ptr->lev/20+1, ty, tx, p_ptr->lev*p_ptr->lev*6/50, GF_ROCKET, flg, -1);
4218- o_ptr->timeout = 15;
4219- break;
4220- }
4221-
4222- case ART_BOROMIR:
4223- {
4224- if (music_singing_any()) stop_singing();
4225- if (hex_spelling_any()) stop_hex_spell_all();
4226-#ifdef JP
4227- msg_print("あなたは力強い突風を吹き鳴らした。周囲の敵が震え上っている!");
4228-#else
4229- msg_print("You wind a mighty blast; your enemies tremble!");
4230-#endif
4231- (void)turn_monsters((3 * p_ptr->lev / 2) + 10);
4232- o_ptr->timeout = randint0(40) + 40;
4233- break;
4234- }
4235- case ART_MURAMASA:
4236- {
4237-#ifdef JP
4238- if (get_check("本当に使いますか?"))
4239-#else
4240- if (get_check("Are you sure?!"))
4241-#endif
4242- {
4243-#ifdef JP
4244- msg_print("村正が震えた...");
4245-#else
4246- msg_print("The Muramasa pulsates...");
4247-#endif
4248- do_inc_stat(A_STR);
4249- if (one_in_(2))
4250- {
4251-#ifdef JP
4252- msg_print("村正は壊れた!");
4253-#else
4254- msg_print("The Muramasa is destroyed!");
4255-#endif
4256- curse_weapon(TRUE, item);
4257- }
4258- }
4259- break;
4260- }
4261- case ART_INROU:
4262- {
4263- int count = 0, i;
4264- monster_type *m_ptr;
4265-#ifndef JP
4266- cptr kakusan = "";
4267-#endif
4268-
4269- if (summon_named_creature(0, py, px, MON_SUKE, PM_FORCE_PET))
4270- {
4271-#ifdef JP
4272- msg_print("『助さん』が現れた。");
4273-#else
4274- msg_print("Suke-san apperars.");
4275- kakusan = "Suke-san";
4276-#endif
4277- count++;
4278- }
4279- if (summon_named_creature(0, py, px, MON_KAKU, PM_FORCE_PET))
4280- {
4281-#ifdef JP
4282- msg_print("『格さん』が現れた。");
4283-#else
4284- msg_print("Kaku-san appears.");
4285- kakusan = "Kaku-san";
4286-#endif
4287- count++;
4288- }
4289- if (!count)
4290- {
4291- for (i = m_max - 1; i > 0; i--)
4292- {
4293- m_ptr = &m_list[i];
4294- if (!m_ptr->r_idx) continue;
4295- if (!((m_ptr->r_idx == MON_SUKE) || (m_ptr->r_idx == MON_KAKU))) continue;
4296- if (!los(m_ptr->fy, m_ptr->fx, py, px)) continue;
4297- if (!projectable(m_ptr->fy, m_ptr->fx, py, px)) continue;
4298- count++;
4299- break;
4300- }
4301- }
4302-
4303- if (count)
4304- {
4305-#ifdef JP
4306- msg_print("「者ども、ひかえおろう!!!このお方をどなたとこころえる。」");
4307-#else
4308- msg_format("%^s says 'WHO do you think this person is! Bow your head, down your knees!'", kakusan);
4309-#endif
4310-
4311- sukekaku = TRUE;
4312- stun_monsters(120);
4313- confuse_monsters(120);
4314- turn_monsters(120);
4315- stasis_monsters(120);
4316- sukekaku = FALSE;
4317- }
4318- else
4319- {
4320-#ifdef JP
4321- msg_print("しかし、何も起きなかった。");
4322-#else
4323- msg_print("Nothing happen.");
4324-#endif
4325- }
4326- o_ptr->timeout = randint0(150) + 150;
4327- break;
4328- }
4329-
4330- case ART_HYOUSIGI:
4331- {
4332-#ifdef JP
4333- msg_print("拍子木を打った。");
4334-#else
4335- msg_print("You beat Your wooden clappers.");
4336-#endif
4337- aggravate_monsters(0);
4338- break;
4339- }
4340- case ART_BLOOD:
4341- {
4342-#ifdef JP
4343- msg_print("鎌が明るく輝いた...");
4344-#else
4345- msg_print("Your scythe glows brightly!");
4346-#endif
4347- get_bloody_moon_flags(o_ptr);
4348- o_ptr->timeout = 3333;
4349- if (p_ptr->prace == RACE_ANDROID) calc_android_exp();
4350- p_ptr->update |= (PU_BONUS | PU_HP);
4351- break;
4352- }
4179+ default:
4180+ break;
43534181 }
43544182
43554183 /* Window stuff */
--- a/src/defines.h
+++ b/src/defines.h
@@ -1815,6 +1815,8 @@
18151815 #define ACT_BANISH_EVIL 56
18161816 #define ACT_GENOCIDE 57
18171817 #define ACT_MASS_GENO 58
1818+#define ACT_SCARE_AREA 59
1819+#define ACT_AGGRAVATE 60
18181820 /* 59 - 64 unused */
18191821 #define ACT_CHARM_ANIMAL 65
18201822 #define ACT_CHARM_UNDEAD 66
@@ -1883,8 +1885,11 @@
18831885 #define ACT_LORE 134
18841886 #define ACT_SHIKOFUMI 135
18851887 /* 127 -> unused */
1886-#define ACT_FISHING 200
1887-
1888+#define ACT_FISHING 251
1889+#define ACT_INROU 252
1890+#define ACT_MURAMASA 253
1891+#define ACT_BLOODY_MOON 254
1892+#define ACT_CRIMSON 255
18881893
18891894 /*** Object "tval" and "sval" codes ***/
18901895
--- a/src/externs.h
+++ b/src/externs.h
@@ -1264,6 +1264,7 @@ extern int fire_dam(int dam, cptr kb_str, int monspell);
12641264 extern int cold_dam(int dam, cptr kb_str, int monspell);
12651265 extern bool rustproof(void);
12661266 extern bool curse_armor(void);
1267+extern bool curse_weapon_object(bool force, object_type *o_ptr);
12671268 extern bool curse_weapon(bool force, int slot);
12681269 extern bool brand_bolts(void);
12691270 extern bool polymorph_monster(int y, int x);
--- a/src/init1.c
+++ b/src/init1.c
@@ -867,6 +867,8 @@ struct k_info_activation_flag
867867 { "BANISH_EVIL", ACT_BANISH_EVIL },
868868 { "GENOCIDE", ACT_GENOCIDE },
869869 { "MASS_GENO", ACT_MASS_GENO },
870+ { "SCARE_AREA", ACT_SCARE_AREA },
871+ { "AGGRAVATE", ACT_AGGRAVATE },
870872
871873 { "CHARM_ANIMAL", ACT_CHARM_ANIMAL },
872874 { "CHARM_UNDEAD", ACT_CHARM_UNDEAD },
@@ -936,6 +938,10 @@ struct k_info_activation_flag
936938 { "SHIKOFUMI", ACT_SHIKOFUMI },
937939
938940 { "FISHING", ACT_FISHING },
941+ { "INROU", ACT_INROU },
942+ { "MURAMASA", ACT_MURAMASA },
943+ { "BLOODY_MOON", ACT_BLOODY_MOON },
944+ { "CRIMSON", ACT_CRIMSON },
939945
940946 { NULL, 0 }
941947 };
--- a/src/object1.c
+++ b/src/object1.c
@@ -456,7 +456,11 @@ cptr item_activation(object_type *o_ptr)
456456 return "抹殺 : 500 ターン毎";
457457 case ACT_MASS_GENO:
458458 return "周辺抹殺 : 1000 ターン毎";
459-
459+ case ACT_SCARE_AREA:
460+ return "モンスター恐慌 : 40+d40ターン毎";
461+ case ACT_AGGRAVATE:
462+ if (o_ptr->name1 == ART_HYOUSIGI) return "拍子木を打ちならす : いつでも";
463+ return "モンスターを怒らせる : いつでも";
460464 case ACT_CHARM_ANIMAL:
461465 return "動物魅了 : 200 ターン毎";
462466 case ACT_CHARM_UNDEAD:
@@ -578,6 +582,14 @@ cptr item_activation(object_type *o_ptr)
578582 /* Unique activation */
579583 case ACT_FISHING:
580584 return "釣りをする : いつでも";
585+ case ACT_INROU:
586+ return "例のアレ : 150+d150 ターン毎";
587+ case ACT_MURAMASA:
588+ return "腕力の上昇 : 確率50%で壊れる";
589+ case ACT_BLOODY_MOON:
590+ return "属性変更 : 3333 ターン毎";
591+ case ACT_CRIMSON:
592+ return "ファイア! : 15 ターン毎";
581593
582594 default:
583595 return "未定義";
@@ -673,6 +685,11 @@ cptr item_activation(object_type *o_ptr)
673685 return "genocide every 500 turns";
674686 case ACT_MASS_GENO:
675687 return "mass genocide every 1000 turns";
688+ case ACT_SCARE_AREA:
689+ return "frighten monsters every 40+d40 turns";
690+ case ACT_AGGRAVATE:
691+ if (o_ptr->name1 == ART_HYOUSIGI) return "beat wooden clappers every turn";
692+ return "aggravete monsters every turn";
676693
677694 case ACT_CHARM_ANIMAL:
678695 return "charm animal every 200 turns";
@@ -805,6 +822,14 @@ cptr item_activation(object_type *o_ptr)
805822 /* Unique activation */
806823 case ACT_FISHING:
807824 return "fishing : every time";
825+ case ACT_INROU:
826+ return "reveal your identity every 150+d150 turns";
827+ case ACT_MURAMASA:
828+ return "increase STR (destroyed 50%)";
829+ case ACT_BLOODY_MOON:
830+ return "change zokusei every 3333 turns";
831+ case ACT_CRIMSON:
832+ return "fire! every 15 turns";
808833
809834 default:
810835 return "something undefined";
@@ -815,55 +840,13 @@ cptr item_activation(object_type *o_ptr)
815840 /* Some artifacts can be activated */
816841 switch (o_ptr->name1)
817842 {
818- case ART_CRIMSON:
819- {
820-#ifdef JP
821- return "ファイア! : 15 ターン毎";
822-#else
823- return "fire! every 15 turns";
824-#endif
825- }
826- case ART_BOROMIR:
827- {
828-#ifdef JP
829- return "モンスター恐慌 : 40+d40ターン毎";
830-#else
831- return "frighten monsters every 40+d40 turns";
832-#endif
833- }
834- case ART_MURAMASA:
835- {
836-#ifdef JP
837- return "腕力の上昇 : 確率50%で壊れる";
838-#else
839- return "increase STR (destroyed 50%)";
840-#endif
841- }
842- case ART_INROU:
843- {
844-#ifdef JP
845- return "例のアレ : 150+d150 ターン毎";
846-#else
847- return "reveal your identity every 150+d150 turns";
848-#endif
849- }
850- case ART_HYOUSIGI:
851- {
852-#ifdef JP
853- return "拍子木を打ちならす : いつでも";
854-#else
855- return "beat wooden clappers every turn";
856-#endif
857- }
858- case ART_BLOOD:
859- {
843+ /* Nothing */
844+ default:
860845 #ifdef JP
861- return "属性変更 : 3333 ターン毎";
846+ return "未定義";
862847 #else
863- return "change zokusei every 3333 turns";
848+ return "something undefined";
864849 #endif
865-
866- }
867850 }
868851
869852 if (object_is_smith(o_ptr))
--- a/src/spells3.c
+++ b/src/spells3.c
@@ -5298,22 +5298,14 @@ msg_format("
52985298 /*
52995299 * Curse the players weapon
53005300 */
5301-bool curse_weapon(bool force, int slot)
5301+bool curse_weapon_object(bool force, object_type *o_ptr)
53025302 {
53035303 int i;
5304-
5305- object_type *o_ptr;
5306-
53075304 char o_name[MAX_NLEN];
53085305
5309-
5310- /* Curse the weapon */
5311- o_ptr = &inventory[slot];
5312-
53135306 /* Nothing to curse */
53145307 if (!o_ptr->k_idx) return (FALSE);
53155308
5316-
53175309 /* Describe */
53185310 object_desc(o_name, o_ptr, OD_OMIT_PREFIX);
53195311
@@ -5322,13 +5314,12 @@ bool curse_weapon(bool force, int slot)
53225314 {
53235315 /* Cool */
53245316 #ifdef JP
5325-msg_format("%sが%sを包み込もうとしたが、%sはそれを跳ね返した!",
5326-"恐怖の暗黒オーラ", "武器", o_name);
5317+ msg_format("%sが%sを包み込もうとしたが、%sはそれを跳ね返した!",
5318+ "恐怖の暗黒オーラ", "武器", o_name);
53275319 #else
53285320 msg_format("A %s tries to %s, but your %s resists the effects!",
5329- "terrible black aura", "surround your weapon", o_name);
5321+ "terrible black aura", "surround your weapon", o_name);
53305322 #endif
5331-
53325323 }
53335324
53345325 /* not artifact or failed save... */
@@ -5336,11 +5327,10 @@ msg_format("%s
53365327 {
53375328 /* Oops */
53385329 #ifdef JP
5339-if (!force) msg_format("恐怖の暗黒オーラがあなたの%sを包み込んだ!", o_name);
5330+ if (!force) msg_format("恐怖の暗黒オーラがあなたの%sを包み込んだ!", o_name);
53405331 #else
53415332 if (!force) msg_format("A terrible black aura blasts your %s!", o_name);
53425333 #endif
5343-
53445334 chg_virtue(V_ENCHANT, -5);
53455335
53465336 /* Shatter the weapon */
@@ -5356,7 +5346,6 @@ if (!force) msg_format("
53565346 for (i = 0; i < TR_FLAG_SIZE; i++)
53575347 o_ptr->art_flags[i] = 0;
53585348
5359-
53605349 /* Curse it */
53615350 o_ptr->curse_flags = TRC_CURSED;
53625351
@@ -5377,6 +5366,12 @@ if (!force) msg_format("
53775366 return (TRUE);
53785367 }
53795368
5369+bool curse_weapon(bool force, int slot)
5370+{
5371+ /* Curse the weapon */
5372+ return curse_weapon_object(force, &inventory[slot]);
5373+}
5374+
53805375
53815376 /*
53825377 * Enchant some bolts
Show on old repository browser