#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;
}
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;
{
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;
/* 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;
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;
}
-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:
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);
}