変愚蛮怒のメインリポジトリです
Revision | 8fc6a1c0803e0eb0122c3275a9b2ebc67963d9c9 (tree) |
---|---|
Time | 2013-01-29 21:41:42 |
Author | iks <iks@0568...> |
Commiter | iks |
固定アーティファクトの発動は全部外部フラグ化し終わった。
@@ -412,6 +412,7 @@ W:60:150:100:100000 | ||
412 | 412 | P:0:0d0:20:20:0 |
413 | 413 | F:SPEED | STEALTH | RES_NETHER | |
414 | 414 | F:ACTIVATE | SHOW_MODS | INSTA_ART | XTRA_POWER | XTRA_H_RES |
415 | +U:CRIMSON | |
415 | 416 | D:$"-- In there, the whole town had turned into monsters' nest. |
416 | 417 | D:$ This gun gotten by Echizen unexpectedly, 'Crimson', helped |
417 | 418 | D:$ him in his missions, and it evolved into greater weapon |
@@ -2739,6 +2740,7 @@ P:0:0d0:0:8:0 | ||
2739 | 2740 | F:SHOW_MODS | HIDE_TYPE | |
2740 | 2741 | F:SUST_STR | RES_FEAR | ACTIVATE | |
2741 | 2742 | F:INSTA_ART |
2743 | +U:SCARE_AREA | |
2742 | 2744 | D:$A massive golden torque, made of innumerable strands of gold and steel |
2743 | 2745 | D:$intermingled, with great golden hounds set at either end. |
2744 | 2746 | D:黄金と黒鋼の無数のより糸で編み上げられた重厚な金の首飾りで、 |
@@ -2752,6 +2754,7 @@ P:0:10d5:0:0:-20 | ||
2752 | 2754 | F:HIDE_TYPE | BLOWS | VORPAL | VAMPIRIC | SLAY_HUMAN | |
2753 | 2755 | F:SHOW_MODS | SPEED | ACTIVATE | RES_DISEN | NO_TELE | |
2754 | 2756 | F:DRAIN_EXP | AGGRAVATE | RES_DARK | RES_NETHER | TY_CURSE | |
2757 | +U:MURAMASA | |
2755 | 2758 | D:$Muramasa the legendaly bracksmith forged this sword 'Muramasa'. |
2756 | 2759 | D:$ It always wants more blood thirstily, although it already |
2757 | 2760 | D:$ drained blood from many person. |
@@ -2994,6 +2997,7 @@ I:40:20:2 | ||
2994 | 2997 | W:30:80:3:100000 |
2995 | 2998 | F:INT | WIS | CHR | SEARCH | INFRA | SEE_INVIS | ACTIVATE | |
2996 | 2999 | F:HIDE_TYPE | INSTA_ART |
3000 | +U:INROU | |
2997 | 3001 | D:毎週月曜日の20:45に絶大な力を発揮するらしい。 |
2998 | 3002 | |
2999 | 3003 | N:167:『噛尾刀』 |
@@ -3031,6 +3035,7 @@ I:21:4:3 | ||
3031 | 3035 | W:25:5:15:808 |
3032 | 3036 | P:0:1d2:-3:-7:6 |
3033 | 3037 | F:SEARCH | ACTIVATE | SHOW_MODS | HIDE_TYPE |
3038 | +U:AGGRAVATE | |
3034 | 3039 | D:角柱二本の互いの端が、細い縄で結ばれている。 |
3035 | 3040 | D:武器としては見るからに貧相だが、 防火をその任とする衛士たちが使った、 |
3036 | 3041 | D:由緒正しい武器だといわれている。 |
@@ -3405,6 +3410,7 @@ I:22:30:2 | ||
3405 | 3410 | W:70:12:250:180000 |
3406 | 3411 | P:0:8d4:8:8:8 |
3407 | 3412 | F:ACTIVATE | SHOW_MODS |
3413 | +U:BLOODY_MOON | |
3408 | 3414 | |
3409 | 3415 | N:200:ダ |
3410 | 3416 | E:'Dasai' |
@@ -2567,6 +2567,42 @@ bool activate_random_artifact(object_type *o_ptr) | ||
2567 | 2567 | break; |
2568 | 2568 | } |
2569 | 2569 | |
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 | + | |
2570 | 2606 | /* Activate for summoning / charming */ |
2571 | 2607 | |
2572 | 2608 | case ACT_CHARM_ANIMAL: |
@@ -3594,6 +3630,165 @@ bool activate_random_artifact(object_type *o_ptr) | ||
3594 | 3630 | break; |
3595 | 3631 | } |
3596 | 3632 | |
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 | + | |
3597 | 3792 | default: |
3598 | 3793 | { |
3599 | 3794 | #ifdef JP |
@@ -4176,180 +4176,8 @@ static void do_cmd_activate_aux(int item) | ||
4176 | 4176 | /* Choose effect */ |
4177 | 4177 | switch (o_ptr->name1) |
4178 | 4178 | { |
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; | |
4353 | 4181 | } |
4354 | 4182 | |
4355 | 4183 | /* Window stuff */ |
@@ -1815,6 +1815,8 @@ | ||
1815 | 1815 | #define ACT_BANISH_EVIL 56 |
1816 | 1816 | #define ACT_GENOCIDE 57 |
1817 | 1817 | #define ACT_MASS_GENO 58 |
1818 | +#define ACT_SCARE_AREA 59 | |
1819 | +#define ACT_AGGRAVATE 60 | |
1818 | 1820 | /* 59 - 64 unused */ |
1819 | 1821 | #define ACT_CHARM_ANIMAL 65 |
1820 | 1822 | #define ACT_CHARM_UNDEAD 66 |
@@ -1883,8 +1885,11 @@ | ||
1883 | 1885 | #define ACT_LORE 134 |
1884 | 1886 | #define ACT_SHIKOFUMI 135 |
1885 | 1887 | /* 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 | |
1888 | 1893 | |
1889 | 1894 | /*** Object "tval" and "sval" codes ***/ |
1890 | 1895 |
@@ -1264,6 +1264,7 @@ extern int fire_dam(int dam, cptr kb_str, int monspell); | ||
1264 | 1264 | extern int cold_dam(int dam, cptr kb_str, int monspell); |
1265 | 1265 | extern bool rustproof(void); |
1266 | 1266 | extern bool curse_armor(void); |
1267 | +extern bool curse_weapon_object(bool force, object_type *o_ptr); | |
1267 | 1268 | extern bool curse_weapon(bool force, int slot); |
1268 | 1269 | extern bool brand_bolts(void); |
1269 | 1270 | extern bool polymorph_monster(int y, int x); |
@@ -867,6 +867,8 @@ struct k_info_activation_flag | ||
867 | 867 | { "BANISH_EVIL", ACT_BANISH_EVIL }, |
868 | 868 | { "GENOCIDE", ACT_GENOCIDE }, |
869 | 869 | { "MASS_GENO", ACT_MASS_GENO }, |
870 | + { "SCARE_AREA", ACT_SCARE_AREA }, | |
871 | + { "AGGRAVATE", ACT_AGGRAVATE }, | |
870 | 872 | |
871 | 873 | { "CHARM_ANIMAL", ACT_CHARM_ANIMAL }, |
872 | 874 | { "CHARM_UNDEAD", ACT_CHARM_UNDEAD }, |
@@ -936,6 +938,10 @@ struct k_info_activation_flag | ||
936 | 938 | { "SHIKOFUMI", ACT_SHIKOFUMI }, |
937 | 939 | |
938 | 940 | { "FISHING", ACT_FISHING }, |
941 | + { "INROU", ACT_INROU }, | |
942 | + { "MURAMASA", ACT_MURAMASA }, | |
943 | + { "BLOODY_MOON", ACT_BLOODY_MOON }, | |
944 | + { "CRIMSON", ACT_CRIMSON }, | |
939 | 945 | |
940 | 946 | { NULL, 0 } |
941 | 947 | }; |
@@ -456,7 +456,11 @@ cptr item_activation(object_type *o_ptr) | ||
456 | 456 | return "抹殺 : 500 ターン毎"; |
457 | 457 | case ACT_MASS_GENO: |
458 | 458 | 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 "モンスターを怒らせる : いつでも"; | |
460 | 464 | case ACT_CHARM_ANIMAL: |
461 | 465 | return "動物魅了 : 200 ターン毎"; |
462 | 466 | case ACT_CHARM_UNDEAD: |
@@ -578,6 +582,14 @@ cptr item_activation(object_type *o_ptr) | ||
578 | 582 | /* Unique activation */ |
579 | 583 | case ACT_FISHING: |
580 | 584 | 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 ターン毎"; | |
581 | 593 | |
582 | 594 | default: |
583 | 595 | return "未定義"; |
@@ -673,6 +685,11 @@ cptr item_activation(object_type *o_ptr) | ||
673 | 685 | return "genocide every 500 turns"; |
674 | 686 | case ACT_MASS_GENO: |
675 | 687 | 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"; | |
676 | 693 | |
677 | 694 | case ACT_CHARM_ANIMAL: |
678 | 695 | return "charm animal every 200 turns"; |
@@ -805,6 +822,14 @@ cptr item_activation(object_type *o_ptr) | ||
805 | 822 | /* Unique activation */ |
806 | 823 | case ACT_FISHING: |
807 | 824 | 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"; | |
808 | 833 | |
809 | 834 | default: |
810 | 835 | return "something undefined"; |
@@ -815,55 +840,13 @@ cptr item_activation(object_type *o_ptr) | ||
815 | 840 | /* Some artifacts can be activated */ |
816 | 841 | switch (o_ptr->name1) |
817 | 842 | { |
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: | |
860 | 845 | #ifdef JP |
861 | - return "属性変更 : 3333 ターン毎"; | |
846 | + return "未定義"; | |
862 | 847 | #else |
863 | - return "change zokusei every 3333 turns"; | |
848 | + return "something undefined"; | |
864 | 849 | #endif |
865 | - | |
866 | - } | |
867 | 850 | } |
868 | 851 | |
869 | 852 | if (object_is_smith(o_ptr)) |
@@ -5298,22 +5298,14 @@ msg_format(" | ||
5298 | 5298 | /* |
5299 | 5299 | * Curse the players weapon |
5300 | 5300 | */ |
5301 | -bool curse_weapon(bool force, int slot) | |
5301 | +bool curse_weapon_object(bool force, object_type *o_ptr) | |
5302 | 5302 | { |
5303 | 5303 | int i; |
5304 | - | |
5305 | - object_type *o_ptr; | |
5306 | - | |
5307 | 5304 | char o_name[MAX_NLEN]; |
5308 | 5305 | |
5309 | - | |
5310 | - /* Curse the weapon */ | |
5311 | - o_ptr = &inventory[slot]; | |
5312 | - | |
5313 | 5306 | /* Nothing to curse */ |
5314 | 5307 | if (!o_ptr->k_idx) return (FALSE); |
5315 | 5308 | |
5316 | - | |
5317 | 5309 | /* Describe */ |
5318 | 5310 | object_desc(o_name, o_ptr, OD_OMIT_PREFIX); |
5319 | 5311 |
@@ -5322,13 +5314,12 @@ bool curse_weapon(bool force, int slot) | ||
5322 | 5314 | { |
5323 | 5315 | /* Cool */ |
5324 | 5316 | #ifdef JP |
5325 | -msg_format("%sが%sを包み込もうとしたが、%sはそれを跳ね返した!", | |
5326 | -"恐怖の暗黒オーラ", "武器", o_name); | |
5317 | + msg_format("%sが%sを包み込もうとしたが、%sはそれを跳ね返した!", | |
5318 | + "恐怖の暗黒オーラ", "武器", o_name); | |
5327 | 5319 | #else |
5328 | 5320 | 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); | |
5330 | 5322 | #endif |
5331 | - | |
5332 | 5323 | } |
5333 | 5324 | |
5334 | 5325 | /* not artifact or failed save... */ |
@@ -5336,11 +5327,10 @@ msg_format("%s | ||
5336 | 5327 | { |
5337 | 5328 | /* Oops */ |
5338 | 5329 | #ifdef JP |
5339 | -if (!force) msg_format("恐怖の暗黒オーラがあなたの%sを包み込んだ!", o_name); | |
5330 | + if (!force) msg_format("恐怖の暗黒オーラがあなたの%sを包み込んだ!", o_name); | |
5340 | 5331 | #else |
5341 | 5332 | if (!force) msg_format("A terrible black aura blasts your %s!", o_name); |
5342 | 5333 | #endif |
5343 | - | |
5344 | 5334 | chg_virtue(V_ENCHANT, -5); |
5345 | 5335 | |
5346 | 5336 | /* Shatter the weapon */ |
@@ -5356,7 +5346,6 @@ if (!force) msg_format(" | ||
5356 | 5346 | for (i = 0; i < TR_FLAG_SIZE; i++) |
5357 | 5347 | o_ptr->art_flags[i] = 0; |
5358 | 5348 | |
5359 | - | |
5360 | 5349 | /* Curse it */ |
5361 | 5350 | o_ptr->curse_flags = TRC_CURSED; |
5362 | 5351 |
@@ -5377,6 +5366,12 @@ if (!force) msg_format(" | ||
5377 | 5366 | return (TRUE); |
5378 | 5367 | } |
5379 | 5368 | |
5369 | +bool curse_weapon(bool force, int slot) | |
5370 | +{ | |
5371 | + /* Curse the weapon */ | |
5372 | + return curse_weapon_object(force, &inventory[slot]); | |
5373 | +} | |
5374 | + | |
5380 | 5375 | |
5381 | 5376 | /* |
5382 | 5377 | * Enchant some bolts |