Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Big balance breaking bug: Train dodge using boomers up to the 11th level #36765

Closed
Aphegis opened this issue Jan 7, 2020 · 9 comments · Fixed by #37613
Closed

Big balance breaking bug: Train dodge using boomers up to the 11th level #36765

Aphegis opened this issue Jan 7, 2020 · 9 comments · Fixed by #37613
Labels
<Exploit> Unintended interactions or behavior, usually breaking how the game is balanced Mechanics: Effects / Skills / Stats Effects / Skills / Stats Monsters Monsters both friendly and unfriendly.

Comments

@Aphegis
Copy link

Aphegis commented Jan 7, 2020

Note:

I know that the devs know about this exploit, but, because of the lack of time, it was not fixed. In my opinion, is a huge balance breaking bug and i'm creating this issue for organization, and to remember that it's still present.

Describe the bug

You can exploit the training system using bear traps and boomers to train your dodge up to the 11th level

Steps To Reproduce

1 - Find a boomer.
2 - Set a bear trap.
3 - Make the boomer trapped in the bear trap.
4 - Wait while the boomer pukes at you and you train your dodge up to the 11th level.
5 - ???
6 - Profit

Screenshots

Even better than a screenshot, Vormithrax made a video about it:

https://www.youtube.com/watch?v=gVT0dgZjjNM

@Night-Pryanik Night-Pryanik added <Exploit> Unintended interactions or behavior, usually breaking how the game is balanced Mechanics: Effects / Skills / Stats Effects / Skills / Stats Monsters Monsters both friendly and unfriendly. labels Jan 7, 2020
@GGgatherer
Copy link
Contributor

I wonder how it could be "fixed". Either make it undodgeable (lame), or make a specific exception for it to not train dodge (counterexploit which is imo too counterintuitive)? Or make bear traps instagib boomers? which would be an exploit in itself.

Also, what next? Let's remove BB gun "exploit"? Because currently you can train rifles with them without taking any risk.

@ghost
Copy link

ghost commented Jan 7, 2020

I wonder how it could be "fixed".

    if( !target->uncanny_dodge() ) {
        ///\EFFECT_DODGE increases chance to avoid boomer effect
        if( rng( 0, 10 ) > target->get_dodge() || one_in( target->get_dodge() ) ) {
            target->add_env_effect( effect_boomered, bp_eyes, 3, 12_turns );
        } else if( u_see ) {
            target->add_msg_player_or_npc( _( "You dodge it!" ),
                                           _( "<npcname> dodges it!" ) );
        }
        target->on_dodge( z, 10 );
    }

At cursory glance it should be fixed by changing on_dodge to lower difficulty whilst keeping rng roll the same.

@kevingranade
Copy link
Member

The liklihood of dodging at lvl 9 is 10 / 11 * 8 / 9 == 80 / 99, so it certainly shouldn't be training to lvl 10
at lvl 8 it's 9 / 11 * 7 / 8 == 63 / 88
at lvl 7 it's 8 / 11 * 6 / 7 == 48 / 77
at lvl 6 it's 7 / 11 * 5 / 6 == 35 / 66
at lvl 5 it's 6 / 11 * 4 / 5 == 24 / 55

Probably drop that on_dodge level argument to either 5 or 6.

Additionally, the exploit works because bile can't do any lasting damage in isolation, lots of options for long-lasting effects.
Add rare damage.
Add rare clothing damage.
Add a long-term (days) "bile sensitivity" effect that makes the blindness effect last longer when triggered.
Add a rare "bile sickness" effect that's debilitating.

Finally the constant stream of bile is problematic, the rate of bile attacks could drop off over time, making the strategy infeasible.
Currently the boomer attack has a cooldown of 20 turns, meaning it triggers 180 times an hour.
If you just increased the cooldown by one per attack, it would drop that rate to 68 attacks in the first hour, and only 35 the next hour. Oter rates are feasible, this is just to show how quickly it would taper off.

@ghost
Copy link

ghost commented Jan 7, 2020

Add rare clothing damage.

Well, getting vomited all over should probably stand a decent chance of turning ones attire (filthy).

@kevingranade
Copy link
Member

That's a good point, a morale-tanking effect of the bile would also pretty much kill the exploit.

@ghost
Copy link

ghost commented Jan 8, 2020

Hmm, there is DT_BIOLOGICAL placeholder, which seems like apt choice for this.
Boomer attack could do biological damage that would (on top of blind as usual when rolling bp_head/eyes/mouth) special case past damage handling code (since it is not doing actual damage) and have a chance to add filthy flag to items worn on bp, perhaps later even expanded with some form of bite mechanics (ie. getting bio attacked on damaged bp could cause wound contamination/'bite' status)

@TechyBen
Copy link
Contributor

TechyBen commented Jan 8, 2020

That's a good point, a morale-tanking effect of the bile would also pretty much kill the exploit.

So glad we have gone for the more sane balancing ideas rather than "nuke the game from orbit just to be safe", but still, I'm both relieved and amazed you listed all possible solutions for this one. XD

@kevingranade
Copy link
Member

Oh? you want "all possible solutions"? I'll get back to you, those were just off the top of my head...

@TechyBen
Copy link
Contributor

TechyBen commented Jan 9, 2020

Oh? you want "all possible solutions"? I'll get back to you, those were just off the top of my head...

Like I said. Impressive!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
<Exploit> Unintended interactions or behavior, usually breaking how the game is balanced Mechanics: Effects / Skills / Stats Effects / Skills / Stats Monsters Monsters both friendly and unfriendly.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants