DigitalLibrarian / VS2013Projects

DF/CDDA inspired content driven simulator
1 stars 0 forks source link

Finish Wrestling #52

Open DigitalLibrarian opened 8 years ago

DigitalLibrarian commented 8 years ago

Since the content project has become functional, we can make our hard-coded wrestling moves hook into the body part move system in our content model.

DigitalLibrarian commented 6 years ago

Wrestling maneuvers include:

When wrestling, the advantage always goes to the creature with greater mass. A stronger wrestler's moves will fail against larger opponents, and they will be unable to break holds. Blood loss will cause a proportionate reduction in a creature's mass, so a sufficiently injured Minotaur can become vulnerable to a dwarven wrestler. Wrestling skill also improves defense against wrestling moves, so even a relatively light creature can benefit from developing it.

DigitalLibrarian commented 6 years ago

This wiki page contains several actual test cases:

http://dwarffortresswiki.org/index.php/DF2014:Wrestling

DigitalLibrarian commented 5 years ago

This includes filling out the materials system to include the unimplemented stress modes:

    Compressive,
    Tensile,
    Torsion,
    Bending

This means more combat sniffer logs of wrestlers, test cases, and research. Cursory ideas include categorizing this list into impact vs shear modes, then use the blunt code to handle impact modes, and the edged code to handle shear modes. This method would require some modification to the MaterialStrikeResultBuilder so that it uses the relevant stress properties, paired with the stress mode class(edged or blunt) code.

DigitalLibrarian commented 5 years ago

Here is a guess as to how the wrestling moves map to stress modes :

Non-strikes, and therefore not stress related moves :

"Normal" Blunt/Edge stress:

Compressive stress:

Bending stress:

Torsion stress:

Shear/Edge:

Throws can result in the throwee "skidding" along the ground and potentially "splitting in gore". The same "splitting in gore" language is used for a maximally successful gouging attempt. This probably means that both of those events use the same shear-class stress mode.

Joint locks are special kind of grab, that enable the "Break (Bones)" move. Requires [JOINT] on target part.

Bending sometimes results in " collapses" language.

Biting is a special kind of grab that enables the "Shake" move.

DigitalLibrarian commented 5 years ago

This from DF wiki :

"biting can deal [TENSILE] or [TORSION] damage depending on whether the attack is edged."

Biting moves are defined in the raws. Here is an example:

[ATTACK:BITE:BODYPART:BY_CATEGORY:BEAK]
    [ATTACK_SKILL:BITE]
    [ATTACK_VERB:bite:bites]
    [ATTACK_CONTACT_PERC:100]
    [ATTACK_PENETRATION_PERC:100]
    [ATTACK_FLAG_EDGE]
    [ATTACK_PREPARE_AND_RECOVER:3:3]
    [ATTACK_PRIORITY:MAIN]
    [ATTACK_FLAG_CANLATCH]

Needless to say, the choice between torsion and tensile doesn't make much sense. Since we already have many biting tests cases that assume biting is treated like normal shear/edged damage, it is likely that the [ATTACK_FLAG_EDGE] really switches between the normal blunt and shear/edge damage types. Or it means simply that the different Yield, Fracture, and StrainAtYield values are equivalent, across stress modes, for tissue cases, which seems to be the case (at least for muscle). Need some way to distinguish between these mutually exclusive theories.

One possibility that squares all of these problems is that the TORSION vs TENSILE debacle only applies to the "shake" move that occurs after a bite has latched on. Under such a regime, the bite move itself could still be treated as a edged or blunt strike. This rehabilitates all those passing initial bite incision tests that we have.