Dungeon Crawl Stone Soup Tracker - DCSS
Viewing Issue Advanced Details
22 FR: Other feature N/A 2009-11-24 11:32 2010-09-12 20:05
evktalo  
KiloByte  
none  
closed  
done  
none    
none 0.7 ancient branch  
0000022: Tracking the source of poison if it kills the player
Instead of...

evktalo the Shooter (L4 HEAM), succumbed to poison on D:4,
with 305 points after 4124 turns and 0:30:50.

I'd like to see:

evktalo the Shooter (L4 HEAM), succumbed to poison (by a snake) on D:4,
with 305 points after 4124 turns and 0:30:50.

Recent changes to track the band leader or the summoner regarding kills makes me think this is quite feasible to do.

--Eino
Issue History
2009-11-24 11:32 evktalo New Issue
2009-11-24 11:35 evktalo Note Added: 0000052
2009-11-24 11:35 evktalo Note Deleted: 0000052
2009-12-07 15:23 Matthew Cline Issue Monitored: Matthew Cline
2010-01-27 19:04 evktalo Note Added: 0001772
2010-01-27 21:08 Twinge Note Added: 0001777
2010-01-28 17:25 KiloByte Note Added: 0001804
2010-01-29 01:16 Twinge Note Added: 0001835
2010-03-09 18:01 KiloByte Note Added: 0003308
2010-03-09 20:04 Kyrris Note Added: 0003310
2010-03-09 21:52 KiloByte Note Added: 0003313
2010-03-10 23:00 KiloByte Status new => resolved
2010-03-10 23:00 KiloByte Fixed in Branch => 0.7 development branch
2010-03-10 23:00 KiloByte Resolution open => done
2010-03-10 23:00 KiloByte Assigned To => KiloByte
2010-09-12 20:05 evktalo Status resolved => closed

Notes
(0001772)
evktalo   
2010-01-27 19:04   
sorear pointed out (way earlier) that tracking the source of poison is difficult, since the player can be poisoned from multiple sources of poisons simultaneously.

--Eino
(0001777)
Twinge   
2010-01-27 21:08   
There are a couple ways to tackle that. One that springs to mind that should also be pretty easy to implement (as the game would only have to remember one thing) would be: set a variable whenever something poisons you for the monster type that poisoned you. When you are already poisoned and new poison is being applied, compare this variable with the monster currently poisoning you. If they are different, simply set the variable to 'multiple monsters' or 'multiple sources'. Finally, you'd of course unset the variable when poison wore off.

This is slightly less than perfect, but should cover everything pretty well while also being rather easy to implement.
(0001804)
KiloByte   
2010-01-28 17:25   
Nah, that would be way too complex. And inconsistent with how normal (hp) deaths work.

If you run from a pack of yaktaurs on 5hp and get finished by a blowfly, the blowfly gets all the credit. And like that, crediting the last source of poison would be sufficient.
(0001835)
Twinge   
2010-01-29 01:16   
Crediting the last source of poison is probably fine too - my idea above was to address the point raised by Eino/sorear as a way to get around that concern. If it's not a concern, then simpler methods could be used.
(0003308)
KiloByte   
2010-03-09 18:01   
It needed quite a bit of code, and it still doesn't track the source of clouds, but here it is.

It doesn't track details like ikiller or kpath, too.
(0003310)
Kyrris   
2010-03-09 20:04   
On a related note, the -first- source of poison gets credit for monster kills. If you summon scorpions or snakes, it's in your best interests to get in an early shot with a venom dagger, then walk away.
(0003313)
KiloByte   
2010-03-09 21:52   
Not the first -- it's source which gives you the most exp. You > summons > hostiles. If you inflict 1 poison damage during a confuse-fest, you still get full exp unless the poison wears off before they kill each other.