#include "player-status.h"
#include "projection.h"
#include "spells-summon.h"
+#include "quest.h"
/*! テレポート先探索の試行数 / Maximum number of tries for teleporting */
msg_format(_("%sを$%d の金に変えた。", "You turn %s to %ld coins worth of gold."), o_name, price);
p_ptr->au += price;
-
- /* Redraw gold */
p_ptr->redraw |= (PR_GOLD);
-
p_ptr->window |= (PW_PLAYER);
-
}
/* Eliminate the item (from the pack) */
/* Player touches it */
o_ptr->marked |= OM_TOUCHED;
-
p_ptr->update |= (PU_BONUS | PU_COMBINE | PU_REORDER);
p_ptr->window |= (PW_INVEN | PW_EQUIP | PW_PLAYER);
dt = GF_DARK;
angry = TRUE;
break;
- case SV_POTION_CONFUSION: /* Booze */
+ case SV_POTION_BOOZE: /* Booze */
dt = GF_OLD_CONF;
angry = TRUE;
break;
/* Do nothing */ ;
}
- (void)project(who, radius, y, x, dam, dt,
- (PROJECT_JUMP | PROJECT_ITEM | PROJECT_KILL), -1);
+ (void)project(who, radius, y, x, dam, dt, (PROJECT_JUMP | PROJECT_ITEM | PROJECT_KILL), -1);
/* XXX those potions that explode need to become "known" */
return angry;
GAME_TEXT name[MAX_NLEN];
char out_val[160];
-
- /* Erase window */
clear_from(0);
/* They have too many spells to list */
GAME_TEXT o_name[MAX_NLEN];
-
/* Curse the body armor */
o_ptr = &inventory[INVEN_BODY];
{
/* Cool */
#ifdef JP
-msg_format("%sが%sを包み込もうとしたが、%sはそれを跳ね返した!",
-"恐怖の暗黒オーラ", "防具", o_name);
+ msg_format("%sが%sを包み込もうとしたが、%sはそれを跳ね返した!",
+ "恐怖の暗黒オーラ", "防具", o_name);
#else
msg_format("A %s tries to %s, but your %s resists the effects!",
- "terrible black aura", "surround your armor", o_name);
+ "terrible black aura", "surround your armor", o_name);
#endif
}
/* Break it */
o_ptr->ident |= (IDENT_BROKEN);
- p_ptr->update |= (PU_BONUS);
-
- /* Recalculate mana */
- p_ptr->update |= (PU_MANA);
-
+ p_ptr->update |= (PU_BONUS | PU_MANA);
p_ptr->window |= (PW_INVEN | PW_EQUIP | PW_PLAYER);
}
/* Break it */
o_ptr->ident |= (IDENT_BROKEN);
- p_ptr->update |= (PU_BONUS);
-
- /* Recalculate mana */
- p_ptr->update |= (PU_MANA);
-
+ p_ptr->update |= (PU_BONUS | PU_MANA);
p_ptr->window |= (PW_INVEN | PW_EQUIP | PW_PLAYER);
}
DEPTH lev1, lev2;
/* Hack -- Uniques/Questors never polymorph */
- if ((r_ptr->flags1 & RF1_UNIQUE) ||
- (r_ptr->flags1 & RF1_QUESTOR))
+ if ((r_ptr->flags1 & RF1_UNIQUE) || (r_ptr->flags1 & RF1_QUESTOR))
return (r_idx);
/* Allowable range of "levels" for resulting monster */
}
else if (back_m.hold_o_idx) /* Failed (paranoia) */
{
- /* Delete objects */
for (this_o_idx = back_m.hold_o_idx; this_o_idx; this_o_idx = next_o_idx)
{
/* Acquire next object */
next_o_idx = o_list[this_o_idx].next_o_idx;
-
delete_object_idx(this_o_idx);
}
}
}
}
return TRUE;
+}
+
+bool booze(player_type *creature_ptr)
+{
+ bool ident = FALSE;
+ if (creature_ptr->pclass != CLASS_MONK) chg_virtue(V_HARMONY, -1);
+ else if (!creature_ptr->resist_conf) creature_ptr->special_attack |= ATTACK_SUIKEN;
+ if (!creature_ptr->resist_conf)
+ {
+ if (set_confused(randint0(20) + 15))
+ {
+ ident = TRUE;
+ }
+ }
+
+ if (!creature_ptr->resist_chaos)
+ {
+ if (one_in_(2))
+ {
+ if (set_image(creature_ptr->image + randint0(150) + 150))
+ {
+ ident = TRUE;
+ }
+ }
+ if (one_in_(13) && (creature_ptr->pclass != CLASS_MONK))
+ {
+ ident = TRUE;
+ if (one_in_(3)) lose_all_info();
+ else wiz_dark();
+ (void)teleport_player_aux(100, TELEPORT_NONMAGICAL | TELEPORT_PASSIVE);
+ wiz_dark();
+ msg_print(_("知らない場所で目が醒めた。頭痛がする。", "You wake up somewhere with a sore head..."));
+ msg_print(_("何も思い出せない。どうやってここへ来たのかも分からない!", "You can't remember a thing, or how you got here!"));
+ }
+ }
+ return ident;
+}
+
+bool detonation(player_type *creature_ptr)
+{
+ msg_print(_("体の中で激しい爆発が起きた!", "Massive explosions rupture your body!"));
+ take_hit(DAMAGE_NOESCAPE, damroll(50, 20), _("爆発の薬", "a potion of Detonation"), -1);
+ (void)set_stun(creature_ptr->stun + 75);
+ (void)set_cut(creature_ptr->cut + 5000);
+ return TRUE;
}
\ No newline at end of file