OSDN Git Service

ヌヒシル、ャ、タ、、、ソ、、、ヌ、ュ、ソ。」
authorhoge <hoge@0568b783-4c39-0410-ac80-bf13821ea2a2>
Mon, 20 May 2002 14:34:04 +0000 (14:34 +0000)
committerhoge <hoge@0568b783-4c39-0410-ac80-bf13821ea2a2>
Mon, 20 May 2002 14:34:04 +0000 (14:34 +0000)
イ筅ネ、ォ、゙、タ。」

15 files changed:
lib/edit/m_info_j.txt
lib/edit/r_info_j.txt
src/cmd1.c
src/cmd5.c
src/dungeon.c
src/effects.c
src/externs.h
src/load.c
src/melee1.c
src/racial.c
src/save.c
src/spells1.c
src/spells2.c
src/spells3.c
src/tables.c

index 6686ca6..502dbdf 100644 (file)
@@ -358,38 +358,38 @@ T:49:80:85:250
 
 # Haja
 R:9:1
-T:1:1:30:4  #0
-T:3:2:35:4
-T:4:3:35:4
-T:5:5:35:4
-T:7:7:35:4
-T:9:8:40:4
-T:12:12:40:3
-T:15:14:45:3
-T:16:16:45:4  #1
-T:17:17:50:4
-T:18:18:50:4
-T:19:19:50:4
-T:20:20:50:4
-T:23:23:50:4
-T:30:30:55:5
-T:35:70:75:5
-T:26:30:50:75  #2
-T:28:25:70:150
-T:33:33:60:75
-T:35:35:60:75
-T:35:35:70:75
-T:35:55:80:115
-T:39:40:80:125
-T:46:70:80:150
-T:9:9:50:40  #3
-T:25:25:50:50
-T:35:55:80:115
-T:42:100:80:225
-T:45:90:80:115
-T:48:50:80:100
-T:49:100:80:250
-T:50:100:80:250
+T:1:1:20:4  #0
+T:1:1:15:4
+T:2:2:20:4
+T:4:3:25:1
+T:6:4:30:2
+T:7:5:34:4
+T:9:7:30:2
+T:10:10:45:6
+T:15:11:55:4  #1
+T:17:15:55:10
+T:18:16:60:10
+T:22:18:50:4
+T:26:24:50:7
+T:29:23:60:10
+T:34:32:85:15
+T:40:35:85:20
+T:6:5:33:40  #2
+T:18:14:50:50
+T:21:16:60:70
+T:25:20:65:70
+T:32:27:70:120
+T:34:75:95:100
+T:40:45:70:200
+T:44:100:90:250
+T:9:9:50:80  #3
+T:30:35:80:250
+T:32:32:75:100
+T:36:22:80:150
+T:40:40:80:150
+T:43:65:85:200
+T:46:90:85:200
+T:48:100:85:250
 
 
 ### Priest ###
@@ -712,38 +712,38 @@ T:50:80:85:250
 
 # Haja
 R:9:1
-T:1:1:10:4  #0
-T:1:2:15:4
-T:1:2:20:4
+T:1:1:20:4  #0
+T:1:1:10:4
+T:2:2:20:4
 T:3:2:25:1
-T:3:3:27:2
-T:4:4:28:2
-T:5:4:32:4
-T:7:5:38:4
-T:7:6:38:5  #1
-T:9:6:38:4
-T:9:7:40:4
-T:10:8:38:4
-T:10:8:40:4
-T:11:8:42:4
-T:20:16:60:7
-T:33:55:90:15
-T:15:14:50:50  #2
-T:16:14:80:60
-T:17:14:55:70
-T:24:20:55:70
-T:25:20:70:120
-T:25:25:80:250
-T:39:32:95:200
-T:44:44:80:250
-T:5:5:50:80  #3
-T:15:14:50:100
-T:30:30:80:130
-T:35:70:90:250
-T:40:50:80:130
-T:40:40:80:200
-T:42:90:85:200
-T:45:90:85:250
+T:5:4:30:2
+T:6:5:34:4
+T:10:7:35:2
+T:12:12:50:6
+T:14:10:50:4  #1
+T:15:14:50:10
+T:16:14:40:10
+T:21:18:50:4
+T:26:22:55:7
+T:29:23:60:10
+T:36:35:85:15
+T:40:35:85:20
+T:5:5:33:40  #2
+T:15:13:83:40
+T:20:15:55:70
+T:23:17:60:70
+T:30:25:70:120
+T:34:75:95:100
+T:41:45:70:200
+T:43:100:90:250
+T:9:9:66:80  #3
+T:28:30:80:250
+T:30:28:65:100
+T:38:22:80:150
+T:40:40:80:150
+T:43:65:80:200
+T:45:90:85:200
+T:46:100:85:250
 
 
 ### Rogue ###
@@ -1262,37 +1262,37 @@ R:8:0
 
 # Haja
 R:9:1
-T:1:1:30:4  #0
-T:2:2:35:4
+T:1:1:20:4  #0
+T:2:1:30:4
 T:3:3:35:4
-T:4:3:35:4
 T:5:4:35:4
-T:8:5:40:4
-T:11:9:40:3
-T:13:10:45:3
-T:14:11:45:4  #1
-T:15:15:50:4
-T:17:15:50:4
-T:18:15:50:4
-T:18:15:50:4
-T:19:15:50:4
-T:30:25:55:5
-T:35:70:75:5
-T:25:22:50:75  #2
-T:28:24:70:150
-T:30:25:60:75
-T:33:30:60:75
-T:35:32:70:75
-T:35:55:80:115
-T:39:38:80:125
-T:46:60:80:150
-T:9:9:50:40  #3
-T:25:20:50:50
-T:35:45:80:115
-T:40:80:80:225
-T:45:80:80:115
-T:45:45:80:100
-T:48:100:90:250
+T:9:9:30:4
+T:10:10:50:4
+T:13:12:50:4
+T:15:14:55:4
+T:17:12:55:4  #1
+T:18:18:50:4
+T:22:20:50:4
+T:24:20:55:4
+T:29:28:65:4
+T:34:28:65:4
+T:43:43:85:5
+T:40:40:85:5
+T:8:8:33:40  #2
+T:20:20:60:50
+T:25:21:65:70
+T:28:28:60:70
+T:35:32:70:100
+T:38:80:95:100
+T:46:55:80:100
+T:48:111:85:150
+T:10:10:66:40  #3
+T:35:45:80:125
+T:36:33:75:100
+T:42:40:80:75
+T:44:50:80:75
+T:47:80:85:100
+T:48:100:90:200
 T:50:100:80:250
 
 
@@ -1616,36 +1616,36 @@ T:50:80:85:250
 
 # Haja
 R:9:1
-T:2:2:30:4  #0
-T:4:4:35:4
+T:2:1:20:4  #0
+T:3:2:30:4
 T:5:5:35:4
 T:6:6:35:4
-T:8:8:35:4
-T:9:9:40:4
-T:14:14:40:3
-T:16:16:45:3
-T:18:18:45:4  #1
+T:10:10:30:4
+T:12:12:50:4
+T:14:14:50:4
+T:15:14:55:4
+T:17:12:55:4  #1
 T:20:20:50:4
-T:22:22:50:4
-T:24:24:50:4
-T:26:26:50:4
-T:28:28:50:4
-T:33:33:55:5
-T:40:70:75:5
-T:28:28:50:75  #2
-T:30:30:70:150
-T:34:34:60:75
-T:36:36:60:75
-T:38:38:70:75
-T:42:55:80:115
-T:45:45:80:125
-T:50:70:80:150
-T:10:10:50:40  #3
-T:28:28:50:50
-T:38:85:80:115
-T:45:90:80:225
-T:46:90:80:115
-T:48:50:80:100
+T:24:23:50:4
+T:26:25:55:4
+T:31:30:65:4
+T:35:28:65:4
+T:42:38:85:5
+T:45:45:80:5
+T:7:6:33:40  #2
+T:23:20:60:50
+T:26:22:65:70
+T:30:30:65:70
+T:37:37:65:100
+T:39:80:95:100
+T:45:55:70:100
+T:48:111:85:150
+T:10:10:66:40  #3
+T:36:45:80:125
+T:39:35:80:100
+T:42:40:80:75
+T:44:50:80:75
+T:48:80:85:100
 T:49:100:90:100
 T:50:100:80:250
 
@@ -1949,38 +1949,38 @@ N:10
 I:SORCERY:INT:0x05:0:1:430
 # Life
 R:0:1
