monster_race *r_ptr = &r_info[r_idx];
/* Decline town monsters */
-/* if (!monster_dungeon(r_idx)) return FALSE; */
+/* if (!mon_hook_dungeon(r_idx)) return FALSE; */
/* Decline unique monsters */
/* if (r_ptr->flags1 & (RF1_UNIQUE)) return (FALSE); */
-/* if (r_ptr->flags7 & (RF7_UNIQUE_7)) return (FALSE); */
+/* if (r_ptr->flags7 & (RF7_NAZGUL)) return (FALSE); */
if (r_ptr->flags1 & (RF1_NEVER_MOVE)) return (FALSE);
if (r_ptr->flags2 & (RF2_MULTIPLY)) return (FALSE);
}
else
{
- int oldturn = turn;
+ s32b oldturn = turn;
#ifdef JP
do_cmd_write_nikki(NIKKI_BUNSHOU, 0, "½É²°¤ËÇñ¤Þ¤Ã¤¿¡£");
#else
do_cmd_write_nikki(NIKKI_BUNSHOU, 0, "stay over night at the inn");
#endif
turn = (turn / (TURNS_PER_TICK*TOWN_DAWN/2) + 1) * (TURNS_PER_TICK*TOWN_DAWN/2);
+
+ if (dungeon_turn < dungeon_turn_limit)
+ {
+ dungeon_turn += MIN(turn - oldturn, TURNS_PER_TICK*250);
+ if (dungeon_turn > dungeon_turn_limit) dungeon_turn = dungeon_turn_limit;
+ }
+
+ prevent_turn_overflow();
+
if (((oldturn + TURNS_PER_TICK * TOWN_DAWN / 4) % (TURNS_PER_TICK * TOWN_DAWN)) > TURNS_PER_TICK * TOWN_DAWN/4) do_cmd_write_nikki(NIKKI_HIGAWARI, 0, NULL);
p_ptr->chp = p_ptr->mhp;
- dungeon_turn += MIN(turn - oldturn, TURNS_PER_TICK*250);
-
if (ironman_nightmare)
{
#ifdef JP
/*
- * Share gold for thieves
- */
-static void share_gold(void)
-{
- int i = (p_ptr->lev * 2) * 10;
-#ifdef JP
-msg_format("¡ð%d ¤ò¼ê¤ËÆþ¤ì¤¿¡£", i);
-#else
- msg_format("You collect %d gold pieces", i);
-#endif
-
- p_ptr->au += i;
-}
-
-
-/*
* Display quest information
*/
static void get_questinfo(int questnum)
if (do_res_stat(A_CON)) paid = TRUE;
if (do_res_stat(A_CHR)) paid = TRUE;
break;
- case BACT_GOLD: /* set timed reward flag */
- if (!p_ptr->rewards[BACT_GOLD])
- {
- share_gold();
- p_ptr->rewards[BACT_GOLD] = TRUE;
- }
- else
- {
-#ifdef JP
- msg_print("º£Æü¤Îʬ¤±Á°¤Ï¤¹¤Ç¤Ë»Ùʧ¤Ã¤¿¤¾¡ª");
-#else
- msg_print("You just had your daily allowance!");
-#endif
- }
- break;
case BACT_ENCHANT_ARROWS:
item_tester_hook = item_tester_hook_ammo;
enchant_item(bcost, 1, 1, 0);
p_ptr->word_recall = 1;
p_ptr->recall_dungeon = select_dungeon;
max_dlv[p_ptr->recall_dungeon] = ((amt > d_info[select_dungeon].maxdepth) ? d_info[select_dungeon].maxdepth : ((amt < d_info[select_dungeon].mindepth) ? d_info[select_dungeon].mindepth : amt));
- if (record_maxdeapth)
+ if (record_maxdepth)
#ifdef JP
do_cmd_write_nikki(NIKKI_TRUMP, select_dungeon, "¥È¥é¥ó¥×¥¿¥ï¡¼¤Ç");
#else
break;
}
case BACT_LOSE_MUTATION:
- if (p_ptr->muta1 || p_ptr->muta2 || p_ptr->muta3)
+ if (p_ptr->muta1 || p_ptr->muta2 ||
+ (p_ptr->muta3 & ~MUT3_GOOD_LUCK) ||
+ (p_ptr->pseikaku != SEIKAKU_LUCKY &&
+ (p_ptr->muta3 & MUT3_GOOD_LUCK)))
{
while(!lose_mutation(0));
paid = TRUE;