OSDN Git Service

ヌヒシル、ャ、タ、、、ソ、、、ヌ、ュ、ソ。」
[hengband/hengband.git] / src / spells3.c
index 96497ad..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;
 
@@ -5505,7 +5511,6 @@ bool polymorph_monster(int y, int x)
 {
        cave_type *c_ptr = &cave[y][x];
        monster_type *m_ptr = &m_list[c_ptr->m_idx];
-       bool friendly, pet;
        bool polymorphed = FALSE;
        int new_r_idx;
        int old_r_idx = m_ptr->r_idx;
@@ -5520,21 +5525,24 @@ bool polymorph_monster(int y, int x)
        /* Memorize the monster before polymorphing */
        back_m = *m_ptr;
 
-       /* Get the monsters attitude */
-       friendly = is_friendly(m_ptr);
-       pet = is_pet(m_ptr);
-
        /* Pick a "new" monster race */
        new_r_idx = poly_r_idx(old_r_idx);
 
        /* Handle polymorph */
        if (new_r_idx != old_r_idx)
        {
+               u32b mode = 0L;
+
+               /* Get the monsters attitude */
+               if (is_friendly(m_ptr)) mode |= PM_FORCE_FRIENDLY;
+               if (is_pet(m_ptr)) mode |= PM_FORCE_PET;
+               if (m_ptr->mflag2 & MFLAG_NOPET) mode |= PM_NO_PET;
+
                /* "Kill" the "old" monster */
                delete_monster_idx(c_ptr->m_idx);
 
                /* Create a new monster (no groups) */
-               if (place_monster_aux(0, y, x, new_r_idx, FALSE, FALSE, friendly, pet, FALSE, (bool)(m_ptr->mflag2 & MFLAG_NOPET)))
+               if (place_monster_aux(0, y, x, new_r_idx, mode))
                {
                        /* Success */
                        polymorphed = TRUE;
@@ -5544,7 +5552,7 @@ bool polymorph_monster(int y, int x)
                        monster_terrain_sensitive = FALSE;
 
                        /* Placing the new monster failed */
-                       place_monster_aux(0, y, x, old_r_idx, FALSE, FALSE, friendly, pet, TRUE, (bool)(m_ptr->mflag2 & MFLAG_NOPET));
+                       place_monster_aux(0, y, x, old_r_idx, (mode | PM_NO_KAGE));
                        m_list[hack_m_idx_ii] = back_m;
 
                        monster_terrain_sensitive = TRUE;
@@ -5923,8 +5931,12 @@ msg_format("
 }
 
 
-bool summon_kin_player(bool pet, int level, int y, int x, bool group)
+//bool summon_kin_player(bool pet, int level, int y, int x, bool group)
+bool summon_kin_player(int level, int y, int x, u32b mode)
 {
+       bool pet = (bool)(mode & PM_FORCE_PET);
+       if (!pet) mode |= PM_NO_PET;
+
        switch (p_ptr->mimic_form)
        {
        case MIMIC_NONE:
@@ -6025,5 +6037,5 @@ bool summon_kin_player(bool pet, int level, int y, int x, bool group)
                summon_kin_type = 'V';
                break;
        }       
-       return summon_specific((pet ? -1 : 0), y, x, level, SUMMON_KIN, group, FALSE, pet, FALSE, (bool)(!pet));
+       return summon_specific((pet ? -1 : 0), y, x, level, SUMMON_KIN, mode);
 }