for (i=0;i<4;i++)
{
monster_race *r_ptr = &r_info[battle_mon[i]];
- int num_taisei = count_bits(r_ptr->flags3 & (RF3_IM_ACID | RF3_IM_ELEC | RF3_IM_FIRE | RF3_IM_COLD | RF3_IM_POIS));
+ int num_taisei = count_bits(r_ptr->flagsr & (RFR_IM_ACID | RFR_IM_ELEC | RFR_IM_FIRE | RFR_IM_COLD | RFR_IM_POIS));
if (r_ptr->flags1 & RF1_FORCE_MAXHP)
power[i] = r_ptr->hdice * r_ptr->hside * 2;
clear_bldg(4,18);
#ifdef JP
- prt("»àÂΤò»ý¤Áµ¢¤ë¤È¾Þ¶â¤òº¹¤·¾å¤²¤Þ¤¹¡£",4 ,10);
+ prt("»àÂΤò»ý¤Áµ¢¤ì¤ÐÊó½·¤òº¹¤·¾å¤²¤Þ¤¹¡£",4 ,10);
c_put_str(TERM_YELLOW, "¸½ºß¤Î¾Þ¶â¼ó", 6, 10);
#else
prt("Offer a prize when you bring a wanted monster's corpse",4 ,10);
for (i = 0; i < MAX_KUBI; i++)
{
- char buf[160];
+ byte color;
+ cptr done_mark;
monster_race *r_ptr = &r_info[(kubi_r_idx[i] > 10000 ? kubi_r_idx[i] - 10000 : kubi_r_idx[i])];
- sprintf(buf,"%-40s ---- ",r_name + r_ptr->name);
- prt(buf, y+7, 10);
if (kubi_r_idx[i] > 10000)
+ {
+ color = TERM_RED;
#ifdef JP
- c_put_str(TERM_RED,"ºÑ", y+7, 56);
+ done_mark = "(ºÑ)";
#else
- c_put_str(TERM_RED,"done", y+7, 56);
+ done_mark = "(done)";
#endif
+ }
else
{
- sprintf(buf,"$%d", 300 * (r_ptr->level + 1));
- prt(buf, y+7, 56);
+ color = TERM_WHITE;
+ done_mark = "";
}
+
+ c_prt(color, format("%s %s", r_name + r_ptr->name, done_mark), y+7, 10);
+
y = (y+1) % 10;
if (!y && (i < MAX_KUBI -1))
{
}
}
+
+/* List of prize object */
+static struct {
+ s16b tval;
+ s16b sval;
+} prize_list[MAX_KUBI] =
+{
+ {TV_POTION, SV_POTION_CURING},
+ {TV_POTION, SV_POTION_SPEED},
+ {TV_POTION, SV_POTION_SPEED},
+ {TV_POTION, SV_POTION_RESISTANCE},
+ {TV_POTION, SV_POTION_ENLIGHTENMENT},
+
+ {TV_POTION, SV_POTION_HEALING},
+ {TV_POTION, SV_POTION_RESTORE_MANA},
+ {TV_SCROLL, SV_SCROLL_STAR_DESTRUCTION},
+ {TV_POTION, SV_POTION_STAR_ENLIGHTENMENT},
+ {TV_SCROLL, SV_SCROLL_SUMMON_PET},
+
+ {TV_SCROLL, SV_SCROLL_GENOCIDE},
+ {TV_POTION, SV_POTION_STAR_HEALING},
+ {TV_POTION, SV_POTION_STAR_HEALING},
+ {TV_POTION, SV_POTION_NEW_LIFE},
+ {TV_SCROLL, SV_SCROLL_MASS_GENOCIDE},
+
+ {TV_POTION, SV_POTION_LIFE},
+ {TV_POTION, SV_POTION_LIFE},
+ {TV_POTION, SV_POTION_AUGMENTATION},
+ {TV_POTION, SV_POTION_INVULNERABILITY},
+ {TV_SCROLL, SV_SCROLL_ARTIFACT},
+};
+
+
+/* Get prize */
static bool kankin(void)
{
int i, j;
char o_name[MAX_NLEN];
object_type *o_ptr;
- for (i = 0;i <= INVEN_LARM; i++)
+ /* Loop for inventory and right/left arm */
+ for (i = 0; i <= INVEN_LARM; i++)
{
o_ptr = &inventory[i];
+
+ /* Living Tsuchinoko worthes $1000000 */
if ((o_ptr->tval == TV_CAPTURE) && (o_ptr->pval == MON_TSUCHINOKO))
{
char buf[MAX_NLEN+20];
change = TRUE;
}
}
- for (i = 0;i <= INVEN_LARM; i++)
+
+ for (i = 0; i < INVEN_PACK; i++)
{
o_ptr = &inventory[i];
+
+ /* Corpse of Tsuchinoko worthes $200000 */
if ((o_ptr->tval == TV_CORPSE) && (o_ptr->sval == SV_CORPSE) && (o_ptr->pval == MON_TSUCHINOKO))
{
char buf[MAX_NLEN+20];
change = TRUE;
}
}
- for (i = 0;i <= INVEN_LARM; i++)
+
+ for (i = 0; i < INVEN_PACK; i++)
{
o_ptr = &inventory[i];
+
+ /* Bones of Tsuchinoko worthes $100000 */
if ((o_ptr->tval == TV_CORPSE) && (o_ptr->sval == SV_SKELETON) && (o_ptr->pval == MON_TSUCHINOKO))
{
char buf[MAX_NLEN+20];
}
}
- for (i = 0;i <= INVEN_LARM; i++)
+ for (i = 0; i < INVEN_PACK; i++)
{
o_ptr = &inventory[i];
- if ((o_ptr->tval == TV_CORPSE) && (o_ptr->sval == SV_CORPSE) && (o_ptr->pval == today_mon))
+ if ((o_ptr->tval == TV_CORPSE) && (o_ptr->sval == SV_CORPSE) && (streq(r_name + r_info[o_ptr->pval].name, r_name + r_info[today_mon].name)))
{
char buf[MAX_NLEN+20];
object_desc(o_name, o_ptr, TRUE, 3);
change = TRUE;
}
}
- for (i = 0;i <= INVEN_LARM; i++)
+
+ for (i = 0; i < INVEN_PACK; i++)
{
o_ptr = &inventory[i];
- if ((o_ptr->tval == TV_CORPSE) && (o_ptr->sval == SV_SKELETON) && (o_ptr->pval == today_mon))
+
+ if ((o_ptr->tval == TV_CORPSE) && (o_ptr->sval == SV_SKELETON) && (streq(r_name + r_info[o_ptr->pval].name, r_name + r_info[today_mon].name)))
{
char buf[MAX_NLEN+20];
object_desc(o_name, o_ptr, TRUE, 3);
for (j = 0; j < MAX_KUBI; j++)
{
- for (i = 0;i <= INVEN_LARM; i++)
+ /* Need reverse order --- Positions will be changed in the loop */
+ for (i = INVEN_PACK-1; i >= 0; i--)
{
o_ptr = &inventory[i];
- if ((o_ptr->tval == TV_CORPSE) && (o_ptr->sval == SV_CORPSE) && (o_ptr->pval == kubi_r_idx[j]))
+ if ((o_ptr->tval == TV_CORPSE) && (o_ptr->pval == kubi_r_idx[j]))
{
char buf[MAX_NLEN+20];
+ int num, k;
+ object_type forge;
+
object_desc(o_name, o_ptr, TRUE, 3);
#ifdef JP
- sprintf(buf, "%s ¤ò´¹¶â¤·¤Þ¤¹¤«¡©",o_name);
+ sprintf(buf, "%s¤òÅϤ·¤Þ¤¹¤«¡©",o_name);
#else
- sprintf(buf, "Convert %s into money? ",o_name);
+ sprintf(buf, "Hand %s over? ",o_name);
#endif
- if (get_check(buf))
- {
+ if (!get_check(buf)) continue;
+
+#if 0 /* Obsorated */
#ifdef JP
- msg_format("¾Þ¶â %ld¡ð¤ò¼ê¤ËÆþ¤ì¤¿¡£", (r_info[kubi_r_idx[j]].level + 1) * 300 * o_ptr->number);
+ msg_format("¾Þ¶â %ld¡ð¤ò¼ê¤ËÆþ¤ì¤¿¡£", (r_info[kubi_r_idx[j]].level + 1) * 300 * o_ptr->number);
#else
- msg_format("You get %ldgp.", (r_info[kubi_r_idx[j]].level + 1) * 300 * o_ptr->number);
+ msg_format("You get %ldgp.", (r_info[kubi_r_idx[j]].level + 1) * 300 * o_ptr->number);
#endif
- p_ptr->au += (r_info[kubi_r_idx[j]].level+1) * 300 * o_ptr->number;
- p_ptr->redraw |= (PR_GOLD);
- inven_item_increase(i, -o_ptr->number);
- inven_item_describe(i);
- inven_item_optimize(i);
- chg_virtue(V_JUSTICE, 5);
- kubi_r_idx[j] += 10000;
+ p_ptr->au += (r_info[kubi_r_idx[j]].level+1) * 300 * o_ptr->number;
+ p_ptr->redraw |= (PR_GOLD);
+ inven_item_increase(i, -o_ptr->number);
+ inven_item_describe(i);
+ inven_item_optimize(i);
+ chg_virtue(V_JUSTICE, 5);
+ kubi_r_idx[j] += 10000;
+
+ change = TRUE;
+#endif /* Obsorated */
+
+ /* Hand it first */
+ inven_item_increase(i, -o_ptr->number);
+ inven_item_describe(i);
+ inven_item_optimize(i);
+
+ chg_virtue(V_JUSTICE, 5);
+ kubi_r_idx[j] += 10000;
+
+ /* Count number of unique corpses already handed */
+ for (num = 0, k = 0; k < MAX_KUBI; k++)
+ {
+ if (kubi_r_idx[k] >= 10000) num++;
}
+
+#ifdef JP
+ msg_format("¤³¤ì¤Ç¹ç·× %d ¥Ý¥¤¥ó¥È³ÍÆÀ¤·¤Þ¤·¤¿¡£", num);
+#else
+ msg_format("You earned %d point%s total.", num, (num > 1 ? "s" : ""));
+#endif
+
+ /* Prepare to make a prize */
+ object_prep(&forge, lookup_kind(prize_list[num-1].tval, prize_list[num-1].sval));
+ apply_magic(&forge, object_level, AM_NO_FIXED_ART);
+
+ /* Identify it fully */
+ object_aware(&forge);
+ object_known(&forge);
+
+ /*
+ * Hand it --- Assume there is an empty slot.
+ * Since a corpse is handed at first,
+ * there is at least one empty slot.
+ */
+ (void)inven_carry(&forge);
+
+ /* Describe the object */
+ object_desc(o_name, &forge, TRUE, 3);
+#ifdef JP
+ msg_format("%s ¤òÌã¤Ã¤¿¡£",o_name);
+#else
+ msg_format("You get %s. ",o_name);
+#endif
+
change = TRUE;
}
}
r_ptr->r_flags2 |= RF2_ELDRITCH_HORROR;
- switch (p_ptr->prace)
+ if (!p_ptr->mimic_form)
{
- /* Imps may make a saving throw */
+ switch (p_ptr->prace)
+ {
+ /* Demons may make a saving throw */
case RACE_IMP:
case RACE_DEMON:
- {
if (saving_throw(20 + p_ptr->lev)) return;
- }
+ break;
/* Undead may make a saving throw */
case RACE_SKELETON:
case RACE_ZOMBIE:
case RACE_SPECTRE:
case RACE_VAMPIRE:
+ if (saving_throw(10 + p_ptr->lev)) return;
+ break;
+ }
+ }
+ else
+ {
+ /* Demons may make a saving throw */
+ if (mimic_info[p_ptr->mimic_form].MIMIC_FLAGS & MIMIC_IS_DEMON)
+ {
+ if (saving_throw(20 + p_ptr->lev)) return;
+ }
+ /* Undead may make a saving throw */
+ else if (mimic_info[p_ptr->mimic_form].MIMIC_FLAGS & MIMIC_IS_UNDEAD)
{
if (saving_throw(10 + p_ptr->lev)) return;
}
switch (cmd)
{
case BACT_FOOD: /* Buy food & drink */
+ if (p_ptr->food >= PY_FOOD_FULL)
+ {
+#ifdef JP
+ msg_print("º£¤ÏËþÊ¢¤À¡£");
+#else
+ msg_print("You are full now.");
+#endif
+ return FALSE;
+ }
+
#ifdef JP
msg_print("¥Ð¡¼¥Æ¥ó¤Ï¤¤¤¯¤é¤«¤Î¿©¤Ùʪ¤È¥Ó¡¼¥ë¤ò¤¯¤ì¤¿¡£");
#else
{
char tmp_str[80];
+ /* Effective dices */
+ int eff_dd = o_ptr->dd + p_ptr->to_dd[0];
+ int eff_ds = o_ptr->ds + p_ptr->to_ds[0];
+
/* Print the intro text */
c_put_str(color, attr, r, c);
sprintf(tmp_str, "Attack: %d-%d damage",
#endif
- (numblows * (mult * o_ptr->dd /60 + o_ptr->to_d + p_ptr->to_d[0])),
- (numblows * (mult * o_ptr->ds * o_ptr->dd /60 + o_ptr->to_d + p_ptr->to_d[0])));
+ (numblows * (mult * eff_dd / 60 + o_ptr->to_d + p_ptr->to_d[0])),
+ (numblows * (mult * eff_ds * eff_dd / 60 + o_ptr->to_d + p_ptr->to_d[0])));
/* Print the damage */
put_str(tmp_str, r, c + 8);
int mult = 60;
u32b flgs[TR_FLAG_SIZE];
int blow = p_ptr->num_blow[0];
+ bool print_force_weapon = FALSE;
/* Get the flags of the weapon */
object_flags(o_ptr, flgs);
- if (p_ptr->riding)
+ if ((p_ptr->pclass != CLASS_SAMURAI) && have_flag(flgs, TR_FORCE_WEAPON) && (p_ptr->csp > (o_ptr->dd * o_ptr->ds / 5)))
{
- if ((o_ptr->tval == TV_POLEARM) && ((o_ptr->sval == SV_LANCE) || (o_ptr->sval == SV_HEAVY_LANCE)))
- mult = mult * (o_ptr->dd + 2) / o_ptr->dd;
+ mult = mult * 7 / 2;
+ print_force_weapon = TRUE;
}
- if ((p_ptr->pclass != CLASS_SAMURAI) && (have_flag(flgs, TR_FORCE_WEAPON)) && (p_ptr->csp > (o_ptr->dd * o_ptr->ds / 5))) mult = mult * 7 / 2;
/* Print the relevant lines */
#ifdef JP
-if (have_flag(flgs, TR_FORCE_WEAPON)) compare_weapon_aux2(o_ptr, blow, r++, col, 1*mult, "ÍýÎÏ:", TERM_L_BLUE);
-if (have_flag(flgs, TR_KILL_ANIMAL)) compare_weapon_aux2(o_ptr, blow, r++, col, 4*mult, "ưʪ:", TERM_YELLOW);
- else if (have_flag(flgs, TR_SLAY_ANIMAL)) compare_weapon_aux2(o_ptr, blow, r++, col, 5*mult/2, "ưʪ:", TERM_YELLOW);
-if (have_flag(flgs, TR_KILL_EVIL)) compare_weapon_aux2(o_ptr, blow, r++, col, 7*mult/2, "¼Ù°:", TERM_YELLOW);
- else if (have_flag(flgs, TR_SLAY_EVIL)) compare_weapon_aux2(o_ptr, blow, r++, col, 2*mult, "¼Ù°:", TERM_YELLOW);
-if (have_flag(flgs, TR_KILL_HUMAN)) compare_weapon_aux2(o_ptr, blow, r++, col, 4*mult, "¿Í´Ö:", TERM_YELLOW);
- else if (have_flag(flgs, TR_SLAY_HUMAN)) compare_weapon_aux2(o_ptr, blow, r++, col, 5*mult/2, "¿Í´Ö:", TERM_YELLOW);
-if (have_flag(flgs, TR_KILL_UNDEAD)) compare_weapon_aux2(o_ptr, blow, r++, col, 5*mult, "ÉÔ»à:", TERM_YELLOW);
- else if (have_flag(flgs, TR_SLAY_UNDEAD)) compare_weapon_aux2(o_ptr, blow, r++, col, 3*mult, "ÉÔ»à:", TERM_YELLOW);
-if (have_flag(flgs, TR_KILL_DEMON)) compare_weapon_aux2(o_ptr, blow, r++, col, 5*mult, "°Ëâ:", TERM_YELLOW);
- else if (have_flag(flgs, TR_SLAY_DEMON)) compare_weapon_aux2(o_ptr, blow, r++, col, 3*mult, "°Ëâ:", TERM_YELLOW);
-if (have_flag(flgs, TR_KILL_ORC)) compare_weapon_aux2(o_ptr, blow, r++, col, 5*mult, "¥ª¡¼¥¯:", TERM_YELLOW);
- else if (have_flag(flgs, TR_SLAY_ORC)) compare_weapon_aux2(o_ptr, blow, r++, col, 3*mult, "¥ª¡¼¥¯:", TERM_YELLOW);
-if (have_flag(flgs, TR_KILL_TROLL)) compare_weapon_aux2(o_ptr, blow, r++, col, 5*mult, "¥È¥í¥ë:", TERM_YELLOW);
- else if (have_flag(flgs, TR_SLAY_TROLL)) compare_weapon_aux2(o_ptr, blow, r++, col, 3*mult, "¥È¥í¥ë:", TERM_YELLOW);
-if (have_flag(flgs, TR_KILL_GIANT)) compare_weapon_aux2(o_ptr, blow, r++, col, 5*mult, "µð¿Í:", TERM_YELLOW);
- else if (have_flag(flgs, TR_SLAY_GIANT)) compare_weapon_aux2(o_ptr, blow, r++, col, 3*mult, "µð¿Í:", TERM_YELLOW);
-if (have_flag(flgs, TR_KILL_DRAGON)) compare_weapon_aux2(o_ptr, blow, r++, col, 5*mult, "ε:", TERM_YELLOW);
-else if (have_flag(flgs, TR_SLAY_DRAGON)) compare_weapon_aux2(o_ptr, blow, r++, col, 3*mult, "ε:", TERM_YELLOW);
-if (have_flag(flgs, TR_BRAND_ACID)) compare_weapon_aux2(o_ptr, blow, r++, col, 5*mult/2, "»À°À:", TERM_RED);
-if (have_flag(flgs, TR_BRAND_ELEC)) compare_weapon_aux2(o_ptr, blow, r++, col, 5*mult/2, "ÅÅ°À:", TERM_RED);
-if (have_flag(flgs, TR_BRAND_FIRE)) compare_weapon_aux2(o_ptr, blow, r++, col, 5*mult/2, "±ê°À:", TERM_RED);
-if (have_flag(flgs, TR_BRAND_COLD)) compare_weapon_aux2(o_ptr, blow, r++, col, 5*mult/2, "Îä°À:", TERM_RED);
-if (have_flag(flgs, TR_BRAND_POIS)) compare_weapon_aux2(o_ptr, blow, r++, col, 5*mult/2, "ÆÇ°À:", TERM_RED);
-#else
- if (have_flag(flgs, TR_FORCE_WEAPON)) compare_weapon_aux2(o_ptr, blow, r++, col, 1*mult, "Force :", TERM_L_BLUE);
+ if (print_force_weapon) compare_weapon_aux2(o_ptr, blow, r++, col, 1*mult, "ÍýÎÏ:", TERM_L_BLUE);
+ if (have_flag(flgs, TR_KILL_ANIMAL)) compare_weapon_aux2(o_ptr, blow, r++, col, 4*mult, "ưʪ:", TERM_YELLOW);
+ else if (have_flag(flgs, TR_SLAY_ANIMAL)) compare_weapon_aux2(o_ptr, blow, r++, col, 5*mult/2, "ưʪ:", TERM_YELLOW);
+ if (have_flag(flgs, TR_KILL_EVIL)) compare_weapon_aux2(o_ptr, blow, r++, col, 7*mult/2, "¼Ù°:", TERM_YELLOW);
+ else if (have_flag(flgs, TR_SLAY_EVIL)) compare_weapon_aux2(o_ptr, blow, r++, col, 2*mult, "¼Ù°:", TERM_YELLOW);
+ if (have_flag(flgs, TR_KILL_HUMAN)) compare_weapon_aux2(o_ptr, blow, r++, col, 4*mult, "¿Í´Ö:", TERM_YELLOW);
+ else if (have_flag(flgs, TR_SLAY_HUMAN)) compare_weapon_aux2(o_ptr, blow, r++, col, 5*mult/2, "¿Í´Ö:", TERM_YELLOW);
+ if (have_flag(flgs, TR_KILL_UNDEAD)) compare_weapon_aux2(o_ptr, blow, r++, col, 5*mult, "ÉÔ»à:", TERM_YELLOW);
+ else if (have_flag(flgs, TR_SLAY_UNDEAD)) compare_weapon_aux2(o_ptr, blow, r++, col, 3*mult, "ÉÔ»à:", TERM_YELLOW);
+ if (have_flag(flgs, TR_KILL_DEMON)) compare_weapon_aux2(o_ptr, blow, r++, col, 5*mult, "°Ëâ:", TERM_YELLOW);
+ else if (have_flag(flgs, TR_SLAY_DEMON)) compare_weapon_aux2(o_ptr, blow, r++, col, 3*mult, "°Ëâ:", TERM_YELLOW);
+ if (have_flag(flgs, TR_KILL_ORC)) compare_weapon_aux2(o_ptr, blow, r++, col, 5*mult, "¥ª¡¼¥¯:", TERM_YELLOW);
+ else if (have_flag(flgs, TR_SLAY_ORC)) compare_weapon_aux2(o_ptr, blow, r++, col, 3*mult, "¥ª¡¼¥¯:", TERM_YELLOW);
+ if (have_flag(flgs, TR_KILL_TROLL)) compare_weapon_aux2(o_ptr, blow, r++, col, 5*mult, "¥È¥í¥ë:", TERM_YELLOW);
+ else if (have_flag(flgs, TR_SLAY_TROLL)) compare_weapon_aux2(o_ptr, blow, r++, col, 3*mult, "¥È¥í¥ë:", TERM_YELLOW);
+ if (have_flag(flgs, TR_KILL_GIANT)) compare_weapon_aux2(o_ptr, blow, r++, col, 5*mult, "µð¿Í:", TERM_YELLOW);
+ else if (have_flag(flgs, TR_SLAY_GIANT)) compare_weapon_aux2(o_ptr, blow, r++, col, 3*mult, "µð¿Í:", TERM_YELLOW);
+ if (have_flag(flgs, TR_KILL_DRAGON)) compare_weapon_aux2(o_ptr, blow, r++, col, 5*mult, "ε:", TERM_YELLOW);
+ else if (have_flag(flgs, TR_SLAY_DRAGON)) compare_weapon_aux2(o_ptr, blow, r++, col, 3*mult, "ε:", TERM_YELLOW);
+ if (have_flag(flgs, TR_BRAND_ACID)) compare_weapon_aux2(o_ptr, blow, r++, col, 5*mult/2, "»À°À:", TERM_RED);
+ if (have_flag(flgs, TR_BRAND_ELEC)) compare_weapon_aux2(o_ptr, blow, r++, col, 5*mult/2, "ÅÅ°À:", TERM_RED);
+ if (have_flag(flgs, TR_BRAND_FIRE)) compare_weapon_aux2(o_ptr, blow, r++, col, 5*mult/2, "±ê°À:", TERM_RED);
+ if (have_flag(flgs, TR_BRAND_COLD)) compare_weapon_aux2(o_ptr, blow, r++, col, 5*mult/2, "Îä°À:", TERM_RED);
+ if (have_flag(flgs, TR_BRAND_POIS)) compare_weapon_aux2(o_ptr, blow, r++, col, 5*mult/2, "ÆÇ°À:", TERM_RED);
+#else
+ if (print_force_weapon) compare_weapon_aux2(o_ptr, blow, r++, col, 1*mult, "Force :", TERM_L_BLUE);
if (have_flag(flgs, TR_KILL_ANIMAL)) compare_weapon_aux2(o_ptr, blow, r++, col, 4*mult, "Animals:", TERM_YELLOW);
else if (have_flag(flgs, TR_SLAY_ANIMAL)) compare_weapon_aux2(o_ptr, blow, r++, col, 5*mult/2, "Animals:", TERM_YELLOW);
if (have_flag(flgs, TR_KILL_EVIL)) compare_weapon_aux2(o_ptr, blow, r++, col, 7*mult/2, "Evil:", TERM_YELLOW);
char o_name[MAX_NLEN];
char tmp_str[80];
+ /* Effective dices */
+ int eff_dd = o_ptr->dd + p_ptr->to_dd[0];
+ int eff_ds = o_ptr->ds + p_ptr->to_ds[0];
+
/* Print the weapon name */
object_desc(o_name, o_ptr, TRUE, 0);
c_put_str(TERM_YELLOW, o_name, row, col);
sprintf(tmp_str, "One Strike: %d-%d damage",
#endif
- o_ptr->dd + o_ptr->to_d + p_ptr->to_d[0],
- o_ptr->ds * o_ptr->dd + o_ptr->to_d + p_ptr->to_d[0]);
+ eff_dd + o_ptr->to_d + p_ptr->to_d[0],
+ eff_ds * eff_dd + o_ptr->to_d + p_ptr->to_d[0]);
put_str(tmp_str, row+6, col+1);
/* Damage for the complete attack (if all blows hit) */
sprintf(tmp_str, "One Attack: %d-%d damage",
#endif
- p_ptr->num_blow[0] * (o_ptr->dd + o_ptr->to_d + p_ptr->to_d[0]),
- p_ptr->num_blow[0] * (o_ptr->ds * o_ptr->dd + o_ptr->to_d + p_ptr->to_d[0]));
+ p_ptr->num_blow[0] * (eff_dd + o_ptr->to_d + p_ptr->to_d[0]),
+ p_ptr->num_blow[0] * (eff_ds * eff_dd + o_ptr->to_d + p_ptr->to_d[0]));
put_str(tmp_str, row+7, col+1);
}
object_type *i_ptr;
cptr q, s;
int row = 2;
+ bool old_character_xtra = character_xtra;
screen_save();
/* Clear the screen */
if (o1_ptr != i_ptr)
object_copy(i_ptr, o1_ptr);
+ /* Hack -- prevent "icky" message */
+ character_xtra = TRUE;
+
/* Get the new values */
calc_bonuses();
+ character_xtra = old_character_xtra;
+
/* List the new values */
list_weapon(o1_ptr, row, 2);
compare_weapon_aux1(o1_ptr, 2, row + 8);
else
object_copy(i_ptr, &orig_weapon);
+ /* Hack -- prevent "icky" message */
+ character_xtra = TRUE;
+
/* Get the new values */
calc_bonuses();
+ character_xtra = old_character_xtra;
+
/* List the new values */
list_weapon(o2_ptr, row, 40);
compare_weapon_aux1(o2_ptr, 40, row + 8);
/* Don't re-init the wilderness */
reinit_wilderness = FALSE;
- if ((which == 2) && (p_ptr->arena_number == 99))
+ if ((which == 2) && (p_ptr->arena_number < 0))
{
#ifdef JP
msg_print("¡ÖÇÔ¼Ô¤ËÍѤϤʤ¤¡£¡×");