#include "player-damage.h"
#include "monsterrace-hook.h"
#include "melee.h"
+#include "projection.h"
+#include "monster-status.h"
}
/*! モンスターの侮辱行為メッセージテーブル / Hack -- possible "insult" messages */
-static cptr desc_insult[] =
+static concptr desc_insult[] =
{
#ifdef JP
"があなたを侮辱した!",
};
/*! マゴットのぼやきメッセージテーブル / Hack -- possible "insult" messages */
-static cptr desc_moan[] =
+static concptr desc_moan[] =
{
#ifdef JP
"は何かを悲しんでいるようだ。",
* @return なし
*/
static void touch_zap_player_aux(monster_type *m_ptr, bool immune, int flags_offset, int r_flags_offset, u32b aura_flag,
- HIT_POINT(*dam_func)(HIT_POINT dam, cptr kb_str, int monspell, bool aura), cptr message)
+ HIT_POINT(*dam_func)(HIT_POINT dam, concptr kb_str, int monspell, bool aura), concptr message)
{
monster_race *r_ptr = &r_info[m_ptr->r_idx];
int dice_num, dice_side;
- cptr atk_desc;
+ concptr atk_desc;
switch (attack)
{
msg_format(_("ミス! %sにかわされた。", "You miss %s."), m_name);
msg_print(_("振り回した大鎌が自分自身に返ってきた!", "Your scythe returns to you!"));
-
- /* Extract the flags */
object_flags(o_ptr, flgs_aux);
k = damroll(o_ptr->dd + p_ptr->to_dd[hand], o_ptr->ds + p_ptr->to_ds[hand]);
if (cur < max)
{
- int ridinglevel = r_info[m_list[p_ptr->riding].r_idx].level;
- int targetlevel = r_ptr->level;
+ DEPTH ridinglevel = r_info[m_list[p_ptr->riding].r_idx].level;
+ DEPTH targetlevel = r_ptr->level;
int inc = 0;
if ((cur / 200 - 5) < targetlevel)
}
p_ptr->skill_exp[GINOU_RIDING] = MIN(max, cur + inc);
-
p_ptr->update |= (PU_BONUS);
}
}
HIT_POINT power = 0;
HIT_POINT damage = 0;
- cptr act = NULL;
+ concptr act = NULL;
/* Extract the attack infomation */
int effect = r_ptr->blow[ap_cnt].effect;
if (apply_disenchant(0))
{
/* Hack -- Update AC */
- handle_stuff();
+ update_creature(p_ptr);
obvious = TRUE;
}
}
o_ptr->pval = 0;
/* Combine / Reorder the pack */
- p_ptr->notice |= (PN_COMBINE | PN_REORDER);
+ p_ptr->update |= (PU_COMBINE | PU_REORDER);
p_ptr->window |= (PW_INVEN);
break;
/* Find an item */
for (k = 0; k < 10; k++)
{
- s16b o_idx;
+ OBJECT_IDX o_idx;
/* Pick an item */
i = (INVENTORY_IDX)randint0(INVEN_PACK);
if (o_idx)
{
object_type *j_ptr;
-
- /* Get new object */
j_ptr = &o_list[o_idx];
-
- /* Copy object */
object_copy(j_ptr, o_ptr);
/* Modify number */
obvious = TRUE;
msg_print(_("酸を浴びせられた!", "You are covered in acid!"));
get_damage += acid_dam(damage, ddesc, -1, FALSE);
- handle_stuff();
+ update_creature(p_ptr);
update_smart_learn(m_idx, DRS_ACID);
break;
}
{
msg_print(_("あなたは以前ほど力強くなくなってしまった...。", "You're not as powerful as you used to be..."));
- for (k = 0; k < 6; k++)
+ for (k = 0; k < A_MAX; k++)
{
p_ptr->stat_cur[k] = (p_ptr->stat_cur[k] * 7) / 8;
if (p_ptr->stat_cur[k] < 3) p_ptr->stat_cur[k] = 3;
#endif
}
+
+ /* Gain shield experience */
+ if (object_is_armour(&inventory[INVEN_RARM]) || object_is_armour(&inventory[INVEN_LARM]))
+ {
+ int cur = p_ptr->skill_exp[GINOU_SHIELD];
+ int max = s_info[p_ptr->pclass].s_max[GINOU_SHIELD];
+
+ if (cur < max)
+ {
+ DEPTH targetlevel = r_ptr->level;
+ int inc = 0;
+
+
+ /* Extra experience */
+ if ((cur / 100) < targetlevel)
+ {
+ if ((cur / 100 + 15) < targetlevel)
+ inc += 1 + (targetlevel - (cur / 100 + 15));
+ else
+ inc += 1;
+ }
+
+ p_ptr->skill_exp[GINOU_SHIELD] = MIN(max, cur + inc);
+ p_ptr->update |= (PU_BONUS);
+ }
+ }
+
damage = 0;
break;