Dungeon Crawl Stone Soup Tracker - DCSS
Viewing Issue Advanced Details
10017 Patches feature always 2015-10-15 02:06 2015-11-27 04:36
ebering Both  
wheals All  
normal Both  
closed 0.17 ancient branch  
2861fb done  
none    
none 0.18 ancient branch  
0010017: Implement deep banishments.
Patch creates a way to enter the depths of the Abyss directly, skipping Abyss 1. A successful banishment has an HD in 27 chance of sending a player deep. The exact depth scales linearly with player XL.

These formulas may need tweaking, since a disto wielding orc has a 1 in 27 chance of sending a lvl 5 player to A:2 which maybe isn't desired. But maybe it is.

This is in the 0.17 release plan on the wiki so it's not an outlandish idea.
? file icon deep-abyss-02.patch [^] (27,684 bytes) 2015-10-22 20:16 [Show Content]
Issue History
2015-10-15 02:06 ebering New Issue
2015-10-15 02:06 ebering File Added: deep-abyss.patch
2015-10-15 03:06 Reaver Note Added: 0029608
2015-10-15 22:16 ebering File Added: deep-abyss-01.patch
2015-10-15 22:18 ebering Note Added: 0029616
2015-10-22 20:16 ebering File Added: deep-abyss-02.patch
2015-10-22 20:18 ebering Note Added: 0029638
2015-10-23 16:59 ebering Note Added: 0029641
2015-10-24 01:07 ebering Note Deleted: 0029641
2015-10-24 01:08 ebering File Deleted: deep-abyss.patch
2015-10-24 01:08 ebering File Deleted: deep-abyss-01.patch
2015-10-25 21:46 dpeg Note Added: 0029670
2015-10-26 18:55 ebering Note Added: 0029677
2015-10-27 13:20 dpeg Note Added: 0029681
2015-11-26 17:58 wheals Note Added: 0029859
2015-11-26 17:58 wheals Status new => resolved
2015-11-26 17:58 wheals Fixed in Branch => 0.18 development branch
2015-11-26 17:58 wheals Resolution open => done
2015-11-26 17:58 wheals Assigned To => wheals
2015-11-27 04:36 ebering Status resolved => closed

Notes
(0029608)
Reaver   
2015-10-15 03:06   
I think extracting the banishment code from down_stairs() would be better than creating a new dungeon feature which never spawns.
(0029616)
ebering   
2015-10-15 22:18   
After some discussion on IRC the approach was to split take_stairs into some checkups and a floor_transition function, and then use floor_transition in banished(). This avoids creating a new dungeon feature which never spawns, and as Medar pointed out allows depth to depend directly on power, instead of a straight deep banishment coin flip.

The new patch reflects all this.
(0029638)
ebering   
2015-10-22 20:18   
A more polished patch.
(0029670)
dpeg   
2015-10-25 21:46   
Many thanks! I think a feature like this is crucial -- are there any objections to try this out for trunk (not 0.17, of course)?

The formula may be too crude, but it's simple and a good way to start, in my opinion.
(0029677)
ebering   
2015-10-26 18:55   
Some technical remarks.

In the current code there are four banishment codepaths:

- Melee Attacks (melee_attack.cc)
- Banishment spell (beam.cc)
- Xom (xom.cc)
- Translocations Miscasts (spl-miscast.cc)

In the current patch the 'power' of a banishment is the HD of the banisher, which in the first two cases is the attacker, and the latter two the XL of the player.

Zot traps and distortion unwields go through the fourth path, but don't pass much information other than miscast severity. So features like zot traps scaling by absdepth or distortion unwields scaling with weapon plusses either require significantly more plumbing for in my opinion fairly minor gain, or some indirect scaling based on severity.
(0029681)
dpeg   
2015-10-27 13:20   
ebering: many thanks for the explanation.

Yes, simple is better. We can tweak the formulas later on, if we want to.
(0029859)
wheals   
2015-11-26 17:58   
Added, with some tweaks to the last commit to get it to work properly.