extern bool polymorph_monster(POSITION y, POSITION x);
extern bool dimension_door(void);
extern bool mirror_tunnel(void);
-extern bool summon_kin_player(DEPTH level, POSITION y, POSITION x, BIT_FLAGS mode);
extern void massacre(void);
extern bool eat_lock(void);
extern bool shock_power(void);
\r
return TRUE;\r
}\r
+\r
+/*!\r
+ * @brief 同族召喚(援軍)処理\r
+ * @param level 召喚基準レベル\r
+ * @param y 召喚先Y座標\r
+ * @param x 召喚先X座標\r
+ * @param mode 召喚オプション\r
+ * @return ターンを消費した場合TRUEを返す\r
+ */\r
+bool summon_kin_player(DEPTH level, POSITION y, POSITION x, BIT_FLAGS mode)\r
+{\r
+ bool pet = (bool)(mode & PM_FORCE_PET);\r
+ if (!pet) mode |= PM_NO_PET;\r
+\r
+ switch (p_ptr->mimic_form)\r
+ {\r
+ case MIMIC_NONE:\r
+ switch (p_ptr->prace)\r
+ {\r
+ case RACE_HUMAN:\r
+ case RACE_AMBERITE:\r
+ case RACE_BARBARIAN:\r
+ case RACE_BEASTMAN:\r
+ case RACE_DUNADAN:\r
+ summon_kin_type = 'p';\r
+ break;\r
+ case RACE_HALF_ELF:\r
+ case RACE_ELF:\r
+ case RACE_HOBBIT:\r
+ case RACE_GNOME:\r
+ case RACE_DWARF:\r
+ case RACE_HIGH_ELF:\r
+ case RACE_NIBELUNG:\r
+ case RACE_DARK_ELF:\r
+ case RACE_MIND_FLAYER:\r
+ case RACE_KUTAR:\r
+ case RACE_S_FAIRY:\r
+ summon_kin_type = 'h';\r
+ break;\r
+ case RACE_HALF_ORC:\r
+ summon_kin_type = 'o';\r
+ break;\r
+ case RACE_HALF_TROLL:\r
+ summon_kin_type = 'T';\r
+ break;\r
+ case RACE_HALF_OGRE:\r
+ summon_kin_type = 'O';\r
+ break;\r
+ case RACE_HALF_GIANT:\r
+ case RACE_HALF_TITAN:\r
+ case RACE_CYCLOPS:\r
+ summon_kin_type = 'P';\r
+ break;\r
+ case RACE_YEEK:\r
+ summon_kin_type = 'y';\r
+ break;\r
+ case RACE_KLACKON:\r
+ summon_kin_type = 'K';\r
+ break;\r
+ case RACE_KOBOLD:\r
+ summon_kin_type = 'k';\r
+ break;\r
+ case RACE_IMP:\r
+ if (one_in_(13)) summon_kin_type = 'U';\r
+ else summon_kin_type = 'u';\r
+ break;\r
+ case RACE_DRACONIAN:\r
+ summon_kin_type = 'd';\r
+ break;\r
+ case RACE_GOLEM:\r
+ case RACE_ANDROID:\r
+ summon_kin_type = 'g';\r
+ break;\r
+ case RACE_SKELETON:\r
+ if (one_in_(13)) summon_kin_type = 'L';\r
+ else summon_kin_type = 's';\r
+ break;\r
+ case RACE_ZOMBIE:\r
+ summon_kin_type = 'z';\r
+ break;\r
+ case RACE_VAMPIRE:\r
+ summon_kin_type = 'V';\r
+ break;\r
+ case RACE_SPECTRE:\r
+ summon_kin_type = 'G';\r
+ break;\r
+ case RACE_SPRITE:\r
+ summon_kin_type = 'I';\r
+ break;\r
+ case RACE_ENT:\r
+ summon_kin_type = '#';\r
+ break;\r
+ case RACE_ANGEL:\r
+ summon_kin_type = 'A';\r
+ break;\r
+ case RACE_DEMON:\r
+ summon_kin_type = 'U';\r
+ break;\r
+ default:\r
+ summon_kin_type = 'p';\r
+ break;\r
+ }\r
+ break;\r
+ case MIMIC_DEMON:\r
+ if (one_in_(13)) summon_kin_type = 'U';\r
+ else summon_kin_type = 'u';\r
+ break;\r
+ case MIMIC_DEMON_LORD:\r
+ summon_kin_type = 'U';\r
+ break;\r
+ case MIMIC_VAMPIRE:\r
+ summon_kin_type = 'V';\r
+ break;\r
+ }\r
+ return summon_specific((pet ? -1 : 0), y, x, level, SUMMON_KIN, mode);\r
+}\r
return TRUE;
}
-/*!
- * @brief 同族召喚(援軍)処理
- * @param level 召喚基準レベル
- * @param y 召喚先Y座標
- * @param x 召喚先X座標
- * @param mode 召喚オプション
- * @return ターンを消費した場合TRUEを返す
- */
-bool summon_kin_player(DEPTH level, POSITION y, POSITION x, BIT_FLAGS mode)
-{
- bool pet = (bool)(mode & PM_FORCE_PET);
- if (!pet) mode |= PM_NO_PET;
-
- switch (p_ptr->mimic_form)
- {
- case MIMIC_NONE:
- switch (p_ptr->prace)
- {
- case RACE_HUMAN:
- case RACE_AMBERITE:
- case RACE_BARBARIAN:
- case RACE_BEASTMAN:
- case RACE_DUNADAN:
- summon_kin_type = 'p';
- break;
- case RACE_HALF_ELF:
- case RACE_ELF:
- case RACE_HOBBIT:
- case RACE_GNOME:
- case RACE_DWARF:
- case RACE_HIGH_ELF:
- case RACE_NIBELUNG:
- case RACE_DARK_ELF:
- case RACE_MIND_FLAYER:
- case RACE_KUTAR:
- case RACE_S_FAIRY:
- summon_kin_type = 'h';
- break;
- case RACE_HALF_ORC:
- summon_kin_type = 'o';
- break;
- case RACE_HALF_TROLL:
- summon_kin_type = 'T';
- break;
- case RACE_HALF_OGRE:
- summon_kin_type = 'O';
- break;
- case RACE_HALF_GIANT:
- case RACE_HALF_TITAN:
- case RACE_CYCLOPS:
- summon_kin_type = 'P';
- break;
- case RACE_YEEK:
- summon_kin_type = 'y';
- break;
- case RACE_KLACKON:
- summon_kin_type = 'K';
- break;
- case RACE_KOBOLD:
- summon_kin_type = 'k';
- break;
- case RACE_IMP:
- if (one_in_(13)) summon_kin_type = 'U';
- else summon_kin_type = 'u';
- break;
- case RACE_DRACONIAN:
- summon_kin_type = 'd';
- break;
- case RACE_GOLEM:
- case RACE_ANDROID:
- summon_kin_type = 'g';
- break;
- case RACE_SKELETON:
- if (one_in_(13)) summon_kin_type = 'L';
- else summon_kin_type = 's';
- break;
- case RACE_ZOMBIE:
- summon_kin_type = 'z';
- break;
- case RACE_VAMPIRE:
- summon_kin_type = 'V';
- break;
- case RACE_SPECTRE:
- summon_kin_type = 'G';
- break;
- case RACE_SPRITE:
- summon_kin_type = 'I';
- break;
- case RACE_ENT:
- summon_kin_type = '#';
- break;
- case RACE_ANGEL:
- summon_kin_type = 'A';
- break;
- case RACE_DEMON:
- summon_kin_type = 'U';
- break;
- default:
- summon_kin_type = 'p';
- break;
- }
- break;
- case MIMIC_DEMON:
- if (one_in_(13)) summon_kin_type = 'U';
- else summon_kin_type = 'u';
- break;
- case MIMIC_DEMON_LORD:
- summon_kin_type = 'U';
- break;
- case MIMIC_VAMPIRE:
- summon_kin_type = 'V';
- break;
- }
- return summon_specific((pet ? -1 : 0), y, x, level, SUMMON_KIN, mode);
-}
/*!
* @brief 皆殺し(全方向攻撃)処理