rad = 0 - rad;
switch (typ) {
- case AttributeType::ROCKET:
- flg |= PROJECT_STOP;
- break;
case AttributeType::DRAIN_MANA:
case AttributeType::MIND_BLAST:
case AttributeType::BRAIN_SMASH:
return project(player_ptr, m_idx, rad, y, x, dam_hp, typ, flg);
}
+ProjectResult rocket(PlayerType *player_ptr, POSITION y, POSITION x, MONSTER_IDX m_idx, AttributeType typ, int dam_hp, POSITION rad, int target_type)
+{
+ BIT_FLAGS flg = PROJECT_GRID | PROJECT_ITEM | PROJECT_KILL | PROJECT_STOP;
+ if (target_type == MONSTER_TO_PLAYER) {
+ flg |= PROJECT_PLAYER;
+ }
+
+ return project(player_ptr, m_idx, rad, y, x, dam_hp, typ, flg);
+}
+
/*!
* @brief ID値が非魔術的な特殊技能かどうかを返す /
* Return TRUE if a spell is inate spell.
ProjectResult bolt(PlayerType *player_ptr, MONSTER_IDX m_idx, POSITION y, POSITION x, AttributeType typ, int dam_hp, int target_type);
ProjectResult breath(
PlayerType *player_ptr, POSITION y, POSITION x, MONSTER_IDX m_idx, AttributeType typ, int dam_hp, POSITION rad, bool breath, int target_type);
+ProjectResult rocket(PlayerType *player_ptr, POSITION y, POSITION x, MONSTER_IDX m_idx, AttributeType typ, int dam_hp, POSITION rad, int target_type);
monspell_message(player_ptr, m_idx, t_idx, msg, target_type);
const auto dam = monspell_damage(player_ptr, MonsterAbilityType::ROCKET, m_idx, DAM_ROLL);
- const auto proj_res = breath(player_ptr, y, x, m_idx, AttributeType::ROCKET, dam, 2, false, target_type);
+ const auto proj_res = rocket(player_ptr, y, x, m_idx, AttributeType::ROCKET, dam, 2, target_type);
if (target_type == MONSTER_TO_PLAYER)
update_smart_learn(player_ptr, m_idx, DRS_SHARD);