Temple Termagant
Posts: 5
Joined: Wednesday, 13th November 2013, 01:09
Yet Another Stupid Death - Find a particularly innovative way to get killed? Share your pain!
Yet Another Victory Post - Brag about your bad-ass character and all your runes and whatnot.
Characters in Progress - share promising or interesting characters that are not dead yet.
Temple Termagant
Posts: 5
Joined: Wednesday, 13th November 2013, 01:09
Ziggurat Zagger
Posts: 11111
Joined: Friday, 8th February 2013, 12:00
Temple Termagant
Posts: 5
Joined: Wednesday, 13th November 2013, 01:09
Ziggurat Zagger
Posts: 11111
Joined: Friday, 8th February 2013, 12:00
Temple Termagant
Posts: 5
Joined: Wednesday, 13th November 2013, 01:09
Temple Termagant
Posts: 5
Joined: Wednesday, 13th November 2013, 01:09
Ziggurat Zagger
Posts: 6418
Joined: Friday, 6th July 2012, 12:48
Ziggurat Zagger
Posts: 11111
Joined: Friday, 8th February 2013, 12:00
Temple Termagant
Posts: 5
Joined: Wednesday, 13th November 2013, 01:09
Ziggurat Zagger
Posts: 6418
Joined: Friday, 6th July 2012, 12:48
Vestibule Violator
Posts: 1653
Joined: Tuesday, 30th July 2013, 11:29
Ziggurat Zagger
Posts: 6454
Joined: Tuesday, 30th October 2012, 19:06
Sandman25 wrote:Greater naga can deal up to 57 damage with Venom Bolt no matter what AC/EV you have (I don't know how rPois affects that though).
I don't see any problems with your skills. Maybe except you underused spells (training Conjuration/Poison/Spellcasting to 10 is a waste if you cast Venom Bolt only 17 times for the whole game). Perhaps Shoals could be easier for the character (Merforlks don't have rPois and can be both confused by Mephitic Cloud or just killed by Venom Bolt).
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;
...
bool poison_player(int amount, string source, string source_aux, bool force)
{
ASSERT(!crawl_state.game_is_arena());
if (player_res_poison() > 0)
maybe_id_resist(BEAM_POISON);
if (you.duration[DUR_DIVINE_STAMINA] > 0)
{
mpr("Your divine stamina protects you from poison!");
return false;
}
if (player_res_poison() >= 3)
{
dprf("Cannot poison, you are immune!");
return false;
}
if (!force && !(amount = _maybe_reduce_poison(amount)))
return false;
const int old_value = you.duration[DUR_POISONING];
if (player_res_poison() < 0)
amount *= 2;
you.duration[DUR_POISONING] += amount;
if (you.duration[DUR_POISONING] > 40)
you.duration[DUR_POISONING] = 40;
if (you.duration[DUR_POISONING] > old_value)
{
mprf(MSGCH_WARN, "You are %spoisoned.",
old_value > 0 ? "more " : "");
learned_something_new(HINT_YOU_POISON);
}
you.props["poisoner"] = source;
you.props["poison_aux"] = source_aux;
return amount;
}
...
static 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;
}
...
int binomial_generator(unsigned n_trials, unsigned trial_prob)
{
int count = 0;
for (unsigned i = 0; i < n_trials; ++i)
if (::x_chance_in_y(trial_prob, 100))
count++;
return count;
}
Return to YASD! YAVP! and characters in progress too
Users browsing this forum: No registered users and 74 guests