Name dcss:brainstorm:effect: constriction
Summary Specifications for constriction, an effect for monsters and players with tentacles or tails.
Added by dpeg
Added on 2011-09-08 20:56

Constriction will be added with a number of purposes in mind: it should make certain monsters more interesting, and increase tactical choices when they are around. At the same time, they are actually the first kind of “combat move” to be used by naga and octopode players.

It is a 0.10 target.

Constricting species

  • Naga (monster and player)
  • Octopode (can constrict up to six targets; more depends on weapon usage)
  • Kraken (can constrict up to eight targets)
  • Ball Python (early game constricting snake, will be the new incarnation of the Small Snake; Boa was considered too large)
  • Anaconda
  • Tentacled monstrosity (could constrict several targets depending on number of tentacles and attacks)
  • perhaps and for later: tails/tentacles mutations to enable constriction, could be a Demonspawn mutation
  • perhaps and for later: the tentacles emerging from the Malign Gateway could constrict

The snakes could do with some renaming (Snake and Small Snake are the last ones without descriptive names):

  • Snake → Adder
  • Small Snake → Ball Python (as a small, early game constricting snake, may need to address the numbers, e.g. for size — speed should stay)

Some monsters would be immune to constriction:

  • incorporeal
  • small and tiny fliers

General effects

  • Unable to move freely (attempts to break out may fail).
  • Can still attack, cast spells etc. unhindered.
  • Reduced EV (from being incapacitated in movement).
  • Damage: each turn under constriction adds more damage.
  • Complete anti-translocation:
    • When constricted by a larger monster, translocations are prevented. Gives the -TELE status.
    • When constricted by a monster of the same size (smaller isn't possible), translocations are possible but the constricting monster is brought along.
    • Optional special rule for kraken: if the tentacle is at least heavily damaged, lose the -TELE status and teleport along with the severed tentacle.
  • Partial anti-translocation (only kept here in case complete anti-translocation is too evil):
    • Disables all blinking.
    • Handicaps teleport (if the target teleports, the constrictor will come along).

Monster constriction

  • Only one monster can constrict the player at a time.
  • Any constriction-monster melee attack on an adjacent enemy (usually the player) has a chance to constrict the player (player EV and size decrease chance; constrictor HD and/or size increases the chance). The attempt will always fail if the size(target)>size(constrictor). May want to make nagas large. (galehar: can use AF_CRUSH.)
    • nagas already are large if you look at body size rather than torso size unless something changed
  • Damage on monster HD and increases with duration. AC is applied.
    • Q: if AC is applied, and it's consistently increasing damage, won't this kill non-armor users before it even threatens armor users?
      A: Yes, that is part of the deal. EV based characters have a better chance not getting constricted in the first place. But they need need a plan how to deal with constrictors at the same time. See analysis below. — dpeg 2011-11-07 13:15
  • EV reduction depends on monster HD.
  • Players attempt to break free if they (press the key to) move onto a empty square. (Chances increase with number of attempts, player Str and size; chances decrease with monster HD and/or size.)
  • Fairness rule: If the player breaks free, then the same monster will not constrict the character right away. That way, players have at least on turn to run or blink. Another adjacent monster constricting the player is fine (note that damage builds up slowly), so even this might be an improvement for the player.
  • Players will break free if they successfully employ Fear, Confuse, Enslave etc.
  • Should paralysing or petrifying the constrictor stop the constriction? (These could also just stop the EV reduction and the damage.)
  • Should flying help to avoid being constricted?
  • Note that against snakes and kraken, damage will help (those monsters flee eventually).
  • Especially against kraken, you can also cut down the tentacle. So fighting is easier than escaping whereas against nagas it should be the opposite.

Player constriction

For players, constriction will be an additional, voluntary, almost always beneficial effect for melee attacks. As such, it is an example of a combat move (see Combat Maneuvers & Weapon Reform), even if an unexpected one.

  • Attacking a monster in melee while not constricting anyone else (not constricting too many targets for octopodes) will attempt to constrict the target. (In other words, order of attacks is important: if you attack monster A first and successfully constrict it, and then attack monster B, you keep constricting and doing damage to A.)
  • Constricting a different monster will only happen if the former target breaks free or dies, or if the player moves at least once.
  • Constriction attempts can be suppressed with safe-attacking (Ctrl-direction or * direction). This can be useful for jellies, or if you want to allow some monster to flee. (Since we want the interface to be as smooth as possible, i.e. as little constriction suppression as necessary, it may be best to say that constriction will never cause additional damage, e.g. from acidic monsters. The player gets acidic damage from the melee attack already, after all.)

Other remarks

  • For consistency, make blinking players ensnared in a net keep their net (we treat blinks as magical jumps, the net will just go with the player). The same is not necessary for webs: in contrast with nets, the web is affixed to the walls.
  • Blinking/teleporation attempts for constricted players should have absolutely no effect (don't spend turn or MP): You cannot blink/teleport while constricted!
  • Need a new status light “Constricted” or similar, with explanation in the manual. Ideally, the @ list of current attributes would mention the blink suppression (but the abridged version on % would not). Ideally, the light comes in three colours, so we can indicate how the character is on the way of breaking free.
  • Need messages when constriction of or by the player starts and ends:
    • You constrict the ogre.
    • You stop constricting the orc. (when you move away)
    • The orcs suffers from your constriction. (damage indicator)
    • The monsters suffer from your constriction. (collected message when constricting more than one monster)
    • The orc breaks out from your constriction.
    • The anaconda constricts you.
    • The anaconda's constriction hurts! (damage indicator)
    • The anaconda releases its coil and flees.
  • Possibly, player nagas need a nerf once they can constrict. I propose to wait with this for at least one version.
  • Some naga casters can make the player teleport. This is not good and should be removed.


Players against constriction

  • EV builds: EV helps avoid constriction but is penalised after constriction. This is on purpose.
  • Constriction is mostly a threat to melee builds but AC and Str help (of course, being constricted still reduces tactical flexibility).
  • Casters have an easier time not getting constricted (spells, EV) but suffer more once constricted.
  • Large species fare better (size and Str). This is on purpose.

Players using constriction

  • Order of attacks matters for player nagas since only the first target is constricted.
  • Fighting one on one (e.g. in corridors) misses the constriction potential. (But it is still useful to avoid fleeing.)
  • Octopodes can possibly do a lot of damage in the open.
  • Constriction can be used tactically also by casters (keep something not too threatening in place while casting).
  • Str should matter: a NaFi with 35 Str should do considerably more constriction damage than a NaWz with Str 10.
  • If we only allow player constriction upon melee attacks, caster face a choice: spend a turn for a melee attack (constriction attempt) or keep casting.

Monsters using constriction

  • Constricting monsters should be quick (boa, anaconda) or come in masses (naga) to make the effect tactically relevant.
  • Kraken can get melee-averse players with their tentacles.
  • One hope is that plain nagas become more interesting in Snake. (We may need to remove corridors of width one for best effect.)

On the partial blink/teleport restriction

  • If the player breaks free from constriction for just one turn, she can immediately blink.
  • He can always use teleport, although it is obviously best to teleport when not constricted.
  • These two features would not be true if the restrictions were swapped (teleport would be much less useful, since constricting monsters get several turns to re-constrict the player).
  • First implementation should have the complete proposal. The partial one is only mentioned in case we need a weakening.


The formulas below are quite simple on purpose. For example, damage might become too large after some constriction. But I'd rather have something simple to start, that makes it easier to evaluate and modify. Later on, we can apply caps or stepdowns etc.

Some data for monsters which will be able to constrict:

                      speed    HD    remarks
small snake            12       1    may need larger size and more HD for constriction purposes (not more damage)
anaconda               18      11
naga                    8       5
nage mage               8       7    teleport other, teleport self
naga warrior            8      10
greater naga            8      15    teleport other, teleport self
kraken                 14      16
tentacled monstrosity   9      25

Size table (monsters and players):

0  tiny         rat, bat
1  little       spriggan, felid
2  small        halfling, kobold
3  medium       human, elf, dwarf, octopus
4  large        troll, ogre, centaur, naga    (player centaurs/nagas are a mix of medium and large)
5  big          large quadrupeds
6  giant        giant, tentacled monstrosity
7  huge         dragon, kraken
The parameters
  • Str (player Strength) for player constriction
  • HD (monster HD) for monster constriction (this might be too bad for the smaller snake and for lowly nagas)
  • duration (how long the target is constricted by the same monster) increases damage and escape chances. Ideally this should use 10 ticks instead of turns (especially since nagas are slow and players may easily follow the slow god)
  • size is used for both, but only to determine whether the target is constricted or can escape (not for damage)
  • AC (monster and player) is applied to constriction damage, but only as AC/2. (We don't need to explain this to players although it would be easy: when constricted, you cannot use all of your armour protection effectively.)
  • EV (monster and player) reduces chance of being constricted.
  • For monster-monster constriction, use HD in place of Str.
It is unintuitive that Unarmed Combat skill doesn't factor in. — ortoslon 2011-12-24 12:57
Chance for a constriction attempt to be successful

In both cases, there is only a constriction attempt if

  • size(constrictor) >= size(target)
  • the constricting monster has a free constricting device (i.e. a naga character does not constrict a monster, and an octopode does not already constrict six monsters).
  • the constrictor is attacking the target and they're adjacent (the type of attack does not matter; neither does if the attack is successful or not)

Player attempting to constrict a monster:

attempt is successful if d(3,Str*size) > d(3*EV*size).  [Three die on the player side to emphasise strength.]

Monster attempting to constrict a target (usually the player):

attempt is succesful if d(HD*size) > d(EV*size).  [Player EV is usually a lot higher than monster EV.]
Damage on a constricted target

Constriction damage only increases, using duration (of the constriction). The increase means effectively quadratic growth but player Str and monster HD are crucial for determining the base.

Player constricting:

initial damage = (Str - d(3))/3
damage increase = d(duration)

Monster constricting:

initial damage = (HD + 1) / 2
damage increase = d(duration)
Chance to escape if constricted

The constrictee can try to break free from constriction by attempting to move onto a free cell (attacking a monster, constrictor or not, does not try to break free). The chance depends on the number of attempts to break free (from this particular constrictor; the attempts don't have to be back on back), player Str, monster HD.

Player constricting (this formula is only relevant for fleeing monsters):

monster breaks free if size*attempts > d(Str)

Monster constricting (we can be generous to the player: Breaking from monster constriction is a desperate measure, as it will sometimes lose a turn. Often, successfully breaking free won't solve much because the constrictor is still around. It is useful if the player is about the teleport and would rather teleport alone.):

player breaks free if size*attempts > 5 + d(12) + d(HD)

Message if attempt was unsuccessful:

While you don't manage to break free from the [monster], you feel that another attempt might be more successful.

Perhaps we should rather indicate how likely it is to break free. The range between sizes is huge (1–4) as is the range among constricting monster HD values (1–25). The last formula is the one that might tweaking not just in parameters but also in shape.

Gameplay feedback

(evilmike 2011-12-23 21:08) I think there are problems with enemies that use constriction. I'll write my feedback here, based on a few recent games. Overall I think constriction still has quite a ways to go (on the gameplay end) before it's balanced for monsters. Right now it's too strong for some enemies and doesn't really succeed in making most fights interesting.

Sorry if this is a bit haphazard, I had to rewrite it (the wiki ate it the first time).


1. Anacondas. These are way too dangerous right now. Constriction is hard to escape from, and anacondas are fast (fast enough to reach you in melee before teleport can go off). Previously, you could enter snake a bit unprepared for anacondas, if you could handle 1 or 2 hits from one. A good strategy would be to use ranged attacks and then blink/tele when they reach melee range. You can't risk this now. Thus, I'd say it's a serious tactical misstep for players to enter Snake if they can't kill an anaconda in melee range. Problem is, this will lead to players being even more overleveled when they enter the branch. If escape from constriction isn't changed, anacondas will need to be nerfed, hard. Probably by cutting their damage by a lot.

2. Krakens. These are too dangerous now. Blinking is a reliable escape (maybe this is a bug), but teleport isn't. Right now you'd be a fool to melee a kraken. The only reasonable way to kill one is with ranged attacks. I think contstriction makes krakens less interesting because of this - there is very little choice involved when it comes to fighting something that's this dangerous. You either use ranged attacks or run away.

+1! Blinking doesn't seem to be a reliable escape anymore, but in any case, this makes Krakens way out-of-depth deadly. Like, considerably more deadly than a Siren showing up with a team of merfolk impalers; the siren can be killed by doubletap with a wand and then you can realiably escape with blink scrolls. So, too deadly, tone it down. In particular, having constrict block translocation (noted below by minqmay) doesn't make sense. You can teleport out of a net, after all. — DrPraetor 2011-12-24 22:15
Constriction on krakens directly contradicts their description, which states the tentacles are too large to embrace an adventurer. — minmay 2011-12-24 23:28

3. Tentacled monstrosities. These seem to work fine. They are mostly lategame monsters and can be avoided. Melee with them is generally a choice, and not something that is forced on you. They also were fairly boring pre-constriction.

4. Ball pythons. These seem fine to me.

You barely miss the ball python. You squeeze the ball python.
_You kill the ball python!
While you don't manage to break free from DEAD MONSTER, you feel that another
_attempt might be more successful.
YES! This is a bug, not a feature. THIS IS A FEATURE! I've always wanted to be able to crawl out from underneath a heap of my dead enemies, and finally I can. However, mutual constiction… perhaps is a bit odd. — DrPraetor 2011-12-30 14:48

5. Naga warriors. AIEE! Similar problem - melee with Naga Warriors is already never a good idea. Constrict makes it foolish even for melee oriented characters, since if you misjudge you can't even teleport away. How is that desirable? On top of that, the level is full of teleporters (naga mages, greater naga and guardian serpents), and if you land next to a naga warrior that's likely to be a death sentence as well. It's not a cool *idea*, but the no-tele restriction is, as discussed above, too evil. — DrPraetor 2012-01-03 22:52

This applies to every other constrictor too. — minmay 2012-01-04 03:44

6. Follow up - Aizul is *supposed* to be super-evil. Possibly his constrict can inflict no-tele, as a special thing? — DrPraetor 2012-01-03 22:52

Note that anacondas and krakens are both lair branch enemies. They should have a difficulty level that reflects this. Being ridiculous threats is not acceptable, except maybe for branch ends. Shoals already has enough problems with players waiting until they are overleveled for it, and Snake does not need this. I am not against making crawl harder, but this is a bad way to do it.


I think escape is quite problematic at the moment. Two issues come to mind.

First, there is escape by trying to move away. The formula here needs a lot of work - right now your first attempt is guaranteed to fail unless you are in dragon form. I think this is bad - it's not even an attempt if you know it will fail. The formula should (a) provide a chance of escaping even with the first attempt, and (b) factor in strength in your escape chances.

I can't think of a good formula right now (irc would be a good place to discuss this) but I think it would take the form of x_chance_in_y(x, y). With x being based on your str, size factor and number of attempts, and y being based on the monster HD.

Second, I think there are too few ways to escape constriction right now. Simply put, once you get into melee range with a constrictor, the only way to escape constriction is to either kill the monster or break free. Blinking is unreliable, and teleporting simply fails (although it lets you attempt it! probably a bug).

I think teleports and blinks should count as escape attempts, and be more likely to succeed than simply moving away. This is more lenient than the current situation, but it avoids the problematic situation of somtimes being unable to escape from dangerous enemies. Mesmerise a similar effect that is implemented a lot better, because even though it traps you, there are a number of ways to break free (eg noise).

There is also the problem of constriction cancelling a teleport. This means that against an anaconda, you can teleport, and then try to retreat, have it reach you before the teleport goes off, and have the teleport fail. You can also break free from one, read teleport, get constricted, and have it fail. I don't like this - being hard to escape is one thing, but being almost unavoidable here is quite another problem (and a much worse one).

One might argue that status effects (eg confusion) could be a way to escape constriction (although this doesn't seem to work at the moment), but I should point out that some constrictors are magic immune (greater nagas) and most other have high MR or aren't affected by poison (making meph cloud not an option).

This issue with escaping wouldn't be so problematic if it was easier to break free from constriction, but I still think teleport should count as a (reliable) escape attempt.

Constriction blocking teleport and the like is very unintuitive. Mesmerize has similar problems, but at least it has a short “rule” (no attempting to move to a specific tile away from the mermaid)…constriction has a big list of conditions and exceptions. It's even much worse than nets in this regard. — minmay 2011-12-13 21:44
+1. Wait, can't you blink out of a net? — DrPraetor 2011-12-24 22:15
Giving a chance to escape on translocation would probably be good. Most of them require significant investment, especially if the planned change to remove evoked teleportation from the ring of tele happens. Regular level 2 blink should probably not give an improved chance to escape over just moving away (but blink on breaking free of course). Teleportation and controlled blink (scroll or spell) require scrolls or significant investment in translocations, so giving a higher chance to escape is probably fine (what about bend space?). What to do about translocations that affect the constrictor? The ones that come to mind are dispersal (spell and darts), distortion blinks/teleports and teleport other.
Maybe a simple rule without much regard for balance would be best. Blink is already overpowered, but clarity is more important than balance. — Galefury 2011-12-24 02:14
Bend space should be more reliable for escaping than blink, I think. It's not just a translocation, it's a violent distortion of space that injures both you and adjacent enemies. So, it would make sense for this to break constriction effects. — evilmike 2011-12-24 03:23
Actually, thinking about it more, I don't think it's good to give the translocations chances here - this isn't done anywhere else, so players won't expect constriction to do it. Teleporting and blinking should probably always be blocked, always work, or always bring the constrictor along, or always something else. If making translocations only sometimes work is really necessary for balance, the player will probably need to be constantly reminded of it. — minmay 2011-12-24 16:18
The blink scroll is *not* overpowered, they're an extremely valuable resource that you have to parcel out carefully. Many characters will die in very short order from being stuck next to a Kraken - so if there's no reliable method of escape, this encourages over-cautious play. Furthermore, being killed with no chance (yes I know you can have the good sense to avoid the situation in the first place) feels like a cheat. — DrPraetor 2011-12-24 22:15
Escape formula suggestion

(Galefury 2012-02-10 21:07)How about this formula (assuming the player is trying to escape, swap str and HD for monster escape attempts):


with n the number of escape attempts, starting at 1. This formula gives a fairly high chance to escape early constrictors, but only high strength chars have a high probability to quickly escape late game constrictors.

Some sample escape chances:

In addition, in my opinion blinking should not guarantee escape. Instead, I suggest 50% escape chance for regular blink, 75% for semicontrolled, 100% for controlled or teleport. If unsuccessful, nothing happens, if successful, the blink proceeds as normal. Screw fantasy realism, blink is already way too strong.

50% casting failure with no miscast and mana loss for all proper spells (scrolls and invocations unaffected) would be even better IMO, and easier to rationalize too. You sometimes can't talk because you're getting choked.

Edit: After looking at the numbers a little longer I think using size difference for escape chance is not good. Bigger attackers already have a higher chance to constrict in the first place, and tentacled monstrosities don't need the help. Also, the cumulative chance to escape tends to get very high (about 80+%) with about 3 attempts, which is probably a good thing, but might be too much. Slightly lower escape chances for normal and small size races because of that, small bonus for tiny.

Revised version: x_chance_in_y(5+n*(3+max(0,2+div_rand_round(2*str-HD,5))),35)



Right now I think the main strategy players should use vs constriction is avoidance (in the case of snake, this includes avoiding the branch itself). Use ranged attacks, not melee. There are so few options for escaping from it, that you often can't afford to get into it in the first place.

Making certain monsters less damaging and giving players more ways to escape it will help.

It seems to amount to yet another ability that basically just says “don't melee this.” The translocation restrictions are potentially interesting but I'm pretty sure they would work better on a ranged monster, since characters with translocations are characters that can avoid melee. — minmay 2011-12-13 21:44

Player constriction

So constrict is nice, but the current constrict has a *major* disadvantage, which is that when you're constricting an enemy, and *you* blink, you bring it with you. As an Octopode, you basically-never want this to happen - so you should have the good sense to let go of the enemy before you blink.

I haven't played a Naga in a while but I have trouble believing that you'd ever want to bring an enemy with you when you blunk. — DrPraetor 2011-12-24 22:27

Player constriction currently has an interface problem: you can't tell if you're currently constricting a monster without examining the monster. If you're in a fight where your constriction actually matters, you need to examine many monsters on most turns. — minmay 2011-12-31 17:05

Okay, after some play, I have to say player constriction has made Na/Op really boring to me. Annihilating 90% of early-game monsters in melee is just not an interesting ability, especially when it requires no skill - we don't need another troll, let alone TWO more. Maybe constriction just shouldn't do damage by itself - that gives more flexibility with monsters too. — minmay 2012-02-28 19:37

Monsters with Constriction Immunity

Certain monsters should be excluded as constriction targets. This list begins with Jellies (I just involuntarily constricted one to death with my Naga; Unarmed Combat is penalized, why not Constriction?), but should be expanded. — XuaXua 2012-01-06 19:01

Are insubstantial monsters currently excluded? If not, they probably should be, though it's debatable since you can certainly beat them to death with your fists. Jellies don't need to be excluded for the sake of parity with UC, but arguably all amorphous monsters (including those that don't have a passive acid attack, such as oozes) could be immune to constriction as well, though I guess that depends on how viscous one views them as being. -IonFrigate

Slime Creatures

Perhaps constriction should have a chance of splitting apart (partially or wholly) merged slime creatures? — Raumkraut 2012-03-21 02:50

Logged in as: Anonymous (VIEWER)
dcss/brainstorm/effect/constriction.txt · Last modified: 2012-03-21 02:56 by Raumkraut
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki