#include "spell-kind/spells-pet.h"
#include "spell-kind/spells-sight.h"
#include "spell-realm/spells-demon.h"
-#include "spell/spell-types.h"
+#include "effect/attribute-types.h"
#include "spell/spells-diceroll.h"
#include "spell/spells-object.h"
#include "spell/spells-status.h"
* @brief 悪魔領域魔法の各処理を行う
* @param player_ptr プレイヤーへの参照ポインタ
* @param spell 魔法ID
- * @param mode 処理内容 (SPELL_NAME / SPELL_DESC / SPELL_INFO / SPELL_CAST)
- * @return SPELL_NAME / SPELL_DESC / SPELL_INFO 時には文字列ポインタを返す。SPELL_CAST時はnullptr文字列を返す。
+ * @param mode 処理内容 (SpellProcessType::NAME / SPELL_DESC / SpellProcessType::INFO / SpellProcessType::CAST)
+ * @return SpellProcessType::NAME / SPELL_DESC / SpellProcessType::INFO 時には文字列ポインタを返す。SpellProcessType::CAST時はnullptr文字列を返す。
*/
-concptr do_daemon_spell(player_type *player_ptr, SPELL_IDX spell, spell_type mode)
+concptr do_daemon_spell(PlayerType *player_ptr, SPELL_IDX spell, SpellProcessType mode)
{
- bool name = mode == SPELL_NAME;
- bool desc = mode == SPELL_DESCRIPTION;
- bool info = mode == SPELL_INFO;
- bool cast = mode == SPELL_CAST;
+ bool name = mode == SpellProcessType::NAME;
+ bool desc = mode == SpellProcessType::DESCRIPTION;
+ bool info = mode == SpellProcessType::INFO;
+ bool cast = mode == SpellProcessType::CAST;
DIRECTION dir;
PLAYER_LEVEL plev = player_ptr->lev;
if (!get_aim_dir(player_ptr, &dir))
return nullptr;
- fire_bolt_or_beam(player_ptr, beam_chance(player_ptr) - 10, GF_MISSILE, dir, damroll(dice, sides));
+ fire_bolt_or_beam(player_ptr, beam_chance(player_ptr) - 10, AttributeType::MISSILE, dir, damroll(dice, sides));
}
}
break;
if (!get_aim_dir(player_ptr, &dir))
return nullptr;
- fire_bolt_or_beam(player_ptr, beam_chance(player_ptr), GF_NETHER, dir, damroll(dice, sides));
+ fire_bolt_or_beam(player_ptr, beam_chance(player_ptr), AttributeType::NETHER, dir, damroll(dice, sides));
}
}
break;
if (!get_aim_dir(player_ptr, &dir))
return nullptr;
- fire_ball(player_ptr, GF_HELL_FIRE, dir, damroll(dice, sides) + base, rad);
+ fire_ball(player_ptr, AttributeType::HELL_FIRE, dir, damroll(dice, sides) + base, rad);
}
}
break;
if (!get_aim_dir(player_ptr, &dir))
return nullptr;
- fire_bolt_or_beam(player_ptr, beam_chance(player_ptr), GF_PLASMA, dir, damroll(dice, sides));
+ fire_bolt_or_beam(player_ptr, beam_chance(player_ptr), AttributeType::PLASMA, dir, damroll(dice, sides));
}
}
break;
return _("炎の球を放つ。", "Fires a ball of fire.");
{
- HIT_POINT dam = plev + 55;
+ int dam = plev + 55;
POSITION rad = 2;
if (info)
if (!get_aim_dir(player_ptr, &dir))
return nullptr;
- fire_ball(player_ptr, GF_FIRE, dir, dam, rad);
+ fire_ball(player_ptr, AttributeType::FIRE, dir, dam, rad);
}
}
break;
return _("大きな地獄の球を放つ。", "Fires a huge ball of nether.");
{
- HIT_POINT dam = plev * 3 / 2 + 100;
+ int dam = plev * 3 / 2 + 100;
POSITION rad = plev / 20 + 2;
if (info)
if (!get_aim_dir(player_ptr, &dir))
return nullptr;
- fire_ball(player_ptr, GF_NETHER, dir, dam, rad);
+ fire_ball(player_ptr, AttributeType::NETHER, dir, dam, rad);
}
}
break;
return _("自分を中心とした炎の球を作り出し、床を溶岩に変える。", "Generates a ball of fire centered on you which transforms floors to magma.");
{
- HIT_POINT dam = (55 + plev) * 2;
+ int dam = (55 + plev) * 2;
POSITION rad = 3;
if (info)
return info_damage(0, 0, dam / 2);
if (cast) {
- fire_ball(player_ptr, GF_FIRE, 0, dam, rad);
- fire_ball_hide(player_ptr, GF_LAVA_FLOW, 0, 2 + randint1(2), rad);
+ fire_ball(player_ptr, AttributeType::FIRE, 0, dam, rad);
+ fire_ball_hide(player_ptr, AttributeType::LAVA_FLOW, 0, 2 + randint1(2), rad);
}
}
break;
return _("プラズマの球を放つ。", "Fires a ball of plasma.");
{
- HIT_POINT dam = plev * 3 / 2 + 80;
+ int dam = plev * 3 / 2 + 80;
POSITION rad = 2 + plev / 40;
if (info)
if (!get_aim_dir(player_ptr, &dir))
return nullptr;
- fire_ball(player_ptr, GF_PLASMA, dir, dam, rad);
+ fire_ball(player_ptr, AttributeType::PLASMA, dir, dam, rad);
}
}
break;
return _("因果混乱の球を放つ。", "Fires a ball of nexus.");
{
- HIT_POINT dam = 100 + plev * 2;
+ int dam = 100 + plev * 2;
POSITION rad = 4;
if (info)
if (cast) {
if (!get_aim_dir(player_ptr, &dir))
return nullptr;
- fire_ball(player_ptr, GF_NEXUS, dir, dam, rad);
+ fire_ball(player_ptr, AttributeType::NEXUS, dir, dam, rad);
}
}
break;
else
msg_print(_("<破滅の手>を放った!", "You invoke the Hand of Doom!"));
- fire_ball_hide(player_ptr, GF_HAND_DOOM, dir, plev * 2, 0);
+ fire_ball_hide(player_ptr, AttributeType::HAND_DOOM, dir, plev * 2, 0);
}
}
break;
"Generates balls of chaos, confusion and charm centered on you.");
{
- HIT_POINT dam = 50 + plev;
+ int dam = 50 + plev;
int power = 20 + plev;
POSITION rad = 3 + plev / 20;
return format("%s%d+%d", KWD_DAM, dam / 2, dam / 2);
if (cast) {
- fire_ball(player_ptr, GF_CHAOS, 0, dam, rad);
- fire_ball(player_ptr, GF_CONFUSION, 0, dam, rad);
- fire_ball(player_ptr, GF_CHARM, 0, power, rad);
+ fire_ball(player_ptr, AttributeType::CHAOS, 0, dam, rad);
+ fire_ball(player_ptr, AttributeType::CONFUSION, 0, dam, rad);
+ fire_ball(player_ptr, AttributeType::CHARM, 0, power, rad);
}
}
break;
return _("超巨大な地獄の球を放つ。", "Generates a huge ball of nether.");
{
- HIT_POINT dam = plev * 15;
+ int dam = plev * 15;
POSITION rad = plev / 5;
if (info)
if (!get_aim_dir(player_ptr, &dir))
return nullptr;
- fire_ball(player_ptr, GF_NETHER, dir, dam, rad);
+ fire_ball(player_ptr, AttributeType::NETHER, dir, dam, rad);
}
}
break;
"Puts blood curse, which damages and causes various effects, on a monster. You also take damage.");
{
- HIT_POINT dam = 600;
+ int dam = 600;
POSITION rad = 0;
if (info)
if (!get_aim_dir(player_ptr, &dir))
return nullptr;
- fire_ball_hide(player_ptr, GF_BLOOD_CURSE, dir, dam, rad);
+ fire_ball_hide(player_ptr, AttributeType::BLOOD_CURSE, dir, dam, rad);
take_hit(player_ptr, DAMAGE_USELIFE, 20 + randint1(30), _("血の呪い", "Blood curse"));
}
}