}
}
sprintf(new_name, _("《%s》", "'%s'"), dummy_name);
- chg_virtue(V_INDIVIDUALISM, 2);
- chg_virtue(V_ENCHANT, 5);
+ chg_virtue(p_ptr, V_INDIVIDUALISM, 2);
+ chg_virtue(p_ptr, V_ENCHANT, 5);
}
else
{
* @param amount 加減量
* @return なし
*/
-void chg_virtue(int virtue_id, int amount)
+void chg_virtue(player_type *creature_ptr, int virtue_id, int amount)
{
int i = 0;
for (i = 0; i < 8; i++)
{
- if (p_ptr->vir_types[i] == virtue_id)
+ if (creature_ptr->vir_types[i] == virtue_id)
{
if (amount > 0)
{
- if ((amount + p_ptr->virtues[i] > 50) && one_in_(2))
+ if ((amount + creature_ptr->virtues[i] > 50) && one_in_(2))
{
- p_ptr->virtues[i] = MAX(p_ptr->virtues[i], 50);
+ creature_ptr->virtues[i] = MAX(creature_ptr->virtues[i], 50);
return;
}
- if ((amount + p_ptr->virtues[i] > 80) && one_in_(2))
+ if ((amount + creature_ptr->virtues[i] > 80) && one_in_(2))
{
- p_ptr->virtues[i] = MAX(p_ptr->virtues[i], 80);
+ creature_ptr->virtues[i] = MAX(creature_ptr->virtues[i], 80);
return;
}
- if ((amount + p_ptr->virtues[i] > 100) && one_in_(2))
+ if ((amount + creature_ptr->virtues[i] > 100) && one_in_(2))
{
- p_ptr->virtues[i] = MAX(p_ptr->virtues[i], 100);
+ creature_ptr->virtues[i] = MAX(creature_ptr->virtues[i], 100);
return;
}
- if (amount + p_ptr->virtues[i] > 125)
- p_ptr->virtues[i] = 125;
+ if (amount + creature_ptr->virtues[i] > 125)
+ creature_ptr->virtues[i] = 125;
else
- p_ptr->virtues[i] = p_ptr->virtues[i] + amount;
+ creature_ptr->virtues[i] = creature_ptr->virtues[i] + amount;
}
else
{
- if ((amount + p_ptr->virtues[i] < -50) && one_in_(2))
+ if ((amount + creature_ptr->virtues[i] < -50) && one_in_(2))
{
- p_ptr->virtues[i] = MIN(p_ptr->virtues[i], -50);
+ creature_ptr->virtues[i] = MIN(creature_ptr->virtues[i], -50);
return;
}
- if ((amount + p_ptr->virtues[i] < -80) && one_in_(2))
+ if ((amount + creature_ptr->virtues[i] < -80) && one_in_(2))
{
- p_ptr->virtues[i] = MIN(p_ptr->virtues[i], -80);
+ creature_ptr->virtues[i] = MIN(creature_ptr->virtues[i], -80);
return;
}
- if ((amount + p_ptr->virtues[i] < -100) && one_in_(2))
+ if ((amount + creature_ptr->virtues[i] < -100) && one_in_(2))
{
- p_ptr->virtues[i] = MIN(p_ptr->virtues[i], -100);
+ creature_ptr->virtues[i] = MIN(creature_ptr->virtues[i], -100);
return;
}
- if (amount + p_ptr->virtues[i] < -125)
- p_ptr->virtues[i] = -125;
+ if (amount + creature_ptr->virtues[i] < -125)
+ creature_ptr->virtues[i] = -125;
else
- p_ptr->virtues[i] = p_ptr->virtues[i] + amount;
+ creature_ptr->virtues[i] = creature_ptr->virtues[i] + amount;
}
- p_ptr->update |= (PU_BONUS);
+ creature_ptr->update |= (PU_BONUS);
return;
}
}
extern int virtue_number(int type);
extern concptr virtue[MAX_VIRTUE];
extern void get_virtues(player_type *creature_ptr);
-extern void chg_virtue(int virtue, int amount);
+extern void chg_virtue(player_type *creature_ptr, int virtue, int amount);
extern void set_virtue(int virtue, int amount);
extern void dump_virtues(FILE * OutFile);
{
msg_print(_("「今回は儲けたな!でも次はこっちが勝ってやるからな、絶対に!」",
"You came out a winner! We'll win next time, I'm sure."));
- chg_virtue(V_CHANCE, 3);
+ chg_virtue(p_ptr, V_CHANCE, 3);
}
else
{
msg_print(_("「金をスッてしまったな、わはは!うちに帰った方がいいぜ。」", "You lost gold! Haha, better head home."));
- chg_virtue(V_CHANCE, -3);
+ chg_virtue(p_ptr, V_CHANCE, -3);
}
}
msg_print(NULL);
inven_item_increase(i, -o_ptr->number);
inven_item_describe(i);
inven_item_optimize(i);
- chg_virtue(V_JUSTICE, 5);
+ chg_virtue(p_ptr, V_JUSTICE, 5);
current_world_ptr->bounty_r_idx[j] += 10000;
change = TRUE;
inven_item_describe(i);
inven_item_optimize(i);
- chg_virtue(V_JUSTICE, 5);
+ chg_virtue(p_ptr, V_JUSTICE, 5);
current_world_ptr->bounty_r_idx[j] += 10000;
/* Count number of unique corpses already handed */
case ACT_JUDGE:
{
msg_format(_("%sは赤く明るく光った!", "The %s flashes bright red!"), name);
- chg_virtue(V_KNOWLEDGE, 1);
- chg_virtue(V_ENLIGHTEN, 1);
+ chg_virtue(p_ptr, V_KNOWLEDGE, 1);
+ chg_virtue(p_ptr, V_ENLIGHTEN, 1);
wiz_lite(FALSE);
msg_format(_("%sはあなたの体力を奪った...", "The %s drains your vitality..."), name);
/* Remove the feature */
cave_alter_feat(y, x, FF_TUNNEL);
- chg_virtue(V_DILIGENCE, 1);
- chg_virtue(V_NATURE, -1);
+ chg_virtue(p_ptr, V_DILIGENCE, 1);
+ chg_virtue(p_ptr, V_NATURE, -1);
}
/* Keep trying */
take_turn(p_ptr, 100);
/* The sin of sloth */
- if (command_arg > 100) chg_virtue(V_DILIGENCE, -1);
+ if (command_arg > 100) chg_virtue(p_ptr, V_DILIGENCE, -1);
/* Why are you sleeping when there's no need? WAKE UP!*/
if ((p_ptr->chp == p_ptr->mhp) &&
!p_ptr->slow && !p_ptr->paralyzed &&
!p_ptr->image && !p_ptr->word_recall &&
!p_ptr->alter_reality)
- chg_virtue(V_DILIGENCE, -1);
+ chg_virtue(p_ptr, V_DILIGENCE, -1);
/* Save the rest code */
p_ptr->resting = command_arg;
if (!(object_is_aware(o_ptr)))
{
- chg_virtue(V_KNOWLEDGE, -1);
- chg_virtue(V_PATIENCE, -1);
- chg_virtue(V_CHANCE, 1);
+ chg_virtue(p_ptr, V_KNOWLEDGE, -1);
+ chg_virtue(p_ptr, V_PATIENCE, -1);
+ chg_virtue(p_ptr, V_CHANCE, 1);
}
/* We have tried it */
if (object_is_cursed(o_ptr))
{
msg_print(_("うわ! すさまじく冷たい!", "Oops! It feels deathly cold!"));
- chg_virtue(V_HARMONY, -1);
+ chg_virtue(p_ptr, V_HARMONY, -1);
/* Note the curse */
o_ptr->ident |= (IDENT_SENSE);
}
if (item_tester_high_level_book(q_ptr) && q_ptr->tval == TV_LIFE_BOOK)
{
- chg_virtue(V_UNLIFE, 1);
- chg_virtue(V_VITALITY, -1);
+ chg_virtue(p_ptr, V_UNLIFE, 1);
+ chg_virtue(p_ptr, V_VITALITY, -1);
}
else if (item_tester_high_level_book(q_ptr) && q_ptr->tval == TV_DEATH_BOOK)
{
- chg_virtue(V_UNLIFE, -1);
- chg_virtue(V_VITALITY, 1);
+ chg_virtue(p_ptr, V_UNLIFE, -1);
+ chg_virtue(p_ptr, V_VITALITY, 1);
}
if (q_ptr->to_a || q_ptr->to_h || q_ptr->to_d)
- chg_virtue(V_ENCHANT, -1);
+ chg_virtue(p_ptr, V_ENCHANT, -1);
if (object_value_real(q_ptr) > 30000)
- chg_virtue(V_SACRIFICE, 2);
+ chg_virtue(p_ptr, V_SACRIFICE, 2);
else if (object_value_real(q_ptr) > 10000)
- chg_virtue(V_SACRIFICE, 1);
+ chg_virtue(p_ptr, V_SACRIFICE, 1);
}
if (q_ptr->to_a != 0 || q_ptr->to_d != 0 || q_ptr->to_h != 0)
- chg_virtue(V_HARMONY, 1);
+ chg_virtue(p_ptr, V_HARMONY, 1);
if (item >= INVEN_RARM) calc_android_exp(p_ptr);
}
msg_print(_("呪文をうまく唱えられなかった!", "You failed to get the magic off!"));
sound(SOUND_FAIL);
if (randint1(100) >= chance)
- chg_virtue(V_CHANCE,-1);
+ chg_virtue(p_ptr, V_CHANCE,-1);
take_turn(p_ptr, 100);
return TRUE;
if (!use_charge) return FALSE;
}
if (randint1(100) < chance)
- chg_virtue(V_CHANCE,1);
+ chg_virtue(p_ptr, V_CHANCE,1);
}
take_turn(p_ptr, 100);
if (tval == TV_ROD) p_ptr->magic_num1[item] += k_info[k_idx].pval * EATER_ROD_CHARGE;
if (!p_ptr->hold_exp && (p_ptr->exp > 0))
{
msg_print(_("過去の記憶が薄れていく気がする。", "You feel your memories fade."));
- chg_virtue(V_KNOWLEDGE, -5);
+ chg_virtue(p_ptr, V_KNOWLEDGE, -5);
lose_exp(p_ptr, p_ptr->exp / 4);
ident = TRUE;
break;
case SV_POTION_DEATH:
- chg_virtue(V_VITALITY, -1);
- chg_virtue(V_UNLIFE, 5);
+ chg_virtue(p_ptr, V_VITALITY, -1);
+ chg_virtue(p_ptr, V_UNLIFE, 5);
msg_print(_("死の予感が体中を駆けめぐった。", "A feeling of Death flows through your body."));
take_hit(DAMAGE_LOSELIFE, 5000, _("死の薬", "a potion of Death"), -1);
ident = TRUE;
case SV_POTION_ENLIGHTENMENT:
msg_print(_("自分の置かれている状況が脳裏に浮かんできた...", "An image of your surroundings forms in your mind..."));
- chg_virtue(V_KNOWLEDGE, 1);
- chg_virtue(V_ENLIGHTEN, 1);
+ chg_virtue(p_ptr, V_KNOWLEDGE, 1);
+ chg_virtue(p_ptr, V_ENLIGHTEN, 1);
wiz_lite(FALSE);
ident = TRUE;
break;
case SV_POTION_STAR_ENLIGHTENMENT:
msg_print(_("更なる啓蒙を感じた...", "You begin to feel more enlightened..."));
- chg_virtue(V_KNOWLEDGE, 1);
- chg_virtue(V_ENLIGHTEN, 2);
+ chg_virtue(p_ptr, V_KNOWLEDGE, 1);
+ chg_virtue(p_ptr, V_ENLIGHTEN, 2);
msg_print(NULL);
wiz_lite(FALSE);
(void)do_inc_stat(p_ptr, A_INT);
case SV_POTION_EXPERIENCE:
if (p_ptr->prace == RACE_ANDROID) break;
- chg_virtue(V_ENLIGHTEN, 1);
+ chg_virtue(p_ptr, V_ENLIGHTEN, 1);
if (p_ptr->exp < PY_MAX_EXP)
{
EXP ee = (p_ptr->exp / 2) + 10;
if (!(object_is_aware(q_ptr)))
{
- chg_virtue(V_PATIENCE, -1);
- chg_virtue(V_CHANCE, 1);
- chg_virtue(V_KNOWLEDGE, -1);
+ chg_virtue(p_ptr, V_PATIENCE, -1);
+ chg_virtue(p_ptr, V_CHANCE, 1);
+ chg_virtue(p_ptr, V_KNOWLEDGE, -1);
}
/* The item has been tried */
if (!(object_is_aware(o_ptr)))
{
- chg_virtue(V_PATIENCE, -1);
- chg_virtue(V_CHANCE, 1);
- chg_virtue(V_KNOWLEDGE, -1);
+ chg_virtue(p_ptr, V_PATIENCE, -1);
+ chg_virtue(p_ptr, V_CHANCE, 1);
+ chg_virtue(p_ptr, V_KNOWLEDGE, -1);
}
/* The item was tried */
switch (mp_ptr->spell_book)
{
case TV_LIFE_BOOK:
- chg_virtue(V_FAITH, 1);
+ chg_virtue(p_ptr, V_FAITH, 1);
break;
case TV_DEATH_BOOK:
- chg_virtue(V_UNLIFE, 1);
+ chg_virtue(p_ptr, V_UNLIFE, 1);
break;
case TV_NATURE_BOOK:
- chg_virtue(V_NATURE, 1);
+ chg_virtue(p_ptr, V_NATURE, 1);
break;
default:
- chg_virtue(V_KNOWLEDGE, 1);
+ chg_virtue(p_ptr, V_KNOWLEDGE, 1);
break;
}
switch (realm)
{
case REALM_LIFE:
- if (randint1(100) < chance) chg_virtue(V_VITALITY, -1);
+ if (randint1(100) < chance) chg_virtue(p_ptr, V_VITALITY, -1);
break;
case REALM_DEATH:
- if (randint1(100) < chance) chg_virtue(V_UNLIFE, -1);
+ if (randint1(100) < chance) chg_virtue(p_ptr, V_UNLIFE, -1);
break;
case REALM_NATURE:
- if (randint1(100) < chance) chg_virtue(V_NATURE, -1);
+ if (randint1(100) < chance) chg_virtue(p_ptr, V_NATURE, -1);
break;
case REALM_DAEMON:
- if (randint1(100) < chance) chg_virtue(V_JUSTICE, 1);
+ if (randint1(100) < chance) chg_virtue(p_ptr, V_JUSTICE, 1);
break;
case REALM_CRUSADE:
- if (randint1(100) < chance) chg_virtue(V_JUSTICE, -1);
+ if (randint1(100) < chance) chg_virtue(p_ptr, V_JUSTICE, -1);
break;
case REALM_HEX:
- if (randint1(100) < chance) chg_virtue(V_COMPASSION, -1);
+ if (randint1(100) < chance) chg_virtue(p_ptr, V_COMPASSION, -1);
break;
default:
- if (randint1(100) < chance) chg_virtue(V_KNOWLEDGE, -1);
+ if (randint1(100) < chance) chg_virtue(p_ptr, V_KNOWLEDGE, -1);
break;
}
aggravate_monsters(0);
}
if (randint1(100) >= chance)
- chg_virtue(V_CHANCE, -1);
+ chg_virtue(p_ptr, V_CHANCE, -1);
}
/* Process spell */
if (!do_spell(realm, spell, SPELL_CAST)) return;
if (randint1(100) < chance)
- chg_virtue(V_CHANCE, 1);
+ chg_virtue(p_ptr, V_CHANCE, 1);
/* A spell was cast */
if (!(increment ?
switch (realm)
{
case REALM_LIFE:
- chg_virtue(V_TEMPERANCE, 1);
- chg_virtue(V_COMPASSION, 1);
- chg_virtue(V_VITALITY, 1);
- chg_virtue(V_DILIGENCE, 1);
+ chg_virtue(p_ptr, V_TEMPERANCE, 1);
+ chg_virtue(p_ptr, V_COMPASSION, 1);
+ chg_virtue(p_ptr, V_VITALITY, 1);
+ chg_virtue(p_ptr, V_DILIGENCE, 1);
break;
case REALM_DEATH:
- chg_virtue(V_UNLIFE, 1);
- chg_virtue(V_JUSTICE, -1);
- chg_virtue(V_FAITH, -1);
- chg_virtue(V_VITALITY, -1);
+ chg_virtue(p_ptr, V_UNLIFE, 1);
+ chg_virtue(p_ptr, V_JUSTICE, -1);
+ chg_virtue(p_ptr, V_FAITH, -1);
+ chg_virtue(p_ptr, V_VITALITY, -1);
break;
case REALM_DAEMON:
- chg_virtue(V_JUSTICE, -1);
- chg_virtue(V_FAITH, -1);
- chg_virtue(V_HONOUR, -1);
- chg_virtue(V_TEMPERANCE, -1);
+ chg_virtue(p_ptr, V_JUSTICE, -1);
+ chg_virtue(p_ptr, V_FAITH, -1);
+ chg_virtue(p_ptr, V_HONOUR, -1);
+ chg_virtue(p_ptr, V_TEMPERANCE, -1);
break;
case REALM_CRUSADE:
- chg_virtue(V_FAITH, 1);
- chg_virtue(V_JUSTICE, 1);
- chg_virtue(V_SACRIFICE, 1);
- chg_virtue(V_HONOUR, 1);
+ chg_virtue(p_ptr, V_FAITH, 1);
+ chg_virtue(p_ptr, V_JUSTICE, 1);
+ chg_virtue(p_ptr, V_SACRIFICE, 1);
+ chg_virtue(p_ptr, V_HONOUR, 1);
break;
case REALM_NATURE:
- chg_virtue(V_NATURE, 1);
- chg_virtue(V_HARMONY, 1);
+ chg_virtue(p_ptr, V_NATURE, 1);
+ chg_virtue(p_ptr, V_HARMONY, 1);
break;
case REALM_HEX:
- chg_virtue(V_JUSTICE, -1);
- chg_virtue(V_FAITH, -1);
- chg_virtue(V_HONOUR, -1);
- chg_virtue(V_COMPASSION, -1);
+ chg_virtue(p_ptr, V_JUSTICE, -1);
+ chg_virtue(p_ptr, V_FAITH, -1);
+ chg_virtue(p_ptr, V_HONOUR, -1);
+ chg_virtue(p_ptr, V_COMPASSION, -1);
break;
default:
- chg_virtue(V_KNOWLEDGE, 1);
+ chg_virtue(p_ptr, V_KNOWLEDGE, 1);
break;
}
}
switch (realm)
{
case REALM_LIFE:
- if (randint1(100 + p_ptr->lev) < need_mana) chg_virtue(V_TEMPERANCE, 1);
- if (randint1(100 + p_ptr->lev) < need_mana) chg_virtue(V_COMPASSION, 1);
- if (randint1(100 + p_ptr->lev) < need_mana) chg_virtue(V_VITALITY, 1);
- if (randint1(100 + p_ptr->lev) < need_mana) chg_virtue(V_DILIGENCE, 1);
+ if (randint1(100 + p_ptr->lev) < need_mana) chg_virtue(p_ptr, V_TEMPERANCE, 1);
+ if (randint1(100 + p_ptr->lev) < need_mana) chg_virtue(p_ptr, V_COMPASSION, 1);
+ if (randint1(100 + p_ptr->lev) < need_mana) chg_virtue(p_ptr, V_VITALITY, 1);
+ if (randint1(100 + p_ptr->lev) < need_mana) chg_virtue(p_ptr, V_DILIGENCE, 1);
break;
case REALM_DEATH:
- if (randint1(100 + p_ptr->lev) < need_mana) chg_virtue(V_UNLIFE, 1);
- if (randint1(100 + p_ptr->lev) < need_mana) chg_virtue(V_JUSTICE, -1);
- if (randint1(100 + p_ptr->lev) < need_mana) chg_virtue(V_FAITH, -1);
- if (randint1(100 + p_ptr->lev) < need_mana) chg_virtue(V_VITALITY, -1);
+ if (randint1(100 + p_ptr->lev) < need_mana) chg_virtue(p_ptr, V_UNLIFE, 1);
+ if (randint1(100 + p_ptr->lev) < need_mana) chg_virtue(p_ptr, V_JUSTICE, -1);
+ if (randint1(100 + p_ptr->lev) < need_mana) chg_virtue(p_ptr, V_FAITH, -1);
+ if (randint1(100 + p_ptr->lev) < need_mana) chg_virtue(p_ptr, V_VITALITY, -1);
break;
case REALM_DAEMON:
- if (randint1(100 + p_ptr->lev) < need_mana) chg_virtue(V_JUSTICE, -1);
- if (randint1(100 + p_ptr->lev) < need_mana) chg_virtue(V_FAITH, -1);
- if (randint1(100 + p_ptr->lev) < need_mana) chg_virtue(V_HONOUR, -1);
- if (randint1(100 + p_ptr->lev) < need_mana) chg_virtue(V_TEMPERANCE, -1);
+ if (randint1(100 + p_ptr->lev) < need_mana) chg_virtue(p_ptr, V_JUSTICE, -1);
+ if (randint1(100 + p_ptr->lev) < need_mana) chg_virtue(p_ptr, V_FAITH, -1);
+ if (randint1(100 + p_ptr->lev) < need_mana) chg_virtue(p_ptr, V_HONOUR, -1);
+ if (randint1(100 + p_ptr->lev) < need_mana) chg_virtue(p_ptr, V_TEMPERANCE, -1);
break;
case REALM_CRUSADE:
- if (randint1(100 + p_ptr->lev) < need_mana) chg_virtue(V_FAITH, 1);
- if (randint1(100 + p_ptr->lev) < need_mana) chg_virtue(V_JUSTICE, 1);
- if (randint1(100 + p_ptr->lev) < need_mana) chg_virtue(V_SACRIFICE, 1);
- if (randint1(100 + p_ptr->lev) < need_mana) chg_virtue(V_HONOUR, 1);
+ if (randint1(100 + p_ptr->lev) < need_mana) chg_virtue(p_ptr, V_FAITH, 1);
+ if (randint1(100 + p_ptr->lev) < need_mana) chg_virtue(p_ptr, V_JUSTICE, 1);
+ if (randint1(100 + p_ptr->lev) < need_mana) chg_virtue(p_ptr, V_SACRIFICE, 1);
+ if (randint1(100 + p_ptr->lev) < need_mana) chg_virtue(p_ptr, V_HONOUR, 1);
break;
case REALM_NATURE:
- if (randint1(100 + p_ptr->lev) < need_mana) chg_virtue(V_NATURE, 1);
- if (randint1(100 + p_ptr->lev) < need_mana) chg_virtue(V_HARMONY, 1);
+ if (randint1(100 + p_ptr->lev) < need_mana) chg_virtue(p_ptr, V_NATURE, 1);
+ if (randint1(100 + p_ptr->lev) < need_mana) chg_virtue(p_ptr, V_HARMONY, 1);
break;
case REALM_HEX:
- if (randint1(100 + p_ptr->lev) < need_mana) chg_virtue(V_JUSTICE, -1);
- if (randint1(100 + p_ptr->lev) < need_mana) chg_virtue(V_FAITH, -1);
- if (randint1(100 + p_ptr->lev) < need_mana) chg_virtue(V_HONOUR, -1);
- if (randint1(100 + p_ptr->lev) < need_mana) chg_virtue(V_COMPASSION, -1);
+ if (randint1(100 + p_ptr->lev) < need_mana) chg_virtue(p_ptr, V_JUSTICE, -1);
+ if (randint1(100 + p_ptr->lev) < need_mana) chg_virtue(p_ptr, V_FAITH, -1);
+ if (randint1(100 + p_ptr->lev) < need_mana) chg_virtue(p_ptr, V_HONOUR, -1);
+ if (randint1(100 + p_ptr->lev) < need_mana) chg_virtue(p_ptr, V_COMPASSION, -1);
break;
}
if (mp_ptr->spell_xtra & MAGIC_GAIN_EXP)
switch (realm)
{
case REALM_LIFE:
- chg_virtue(V_VITALITY, -10);
+ chg_virtue(p_ptr, V_VITALITY, -10);
break;
case REALM_DEATH:
- chg_virtue(V_UNLIFE, -10);
+ chg_virtue(p_ptr, V_UNLIFE, -10);
break;
case REALM_DAEMON:
- chg_virtue(V_JUSTICE, 10);
+ chg_virtue(p_ptr, V_JUSTICE, 10);
break;
case REALM_NATURE:
- chg_virtue(V_NATURE, -10);
+ chg_virtue(p_ptr, V_NATURE, -10);
break;
case REALM_CRUSADE:
- chg_virtue(V_JUSTICE, -10);
+ chg_virtue(p_ptr, V_JUSTICE, -10);
break;
case REALM_HEX:
- chg_virtue(V_COMPASSION, 10);
+ chg_virtue(p_ptr, V_COMPASSION, 10);
break;
default:
- chg_virtue(V_KNOWLEDGE, -10);
+ chg_virtue(p_ptr, V_KNOWLEDGE, -10);
break;
}
if (!(object_is_aware(o_ptr)))
{
- chg_virtue(V_PATIENCE, -1);
- chg_virtue(V_CHANCE, 1);
- chg_virtue(V_KNOWLEDGE, -1);
+ chg_virtue(p_ptr, V_PATIENCE, -1);
+ chg_virtue(p_ptr, V_CHANCE, 1);
+ chg_virtue(p_ptr, V_KNOWLEDGE, -1);
}
p_ptr->update |= (PU_COMBINE | PU_REORDER);
if (!(object_is_aware(o_ptr)))
{
- chg_virtue(V_PATIENCE, -1);
- chg_virtue(V_CHANCE, 1);
- chg_virtue(V_KNOWLEDGE, -1);
+ chg_virtue(p_ptr, V_PATIENCE, -1);
+ chg_virtue(p_ptr, V_CHANCE, 1);
+ chg_virtue(p_ptr, V_KNOWLEDGE, -1);
}
/* Tried the object */
}
}
if (sval < SV_WAND_TELEPORT_AWAY)
- chg_virtue(V_CHANCE, 1);
+ chg_virtue(p_ptr, V_CHANCE, 1);
}
/* Analyze the wand */
if (!(object_is_aware(o_ptr)))
{
- chg_virtue(V_PATIENCE, -1);
- chg_virtue(V_CHANCE, 1);
- chg_virtue(V_KNOWLEDGE, -1);
+ chg_virtue(p_ptr, V_PATIENCE, -1);
+ chg_virtue(p_ptr, V_CHANCE, 1);
+ chg_virtue(p_ptr, V_KNOWLEDGE, -1);
}
/* Mark it as tried */
/* Insert the new item */
st_ptr->stock[slot] = *o_ptr;
- chg_virtue(V_SACRIFICE, -1);
+ chg_virtue(p_ptr, V_SACRIFICE, -1);
/* Return the location */
return;
if ((have_flag(flgs, TR_CHAOTIC)) && one_in_(2))
{
if (one_in_(10))
- chg_virtue(V_CHANCE, 1);
+ chg_virtue(p_ptr, V_CHANCE, 1);
if (randint1(5) < 3)
{
{
if (one_in_(4))
{
- chg_virtue(V_UNLIFE, 1);
+ chg_virtue(p_ptr, V_UNLIFE, 1);
}
}
/* Mega-Hack -- apply earthquake brand */
if (stormbringer)
{
msg_format(_("黒い刃は強欲に%sを攻撃した!", "Your black blade greedily attacks %s!"), m_name);
- chg_virtue(V_INDIVIDUALISM, 1);
- chg_virtue(V_HONOUR, -1);
- chg_virtue(V_JUSTICE, -1);
- chg_virtue(V_COMPASSION, -1);
+ chg_virtue(p_ptr, V_INDIVIDUALISM, 1);
+ chg_virtue(p_ptr, V_HONOUR, -1);
+ chg_virtue(p_ptr, V_JUSTICE, -1);
+ chg_virtue(p_ptr, V_COMPASSION, -1);
}
else if (p_ptr->pclass != CLASS_BERSERKER)
{
if (get_check(_("本当に攻撃しますか?", "Really hit it? ")))
{
- chg_virtue(V_INDIVIDUALISM, 1);
- chg_virtue(V_HONOUR, -1);
- chg_virtue(V_JUSTICE, -1);
- chg_virtue(V_COMPASSION, -1);
+ chg_virtue(p_ptr, V_INDIVIDUALISM, 1);
+ chg_virtue(p_ptr, V_HONOUR, -1);
+ chg_virtue(p_ptr, V_JUSTICE, -1);
+ chg_virtue(p_ptr, V_COMPASSION, -1);
}
else
{
if (MON_CSLEEP(m_ptr)) /* It is not honorable etc to attack helpless victims */
{
- if (!(r_ptr->flags3 & RF3_EVIL) || one_in_(5)) chg_virtue(V_COMPASSION, -1);
- if (!(r_ptr->flags3 & RF3_EVIL) || one_in_(5)) chg_virtue(V_HONOUR, -1);
+ if (!(r_ptr->flags3 & RF3_EVIL) || one_in_(5)) chg_virtue(p_ptr, V_COMPASSION, -1);
+ if (!(r_ptr->flags3 & RF3_EVIL) || one_in_(5)) chg_virtue(p_ptr, V_HONOUR, -1);
}
if (p_ptr->migite && p_ptr->hidarite)
{
msg_print(_("財布が軽くなった気がする。", "Your purse feels lighter."));
msg_format(_("$%ld のお金が盗まれた!", "%ld coins were stolen!"), (long)gold);
- chg_virtue(V_SACRIFICE, 1);
+ chg_virtue(p_ptr, V_SACRIFICE, 1);
}
else
{
msg_print(_("財布が軽くなった気がする。", "Your purse feels lighter."));
msg_print(_("お金が全部盗まれた!", "All of your coins were stolen!"));
- chg_virtue(V_SACRIFICE, 2);
+ chg_virtue(p_ptr, V_SACRIFICE, 2);
}
/* Redraw gold */
#else
msg_format("%sour %s (%c) was stolen!", ((o_ptr->number > 1) ? "One of y" : "Y"), o_name, index_to_label(i));
#endif
- chg_virtue(V_SACRIFICE, 1);
+ chg_virtue(p_ptr, V_SACRIFICE, 1);
o_idx = o_pop();
/* Success */
case 0: /* Precog */
if (plev > 44)
{
- chg_virtue(V_KNOWLEDGE, 1);
- chg_virtue(V_ENLIGHTEN, 1);
+ chg_virtue(p_ptr, V_KNOWLEDGE, 1);
+ chg_virtue(p_ptr, V_ENLIGHTEN, 1);
wiz_lite(FALSE);
}
else if (plev > 19)
msg_format(_("%^sは戦いを決意した!", "%^s turns to fight!"), m_name);
}
- if (m_ptr->ml) chg_virtue(V_COMPASSION, -1);
+ if (m_ptr->ml) chg_virtue(p_ptr, V_COMPASSION, -1);
/* Actually do something now (?) */
}
{
if (!current_floor_ptr->dun_level && !p_ptr->ambush_flag && !p_ptr->inside_arena)
{
- chg_virtue(V_VALOUR, -1);
+ chg_virtue(p_ptr, V_VALOUR, -1);
}
else if (r_ptr->level > current_floor_ptr->dun_level)
{
if (randint1(10) <= (r_ptr->level - current_floor_ptr->dun_level))
- chg_virtue(V_VALOUR, 1);
+ chg_virtue(p_ptr, V_VALOUR, 1);
}
if (r_ptr->level > 60)
{
- chg_virtue(V_VALOUR, 1);
+ chg_virtue(p_ptr, V_VALOUR, 1);
}
if (r_ptr->level >= 2 * (p_ptr->lev + 1))
- chg_virtue(V_VALOUR, 2);
+ chg_virtue(p_ptr, V_VALOUR, 2);
}
if (r_ptr->flags1 & RF1_UNIQUE)
{
- if (r_ptr->flags3 & (RF3_EVIL | RF3_GOOD)) chg_virtue(V_HARMONY, 2);
+ if (r_ptr->flags3 & (RF3_EVIL | RF3_GOOD)) chg_virtue(p_ptr, V_HARMONY, 2);
if (r_ptr->flags3 & RF3_GOOD)
{
- chg_virtue(V_UNLIFE, 2);
- chg_virtue(V_VITALITY, -2);
+ chg_virtue(p_ptr, V_UNLIFE, 2);
+ chg_virtue(p_ptr, V_VITALITY, -2);
}
- if (one_in_(3)) chg_virtue(V_INDIVIDUALISM, -1);
+ if (one_in_(3)) chg_virtue(p_ptr, V_INDIVIDUALISM, -1);
}
if (m_ptr->r_idx == MON_BEGGAR || m_ptr->r_idx == MON_LEPER)
{
- chg_virtue(V_COMPASSION, -1);
+ chg_virtue(p_ptr, V_COMPASSION, -1);
}
if ((r_ptr->flags3 & RF3_GOOD) && ((r_ptr->level) / 10 + (3 * current_floor_ptr->dun_level) >= randint1(100)))
- chg_virtue(V_UNLIFE, 1);
+ chg_virtue(p_ptr, V_UNLIFE, 1);
if (r_ptr->d_char == 'A')
{
if (r_ptr->flags1 & RF1_UNIQUE)
- chg_virtue(V_FAITH, -2);
+ chg_virtue(p_ptr, V_FAITH, -2);
else if ((r_ptr->level) / 10 + (3 * current_floor_ptr->dun_level) >= randint1(100))
{
- if (r_ptr->flags3 & RF3_GOOD) chg_virtue(V_FAITH, -1);
- else chg_virtue(V_FAITH, 1);
+ if (r_ptr->flags3 & RF3_GOOD) chg_virtue(p_ptr, V_FAITH, -1);
+ else chg_virtue(p_ptr, V_FAITH, 1);
}
}
else if (r_ptr->flags3 & RF3_DEMON)
{
if (r_ptr->flags1 & RF1_UNIQUE)
- chg_virtue(V_FAITH, 2);
+ chg_virtue(p_ptr, V_FAITH, 2);
else if ((r_ptr->level) / 10 + (3 * current_floor_ptr->dun_level) >= randint1(100))
- chg_virtue(V_FAITH, 1);
+ chg_virtue(p_ptr, V_FAITH, 1);
}
if ((r_ptr->flags3 & RF3_UNDEAD) && (r_ptr->flags1 & RF1_UNIQUE))
- chg_virtue(V_VITALITY, 2);
+ chg_virtue(p_ptr, V_VITALITY, 2);
if (r_ptr->r_deaths)
{
if (r_ptr->flags1 & RF1_UNIQUE)
{
- chg_virtue(V_HONOUR, 10);
+ chg_virtue(p_ptr, V_HONOUR, 10);
}
else if ((r_ptr->level) / 10 + (2 * current_floor_ptr->dun_level) >= randint1(100))
{
- chg_virtue(V_HONOUR, 1);
+ chg_virtue(p_ptr, V_HONOUR, 1);
}
}
if ((r_ptr->flags2 & RF2_MULTIPLY) && (r_ptr->r_akills > 1000) && one_in_(10))
{
- chg_virtue(V_VALOUR, -1);
+ chg_virtue(p_ptr, V_VALOUR, -1);
}
for (i = 0; i < 4; i++)
if (thief)
{
if (r_ptr->flags1 & RF1_UNIQUE)
- chg_virtue(V_JUSTICE, 3);
+ chg_virtue(p_ptr, V_JUSTICE, 3);
else if (1 + ((r_ptr->level) / 10 + (2 * current_floor_ptr->dun_level)) >= randint1(100))
- chg_virtue(V_JUSTICE, 1);
+ chg_virtue(p_ptr, V_JUSTICE, 1);
}
else if (innocent)
{
- chg_virtue(V_JUSTICE, -1);
+ chg_virtue(p_ptr, V_JUSTICE, -1);
}
if ((r_ptr->flags3 & RF3_ANIMAL) && !(r_ptr->flags3 & RF3_EVIL) && !(r_ptr->flags4 & ~(RF4_NOMAGIC_MASK)) && !(r_ptr->a_ability_flags1 & ~(RF5_NOMAGIC_MASK)) && !(r_ptr->a_ability_flags2 & ~(RF6_NOMAGIC_MASK)))
{
- if (one_in_(4)) chg_virtue(V_NATURE, -1);
+ if (one_in_(4)) chg_virtue(p_ptr, V_NATURE, -1);
}
if ((r_ptr->flags1 & RF1_UNIQUE) && record_destroy_uniq)
set_hostile(m_ptr);
- chg_virtue(V_INDIVIDUALISM, 1);
- chg_virtue(V_HONOUR, -1);
- chg_virtue(V_JUSTICE, -1);
- chg_virtue(V_COMPASSION, -1);
+ chg_virtue(p_ptr, V_INDIVIDUALISM, 1);
+ chg_virtue(p_ptr, V_HONOUR, -1);
+ chg_virtue(p_ptr, V_JUSTICE, -1);
+ chg_virtue(p_ptr, V_COMPASSION, -1);
}
}
/* Hack -- Bypass free action */
(void)set_paralyzed(p_ptr, p_ptr->paralyzed + randint1(5 * oops + 1));
- chg_virtue(V_KNOWLEDGE, -10);
+ chg_virtue(p_ptr, V_KNOWLEDGE, -10);
/* Damage CON (possibly permanently) */
if (randint0(100) < 50)
}
else
{
- chg_virtue(V_CHANCE, 1);
+ chg_virtue(p_ptr, V_CHANCE, 1);
/*
some races are apt to gain specified mutations
{
if (creature_ptr->muta1 || creature_ptr->muta2 || creature_ptr->muta3)
{
- chg_virtue(V_CHANCE, -5);
+ chg_virtue(p_ptr, V_CHANCE, -5);
msg_print(_("全ての突然変異が治った。", "You are cured of all mutations."));
creature_ptr->muta1 = creature_ptr->muta2 = creature_ptr->muta3 = 0;
creature_ptr->update |= PU_BONUS;
if (damage_type != DAMAGE_GENO && p_ptr->chp == 0)
{
- chg_virtue(V_SACRIFICE, 1);
- chg_virtue(V_CHANCE, 2);
+ chg_virtue(p_ptr, V_SACRIFICE, 1);
+ chg_virtue(p_ptr, V_CHANCE, 2);
}
/* Dead player */
sound(SOUND_DEATH);
- chg_virtue(V_SACRIFICE, 10);
+ chg_virtue(p_ptr, V_SACRIFICE, 10);
handle_stuff();
p_ptr->leaving = TRUE;
}
notice = TRUE;
- chg_virtue(V_ENLIGHTEN, -1);
+ chg_virtue(p_ptr, V_ENLIGHTEN, -1);
}
}
notice = TRUE;
creature_ptr->counter = FALSE;
- chg_virtue(V_HARMONY, -1);
+ chg_virtue(p_ptr, V_HARMONY, -1);
}
}
notice = TRUE;
creature_ptr->counter = FALSE;
- chg_virtue(V_VALOUR, -1);
+ chg_virtue(p_ptr, V_VALOUR, -1);
}
}
{
msg_print(_("素早く動けるようになった!", "You feel yourself moving much faster!"));
notice = TRUE;
- chg_virtue(V_PATIENCE, -1);
- chg_virtue(V_DILIGENCE, 1);
+ chg_virtue(p_ptr, V_PATIENCE, -1);
+ chg_virtue(p_ptr, V_DILIGENCE, 1);
}
}
{
msg_print(_("非常に素早く動けるようになった!", "You feel yourself moving extremely faster!"));
notice = TRUE;
- chg_virtue(V_PATIENCE, -1);
- chg_virtue(V_DILIGENCE, 1);
+ chg_virtue(p_ptr, V_PATIENCE, -1);
+ chg_virtue(p_ptr, V_DILIGENCE, 1);
}
}
{
msg_print(_("物質界を離れて幽鬼のような存在になった!", "You leave the physical world and current_world_ptr->game_turn into a wraith-being!"));
notice = TRUE;
- chg_virtue(V_UNLIFE, 3);
- chg_virtue(V_HONOUR, -2);
- chg_virtue(V_SACRIFICE, -2);
- chg_virtue(V_VALOUR, -5);
+ chg_virtue(p_ptr, V_UNLIFE, 3);
+ chg_virtue(p_ptr, V_HONOUR, -2);
+ chg_virtue(p_ptr, V_SACRIFICE, -2);
+ chg_virtue(p_ptr, V_VALOUR, -5);
creature_ptr->redraw |= (PR_MAP);
creature_ptr->update |= (PU_MONSTERS);
msg_print(_("無敵だ!", "Invulnerability!"));
notice = TRUE;
- chg_virtue(V_UNLIFE, -2);
- chg_virtue(V_HONOUR, -2);
- chg_virtue(V_SACRIFICE, -3);
- chg_virtue(V_VALOUR, -5);
+ chg_virtue(p_ptr, V_UNLIFE, -2);
+ chg_virtue(p_ptr, V_HONOUR, -2);
+ chg_virtue(p_ptr, V_SACRIFICE, -3);
+ chg_virtue(p_ptr, V_VALOUR, -5);
creature_ptr->redraw |= (PR_MAP);
creature_ptr->update |= (PU_MONSTERS);
{
msg_print(_("「オクレ兄さん!」", "Brother OKURE!"));
notice = TRUE;
- chg_virtue(V_VITALITY, 2);
+ chg_virtue(p_ptr, V_VITALITY, 2);
}
}
(void)dec_stat(creature_ptr, A_STR, 20, TRUE);
notice = TRUE;
- chg_virtue(V_VITALITY, -3);
+ chg_virtue(p_ptr, V_VITALITY, -3);
}
}
}
if (old_aux < 1 && new_aux > 0)
- chg_virtue(V_PATIENCE, 2);
+ chg_virtue(p_ptr, V_PATIENCE, 2);
else if (old_aux < 3 && (old_aux != new_aux))
- chg_virtue(V_PATIENCE, 1);
+ chg_virtue(p_ptr, V_PATIENCE, 1);
if (old_aux == 2)
- chg_virtue(V_TEMPERANCE, 1);
+ chg_virtue(p_ptr, V_TEMPERANCE, 1);
if (old_aux == 0)
- chg_virtue(V_TEMPERANCE, -1);
+ chg_virtue(p_ptr, V_TEMPERANCE, -1);
/* Food increase */
if (new_aux > old_aux)
/* Bloated */
case 5:
msg_print(_("食べ過ぎだ!", "You have gorged yourself!"));
- chg_virtue(V_HARMONY, -1);
- chg_virtue(V_PATIENCE, -1);
- chg_virtue(V_TEMPERANCE, -2);
+ chg_virtue(p_ptr, V_HARMONY, -1);
+ chg_virtue(p_ptr, V_PATIENCE, -1);
+ chg_virtue(p_ptr, V_TEMPERANCE, -2);
break;
}
/* Damage "max" value */
if (permanent && (max > 3))
{
- chg_virtue(V_SACRIFICE, 1);
+ chg_virtue(p_ptr, V_SACRIFICE, 1);
if (stat == A_WIS || stat == A_INT)
- chg_virtue(V_ENLIGHTEN, -2);
+ chg_virtue(p_ptr, V_ENLIGHTEN, -2);
/* Handle "low" values */
if (max <= 18)
if (creature_ptr->chp < creature_ptr->mhp)
{
if ((num > 0) && (creature_ptr->chp < (creature_ptr->mhp/3)))
- chg_virtue(V_TEMPERANCE, 1);
+ chg_virtue(p_ptr, V_TEMPERANCE, 1);
/* Gain hitpoints */
creature_ptr->chp += num;
{
if (stat == A_WIS)
{
- chg_virtue(V_ENLIGHTEN, 1);
- chg_virtue(V_FAITH, 1);
+ chg_virtue(p_ptr, V_ENLIGHTEN, 1);
+ chg_virtue(p_ptr, V_FAITH, 1);
}
else if (stat == A_INT)
{
- chg_virtue(V_KNOWLEDGE, 1);
- chg_virtue(V_ENLIGHTEN, 1);
+ chg_virtue(p_ptr, V_KNOWLEDGE, 1);
+ chg_virtue(p_ptr, V_ENLIGHTEN, 1);
}
else if (stat == A_CON)
- chg_virtue(V_VITALITY, 1);
+ chg_virtue(p_ptr, V_VITALITY, 1);
msg_format(_("ワーオ!とても%sなった!", "Wow! You feel very %s!"), desc_stat_pos[stat]);
{
int i;
- chg_virtue(V_KNOWLEDGE, -5);
- chg_virtue(V_ENLIGHTEN, -5);
+ chg_virtue(p_ptr, V_KNOWLEDGE, -5);
+ chg_virtue(p_ptr, V_ENLIGHTEN, -5);
/* Forget info about objects */
for (i = 0; i < INVEN_TOTAL; i++)
msg_format("You current_world_ptr->game_turn into %s %s%s!", (!effect_msg[0] && is_a_vowel(title[0]) ? "an" : "a"), effect_msg, title);
#endif
- chg_virtue(V_CHANCE, 2);
+ chg_virtue(p_ptr, V_CHANCE, 2);
if (creature_ptr->prace < 32)
{
int power = creature_ptr->lev;
msg_print(_("あなたは変化の訪れを感じた...", "You feel a change coming over you..."));
- chg_virtue(V_CHANCE, 1);
+ chg_virtue(p_ptr, V_CHANCE, 1);
if ((power > randint0(20)) && one_in_(3) && (creature_ptr->prace != RACE_ANDROID))
{
msg_print(_("今の装備はどうも自分にふさわしくない気がする。", "You do not feel comfortable with your weapon."));
if (current_world_ptr->is_loading_now)
{
- chg_virtue(V_FAITH, -1);
+ chg_virtue(p_ptr, V_FAITH, -1);
}
}
else if (has_melee_weapon(INVEN_RARM + i))
msg_print(_("装備が重くてバランスを取れない。", "The weight of your armor disrupts your balance."));
if (current_world_ptr->is_loading_now)
{
- chg_virtue(V_HARMONY, -1);
+ chg_virtue(p_ptr, V_HARMONY, -1);
}
}
else
if (cast)
{
- chg_virtue(V_KNOWLEDGE, 1);
- chg_virtue(V_ENLIGHTEN, 1);
+ chg_virtue(p_ptr, V_KNOWLEDGE, 1);
+ chg_virtue(p_ptr, V_ENLIGHTEN, 1);
wiz_lite(FALSE);
if (hypodynamic_bolt(dir, dam))
{
- chg_virtue(V_SACRIFICE, -1);
- chg_virtue(V_VITALITY, -1);
+ chg_virtue(p_ptr, V_SACRIFICE, -1);
+ chg_virtue(p_ptr, V_VITALITY, -1);
hp_player(p_ptr, dam);
if (!get_aim_dir(&dir)) return NULL;
- chg_virtue(V_SACRIFICE, -1);
- chg_virtue(V_VITALITY, -1);
+ chg_virtue(p_ptr, V_SACRIFICE, -1);
+ chg_virtue(p_ptr, V_VITALITY, -1);
for (i = 0; i < 3; i++)
{
if (cast)
{
fire_ball(GF_LITE, 0, dam, rad);
- chg_virtue(V_KNOWLEDGE, 1);
- chg_virtue(V_ENLIGHTEN, 1);
+ chg_virtue(p_ptr, V_KNOWLEDGE, 1);
+ chg_virtue(p_ptr, V_ENLIGHTEN, 1);
wiz_lite(FALSE);
if ((PRACE_IS_(p_ptr, RACE_VAMPIRE) || (p_ptr->mimic_form == MIMIC_VAMPIRE)) && !p_ptr->resist_lite)
if (cast)
{
- chg_virtue(V_KNOWLEDGE, 1);
- chg_virtue(V_ENLIGHTEN, 1);
+ chg_virtue(p_ptr, V_KNOWLEDGE, 1);
+ chg_virtue(p_ptr, V_ENLIGHTEN, 1);
wiz_lite(FALSE);
info[i++] = buf[0];
info[i++] = "";
- chg_virtue(V_KNOWLEDGE, 1);
- chg_virtue(V_ENLIGHTEN, 1);
+ chg_virtue(p_ptr, V_KNOWLEDGE, 1);
+ chg_virtue(p_ptr, V_ENLIGHTEN, 1);
/* Acquire item flags from equipment */
for (k = INVEN_RARM; k < INVEN_TOTAL; k++)
if (MON_CSLEEP(m_ptr))
{
- if (!(r_ptr->flags3 & RF3_EVIL) || one_in_(5)) chg_virtue(V_COMPASSION, -1);
- if (!(r_ptr->flags3 & RF3_EVIL) || one_in_(5)) chg_virtue(V_HONOUR, -1);
+ if (!(r_ptr->flags3 & RF3_EVIL) || one_in_(5)) chg_virtue(p_ptr, V_COMPASSION, -1);
+ if (!(r_ptr->flags3 & RF3_EVIL) || one_in_(5)) chg_virtue(p_ptr, V_HONOUR, -1);
}
if ((r_ptr->level + 10) > p_ptr->lev)
else
{
msg_format(_("恐怖の暗黒オーラがあなたの%sを包み込んだ!", "A terrible black aura blasts your %s!"), o_name);
- chg_virtue(V_ENCHANT, -5);
+ chg_virtue(p_ptr, V_ENCHANT, -5);
/* Blast the armor */
o_ptr->name1 = 0;
else
{
if (!force) msg_format(_("恐怖の暗黒オーラがあなたの%sを包み込んだ!", "A terrible black aura blasts your %s!"), o_name);
- chg_virtue(V_ENCHANT, -5);
+ chg_virtue(p_ptr, V_ENCHANT, -5);
/* Shatter the weapon */
o_ptr->name1 = 0;
enchant(o_ptr, randint0(3) + 4, ENCH_TOAC);
o_ptr->discount = 99;
- chg_virtue(V_ENCHANT, 2);
+ chg_virtue(p_ptr, V_ENCHANT, 2);
return TRUE;
}
if (flush_failure) flush();
msg_print(_("失敗した。", "Failed."));
- chg_virtue(V_ENCHANT, -2);
+ chg_virtue(p_ptr, V_ENCHANT, -2);
}
calc_android_exp(p_ptr);
{
if (flush_failure) flush();
msg_print(_("強化に失敗した。", "The enchantment failed."));
- if (one_in_(3)) chg_virtue(V_ENCHANT, -1);
+ if (one_in_(3)) chg_virtue(p_ptr, V_ENCHANT, -1);
}
else
- chg_virtue(V_ENCHANT, 1);
+ chg_virtue(p_ptr, V_ENCHANT, 1);
calc_android_exp(p_ptr);
enchant(o_ptr, randint0(3) + 4, ENCH_TOHIT | ENCH_TODAM);
o_ptr->discount = 99;
- chg_virtue(V_ENCHANT, 2);
+ chg_virtue(p_ptr, V_ENCHANT, 2);
}
else
{
if (flush_failure) flush();
msg_print(_("属性付加に失敗した。", "The Branding failed."));
- chg_virtue(V_ENCHANT, -2);
+ chg_virtue(p_ptr, V_ENCHANT, -2);
}
calc_android_exp(p_ptr);
}
BIT_FLAGS flg = PROJECT_STOP | PROJECT_KILL | PROJECT_REFLECTABLE;
bool tester = (project_hook(GF_OLD_POLY, dir, power, flg));
if (tester)
- chg_virtue(V_CHANCE, 1);
+ chg_virtue(p_ptr, V_CHANCE, 1);
return(tester);
}
{
if (virtue_change)
{
- chg_virtue(V_VITALITY, 1);
- chg_virtue(V_UNLIFE, -5);
+ chg_virtue(p_ptr, V_VITALITY, 1);
+ chg_virtue(p_ptr, V_UNLIFE, -5);
}
if (message)
{
if (!who)
{
- chg_virtue(V_VITALITY, 1);
+ chg_virtue(p_ptr, V_VITALITY, 1);
if (r_ptr->flags1 & RF1_UNIQUE)
- chg_virtue(V_INDIVIDUALISM, 1);
+ chg_virtue(p_ptr, V_INDIVIDUALISM, 1);
if (is_friendly(m_ptr))
- chg_virtue(V_HONOUR, 1);
+ chg_virtue(p_ptr, V_HONOUR, 1);
else if (!(r_ptr->flags3 & RF3_EVIL))
{
if (r_ptr->flags3 & RF3_GOOD)
- chg_virtue(V_COMPASSION, 2);
+ chg_virtue(p_ptr, V_COMPASSION, 2);
else
- chg_virtue(V_COMPASSION, 1);
+ chg_virtue(p_ptr, V_COMPASSION, 1);
}
if (r_ptr->flags3 & RF3_ANIMAL)
- chg_virtue(V_NATURE, 1);
+ chg_virtue(p_ptr, V_NATURE, 1);
}
if (m_ptr->r_idx == MON_LEPER)
{
heal_leper = TRUE;
- if (!who) chg_virtue(V_COMPASSION, 5);
+ if (!who) chg_virtue(p_ptr, V_COMPASSION, 5);
}
/* Redraw (later) if needed */
if (!who)
{
if (r_ptr->flags1 & RF1_UNIQUE)
- chg_virtue(V_INDIVIDUALISM, 1);
+ chg_virtue(p_ptr, V_INDIVIDUALISM, 1);
if (is_friendly(m_ptr))
- chg_virtue(V_HONOUR, 1);
+ chg_virtue(p_ptr, V_HONOUR, 1);
}
/* No "real" damage */
note = _("は突然友好的になったようだ!", " suddenly seems friendly!");
set_pet(m_ptr);
- chg_virtue(V_INDIVIDUALISM, -1);
+ chg_virtue(p_ptr, V_INDIVIDUALISM, -1);
if (r_ptr->flags3 & RF3_ANIMAL)
- chg_virtue(V_NATURE, 1);
+ chg_virtue(p_ptr, V_NATURE, 1);
}
/* No "real" damage */
note = _("はなついた。", " is tamed!");
set_pet(m_ptr);
if (r_ptr->flags3 & RF3_ANIMAL)
- chg_virtue(V_NATURE, 1);
+ chg_virtue(p_ptr, V_NATURE, 1);
}
/* No "real" damage */
note = _("を支配した。", " is tamed!");
set_pet(m_ptr);
if (r_ptr->flags3 & RF3_ANIMAL)
- chg_virtue(V_NATURE, 1);
+ chg_virtue(p_ptr, V_NATURE, 1);
}
/* No "real" damage */
if (genocide_aux(g_ptr->m_idx, dam, !who, (r_ptr->level + 1) / 2, _("モンスター消滅", "Genocide One")))
{
if (seen_msg) msg_format(_("%sは消滅した!", "%^s disappered!"), m_name);
- chg_virtue(V_VITALITY, -1);
+ chg_virtue(p_ptr, V_VITALITY, -1);
return TRUE;
}
if (!who && slept)
{
- if (!(r_ptr->flags3 & RF3_EVIL) || one_in_(5)) chg_virtue(V_COMPASSION, -1);
- if (!(r_ptr->flags3 & RF3_EVIL) || one_in_(5)) chg_virtue(V_HONOUR, -1);
+ if (!(r_ptr->flags3 & RF3_EVIL) || one_in_(5)) chg_virtue(p_ptr, V_COMPASSION, -1);
+ if (!(r_ptr->flags3 & RF3_EVIL) || one_in_(5)) chg_virtue(p_ptr, V_HONOUR, -1);
}
/* Modify the damage */
note = _("が消え去った!", " disappears!");
- if (!who) chg_virtue(V_VALOUR, -1);
+ if (!who) chg_virtue(p_ptr, V_VALOUR, -1);
/* Teleport */
teleport_away(g_ptr->m_idx, do_dist,
{
bool tester = (project_all_los(GF_TURN_UNDEAD, p_ptr->lev));
if (tester)
- chg_virtue(V_UNLIFE, -1);
+ chg_virtue(p_ptr, V_UNLIFE, -1);
return tester;
}
{
bool tester = (project_all_los(GF_DISP_UNDEAD, dam));
if (tester)
- chg_virtue(V_UNLIFE, -2);
+ chg_virtue(p_ptr, V_UNLIFE, -2);
return tester;
}
if (result)
{
- chg_virtue(V_VITALITY, -2);
- chg_virtue(V_CHANCE, -1);
+ chg_virtue(p_ptr, V_VITALITY, -2);
+ chg_virtue(p_ptr, V_CHANCE, -1);
}
return result;
if (result)
{
- chg_virtue(V_VITALITY, -2);
- chg_virtue(V_CHANCE, -1);
+ chg_virtue(p_ptr, V_VITALITY, -2);
+ chg_virtue(p_ptr, V_CHANCE, -1);
}
return result;
if (result)
{
- chg_virtue(V_UNLIFE, -2);
- chg_virtue(V_CHANCE, -1);
+ chg_virtue(p_ptr, V_UNLIFE, -2);
+ chg_virtue(p_ptr, V_CHANCE, -1);
}
return result;
if (probe)
{
- chg_virtue(V_KNOWLEDGE, 1);
+ chg_virtue(p_ptr, V_KNOWLEDGE, 1);
msg_print(_("これで全部です。", "That's all."));
}
return (probe);
}
if (die < 26)
- chg_virtue(V_CHANCE, 1);
+ chg_virtue(p_ptr, V_CHANCE, 1);
if (die > 100)
{
msg_print(_("あなたは死者たちの力を招集した...", "You call on the power of the dead..."));
if (die < 26)
- chg_virtue(V_CHANCE, 1);
+ chg_virtue(p_ptr, V_CHANCE, 1);
if (die > 100)
{
"Oh no! Mouldering forms rise from the earth around you!"));
(void)summon_specific(0, p_ptr->y, p_ptr->x, current_floor_ptr->dun_level, SUMMON_UNDEAD, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE | PM_NO_PET));
- chg_virtue(V_UNLIFE, 1);
+ chg_virtue(p_ptr, V_UNLIFE, 1);
}
else if (die < 14)
{
msg_print(_("あなたはカードを切って一枚引いた...", "You shuffle the deck and draw a card..."));
if (die < 30)
- chg_virtue(V_CHANCE, 1);
+ chg_virtue(p_ptr, V_CHANCE, 1);
if (die < 7)
{
else if (die < 120)
{
msg_print(_("《太陽》だ。", "It's the Sun."));
- chg_virtue(V_KNOWLEDGE, 1);
- chg_virtue(V_ENLIGHTEN, 1);
+ chg_virtue(p_ptr, V_KNOWLEDGE, 1);
+ chg_virtue(p_ptr, V_ENLIGHTEN, 1);
wiz_lite(FALSE);
}
else
(((p_ptr->chp * 10) / p_ptr->mhp) > 5) &&
(4+randint1(5) < ((p_ptr->chp * 10) / p_ptr->mhp)))
{
- chg_virtue(V_VALOUR, -1);
+ chg_virtue(p_ptr, V_VALOUR, -1);
}
/* Look until done */
((o_ptr->number != 1) ? "were" : "was"));
#endif
- chg_virtue(V_HARMONY, 1);
- chg_virtue(V_ENCHANT, -2);
+ chg_virtue(p_ptr, V_HARMONY, 1);
+ chg_virtue(p_ptr, V_ENCHANT, -2);
p_ptr->update |= (PU_BONUS);
p_ptr->window |= (PW_EQUIP | PW_PLAYER);
{
if (flush_failure) flush();
msg_print(_("強化に失敗した。", "The enchantment failed."));
- if (one_in_(3)) chg_virtue(V_ENCHANT, -1);
+ if (one_in_(3)) chg_virtue(p_ptr, V_ENCHANT, -1);
}
else
{
object_desc(o_name, o_ptr, OD_NAME_ONLY);
do_cmd_write_nikki(NIKKI_ART_SCROLL, 0, o_name);
}
- chg_virtue(V_ENCHANT, 1);
+ chg_virtue(p_ptr, V_ENCHANT, 1);
}
calc_android_exp(p_ptr);
if (!(o_ptr->ident & (IDENT_MENTAL)))
{
if (object_is_artifact(o_ptr) || one_in_(5))
- chg_virtue(V_KNOWLEDGE, 1);
+ chg_virtue(p_ptr, V_KNOWLEDGE, 1);
}
object_aware(o_ptr);
bool booze(player_type *creature_ptr)
{
bool ident = FALSE;
- if (creature_ptr->pclass != CLASS_MONK) chg_virtue(V_HARMONY, -1);
+ if (creature_ptr->pclass != CLASS_MONK) chg_virtue(p_ptr, V_HARMONY, -1);
else if (!creature_ptr->resist_conf) creature_ptr->special_attack |= ATTACK_SUIKEN;
if (!creature_ptr->resist_conf)
{
if ((value <= 0) && (price > value))
{
msg_print(comment_7a[randint0(MAX_COMMENT_7A)]);
- chg_virtue(V_HONOUR, -1);
- chg_virtue(V_JUSTICE, -1);
+ chg_virtue(p_ptr, V_HONOUR, -1);
+ chg_virtue(p_ptr, V_JUSTICE, -1);
sound(SOUND_STORE1);
}
else if ((value < guess) && (price > value))
{
msg_print(comment_7b[randint0(MAX_COMMENT_7B)]);
- chg_virtue(V_JUSTICE, -1);
- if (one_in_(4)) chg_virtue(V_HONOUR, -1);
+ chg_virtue(p_ptr, V_JUSTICE, -1);
+ if (one_in_(4)) chg_virtue(p_ptr, V_HONOUR, -1);
sound(SOUND_STORE2);
}
else if ((value > guess) && (value < (4 * guess)) && (price < value))
{
msg_print(comment_7c[randint0(MAX_COMMENT_7C)]);
- if (one_in_(4)) chg_virtue(V_HONOUR, -1);
- else if (one_in_(4)) chg_virtue(V_HONOUR, 1);
+ if (one_in_(4)) chg_virtue(p_ptr, V_HONOUR, -1);
+ else if (one_in_(4)) chg_virtue(p_ptr, V_HONOUR, 1);
sound(SOUND_STORE3);
}
else if ((value > guess) && (price < value))
{
msg_print(comment_7d[randint0(MAX_COMMENT_7D)]);
- if (one_in_(2)) chg_virtue(V_HONOUR, -1);
- if (one_in_(4)) chg_virtue(V_HONOUR, 1);
- if (10 * price < value) chg_virtue(V_SACRIFICE, 1);
+ if (one_in_(2)) chg_virtue(p_ptr, V_HONOUR, -1);
+ if (one_in_(4)) chg_virtue(p_ptr, V_HONOUR, 1);
+ if (10 * price < value) chg_virtue(p_ptr, V_SACRIFICE, 1);
sound(SOUND_STORE4);
}
}
/* Insert the new item */
st_ptr->stock[slot] = *o_ptr;
- chg_virtue(V_SACRIFICE, -1);
+ chg_virtue(p_ptr, V_SACRIFICE, -1);
(void)combine_and_reorder_home(cur_store_num);
say_comment_1();
if (cur_store_num == STORE_BLACK) /* The black market is illegal! */
- chg_virtue(V_JUSTICE, -1);
+ chg_virtue(p_ptr, V_JUSTICE, -1);
if((o_ptr->tval == TV_BOTTLE) && (cur_store_num != STORE_HOME))
- chg_virtue(V_NATURE, -1);
+ chg_virtue(p_ptr, V_NATURE, -1);
/* Make a sound */
sound(SOUND_BUY);
else if (store_top >= st_ptr->stock_num) store_top -= store_bottom;
display_inventory();
- chg_virtue(V_SACRIFICE, 1);
+ chg_virtue(p_ptr, V_SACRIFICE, 1);
}
}
/* Be happy */
if (cur_store_num == STORE_BLACK) /* The black market is illegal! */
- chg_virtue(V_JUSTICE, -1);
+ chg_virtue(p_ptr, V_JUSTICE, -1);
if((o_ptr->tval == TV_BOTTLE) && (cur_store_num != STORE_HOME))
- chg_virtue(V_NATURE, 1);
+ chg_virtue(p_ptr, V_NATURE, 1);
decrease_insults();
/* Get some money */