Grab is too strong?

if( has_effect( effect_grabbed ) && !attacking ) {
int zed_number = 0;
for( auto &&dest : g->m.points_in_radius( pos(), 1, 0 ) ){
if( g->mon_at( dest ) != -1 &&
( g->zombie( g->mon_at( dest ) ).has_flag( MF_GRABS ) ||
g->zombie( g->mon_at( dest ) ).type->has_special_attack( “GRAB” ) ) ) {
zed_number ++;
}
}
if( zed_number == 0 ) {
add_msg_player_or_npc( m_good, _( “You find yourself no longer grabbed.” ),
_( " finds themselves no longer grabbed." ) );
remove_effect( effect_grabbed );
///\EFFECT_DEX increases chance to escape grab, if >STR

    ///\EFFECT_STR increases chance to escape grab, if >DEX
    } else if( rng( 0, std::max( get_dex(), get_str() ) ) < rng( get_effect_int( effect_grabbed ), 8 ) ) {
        // Randomly compare higher of dex or str to grab intensity.
        add_msg_player_or_npc( m_bad, _( "You try break out of the grab, but fail!" ),
                               _( "<npcname> tries to break out of the grab, but fails!" ) );
        return false;
    } else {
        add_msg_player_or_npc( m_good, _( "You break out of the grab!" ),
                               _( "<npcname> breaks out of the grab!" ) );
        remove_effect( effect_grabbed );
    }

The code seems to imply a strength check, but Ive seen a strength 10 character (at str 10 when this occurs) fail to break a single zombie for several turns.

I’ve always assumed zombies get a big boost to physical strength after zombification. It makes sense to me as is. If Str. 8 is average, Str. 10 is just above average. Probably still not enough to outmuscle a zombie.

Early grab code was buggy. It didn’t properly account for strength.
It may still be the case now. Grab code is a big hack.

I just checked - looks like the breaking out of the grab code is fine, but the grab code itself greatly favors weak characters. Not just the ones with high dexterity - ones with strength lower than dexterity, even if dexterity is low too.

Need a feat to greatly increase chance of not being grabbed, and martial styles that have grabbing countermeasures, like letting you use a move for almost free to knock them down and break grab.

Akido or Judo jumps to mind.

I think strong grab is fine, it should be a threat.

[quote=“pisskop, post:1, topic:12176”][spoiler=code]
if( has_effect( effect_grabbed ) && !attacking ) {
int zed_number = 0;
for( auto &&dest : g->m.points_in_radius( pos(), 1, 0 ) ){
if( g->mon_at( dest ) != -1 &&
( g->zombie( g->mon_at( dest ) ).has_flag( MF_GRABS ) ||
g->zombie( g->mon_at( dest ) ).type->has_special_attack( “GRAB” ) ) ) {
zed_number ++;
}
}
if( zed_number == 0 ) {
add_msg_player_or_npc( m_good, _( “You find yourself no longer grabbed.” ),
_( " finds themselves no longer grabbed." ) );
remove_effect( effect_grabbed );
///\EFFECT_DEX increases chance to escape grab, if >STR

    ///\EFFECT_STR increases chance to escape grab, if >DEX
    } else if( rng( 0, std::max( get_dex(), get_str() ) ) < rng( get_effect_int( effect_grabbed ), 8 ) ) {
        // Randomly compare higher of dex or str to grab intensity.
        add_msg_player_or_npc( m_bad, _( "You try break out of the grab, but fail!" ),
                               _( "<npcname> tries to break out of the grab, but fails!" ) );
        return false;
    } else {
        add_msg_player_or_npc( m_good, _( "You break out of the grab!" ),
                               _( "<npcname> breaks out of the grab!" ) );
        remove_effect( effect_grabbed );
    }

[/spoiler]

The code seems to imply a strength check, but Ive seen a strength 10 character (at str 10 when this occurs) fail to break a single zombie for several turns.[/quote]

Point to the doll where the zombie grabbed you.

I wouldnt mind if grabbing was even stronger with stronger creatures, i just think that there should be some things that could protect you from grabs. also if you get far into the slime tree being amorphous would make you near impossible to grab. unless the object has a containing quality of 4.

Think I mentioned before that the problem with grab seems to be that grab is transferred over to other zombies. If you kill the initial grabber with another Z next to you, you stayed grabbed. But have not tested this in recent versions.

i don’t find myself grabbed too often by multiple zombies, if i am im just in a bad position and should be dead.

Up the zombie ratio, or go enter a mall, or just stand in town fully armored. That you ‘should be dead’ doesn’t mean I have a suspicion the implementation is bugged.