-T:1:1:20:4  #0
-T:2:2:25:4
-T:3:3:25:4
-T:4:4:25:4
-T:5:5:25:4
-T:6:5:30:4
-T:9:9:30:3
-T:12:10:35:3
-T:14:12:35:4  #1
-T:15:14:40:4
+T:1:1:15:4  #0
+T:1:1:10:4
+T:1:2:20:4
+T:3:2:25:4
+T:4:4:30:2
+T:5:4:34:4
+T:7:6:30:2
+T:8:8:45:6
+T:10:8:45:4  #1
+T:11:11:45:10
+T:12:10:35:10
 T:15:15:40:4
-T:17:15:40:4
-T:19:17:40:4
-T:21:19:40:4
-T:25:25:45:5
-T:30:50:55:5
-T:20:20:40:75  #2
-T:24:24:60:150
-T:30:30:50:75
-T:31:30:50:75
-T:32:30:60:75
-T:33:40:60:115
-T:35:35:60:125
-T:40:70:70:150
-T:5:5:40:40  #3
-T:20:20:40:50
-T:30:50:60:115
-T:40:80:60:225
-T:42:75:60:115
-T:45:40:60:100
-T:47:90:70:250
-T:49:90:70:250
+T:17:16:40:7
+T:20:18:60:10
+T:28:30:65:15
+T:36:32:95:20
+T:4:4:23:40  #2
+T:13:12:35:50
+T:15:13:55:70
+T:17:14:55:70
+T:25:20:70:120
+T:28:65:80:100
+T:36:38:60:100
+T:38:90:75:250
+T:8:8:50:40  #3
+T:25:25:75:250
+T:27:24:60:100
+T:28:19:70:150
+T:34:30:80:150
+T:39:55:80:200
+T:42:85:85:200
+T:45:90:75:250
 
 # Sorcery
 R:1:1
@@ -2784,38 +2784,38 @@ T:49:80:85:250
 
 # Haja
 R:9:1
-T:1:1:30:4  #0
-T:3:2:35:4
-T:4:3:35:4
-T:5:5:35:4
-T:7:7:35:4
-T:9:8:40:4
-T:12:12:40:3
-T:15:14:45:3
-T:16:16:45:4  #1
-T:17:17:50:4
-T:18:18:50:4
-T:19:19:50:4
-T:20:20:50:4
-T:23:23:50:4
-T:30:30:55:5
-T:35:70:75:5
-T:26:30:50:75  #2
-T:28:25:70:150
-T:33:33:60:75
-T:35:35:60:75
-T:35:35:70:75
-T:35:55:80:115
-T:39:40:80:125
-T:46:70:80:150
-T:9:9:50:40  #3
-T:25:25:50:50
-T:35:55:80:115
-T:42:100:80:225
-T:45:90:80:115
-T:48:50:80:100
-T:49:100:80:250
-T:50:100:80:250
+T:1:1:20:4  #0
+T:1:1:15:4
+T:2:2:20:4
+T:4:3:25:1
+T:6:4:30:2
+T:7:5:34:4
+T:9:7:30:2
+T:10:10:45:6
+T:15:11:55:4  #1
+T:17:15:55:10
+T:18:16:60:10
+T:22:18:50:4
+T:26:24:50:7
+T:29:23:60:10
+T:34:32:85:15
+T:40:35:85:20
+T:6:5:33:40  #2
+T:18:14:50:50
+T:21:16:60:70
+T:25:20:65:70
+T:32:27:70:120
+T:34:75:95:100
+T:40:45:70:200
+T:44:100:90:250
+T:9:9:50:80  #3
+T:30:35:80:250
+T:32:32:75:100
+T:36:22:80:150
+T:40:40:80:150
+T:43:65:85:200
+T:46:90:85:200
+T:48:100:85:250
 
 ### Archer ###
 N:15
@@ -3239,22 +3239,22 @@ T:99:0:0:0
 
 # Haja
 R:9:1
-T:2:2:30:4  #0
-T:4:4:35:4
+T:2:1:20:4  #0
+T:3:3:30:4
 T:5:5:35:4
 T:7:8:35:4
-T:9:9:35:4
-T:11:10:40:4
-T:15:15:40:3
-T:18:18:45:3
-T:20:20:45:4  #1
-T:23:23:50:4
-T:26:25:50:4
-T:30:28:50:4
+T:13:12:40:4
+T:16:16:55:4
+T:19:16:50:4
+T:24:23:55:6
+T:26:20:60:4  #1
+T:30:30:55:4
 T:34:30:50:4
-T:38:32:50:4
-T:42:38:55:5
-T:45:80:75:5
+T:35:30:55:4
+T:37:37:70:4
+T:40:35:70:4
+T:45:55:85:5
+T:48:65:80:20
 T:99:0:0:0  #2
 T:99:0:0:0
 T:99:0:0:0
@@ -3466,7 +3466,39 @@ T:50:75:90:250
 R:8:0
 
 # Haja
-R:9:0
+R:9:1
+T:1:1:20:4  #0
+T:2:1:30:4
+T:3:3:35:4
+T:5:4:35:4
+T:9:9:30:4
+T:10:10:50:4
+T:13:12:50:4
+T:15:14:55:4
+T:17:12:55:4  #1
+T:18:18:50:4
+T:22:20:50:4
+T:24:20:55:4
+T:29:28:65:4
+T:34:28:65:4
+T:43:43:85:5
+T:40:40:85:5
+T:8:8:33:40  #2
+T:20:20:60:50
+T:25:21:65:70
+T:28:28:60:70
+T:35:32:70:100
+T:38:80:95:100
+T:46:55:80:100
+T:48:111:85:150
+T:10:10:66:40  #3
+T:35:45:80:125
+T:36:33:75:100
+T:42:40:80:75
+T:44:50:80:75
+T:47:80:85:100
+T:48:100:90:200
+T:50:100:80:250
 
 
 ### Blue Mage ###
index f3536f2..f920946 100644 (file)
@@ -18564,7 +18564,7 @@ I:100:25d10:35:50:10
 W:19:1:0:100:0:0
 B:HIT:HURT:3d10
 B:HIT:HURT:3d10
-F:COLD_BLOOD | EMPTY_MIND | AQUATIC |
+F:COLD_BLOOD | EMPTY_MIND | AQUATIC | NONLIVING
 F:IM_FIRE | IM_COLD | IM_POIS
 F:NO_CONF | NO_SLEEP | NO_FEAR
 D:$An ingenious gnomish invention -- a golem designed for underwater
