*/
#include "angband.h"
+#include "spells-summon.h"
static int damage;
*/
static void mane_info(char *p, int power, HIT_POINT dam)
{
- int plev = p_ptr->lev;
-#ifdef JP
- cptr s_dam = "損傷:";
- cptr s_dur = "期間:";
- cptr s_range = "範囲:";
- cptr s_heal = "回復:";
-#else
- cptr s_dam = "dam ";
- cptr s_dur = "dur ";
- cptr s_range = "range ";
- cptr s_heal = "heal ";
-#endif
+ PLAYER_LEVEL plev = p_ptr->lev;
+ concptr s_dam = _("損傷:", "dam ");
+ concptr s_dur = _("期間:", "dur ");
+ concptr s_range = _("範囲:", "range ");
+ concptr s_heal = _("回復:", "heal ");
strcpy(p, "");
{
int i = 0;
int num = 0;
- int y = 1;
- int x = 18;
+ TERM_LEN y = 1;
+ TERM_LEN x = 18;
int minfail = 0;
- int plev = p_ptr->lev;
+ PLAYER_LEVEL plev = p_ptr->lev;
int chance = 0;
int ask;
char choice;
char out_val[160];
char comment[80];
- cptr p = _("能力", "power");
+ concptr p = _("能力", "power");
monster_power spell;
bool flag, redraw;
/* Show list */
redraw = TRUE;
-
- /* Save the screen */
screen_save();
/* Display a list of spells */
{
/* Hide list */
redraw = FALSE;
-
- /* Restore the screen */
screen_load();
}
/* Stop the loop */
flag = TRUE;
}
-
- /* Restore the screen */
if (redraw) screen_load();
- /* Show choices */
p_ptr->window |= (PW_SPELL);
-
- /* Window stuff */
- window_stuff();
+ handle_stuff();
/* Abort if needed */
if (!flag) return (FALSE);
case MS_BR_NEXUS:
if (!get_aim_dir(&dir)) return FALSE;
else msg_print(_("因果混乱のブレスを吐いた。", "You breathe nexus."));
-
- fire_breath(GF_NEXUS, dir, damage, (plev > 35 ? 3 : 2));
+ fire_breath(GF_NEXUS, dir, damage, (plev > 35 ? 3 : 2));
break;
+
case MS_BR_TIME:
if (!get_aim_dir(&dir)) return FALSE;
else msg_print(_("時間逆転のブレスを吐いた。", "You breathe time."));
-
fire_breath(GF_TIME, dir, damage, (plev > 35 ? 3 : 2));
break;
+
case MS_BR_INERTIA:
if (!get_aim_dir(&dir)) return FALSE;
else msg_print(_("遅鈍のブレスを吐いた。", "You breathe inertia."));
-
- fire_breath(GF_INERTIAL, dir, damage, (plev > 35 ? 3 : 2));
+ fire_breath(GF_INERTIAL, dir, damage, (plev > 35 ? 3 : 2));
break;
+
case MS_BR_GRAVITY:
if (!get_aim_dir(&dir)) return FALSE;
- else msg_print(_("重力のブレスを吐いた。", "You breathe gravity."));
-
+ else msg_print(_("重力のブレスを吐いた。", "You breathe gravity."));
fire_breath(GF_GRAVITY, dir, damage, (plev > 35 ? 3 : 2));
break;
+
case MS_BR_SHARDS:
if (!get_aim_dir(&dir)) return FALSE;
else msg_print(_("破片のブレスを吐いた。", "You breathe shards."));
-
fire_breath(GF_SHARDS, dir, damage, (plev > 35 ? 3 : 2));
break;
+
case MS_BR_PLASMA:
if (!get_aim_dir(&dir)) return FALSE;
else msg_print(_("プラズマのブレスを吐いた。", "You breathe plasma."));
fire_breath(GF_PLASMA, dir, damage, (plev > 35 ? 3 : 2));
break;
+
case MS_BR_FORCE:
if (!get_aim_dir(&dir)) return FALSE;
else msg_print(_("フォースのブレスを吐いた。", "You breathe force."));
fire_breath(GF_FORCE, dir, damage, (plev > 35 ? 3 : 2));
break;
+
case MS_BR_MANA:
if (!get_aim_dir(&dir)) return FALSE;
else msg_print(_("魔力のブレスを吐いた。", "You breathe mana."));
fire_breath(GF_MANA, dir, damage, (plev > 35 ? 3 : 2));
break;
+
case MS_BALL_NUKE:
if (!get_aim_dir(&dir)) return FALSE;
else msg_print(_("放射能球を放った。", "You cast a ball of radiation."));
fire_ball(GF_NUKE, dir, damage, 2);
break;
+
case MS_BR_NUKE:
if (!get_aim_dir(&dir)) return FALSE;
else msg_print(_("放射性廃棄物のブレスを吐いた。", "You breathe toxic waste."));
fire_breath(GF_NUKE, dir, damage, (plev > 35 ? 3 : 2));
break;
+
case MS_BALL_CHAOS:
if (!get_aim_dir(&dir)) return FALSE;
else msg_print(_("純ログルスを放った。", "You invoke a raw Logrus."));
/* Hack */
p_ptr->energy_need -= 1000 + (100 + randint1(200)+200)*TURNS_PER_TICK/10;
- /* Redraw map */
p_ptr->redraw |= (PR_MAP);
-
- /* Update monsters */
p_ptr->update |= (PU_MONSTERS);
- /* Window stuff */
p_ptr->window |= (PW_OVERHEAD | PW_DUNGEON);
handle_stuff();
{
monster_type *m_ptr;
monster_race *r_ptr;
- char m_name[80];
+ GAME_TEXT m_name[MAX_NLEN];
if (!target_set(TARGET_KILL)) return FALSE;
if (!cave[target_row][target_col].m_idx) break;
IDX target_m_idx;
monster_type *m_ptr;
monster_race *r_ptr;
- char m_name[80];
+ GAME_TEXT m_name[MAX_NLEN];
if (!target_set(TARGET_KILL)) return FALSE;
target_m_idx = cave[target_row][target_col].m_idx;
else teleport_level(target_m_idx);
break;
}
+
case MS_PSY_SPEAR:
if (!get_aim_dir(&dir)) return FALSE;
else msg_print(_("光の剣を放った。", "You throw a psycho-spear."));
(void)fire_beam(GF_PSY_SPEAR, dir, damage);
break;
+
case MS_DARKNESS:
msg_print(_("暗闇の中で手を振った。", "You gesture in shadow."));
(void)unlite_area(10, 3);
break;
+
case MS_MAKE_TRAP:
if (!target_set(TARGET_KILL)) return FALSE;
msg_print(_("呪文を唱えて邪悪に微笑んだ。", "You cast a spell and cackles evilly."));
msg_print(_("サイバーデーモンを召喚した!", "You summon Cyberdemons!"));
if (max_cyber > 4) max_cyber = 4;
for (k = 0;k < max_cyber; k++)
- summon_specific(-1, target_row, target_col, plev, SUMMON_CYBER, mode);
+ summon_specific(-1, target_row, target_col, plev, SUMMON_CYBER, mode, '\0');
break;
}
case MS_S_MONSTER:
if (!target_set(TARGET_KILL)) return FALSE;
msg_print(_("仲間を召喚した。", "You summon help."));
for (k = 0;k < 1; k++)
- summon_specific(-1, target_row, target_col, plev, 0, (mode | u_mode));
+ summon_specific(-1, target_row, target_col, plev, 0, (mode | u_mode), '\0');
break;
}
case MS_S_MONSTERS:
int k;
if (!target_set(TARGET_KILL)) return FALSE;
msg_print(_("モンスターを召喚した!", "You summon monsters!"));
- for (k = 0;k < 6; k++)
- summon_specific(-1, target_row, target_col, plev, 0, (mode | u_mode));
+ for (k = 0;k < A_MAX; k++)
+ summon_specific(-1, target_row, target_col, plev, 0, (mode | u_mode), '\0');
break;
}
case MS_S_ANT:
int k;
if (!target_set(TARGET_KILL)) return FALSE;
msg_print(_("アリを召喚した。", "You summon ants."));
- for (k = 0;k < 6; k++)
- summon_specific(-1, target_row, target_col, plev, SUMMON_ANT, mode);
+ for (k = 0;k < A_MAX; k++)
+ summon_specific(-1, target_row, target_col, plev, SUMMON_ANT, mode, '\0');
break;
}
case MS_S_SPIDER:
int k;
if (!target_set(TARGET_KILL)) return FALSE;
msg_print(_("蜘蛛を召喚した。", "You summon spiders."));
- for (k = 0;k < 6; k++)
- summon_specific(-1, target_row, target_col, plev, SUMMON_SPIDER, mode);
+ for (k = 0;k < A_MAX; k++)
+ summon_specific(-1, target_row, target_col, plev, SUMMON_SPIDER, mode, '\0');
break;
}
case MS_S_HOUND:
if (!target_set(TARGET_KILL)) return FALSE;
msg_print(_("ハウンドを召喚した。", "You summon hounds."));
for (k = 0;k < 4; k++)
- summon_specific(-1, target_row, target_col, plev, SUMMON_HOUND, mode);
+ summon_specific(-1, target_row, target_col, plev, SUMMON_HOUND, mode, '\0');
break;
}
case MS_S_HYDRA:
if (!target_set(TARGET_KILL)) return FALSE;
msg_print(_("ヒドラを召喚した。", "You summon hydras."));
for (k = 0;k < 4; k++)
- summon_specific(-1, target_row, target_col, plev, SUMMON_HYDRA, mode);
+ summon_specific(-1, target_row, target_col, plev, SUMMON_HYDRA, mode, '\0');
break;
}
case MS_S_ANGEL:
if (!target_set(TARGET_KILL)) return FALSE;
msg_print(_("天使を召喚した!", "You summon angel!"));
for (k = 0;k < 1; k++)
- summon_specific(-1, target_row, target_col, plev, SUMMON_ANGEL, mode);
+ summon_specific(-1, target_row, target_col, plev, SUMMON_ANGEL, mode, '\0');
break;
}
case MS_S_DEMON:
if (!target_set(TARGET_KILL)) return FALSE;
msg_print(_("混沌の宮廷から悪魔を召喚した!", "You summon a demon from the Courts of Chaos!"));
for (k = 0;k < 1; k++)
- summon_specific(-1, target_row, target_col, plev, SUMMON_DEMON, (mode | u_mode));
+ summon_specific(-1, target_row, target_col, plev, SUMMON_DEMON, (mode | u_mode), '\0');
break;
}
case MS_S_UNDEAD:
if (!target_set(TARGET_KILL)) return FALSE;
msg_print(_("アンデッドの強敵を召喚した!", "You summon an undead adversary!"));
for (k = 0;k < 1; k++)
- summon_specific(-1, target_row, target_col, plev, SUMMON_UNDEAD, (mode | u_mode));
+ summon_specific(-1, target_row, target_col, plev, SUMMON_UNDEAD, (mode | u_mode), '\0');
break;
}
case MS_S_DRAGON:
if (!target_set(TARGET_KILL)) return FALSE;
msg_print(_("ドラゴンを召喚した!", "You summon dragon!"));
for (k = 0;k < 1; k++)
- summon_specific(-1, target_row, target_col, plev, SUMMON_DRAGON, (mode | u_mode));
+ summon_specific(-1, target_row, target_col, plev, SUMMON_DRAGON, (mode | u_mode), '\0');
break;
}
case MS_S_HI_UNDEAD:
int k;
if (!target_set(TARGET_KILL)) return FALSE;
msg_print(_("強力なアンデッドを召喚した!", "You summon greater undead!"));
- for (k = 0;k < 6; k++)
- summon_specific(-1, target_row, target_col, plev, SUMMON_HI_UNDEAD, (mode | u_mode));
+ for (k = 0;k < A_MAX; k++)
+ summon_specific(-1, target_row, target_col, plev, SUMMON_HI_UNDEAD, (mode | u_mode), '\0');
break;
}
case MS_S_HI_DRAGON:
if (!target_set(TARGET_KILL)) return FALSE;
msg_print(_("古代ドラゴンを召喚した!", "You summon ancient dragons!"));
for (k = 0;k < 4; k++)
- summon_specific(-1, target_row, target_col, plev, SUMMON_HI_DRAGON, (mode | u_mode));
+ summon_specific(-1, target_row, target_col, plev, SUMMON_HI_DRAGON, (mode | u_mode), '\0');
break;
}
case MS_S_AMBERITE:
if (!target_set(TARGET_KILL)) return FALSE;
msg_print(_("アンバーの王族を召喚した!", "You summon Lords of Amber!"));
for (k = 0;k < 4; k++)
- summon_specific(-1, target_row, target_col, plev, SUMMON_AMBERITES, (mode | PM_ALLOW_UNIQUE));
+ summon_specific(-1, target_row, target_col, plev, SUMMON_AMBERITES, (mode | PM_ALLOW_UNIQUE), '\0');
break;
}
case MS_S_UNIQUE:
if (!target_set(TARGET_KILL)) return FALSE;
msg_print(_("特別な強敵を召喚した!", "You summon special opponents!"));
for (k = 0;k < 4; k++)
- if (summon_specific(-1, target_row, target_col, plev, SUMMON_UNIQUE, (mode | PM_ALLOW_UNIQUE))) count++;
+ if (summon_specific(-1, target_row, target_col, plev, SUMMON_UNIQUE, (mode | PM_ALLOW_UNIQUE), '\0')) count++;
for (k = count;k < 4; k++)
- summon_specific(-1, target_row, target_col, plev, SUMMON_HI_UNDEAD, (mode | u_mode));
+ summon_specific(-1, target_row, target_col, plev, SUMMON_HI_UNDEAD, (mode | u_mode), '\0');
break;
}
default:
int n = 0, j;
int chance;
int minfail = 0;
- int plev = p_ptr->lev;
+ PLAYER_LEVEL plev = p_ptr->lev;
monster_power spell;
bool cast;
p_ptr->mane_dam[j] = p_ptr->mane_dam[j+1];
}
- /* Take a turn */
p_ptr->energy_use = 100;
- /* Window stuff */
p_ptr->redraw |= (PR_IMITATION);
p_ptr->window |= (PW_PLAYER);
p_ptr->window |= (PW_SPELL);