Rationale:
DF already has code which dwarves in fortress mode use to drag other creatures behind them.
It also has code for creatures to skid along the ground if they traverse ground tiles against their will.
So why not incorporate those features, already written and bug-checked throughout dozens of versions, into wrestling?
Projected benefits:
1. It would make wrestling more immersive: usually, when someone strong puts you in a headlock and walks away, you either walk with them or end up getting dragged along the ground.
2. It would fix the issue that currently makes wrestling ineffective: when either of the parties involved leaves the wrestling range, all active wrestling holds are broken, which causes wrestlers to spend an inordinately large amount of time grabbing their enemies only to lose grip on them.
3. If wrestlers could force their victims to skid across the ground, it will allow wrestlers to deal damage with every possible grip, not just with joint-locks and strangulations, thus increasing AI wrestlers' damage potential.
4. It would make wrestling not just useful, but
uniquely useful in the Adventure mode: with it, you could get your enemies
exactly where you wanted them.
5. It would be
fun, simply by increasing the amount of things you could do to win a losing battle, and the amount of things that can backfire on you.
Imagine grabbing an enemy and dragging them into a body of water, when you can swim and they can't.
On a flip side, imagine trying to train with the popular method of wrestling a horse - and then finding out that the horse can bolt away in this new version, dragging you across the ground...
For the sake of uniformity, I'll designate two participant creatures as "moving creature" and "moved creature", even when common sense would demand me to change the words "moving" or "moved" to something less repetitive.
0. A check for whether the distance between the two wrestling creatures is increased during the combat tick. If it stays the same or decreases, no further checks are necessary.
1. A check for the skill difference between wrestling creatures. (If one has far more skill at wrestling, we can realistically expect them do to some tricky submission hold to force even a significantly bigger enemy to move along with them.)
1a. Allow the moved creature to break all of its own wrestling holds immediately and attempt to break one of the opponent's wrestling holds.
1b. If the wrestling check fails and at least one hold remains, check for the strength and size difference between wrestling creatures. If that check fails as well, the moving creature does not move away.
2. Check for the moved creature's Agility and Spatial Sense attributes. If it fails the check, it goes prone.
2a. If the moved creature is prone, check for the size and strength of the moving creature against the size of the moved creature. If the moving creature's size and strength are insufficient for the task, they do not move. (Of course, a dwarf would be hard-pressed to drag a giant elephant across the ground.)
3. If the moved creature is prone, check whether it swimming or airborne. (In case the moving creature jumps across empty space or flies away.)
3a. If the moved creature is neither swimming nor airborne, determine the moving creature's speed. Apply skidding damage to the moved creature as if they were skidding across the ground at that speed.
4. Special case: if the distance between creatures increases more than by 1, such as during a jump, consequently move the moved creature across all tiles passed, applying skidding damage when ground tiles are passed.
5. Special case: if the moving creature moves up or down a Z-level(drops down or flies away):
5a. Allow the moved creature to break all of its own wrestling holds immediately and attempt breaking the opponent's wrestling holds, one by one. (It might be safe to assume no submission hold can make you willingly step off a cliff or spontaneously levitate into the air, so check 1(wrestling skill check) might not be necessary in this case.)
5b. Do check 2a: check for size and strength of the moving creature against the size of the moved creature.
5c. If check 5a fails, the check 5b succeeds, the moving creature moves up a Z-level and the tile it previously occupied is a ground tile, do check 2: check for the moved creature's Agility and Spatial Sense attributes. If it fails the check, it goes prone.
5d. Move the moved creature to the tile directly above or below the moving creature, depending on its direction of movement.
Notes:
1. This suggestion was, according to a search on DF Suggestions subforum with "wrestling drag",
given three times before. However, only one was in a dedicated thread, and it did not sell the idea as much as it
could be sold.
Because of that, I felt that a more detailed presentation could be made in favor of this idea, simply to increase the chances of it being noticed and maybe implemented.
2. I hope it's not too presumptions of me to assume that most of the required code was already implemented without digging in the source files for confirmation.
To put it frankly... even if I was qualified to make such judgments, the source code is large enough that I have no idea where to look for these specific features.
3. I also hope it's not too presumptions of me to present the suggestion in such a way.
Just the way I was taught to write about ideas: list the reasons why it could be done, list the benefits from doing it, list the steps involved in doing it.