index 0373394..438e49a 100644 (file)
@@ -2800,7 +2800,11 @@ msg_format("
                                                {
                                                        case RACE_YEEK:
                                                        case RACE_KLACKON:
-                                                       mult = 2;break;
+                                                               mult = 20;break;
+                                                       case RACE_HUMAN:
+                                                       case RACE_AMBERITE:
+                                                       case RACE_DUNADAN:
+                                                               mult = 25;break;
                                                        case RACE_HALF_ORC:
                                                        case RACE_HALF_TROLL:
                                                        case RACE_HALF_OGRE:
@@ -2814,9 +2818,9 @@ msg_format("
                                                        case RACE_VAMPIRE:
                                                        case RACE_SPECTRE:
                                                        case RACE_DEMON:
-                                                               mult = 3;break;
+                                                               mult = 30;break;
                                                        case RACE_DRACONIAN:
-                                                               mult = 5;break;
+                                                               mult = 50;break;
                                                        default:
                                                                mult = 1;break;
                                                }
@@ -2824,31 +2828,32 @@ msg_format("
                                        case MIMIC_DEMON:
                                        case MIMIC_DEMON_LORD:
                                        case MIMIC_VAMPIRE:
-                                               mult = 3;break;
+                                               mult = 30;break;
                                        default:
-                                               mult = 1;break;
+                                               mult = 10;break;
                                        }
 
-                                       if (p_ptr->align < 0 && mult < 2)
-                                               mult = 2;
-                                       if (!(p_ptr->resist_acid || p_ptr->oppose_acid) && (mult < 3))
-                                               mult = mult * 5 / 2;
-                                       if (!(p_ptr->resist_elec || p_ptr->oppose_elec) && (mult < 3))
-                                               mult = mult * 5 / 2;
-                                       if (!(p_ptr->resist_fire || p_ptr->oppose_fire) && (mult < 3))
-                                               mult = mult * 5 / 2;
-                                       if (!(p_ptr->resist_cold || p_ptr->oppose_cold) && (mult < 3))
-                                               mult = mult * 5 / 2;
-                                       if (!(p_ptr->resist_pois || p_ptr->oppose_pois) && (mult < 3))
-                                               mult = mult * 5 / 2;
+                                       if (p_ptr->align < 0 && mult < 20)
+                                               mult = 20;
+                                       if (!(p_ptr->resist_acid || p_ptr->oppose_acid) && (mult < 25))
+                                               mult = 25;
+                                       if (!(p_ptr->resist_elec || p_ptr->oppose_elec) && (mult < 25))
+                                               mult = 25;
+                                       if (!(p_ptr->resist_fire || p_ptr->oppose_fire) && (mult < 25))
+                                               mult = 25;
+                                       if (!(p_ptr->resist_cold || p_ptr->oppose_cold) && (mult < 25))
+                                               mult = 25;
+                                       if (!(p_ptr->resist_pois || p_ptr->oppose_pois) && (mult < 25))
+                                               mult = 25;
 
                                        if ((p_ptr->pclass != CLASS_SAMURAI) && (f1 & TR1_FORCE_WEAPON) && (p_ptr->csp > (p_ptr->msp / 30)))
                                        {
                                                p_ptr->csp -= (1+(p_ptr->msp / 30));
                                                p_ptr->redraw |= (PR_MANA);
-                                               mult = mult * 7 / 2;
+                                               mult = mult * 35;
                                        }
                                        k *= mult;
+                                       k /= 10;
                                }
 
                                k = critical_norm(o_ptr->weight, o_ptr->to_h, k, p_ptr->to_h[hand], mode);
index 36ed38c..deb3991 100644 (file)
@@ -3972,7 +3972,7 @@ take_hit(DAMAGE_USELIFE, 20 + randint1(30), "
 }
 
 
-static bool cast_haja_spell(int spell) /* nanka */
+static bool cast_haja_spell(int spell)
 {
        int     dir;
        int     beam;
@@ -4008,22 +4008,27 @@ static bool cast_haja_spell(int spell) /* nanka */
                (void)sleep_monsters_touch();
                break;
        case 6:
-               if (!get_aim_dir(&dir)) return FALSE;
-               fire_blast(GF_LITE, dir, 3+((plev-1)/5), 3, 10, 3);
+               teleport_player(plev*3);
                break;
        case 7:
-               teleport_player(plev*3);
+               if (!get_aim_dir(&dir)) return FALSE;
+               fire_blast(GF_LITE, dir, 3+((plev-1)/8), 3, 10, 3);
                break;
        case 8:
                (void)set_cut(0);
                (void)set_poisoned(0);
+               (void)set_stun(0);
                break;
-       case 9: /* Exorcism */
+       case 9:
+               if (!get_aim_dir(&dir)) return FALSE;
+               (void)fire_ball(GF_AWAY_EVIL, dir, MAX_SIGHT*5, 0);
+               break;
+       case 10: /* Exorcism */
                (void)dispel_undead(randint1(plev));
                (void)dispel_demons(randint1(plev));
                (void)turn_evil(plev);
                break;
-       case 10: /* Holy Orb */
+       case 11: /* Holy Orb */
                if (!get_aim_dir(&dir)) return FALSE;
 
                fire_ball(GF_HOLY_FIRE, dir,
@@ -4034,23 +4039,19 @@ static bool cast_haja_spell(int spell) /* nanka */
                          ((plev < 30) ? 2 : 3));
 
                break;
-       case 11: /* Sense Unseen */
+       case 12: /* Sense Unseen */
                (void)set_tim_invis(randint1(24) + 24, FALSE);
                break;
-       case 12: /* Protection from Evil */
+       case 13: /* Protection from Evil */
                (void)set_protevil(randint1(25) + 3 * p_ptr->lev, FALSE);
                break;
-       case 13: /* Dispel Undead + Demons */
-               (void)dispel_undead(randint1(plev * 3));
-               (void)dispel_demons(randint1(plev * 3));
-               break;
        case 14:
                if (!get_aim_dir(&dir)) return FALSE;
-               (void)fire_ball(GF_ELEC, dir, plev*2+99, plev/5);
+               (void)fire_bolt(GF_ELEC, dir, plev*5);
                break;
        case 15: /* Holy Word */
                (void)dispel_evil(randint1(plev * 6));
-               (void)hp_player(150);
+               (void)hp_player(100);
                (void)set_afraid(0);
                (void)set_poisoned(0);
                (void)set_stun(0);
@@ -4074,8 +4075,9 @@ static bool cast_haja_spell(int spell) /* nanka */
        case 18:
                set_tim_sh_holy(randint1(20)+20, FALSE);
                break;
-       case 19:
-               (void)set_fast(randint1(20 + plev) + plev, FALSE);
+       case 19: /* Dispel Undead + Demons */
+               (void)dispel_undead(randint1(plev * 4));
+               (void)dispel_demons(randint1(plev * 4));
                break;
        case 20: /* Dispel Evil */
                (void)dispel_evil(randint1(plev * 4));
@@ -4108,9 +4110,9 @@ msg_print("
 
                                else
 #ifdef JP
-msg_print("¡ÖÈܤ·¤­¼Ô¤è¡¢²æ¤ÏÆò¤Î²¼Ëͤˤ¢¤é¤º¡ª ¤ªÁ°¤Îº²¤òĺ¤¯¤¾¡ª¡×"); /* nanka */
+msg_print("¡Ö²æ¤ÏÆò¤Î²¼Ëͤˤ¢¤é¤º¡ª °­¹Ô¼Ô¤è¡¢²ù¤¤²þ¤á¤è¡ª¡×");
 #else
-                                       msg_print("'NON SERVIAM! Wretch! I shall feast on thy mortal soul!'");
+                                       msg_print("'NON SERVIAM! Wretch! I shall feast on thy mortal soul!'"); /* nanka */
 #endif
 
                        }
@@ -4146,14 +4148,59 @@ msg_print("
                destroy_area(py, px, 13+randint0(5), TRUE);
                break;
        case 28: /* Eye for an Eye */
-               set_tim_eyeeye(randint1(4)+4, FALSE);
+               set_tim_eyeeye(randint1(10)+10, FALSE);
                break;
        case 29:
-               if (!get_aim_dir(&dir)) return FALSE;
+               {
+                       int x, y, tx, ty;
+                       int dir, i;
+                       int b = 10 + randint1(10);
+                       if (!get_aim_dir(&dir)) return FALSE;
+                       tx = px;
+                       ty = py;
 
-               fire_ball(GF_DISINTEGRATE, dir, 100, 4);
-               fire_ball(GF_FORCE, dir, 150, 4);
-               fire_ball(GF_ELEC, dir, 200, 4);
+                       /* Hack -- Use an actual "target" */
+                       if ((dir == 5) && target_okay())
+                       {
+                               tx = target_col;
+                               ty = target_row;
+                       }
+                       else
+                       {
+                               while(1)
+                               {
+                                       tx += ddx[dir];
+                                       ty += ddy[dir];
+                                       if (!cave_floor_bold(ty,tx) || !player_has_los_bold(ty, tx) || cave[ty][tx].m_idx) break;
+                               }
+                       }
+
+                       for (i = 0; i < b; i++)
+                       {
+                               int count = 20, d = 0;
+
+                               while (count--)
+                               {
+                                       int dx, dy;
+
+                                       x = tx - 8 + randint0(17);
+                                       y = ty - 8 + randint0(17);
+
+                                       if (!in_bounds(y,x) || !in_disintegration_range(ty, tx, y, x)) continue;
+
+                                       dx = (tx > x) ? (tx - x) : (x - tx);
+                                       dy = (ty > y) ? (ty - y) : (y - ty);
+
+                                       /* Approximate distance */
+                                       d = (dy > dx) ? (dy + (dx >> 1)) : (dx + (dy >> 1));
+                                       if (d < 5) break;
+                               }
+
+                               if (count < 0) continue;
+
+                               project(0, 2, y, x, plev * 4, GF_DISINTEGRATE, PROJECT_JUMP | PROJECT_GRID | PROJECT_ITEM | PROJECT_KILL, -1);
+                       }
+               }
                break;
        case 30: /* Divine Intervention */
                project(0, 1, py, px, plev*11, GF_HOLY_FIRE, PROJECT_KILL, -1);
@@ -4163,7 +4210,7 @@ msg_print("
                confuse_monsters(plev * 4);
                turn_monsters(plev * 4);
                stasis_monsters(plev * 4);
-               (void)hp_player(150);
+               (void)hp_player(100);
                break;
        case 31:
        {
@@ -4187,6 +4234,7 @@ msg_print("
                (void)set_hero(randint1(25) + 25, FALSE);
                (void)set_blessed(randint1(25) + 25, FALSE);
                (void)set_fast(randint1(20 + plev) + plev, FALSE);
+               (void)set_protevil(randint1(25) + 25, FALSE);
                (void)set_afraid(0);
                break;
        }
index 06f5538..bd046b5 100644 (file)
@@ -2494,13 +2494,13 @@ msg_print("
        /* Timed sh_holy */
        if (p_ptr->tim_sh_holy)
        {
-               (void)set_tim_sh_holy(p_ptr->tim_sh_fire - 1, TRUE);
+               (void)set_tim_sh_holy(p_ptr->tim_sh_holy - 1, TRUE);
        }
 
        /* Timed eyeeye */
        if (p_ptr->tim_eyeeye)
        {
-               (void)set_tim_eyeeye(p_ptr->tim_sh_fire - 1, TRUE);
+               (void)set_tim_eyeeye(p_ptr->tim_eyeeye - 1, TRUE);
        }
 
        /* Timed resist-magic */
index 6744442..3b61bd4 100644 (file)
@@ -2282,7 +2282,7 @@ msg_print("
 /*
  * Set "p_ptr->tim_sh_holy", notice observable changes
  */
-bool set_tim_sh_holy(int v, bool do_dec) /* nanka */
+bool set_tim_sh_holy(int v, bool do_dec)
 {
        bool notice = FALSE;
 
@@ -2294,16 +2294,16 @@ bool set_tim_sh_holy(int v, bool do_dec) /* nanka */
        /* Open */
        if (v)
        {
-               if (p_ptr->tim_sh_fire && !do_dec)
+               if (p_ptr->tim_sh_holy && !do_dec)
                {
-                       if (p_ptr->tim_sh_fire > v) return FALSE;
+                       if (p_ptr->tim_sh_holy > v) return FALSE;
                }
-               else if (!p_ptr->tim_sh_fire)
+               else if (!p_ptr->tim_sh_holy)
                {
 #ifdef JP
-msg_print("ÂΤ¬±ê¤Î¥ª¡¼¥é¤Çʤ¤ï¤ì¤¿¡£");
+msg_print("ÂΤ¬À»¤Ê¤ë¥ª¡¼¥é¤Çʤ¤ï¤ì¤¿¡£");
 #else
-                       msg_print("You have enveloped by fiery aura!");
+                       msg_print("You have enveloped by holy aura!");
 #endif
 
                        notice = TRUE;
@@ -2313,12 +2313,12 @@ msg_print("
        /* Shut */
        else
        {
-               if (p_ptr->tim_sh_fire)
+               if (p_ptr->tim_sh_holy)
                {
 #ifdef JP
-msg_print("±ê¤Î¥ª¡¼¥é¤¬¾Ã¤¨¤¿¡£");
+msg_print("À»¤Ê¤ë¥ª¡¼¥é¤¬¾Ã¤¨¤¿¡£");
 #else
-                       msg_print("Fiery aura disappeared.");
+                       msg_print("Holy aura disappeared.");
 #endif
 
                        notice = TRUE;
@@ -2326,7 +2326,7 @@ msg_print("
        }
 
        /* Use the value */
-       p_ptr->tim_sh_fire = v;
+       p_ptr->tim_sh_holy = v;
 
        /* Redraw status bar */
        p_ptr->redraw |= (PR_STATUS);
@@ -2352,7 +2352,7 @@ msg_print("
 /*
  * Set "p_ptr->tim_eyeeye", notice observable changes
  */
-bool set_tim_eyeeye(int v, bool do_dec) /* nanka */
+bool set_tim_eyeeye(int v, bool do_dec)
 {
        bool notice = FALSE;
 
@@ -2364,16 +2364,16 @@ bool set_tim_eyeeye(int v, bool do_dec) /* nanka */
        /* Open */
        if (v)
        {
-               if (p_ptr->tim_sh_fire && !do_dec)
+               if (p_ptr->tim_eyeeye && !do_dec)
                {
-                       if (p_ptr->tim_sh_fire > v) return FALSE;
+                       if (p_ptr->tim_eyeeye > v) return FALSE;
                }
-               else if (!p_ptr->tim_sh_fire)
+               else if (!p_ptr->tim_eyeeye)
                {
 #ifdef JP
-msg_print("ÂΤ¬±ê¤Î¥ª¡¼¥é¤Çʤ¤ï¤ì¤¿¡£");
+msg_print("nanka¡£");
 #else
-                       msg_print("You have enveloped by fiery aura!");
+                       msg_print("nanka!");
 #endif
 
                        notice = TRUE;
@@ -2383,12 +2383,12 @@ msg_print("
        /* Shut */
        else
        {
-               if (p_ptr->tim_sh_fire)
+               if (p_ptr->tim_eyeeye)
                {
 #ifdef JP
-msg_print("±ê¤Î¥ª¡¼¥é¤¬¾Ã¤¨¤¿¡£");
+msg_print("nanka¡£");
 #else
-                       msg_print("Fiery aura disappeared.");
+                       msg_print("nanka.");
 #endif
 
                        notice = TRUE;
@@ -2396,7 +2396,7 @@ msg_print("
        }
 
        /* Use the value */
-       p_ptr->tim_sh_fire = v;
+       p_ptr->tim_eyeeye = v;
 
        /* Redraw status bar */
        p_ptr->redraw |= (PR_STATUS);
@@ -4967,7 +4967,7 @@ take_hit(DAMAGE_LOSELIFE, damroll(randint1(10), p_ptr->lev), "
  * the game when he dies, since the "You die." message is shown before
  * setting the player to "dead".
  */
-bool take_hit(int damage_type, int damage, cptr hit_from, int monspell)
+int take_hit(int damage_type, int damage, cptr hit_from, int monspell)
 {
        int old_chp = p_ptr->chp;
 
@@ -4977,7 +4977,7 @@ bool take_hit(int damage_type, int damage, cptr hit_from, int monspell)
        int warning = (p_ptr->mhp * hitpoint_warn / 10);
 
        /* Paranoia */
-       if (death) return FALSE;
+       if (death) return 0;
 
        if (p_ptr->sutemi) damage *= 2;
        if (p_ptr->special_defense & KATA_IAI) damage += (damage + 4) / 5;
@@ -5019,7 +5019,7 @@ bool take_hit(int damage_type, int damage, cptr hit_from, int monspell)
                        }
                        else
                        {
-                               return FALSE;
+                               return 0;
                        }
                }
  
@@ -5041,7 +5041,7 @@ bool take_hit(int damage_type, int damage, cptr hit_from, int monspell)
 #else
                                msg_print("The attack hits Shadow, you are unharmed!");
 #endif
-                               return FALSE;
+                               return 0;
                        }
                }
                    
@@ -5073,6 +5073,7 @@ bool take_hit(int damage_type, int damage, cptr hit_from, int monspell)
        p_ptr->chp -= damage;
        if(damage_type == DAMAGE_GENO && p_ptr->chp < 0)
        {
+               damage += p_ptr->chp;
                p_ptr->chp = 0;
        }
 
@@ -5285,7 +5286,7 @@ get_rnd_line("death_j.txt", 0, death_message);
                }
 
                /* Dead */
-               return TRUE;
+               return damage;
        }
 
        /* Hitpoint warning */
@@ -5336,7 +5337,7 @@ msg_print("*** 
                p_ptr->energy_need = 0;
                change_wild_mode();
        }
-       return TRUE;
+       return damage;
 }
 
 
index ffe3bfd..e0b96f6 100644 (file)
@@ -934,7 +934,7 @@ extern void remove_loc(void);
 
 /* spells1.c */
 extern bool in_disintegration_range(int y1, int x1, int y2, int x2);
-extern bool take_hit(int damage_type, int damage, cptr kb_str, int monspell);
+extern int take_hit(int damage_type, int damage, cptr kb_str, int monspell);
 extern u16b bolt_pict(int y, int x, int ny, int nx, int typ);
 extern sint project_path(u16b *gp, int range, int y1, int x1, int y2, int x2, int flg);
 extern int dist_to_line(int y, int x, int y1, int x1, int y2, int x2);
index 7404015..88469a0 100644 (file)
@@ -1533,6 +1533,8 @@ note(format("
                        rd_s16b(&p_ptr->tim_mimic);
                        rd_s16b(&p_ptr->tim_sh_fire);
                }
+               /* rd_s16b(&p_ptr->tim_sh_holy); nanka */
+               /* rd_s16b(&p_ptr->tim_eyeeye); nanka */
 
                /* by henkma */
                if ( z_older_than(11,0,3) ){
index e1562a6..c827865 100644 (file)
@@ -170,6 +170,7 @@ bool make_attack_normal(int m_idx)
         bool resist_drain = FALSE;
        bool do_silly_attack = (one_in_(2) && p_ptr->image);
        int syouryaku = 0;
+       int get_damage = 0;
 
        /* Not allowed to attack */
        if (r_ptr->flags1 & (RF1_NEVER_BLOW)) return (FALSE);
@@ -758,7 +759,7 @@ bool make_attack_normal(int m_idx)
                                                tmp_damage = MAX(damage, tmp_damage*2);
 
                                                /* Take damage */
-                                               take_hit(DAMAGE_ATTACK, tmp_damage, ddesc, -1);
+                                               get_damage += take_hit(DAMAGE_ATTACK, tmp_damage, ddesc, -1);
                                                break;
                                        }
                                }
@@ -771,7 +772,7 @@ bool make_attack_normal(int m_idx)
                                        damage -= (damage * ((ac < 150) ? ac : 150) / 250);
 
                                        /* Take damage */
-                                       take_hit(DAMAGE_ATTACK, damage, ddesc, -1);
+                                       get_damage += take_hit(DAMAGE_ATTACK, damage, ddesc, -1);
 
                                        break;
                                }
@@ -790,7 +791,7 @@ bool make_attack_normal(int m_idx)
                                        }
 
                                        /* Take some damage */
-                                       take_hit(DAMAGE_ATTACK, damage, ddesc, -1);
+                                       get_damage += take_hit(DAMAGE_ATTACK, damage, ddesc, -1);
 
                                        /* Learn about the player */
                                        update_smart_learn(m_idx, DRS_POIS);
@@ -810,7 +811,7 @@ bool make_attack_normal(int m_idx)
                                        }
 
                                        /* Take some damage */
-                                       take_hit(DAMAGE_ATTACK, damage, ddesc, -1);
+                                       get_damage += take_hit(DAMAGE_ATTACK, damage, ddesc, -1);
 
                                        /* Learn about the player */
                                        update_smart_learn(m_idx, DRS_DISEN);
@@ -821,7 +822,7 @@ bool make_attack_normal(int m_idx)
                                case RBE_UN_POWER:
                                {
                                        /* Take some damage */
-                                       take_hit(DAMAGE_ATTACK, damage, ddesc, -1);
+                                       get_damage += take_hit(DAMAGE_ATTACK, damage, ddesc, -1);
 
                                        if (death) break;
 
@@ -888,7 +889,7 @@ bool make_attack_normal(int m_idx)
                                case RBE_EAT_GOLD:
                                {
                                        /* Take some damage */
-                                       take_hit(DAMAGE_ATTACK, damage, ddesc, -1);
+                                       get_damage += take_hit(DAMAGE_ATTACK, damage, ddesc, -1);
 
                                        /* Confused monsters cannot steal successfully. -LM-*/
                                        if (m_ptr->confused) break;
@@ -972,7 +973,7 @@ bool make_attack_normal(int m_idx)
                                case RBE_EAT_ITEM:
                                {
                                        /* Take some damage */
-                                       take_hit(DAMAGE_ATTACK, damage, ddesc, -1);
+                                       get_damage += take_hit(DAMAGE_ATTACK, damage, ddesc, -1);
 
                                        /* Confused monsters cannot steal successfully. -LM-*/
                                        if (m_ptr->confused) break;
@@ -1097,7 +1098,7 @@ bool make_attack_normal(int m_idx)
                                case RBE_EAT_FOOD:
                                {
                                        /* Take some damage */
-                                       take_hit(DAMAGE_ATTACK, damage, ddesc, -1);
+                                       get_damage += take_hit(DAMAGE_ATTACK, damage, ddesc, -1);
 
                                        if (death) break;
 
@@ -1151,7 +1152,7 @@ bool make_attack_normal(int m_idx)
                                        o_ptr = &inventory[INVEN_LITE];
 
                                        /* Take some damage */
-                                       take_hit(DAMAGE_ATTACK, damage, ddesc, -1);
+                                       get_damage += take_hit(DAMAGE_ATTACK, damage, ddesc, -1);
 
                                        if (death) break;
 
@@ -1276,7 +1277,7 @@ bool make_attack_normal(int m_idx)
                                case RBE_BLIND:
                                {
                                        /* Take damage */
-                                       take_hit(DAMAGE_ATTACK, damage, ddesc, -1);
+                                       get_damage += take_hit(DAMAGE_ATTACK, damage, ddesc, -1);
 
                                        if (death) break;
 
@@ -1304,7 +1305,7 @@ bool make_attack_normal(int m_idx)
                                {
                                        if (explode) break;
                                        /* Take damage */
-                                       take_hit(DAMAGE_ATTACK, damage, ddesc, -1);
+                                       get_damage += take_hit(DAMAGE_ATTACK, damage, ddesc, -1);
 
                                        if (death) break;
 
@@ -1326,7 +1327,7 @@ bool make_attack_normal(int m_idx)
                                case RBE_TERRIFY:
                                {
                                        /* Take damage */
-                                       take_hit(DAMAGE_ATTACK, damage, ddesc, -1);
+                                       get_damage += take_hit(DAMAGE_ATTACK, damage, ddesc, -1);
 
                                        if (death) break;
 
@@ -1368,7 +1369,7 @@ bool make_attack_normal(int m_idx)
                                case RBE_PARALYZE:
                                {
                                        /* Take damage */
-                                       take_hit(DAMAGE_ATTACK, damage, ddesc, -1);
+                                       get_damage += take_hit(DAMAGE_ATTACK, damage, ddesc, -1);
 
                                        if (death) break;
 
@@ -1413,7 +1414,7 @@ bool make_attack_normal(int m_idx)
                                case RBE_LOSE_STR:
                                {
                                        /* Damage (physical) */
-                                       take_hit(DAMAGE_ATTACK, damage, ddesc, -1);
+                                       get_damage += take_hit(DAMAGE_ATTACK, damage, ddesc, -1);
 
                                        if (death) break;
 
@@ -1426,7 +1427,7 @@ bool make_attack_normal(int m_idx)
                                case RBE_LOSE_INT:
                                {
                                        /* Damage (physical) */
-                                       take_hit(DAMAGE_ATTACK, damage, ddesc, -1);
+                                       get_damage += take_hit(DAMAGE_ATTACK, damage, ddesc, -1);
 
                                        if (death) break;
 
@@ -1439,7 +1440,7 @@ bool make_attack_normal(int m_idx)
                                case RBE_LOSE_WIS:
                                {
                                        /* Damage (physical) */
-                                       take_hit(DAMAGE_ATTACK, damage, ddesc, -1);
+                                       get_damage += take_hit(DAMAGE_ATTACK, damage, ddesc, -1);
 
                                        if (death) break;
 
@@ -1452,7 +1453,7 @@ bool make_attack_normal(int m_idx)
                                case RBE_LOSE_DEX:
                                {
                                        /* Damage (physical) */
-                                       take_hit(DAMAGE_ATTACK, damage, ddesc, -1);
+                                       get_damage += take_hit(DAMAGE_ATTACK, damage, ddesc, -1);
 
                                        if (death) break;
 
@@ -1465,7 +1466,7 @@ bool make_attack_normal(int m_idx)
                                case RBE_LOSE_CON:
                                {
                                        /* Damage (physical) */
-                                       take_hit(DAMAGE_ATTACK, damage, ddesc, -1);
+                                       get_damage += take_hit(DAMAGE_ATTACK, damage, ddesc, -1);
 
                                        if (death) break;
 
@@ -1478,7 +1479,7 @@ bool make_attack_normal(int m_idx)
                                case RBE_LOSE_CHR:
                                {
                                        /* Damage (physical) */
-                                       take_hit(DAMAGE_ATTACK, damage, ddesc, -1);
+                                       get_damage += take_hit(DAMAGE_ATTACK, damage, ddesc, -1);
 
                                        if (death) break;
 
@@ -1491,7 +1492,7 @@ bool make_attack_normal(int m_idx)
                                case RBE_LOSE_ALL:
                                {
                                        /* Damage (physical) */
-                                       take_hit(DAMAGE_ATTACK, damage, ddesc, -1);
+                                       get_damage += take_hit(DAMAGE_ATTACK, damage, ddesc, -1);
 
                                        if (death) break;
 
@@ -1515,7 +1516,7 @@ bool make_attack_normal(int m_idx)
                                        damage -= (damage * ((ac < 150) ? ac : 150) / 250);
 
                                        /* Take damage */
-                                       take_hit(DAMAGE_ATTACK, damage, ddesc, -1);
+                                       get_damage += take_hit(DAMAGE_ATTACK, damage, ddesc, -1);
 
                                        /* Radius 8 earthquake centered at the monster */
                                        if (damage > 23 || explode)
@@ -1532,7 +1533,7 @@ bool make_attack_normal(int m_idx)
                                        obvious = TRUE;
 
                                        /* Take damage */
-                                       take_hit(DAMAGE_ATTACK, damage, ddesc, -1);
+                                       get_damage += take_hit(DAMAGE_ATTACK, damage, ddesc, -1);
 
                                        if (death) break;
 
@@ -1581,7 +1582,7 @@ bool make_attack_normal(int m_idx)
                                        obvious = TRUE;
 
                                        /* Take damage */
-                                       take_hit(DAMAGE_ATTACK, damage, ddesc, -1);
+                                       get_damage += take_hit(DAMAGE_ATTACK, damage, ddesc, -1);
 
                                        if (death) break;
 
@@ -1630,7 +1631,7 @@ bool make_attack_normal(int m_idx)
                                        obvious = TRUE;
 
                                        /* Take damage */
-                                       take_hit(DAMAGE_ATTACK, damage, ddesc, -1);
+                                       get_damage += take_hit(DAMAGE_ATTACK, damage, ddesc, -1);
 
                                        if (death) break;
 
@@ -1679,7 +1680,7 @@ bool make_attack_normal(int m_idx)
                                        obvious = TRUE;
 
                                        /* Take damage */
-                                       take_hit(DAMAGE_ATTACK, damage, ddesc, -1);
+                                       get_damage += take_hit(DAMAGE_ATTACK, damage, ddesc, -1);
 
                                        if (death) break;
 
@@ -1725,7 +1726,7 @@ bool make_attack_normal(int m_idx)
                                case RBE_DISEASE:
                                {
                                        /* Take some damage */
-                                       take_hit(DAMAGE_ATTACK, damage, ddesc, -1);
+                                       get_damage += take_hit(DAMAGE_ATTACK, damage, ddesc, -1);
 
                                        if (death) break;
 
@@ -1824,7 +1825,7 @@ bool make_attack_normal(int m_idx)
                                                        }
                                                }
                                        }
-                                       take_hit(DAMAGE_ATTACK, damage, ddesc, -1);
+                                       get_damage += take_hit(DAMAGE_ATTACK, damage, ddesc, -1);
 
                                        break;
                                }
@@ -1834,7 +1835,7 @@ bool make_attack_normal(int m_idx)
                                        obvious = TRUE;
 
                                        /* Take damage */
-                                       take_hit(DAMAGE_ATTACK, damage, ddesc, -1);
+                                       get_damage += take_hit(DAMAGE_ATTACK, damage, ddesc, -1);
 
                                        if (death) break;
 
@@ -2144,6 +2145,34 @@ msg_format("%s
                                        }
                                }
 
+                               if (p_ptr->tim_sh_holy && alive && !death)
+                               {
+                                       if (r_ptr->flags3 & RF3_EVIL)
+                                       {
+                                               int dam = damroll(2, 6);
+
+                                               /* Modify the damage */
+                                               dam = mon_damage_mod(m_ptr, dam, FALSE);
+
+#ifdef JP
+                                               msg_format("%^s¤ÏÀ»¤Ê¤ë¥ª¡¼¥é¤Ç½ý¤Ä¤¤¤¿¡ª", m_name);
+                                               if (mon_take_hit(m_idx, dam, &fear,
+                                                   "¤ÏÅݤ줿¡£"))
+#else
+                                               msg_format("%^s nanka!", m_name);
+
+                                               if (mon_take_hit(m_idx, dam, &fear,
+                                                   " nanka."))
+#endif
+
+                                               {
+                                                       blinked = FALSE;
+                                                       alive = FALSE;
+                                               }
+                                               if (m_ptr->ml)
+                                                       r_ptr->r_flags3 |= RF3_EVIL;
+                                       }
+                               }
 
                                if (p_ptr->tim_sh_touki && alive && !death)
                                {
@@ -2157,10 +2186,10 @@ msg_format("%s
                                        if (mon_take_hit(m_idx, dam, &fear,
                                            "¤ÏÅݤ줿¡£"))
 #else
-                                       msg_format("%^s is suddenly very hot!", m_name);
+                                       msg_format("%^s nanka", m_name);
 
                                        if (mon_take_hit(m_idx, dam, &fear,
-                                           " turns into a pile of ash."))
+                                           " nanka."))
 #endif
 
                                        {
@@ -2168,7 +2197,6 @@ msg_format("%s
                                                alive = FALSE;
                                        }
                                }
-                               touched = FALSE;
                        }
                }
 
@@ -2250,6 +2278,13 @@ msg_format("%^s
                }
        }
 
+       if (p_ptr->tim_eyeeye && get_damage > 0 && !death)
+       {
+               msg_format("¹¶·â¤¬%s¼«¿È¤ò½ý¤Ä¤±¤¿¡ª", m_name);
+               project(0, 0, m_ptr->fy, m_ptr->fx, get_damage, GF_MISSILE, PROJECT_KILL | PROJECT_NO_REF, -1);
+               set_tim_eyeeye(p_ptr->tim_eyeeye-5, TRUE);
+       }
+
 
        if ((p_ptr->counter || (p_ptr->special_defense & KATA_MUSOU)) && alive && !death && m_ptr->ml && (p_ptr->csp > 7))
        {
@@ -2267,7 +2302,7 @@ msg_format("%^s
        }
 
        /* Blink away */
-       if (blinked)
+       if (blinked && alive && !death)
        {
 #ifdef JP
                msg_print("Å¥ËÀ¤Ï¾Ð¤Ã¤Æƨ¤²¤¿¡ª");
@@ -2285,7 +2320,7 @@ msg_format("%^s
                r_ptr->r_deaths++;
        }
 
-       if (m_ptr->ml && fear)
+       if (m_ptr->ml && fear && alive && !death)
        {
                sound(SOUND_FLEE);
 #ifdef JP
index 44db544..ff87b92 100644 (file)
@@ -960,14 +960,15 @@ msg_print("Ũ
                        {
                                if (racial_aux(25, 0, A_INT, 10))
                                {
-                                       if (take_hit(DAMAGE_USELIFE, p_ptr->lev, 
+                                       int gain_sp;
+                                       if ((gain_sp = take_hit(DAMAGE_USELIFE, p_ptr->lev, 
 #ifdef JP
-"£È£Ð¤«¤é£Í£Ð¤Ø¤Î̵ËŤÊÊÑ´¹", -1))
+"£È£Ð¤«¤é£Í£Ð¤Ø¤Î̵ËŤÊÊÑ´¹", -1)))
 #else
-"thoughtless convertion from HP to SP", -1))
+"thoughtless convertion from HP to SP", -1)))
 #endif
                                        {
-                                               p_ptr->csp += p_ptr->lev / 5;
+                                               p_ptr->csp += gain_sp / 5;
                                                if (p_ptr->csp > p_ptr->msp)
                                                {
                                                        p_ptr->csp = p_ptr->msp;
index 01d2b2c..cdb5663 100644 (file)
@@ -1091,6 +1091,8 @@ static void wr_extra(void)
        wr_byte(p_ptr->mimic_form);
        wr_s16b(p_ptr->tim_mimic);
        wr_s16b(p_ptr->tim_sh_fire);
+       /*      wr_s16b(p_ptr->tim_sh_holy); nanka */
+       /*      wr_s16b(p_ptr->tim_eyeeye); nanka */
 
        /* by henkma */
        wr_s16b(p_ptr->tim_reflect);
index 849029b..447e737 100644 (file)
@@ -5718,6 +5718,10 @@ note = "
                                {
                                        do_fear = randint1(90)+10;
                                }
+                               else if (seen)
+                               {
+                                       r_ptr->r_flags3 |= (RF3_NO_FEAR);
+                               }
                        }
 
                        /* No "real" damage */
@@ -6065,7 +6069,7 @@ msg_format("%s%s", m_name, note);
 
 
                        /* Hack -- Pain message */
-                       else if (known)
+                       else if (known && (dam || !do_fear))
                        {
                                message_pain(c_ptr->m_idx, dam);
                        }
@@ -6323,6 +6327,8 @@ static bool project_p(int who, cptr who_name, int r, int y, int x, int dam, int
        /* Hack -- messages */
        cptr act = NULL;
 
+       int get_damage = 0;
+
 
        /* Player is not here */
        if ((x != px) || (y != py)) return (FALSE);
@@ -6469,7 +6475,7 @@ if (fuzzy) msg_print("
                                do_dec_stat(A_CON);
                        }
 
-                       take_hit(DAMAGE_ATTACK, dam, killer, monspell);
+                       get_damage = take_hit(DAMAGE_ATTACK, dam, killer, monspell);
 
                        if (!(double_resist || p_ptr->resist_pois))
                        {
@@ -6490,7 +6496,7 @@ if (fuzzy) msg_print("
 
                        if (p_ptr->resist_pois) dam = (2 * dam + 2) / 5;
                        if (double_resist) dam = (2 * dam + 2) / 5;
-                       take_hit(DAMAGE_ATTACK, dam, killer, monspell);
+                       get_damage = take_hit(DAMAGE_ATTACK, dam, killer, monspell);
                        if (!(double_resist || p_ptr->resist_pois))
                        {
                                set_poisoned(p_ptr->poisoned + randint0(dam) + 10);
@@ -6526,7 +6532,7 @@ if (fuzzy) msg_print("
                        if (fuzzy) msg_print("You are hit by something!");
 #endif
 
-                       take_hit(DAMAGE_ATTACK, dam, killer, monspell);
+                       get_damage = take_hit(DAMAGE_ATTACK, dam, killer, monspell);
                        break;
                }
 
@@ -6543,7 +6549,7 @@ if (fuzzy) msg_print("
                                dam /= 2;
                        else if (p_ptr->align < -10)
                                dam *= 2;
-                       take_hit(DAMAGE_ATTACK, dam, killer, monspell);
+                       get_damage = take_hit(DAMAGE_ATTACK, dam, killer, monspell);
                        break;
                }
 
@@ -6557,7 +6563,7 @@ if (fuzzy) msg_print("
 
                        if (p_ptr->align > 10)
                                dam *= 2;
-                       take_hit(DAMAGE_ATTACK, dam, killer, monspell);
+                       get_damage = take_hit(DAMAGE_ATTACK, dam, killer, monspell);
                        break;
                }
 
@@ -6579,7 +6585,7 @@ if (fuzzy) msg_print("
 #endif
                                break;
                        }
-                       take_hit(DAMAGE_ATTACK, dam, killer, monspell);
+                       get_damage = take_hit(DAMAGE_ATTACK, dam, killer, monspell);
                        break;
                }
 
@@ -6592,7 +6598,7 @@ if (fuzzy) msg_print("
                        if (fuzzy) msg_print("You are hit by something *HOT*!");
 #endif
 
-                       take_hit(DAMAGE_ATTACK, dam, killer, monspell);
+                       get_damage = take_hit(DAMAGE_ATTACK, dam, killer, monspell);
 
                        if (!p_ptr->resist_sound)
                        {
@@ -6672,7 +6678,7 @@ msg_print("
                        }
                        else
                        {
-                               take_hit(DAMAGE_ATTACK, dam, killer, monspell);
+                               get_damage = take_hit(DAMAGE_ATTACK, dam, killer, monspell);
                        }
 
                        break;
@@ -6701,7 +6707,7 @@ if (fuzzy) msg_print("
                                inven_damage(set_cold_destroy, 3);
                        }
 
-                       take_hit(DAMAGE_ATTACK, dam, killer, monspell);
+                       get_damage = take_hit(DAMAGE_ATTACK, dam, killer, monspell);
                        break;
                }
 
@@ -6776,7 +6782,7 @@ msg_print("
                                inven_damage(set_elec_destroy, 2);
                                inven_damage(set_fire_destroy, 2);
                        }
-                       take_hit(DAMAGE_ATTACK, dam, killer, monspell);
+                       get_damage = take_hit(DAMAGE_ATTACK, dam, killer, monspell);
                        break;
                }
 
@@ -6803,7 +6809,7 @@ if (fuzzy) msg_print("
                                inven_damage(set_cold_destroy, 2);
                        }
 
-                       take_hit(DAMAGE_ATTACK, dam, killer, monspell);
+                       get_damage = take_hit(DAMAGE_ATTACK, dam, killer, monspell);
                        break;
                }
 
@@ -6831,7 +6837,7 @@ if (fuzzy) msg_print("
                                inven_damage(set_cold_destroy, 2);
                        }
 
-                       take_hit(DAMAGE_ATTACK, dam, killer, monspell);
+                       get_damage = take_hit(DAMAGE_ATTACK, dam, killer, monspell);
                        break;
                }
 
@@ -6852,7 +6858,7 @@ if (fuzzy) msg_print("
                        {
                                (void)set_confused(p_ptr->confused + randint1(20) + 10);
                        }
-                       take_hit(DAMAGE_ATTACK, dam, killer, monspell);
+                       get_damage = take_hit(DAMAGE_ATTACK, dam, killer, monspell);
                        break;
                }
 
@@ -6873,7 +6879,7 @@ if (fuzzy) msg_print("
                        {
                                (void)apply_disenchant(0);
                        }
-                       take_hit(DAMAGE_ATTACK, dam, killer, monspell);
+                       get_damage = take_hit(DAMAGE_ATTACK, dam, killer, monspell);
                        break;
                }
 
@@ -6894,7 +6900,7 @@ if (fuzzy) msg_print("
                        {
                                apply_nexus(m_ptr);
                        }
-                       take_hit(DAMAGE_ATTACK, dam, killer, monspell);
+                       get_damage = take_hit(DAMAGE_ATTACK, dam, killer, monspell);
                        break;
                }
 
@@ -6911,7 +6917,7 @@ if (fuzzy) msg_print("
                        {
                                (void)set_stun(p_ptr->stun + randint1(20));
                        }
-                       take_hit(DAMAGE_ATTACK, dam, killer, monspell);
+                       get_damage = take_hit(DAMAGE_ATTACK, dam, killer, monspell);
                        break;
                }
 
@@ -6943,7 +6949,7 @@ if (fuzzy) msg_print("
                                inven_damage(set_cold_destroy, 3);
                        }
 
-                       take_hit(DAMAGE_ATTACK, dam, killer, monspell);
+                       get_damage = take_hit(DAMAGE_ATTACK, dam, killer, monspell);
                        break;
                }
 
@@ -6957,7 +6963,7 @@ if (fuzzy) msg_print("
 #endif
 
                        (void)set_slow(p_ptr->slow + randint0(4) + 4, FALSE);
-                       take_hit(DAMAGE_ATTACK, dam, killer, monspell);
+                       get_damage = take_hit(DAMAGE_ATTACK, dam, killer, monspell);
                        break;
                }
 
@@ -6993,7 +6999,7 @@ msg_print("
                                dam = dam * 4 / 3;
                        }
                        if (p_ptr->wraith_form) dam *= 2;
-                       take_hit(DAMAGE_ATTACK, dam, killer, monspell);
+                       get_damage = take_hit(DAMAGE_ATTACK, dam, killer, monspell);
 
                        if (p_ptr->wraith_form)
                        {
@@ -7037,7 +7043,7 @@ if (fuzzy) msg_print("
                        {
                                (void)set_blind(p_ptr->blind + randint1(5) + 2);
                        }
-                       take_hit(DAMAGE_ATTACK, dam, killer, monspell);
+                       get_damage = take_hit(DAMAGE_ATTACK, dam, killer, monspell);
                        break;
                }
 
@@ -7133,7 +7139,7 @@ msg_print("
                                }
                        }
 
-                       take_hit(DAMAGE_ATTACK, dam, killer, monspell);
+                       get_damage = take_hit(DAMAGE_ATTACK, dam, killer, monspell);
                        break;
                }
 
@@ -7166,7 +7172,7 @@ msg_print("
                                inven_damage(set_cold_destroy, 2);
                        }
 
-                       take_hit(DAMAGE_ATTACK, dam, killer, monspell);
+                       get_damage = take_hit(DAMAGE_ATTACK, dam, killer, monspell);
                        break;
                }
 
@@ -7179,7 +7185,7 @@ if (fuzzy) msg_print("
                        if (fuzzy) msg_print("You are hit by pure energy!");
 #endif
 
-                       take_hit(DAMAGE_ATTACK, dam, killer, monspell);
+                       get_damage = take_hit(DAMAGE_ATTACK, dam, killer, monspell);
                        break;
                }
 
@@ -7266,7 +7272,7 @@ if (fuzzy) msg_print("
                        if (fuzzy) msg_print("You are hit by an aura of magic!");
 #endif
 
-                       take_hit(DAMAGE_ATTACK, dam, killer, monspell);
+                       get_damage = take_hit(DAMAGE_ATTACK, dam, killer, monspell);
                        break;
                }
 
@@ -7279,7 +7285,7 @@ if (fuzzy) msg_print("
                        if (fuzzy) msg_print("You are hit by an energy!");
 #endif
 
-                       take_hit(DAMAGE_FORCE, dam, killer, monspell);
+                       get_damage = take_hit(DAMAGE_FORCE, dam, killer, monspell);
                        break;
                }
 
@@ -7292,7 +7298,7 @@ if (fuzzy) msg_print("
                        if (fuzzy) msg_print("Something falls from the sky on you!");
 #endif
 
-                       take_hit(DAMAGE_ATTACK, dam, killer, monspell);
+                       get_damage = take_hit(DAMAGE_ATTACK, dam, killer, monspell);
                        if (!p_ptr->resist_shard || one_in_(13))
                        {
                                if (!p_ptr->immune_fire) inven_damage(set_fire_destroy, 2);
@@ -7342,7 +7348,7 @@ if (fuzzy) msg_print("
                        if (p_ptr->mimic_form)
                        {
                                if (!(mimic_info[p_ptr->mimic_form].MIMIC_FLAGS & MIMIC_IS_NONLIVING))
-                                       take_hit(DAMAGE_ATTACK, dam, killer, monspell);
+                                       get_damage = take_hit(DAMAGE_ATTACK, dam, killer, monspell);
                        }
                        else
                        {
@@ -7363,7 +7369,7 @@ if (fuzzy) msg_print("
                                /* Hurt a lot */
                                default:
                                {
-                                       take_hit(DAMAGE_ATTACK, dam, killer, monspell);
+                                       get_damage = take_hit(DAMAGE_ATTACK, dam, killer, monspell);
                                        break;
                                }
                        }
@@ -7383,6 +7389,13 @@ if (fuzzy) msg_print("
                }
        }
 
+       if (p_ptr->tim_eyeeye && get_damage > 0 && !death)
+       {
+               msg_format("¹¶·â¤¬%s¼«¿È¤ò½ý¤Ä¤±¤¿¡ª", who_name);
+               project(0, 0, m_ptr->fy, m_ptr->fx, get_damage, GF_MISSILE, PROJECT_KILL | PROJECT_NO_REF, -1);
+               set_tim_eyeeye(p_ptr->tim_eyeeye-5, TRUE);
+       }
+
        if (p_ptr->riding && dam > 0)
        {
                rakubadam_p = (dam > 200) ? 200 : dam;
index 1a61e74..7f6c2c3 100644 (file)
@@ -841,7 +841,7 @@ info[i++] = "
 #endif
                        break;
                case CLASS_NINJA:
-                       if (plev > 7)
+                       if (plev > 19)
                        {
 #ifdef JP
 info[i++] = "¤¢¤Ê¤¿¤ÏÁÇÁ᤯°ÜÆ°¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£";
@@ -2197,6 +2197,24 @@ info[i++] = "
 #endif
 
        }
+       if (p_ptr->tim_sh_holy)
+       {
+#ifdef JP
+info[i++] = "¤¢¤Ê¤¿¤ÏÀ»¤Ê¤ë¥ª¡¼¥é¤ËÊñ¤Þ¤ì¤Æ¤¤¤ë¡£";
+#else
+               info[i++] = "You are surrounded with a holy aura.";
+#endif
+
+       }
+       if (p_ptr->tim_sh_touki)
+       {
+#ifdef JP
+info[i++] = "¤¢¤Ê¤¿¤ÏÆ®µ¤¤Î¥ª¡¼¥é¤ËÊñ¤Þ¤ì¤Æ¤¤¤ë¡£";
+#else
+               info[i++] = "You are surrounded with a energy aura.";
+#endif
+
+       }
        if (p_ptr->anti_magic)
        {
 #ifdef JP
index 0a5aad4..1085c27 100644 (file)
@@ -4265,7 +4265,7 @@ static void spell_info(char *p, int spell, int realm)
 #ifdef JP
                case 28: sprintf(p, " %s³Æ%d", s_dam, plev * 2); break;
 #else
-               case 28: sprintf(p, " dam %d each", plev * 2); break;
+               case 28: sprintf(p, " %s%d each", s_dam, plev * 2); break;
 #endif
                }
                break;
@@ -4344,35 +4344,41 @@ static void spell_info(char *p, int spell, int realm)
                }
                break;
                
-       case 9: /* Haja *//* nanka */
+       case 9: /* Haja */
                switch (spell)
                {
-               case  1: sprintf(p, " %s2d10", s_heal); break;
-               case  2: sprintf(p, " %s12+d12", s_dur); break;
-               case  4: sprintf(p, " %s%d", s_dam, 10 + (plev / 2)); break;
-               case  6: sprintf(p, " %s4d10", s_heal); break;
-               case 10: sprintf(p, " %s8d10", s_heal); break;
-               case 11: sprintf(p, " %s24+d24", s_dur); break;
-               case 12: sprintf(p, " %s3d6+%d", s_dam, orb); break;
+               case  0: sprintf(p, " %s%dd4", s_dam, 3 + ((plev - 1) / 5)); break;
+               case  6: sprintf(p, " %s%d", s_range, plev*3); break;
+#ifdef JP
+               case  7: sprintf(p, " %s³Æ%dd3", s_dam, 3+((plev-1)/8)); break;
+#else
+               case  7: sprintf(p, " %s%dd3 each", s_dam, 3+((plev-1)/8)); break;
+#endif
+               case 10: sprintf(p, " %sd%d", s_dam, plev); break;
+               case 11: sprintf(p, " %s3d6+%d", s_dam, orb); break;
+               case 12: sprintf(p, " %s24+d24", s_dur); break;
                case 13: sprintf(p, " %sd25+%d", s_dur, 3 * plev); break;
-               case 14: sprintf(p, " %s300", s_heal); break;
-               case 16: sprintf(p, " %sd%d", s_dam, plev); break;
-               case 18: sprintf(p, " %sd%d", s_dam, 3 * plev); break;
+               case 14: sprintf(p, " %s%d", s_dam, plev*5); break;
+#ifdef JP
+               case 15: sprintf(p, " Â»:d%d/²ó:100", 6 * plev); break;
+#else
+               case 15: sprintf(p, " d %d/h 100", 6 * plev); break;
+#endif
+               case 18: sprintf(p, " %s18+d18", s_dur); break;
+               case 19: sprintf(p, " %sd%d", s_dam, 4 * plev); break;
                case 20: sprintf(p, " %sd%d", s_dam, 4 * plev); break;
+               case 22: sprintf(p, " %s%d", s_dam, 2 * plev+100); break;
+               case 28: sprintf(p, " %s10+d10", s_dur); break;
 #ifdef JP
-               case 22: sprintf(p, " Â»:d%d/²ó:1000", 4 * plev); break;
+               case 29: sprintf(p, " %s³Æ%d", s_dam, plev*4); break;
 #else
-               case 22: sprintf(p, " d %d/h 1000", 4 * plev); break;
+               case 29: sprintf(p, " %s%d each", s_dam, plev*4); break;
 #endif
-               case 24: sprintf(p, " %s25+d25", s_dur); break;
-               case 25: sprintf(p, " %s48+d48", s_dur); break;
-               case 28: sprintf(p, " %s2000", s_heal); break;
 #ifdef JP
-               case 30: sprintf(p, " ²ó300/»%d+250", plev * 4); break;
+               case 30: sprintf(p, " ²ó100/»%d+250", plev * 4); break;
 #else
-               case 30: sprintf(p, " h300/d%d+250", plev * 4); break;
+               case 30: sprintf(p, " h100/d%d+250", plev * 4); break;
 #endif
-               case 31: sprintf(p, " %s%d+d%d", s_dur,(plev/2), (plev/2)); break;
                }
                break;
 
index aa1ca07..8389888 100644 (file)
@@ -4010,7 +4010,7 @@ s32b realm_choices1[] =
        (CH_NONE),                              /* Red Mage */
        (CH_HISSATSU),                          /* Samurai */
        (CH_LIFE | CH_NATURE | CH_DEATH |
-        CH_ENCHANT),                           /* ForceTrainer */
+        CH_ENCHANT | CH_HAJA),                 /* ForceTrainer */
        (CH_NONE),                              /* Blue Mage */
        (CH_NONE),                              /* Kihei */
        (CH_NONE),                              /* Berserker */
@@ -4511,33 +4511,33 @@ cptr spell_names[VALID_REALM][32] =
 "¶²Éݽüµî",
 "¥â¥ó¥¹¥¿¡¼¶²¹²",
 "À»°è",
-"¥¹¥¿¡¼¥À¥¹¥È",
 "Æþ¸ý",
+"¥¹¥¿¡¼¥À¥¹¥È",
 
-"½ý¤ÈÆǼ£ÎÅ",
+"¿ÈÂξô²½",
+"¼Ù°­Èô¤Ð¤·",
 "°­Ëâʧ¤¤",
 "À»¤Ê¤ë¸÷µå",
 "Æ©ÌÀ»ëǧ",
 "Âмٰ­·ë³¦",
-"¥¢¥ó¥Ç¥Ã¥É&°­ËâÂ໶",
-"ŷȳ",
+"ºÛ¤­¤ÎÍë",
 "À»¤Ê¤ë¸æ¸ÀÍÕ",
 
                /* Rare nanka Spellbooks */
 "³«¤«¤ì¤¿Æ»",
 "²ò¼ö",
 "À»¤Ê¤ë¥ª¡¼¥é",
-"¥¹¥Ô¡¼¥É",
+"¥¢¥ó¥Ç¥Ã¥É&°­ËâÂ໶",
 "¼Ù°­Â໶",
 "À»¤Ê¤ë¿Ï",
 "¥¹¥¿¡¼¥Ð¡¼¥¹¥È",
 "Å·»È¾¤´­",
 
 "»Îµ¤¹âÍÈ",
-"*²ò¼ö*",
+"¼ö¤¤Â໶",
 "¼Ù°­ÄÉÊü",
+"¥Ï¥ë¥Þ¥²¥É¥ó",
 "ÌܤˤÏÌܤò",
-"*Ç˲õ*",
 "¿À¤ÎÅܤê",
 "¿À°Ò",
 "À»Àï",