Lair Larrikin
Posts: 21
Joined: Wednesday, 4th September 2013, 14:17
Ask fellow adventurers how to stay alive in the deep, dark, dangerous dungeon below, or share your own accumulated wisdom.
Lair Larrikin
Posts: 21
Joined: Wednesday, 4th September 2013, 14:17
Spider Stomper
Posts: 208
Joined: Thursday, 12th September 2013, 15:02
Location: France
Vestibule Violator
Posts: 1653
Joined: Tuesday, 30th July 2013, 11:29
Blades Runner
Posts: 578
Joined: Thursday, 12th January 2012, 21:03
Tartarus Sorceror
Posts: 1881
Joined: Saturday, 7th September 2013, 21:16
Location: Itajubá, MG, Brazil.
Blades Runner
Posts: 578
Joined: Thursday, 12th January 2012, 21:03
Abyss Ambulator
Posts: 1093
Joined: Sunday, 12th August 2012, 02:29
Vestibule Violator
Posts: 1509
Joined: Wednesday, 21st September 2011, 01:10
Location: St. John's, NL, Canada
Ziggurat Zagger
Posts: 4055
Joined: Tuesday, 10th January 2012, 19:49
Ziggurat Zagger
Posts: 6454
Joined: Tuesday, 30th October 2012, 19:06
crate wrote:Vitalisation does not give rPois. It prevents you from getting poisoned. You still take full damage from things like venom bolt though.
case BEAM_POISON:
if (doEffects)
{
resist = poison_player(coinflip() ? 2 : 1, source, kaux) ? 0 : 1;
hurted = resist_adjust_damage(&you, flavour, resist,
hurted, true);
if (resist > 0)
canned_msg(MSG_YOU_RESIST);
}
else
{
hurted = resist_adjust_damage(&you, flavour, player_res_poison(),
hurted, true);
}
break;
if (!force && !(amount = _maybe_reduce_poison(amount)))
return false;
...
tatic int _maybe_reduce_poison(int amount)
{
int rp = player_res_poison(true, true, true);
if (rp <= 0)
return amount;
int reduction = binomial_generator(amount, 90);
int new_amount = amount - reduction;
if (amount != new_amount)
dprf("Poison reduced (%d -> %d)", amount, new_amount);
else
dprf("Poison not reduced (%d)", amount);
return new_amount;
}
case BEAM_POISON_ARROW:
// [dshaligram] NOT importing uber-poison arrow from 4.1. Giving no
// bonus to poison resistant players seems strange and unnecessarily
// arbitrary.
resist = player_res_poison();
if (doEffects)
{
int poison_amount = 2 + random2(3);
poison_amount += (resist ? 0 : 2);
poison_player(poison_amount, source, kaux, true);
}
hurted = resist_adjust_damage(&you, flavour, resist, hurted);
if (hurted < original && doEffects)
canned_msg(MSG_YOU_PARTIALLY_RESIST);
break;
int player_res_poison(bool calc_unid, bool temp, bool items)
{
if (you.is_undead == US_SEMI_UNDEAD ? you.hunger_state == HS_STARVING
: you.is_undead && (temp || you.form != TRAN_LICH)
|| you.is_artificial()
|| you.duration[DUR_DIVINE_STAMINA])
{
return 3;
}
int rp = 0;
if (items)
{
// rings of poison resistance
...
Vestibule Violator
Posts: 1653
Joined: Tuesday, 30th July 2013, 11:29
Barkeep
Posts: 3890
Joined: Wednesday, 14th August 2013, 23:25
Location: USA
Ziggurat Zagger
Posts: 4055
Joined: Tuesday, 10th January 2012, 19:49
Crypt Cleanser
Posts: 689
Joined: Sunday, 3rd June 2012, 13:10
crate wrote:since when you look at % while vitalised you don't get rpois
Dungeon Master
Posts: 3160
Joined: Sunday, 5th August 2012, 14:52
Return to Dungeon Crawling Advice
Users browsing this forum: No registered users and 14 guests