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
Context-Based: Grab Intent [READY FOR REVIEW] #8722
Conversation
|
Corpses probably work already as meatshields if you neckgrab them. |
|
They do for projectiles. Melee and thrown items not yet. |
Conflicts: icons/mob/screen1.dmi
| var/armor = affecting:run_armor_check(affecting, "melee") | ||
| if(armor < 2) | ||
| affecting << "<span class='danger'>You feel extreme pain!</span>" | ||
| affecting.apply_damage(40, HALLOSS, last_hit_zone, armor) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can this be done repeatedly? I'm not certain, but if it can it may be possible to knock someone out for a very long time by spamming this, which could be unfun.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The force down keeps them on the floor for as long as the grab is active, but afaik it should still be managable to resist out. Not sure, though, will check to be certain.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I was thinking more about spamming jointlock. I just checked human Life code and it looks like halloss is capped to 100, so it's not as bad as I originally thought.
Still, hitting 100 halloss makes you unable to see/hear/talk and prevents resisting for 10 seconds, so it might be a good idea to limit the number of times that this can be done, or something. I was going to suggest perhaps limiting it to once per organ, but I don't know if that makes sense for jointlocking.
Another idea would be to only apply more halloss if they are under 80 or some other number. This would mean that people can never pass out from jointlocking, which may or may not be desirable, since really we only want to prevent people from being permanently passed out.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I will change it so that 40 halloss is as much as it can possibly inflict.
|
It might be a good idea to have delays associated with some these actions, jointlocking, jointbreaking, eyesquishing, and knifing in particular. Have you considered adding a bonus for sharp unarmed attacks to eyesquishing? I'm not sure how feasible it would be to implement it cleanly but it would be a nice touch. Now that there are many ways to really fuck someone up once you have a neck grab on them, I think you may want to consider changing neck grabs to give a one-time 5-10 second stun once achieved (giving you a brief period to make special grab attacks on the victim), instead of a permastun. |
| @@ -25,6 +25,21 @@ | |||
|
|
|||
| if(!istype(M) || (can_operate(M) && do_surgery(M,user,src))) return 0 | |||
|
|
|||
| // Knifing | |||
| if(edge) | |||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It would be cleaner to move this into /obj/item/weapon/grab/attack() and check the inactive hand for an edge weapon instead of sticking it in the middle of click code.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think that might be counterintuitive for a player, having to click the victim with the grab to slit him with the knife of the inactive hand.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah, I can understand that.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If values above 23.3 with edge/sharp wouldn't cut off limbs, the three inflicted wounds could be merged into one and I'd make it dependant on the weapon's force value.
However as long as there's a guaranteed chance of the head coming off immediately, I will keep the damage dealt by knifing static to avoid that.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Well it's not guaranteed, it's governed by prob(brute), though I can see why you would want to avoid it.
I think applying a small amount of damage several times is actually a good way to model knifing. From my impression of the way wounding works, dealing a lot of damage at once seems to be treated as hitting with a lot of momentum (like a sword swing).
It might be worth considering something like:
for(var/i in 1 to 6)
M.apply_damage(min(force/2, 20), BRUTE, "head", 0, sharp=sharp, edge=edge)
What you have is fine though.
Also I think there's a parameter for apply_damage() that is needed to generate proper autopsy logs, might be a good idea to check that.
|
A way to change to bodyparts faster would be appreciated to this, since using the damage location interface while trying to jointlock and muzzle is pretty bad. |
|
That's not a new problem and I doubt I will be able to think of a way to make changing the target organs more convenient, sorry. |
|
I guess using the numpad isn't an option then, right? |
16397ba
to
bebc6fa
Compare
|
I'll remove the knifing ability if devs find it too snowflakey/gamebreaking and there is no good codewise way to improve it. Merge conflict will be fixed after all other changes were made. |
…ing and forcing onto the floor fixup
|
Knifing adds the possibility of holding someone hostage with a melee weapon, which currently is more or less solely the domain of guns, so I think it's a good thing to have. It looks like there was some controversy over it in the paracode port but honestly I don't see those concerns being an issue here. If you get someone into a neck grab and then cut their throat yeah you can kill them pretty fast. That's not really a surprise. Now in combination with the other things in this PR maybe there could be a problem. If it turns out that getting an aggressive grab -> pinning -> using the pin to escalate to neck grab -> slitting their throat is too easy to do without giving your opponent a chance to react it may have to be tweaked, but it probably is too early to tell at this point without playtesting. Really it's pinning that concerns me more than knifing, but Weaken(3) seems fairly short so we will have to see. Also it might need some further polishing like taking into account armour, weapons with very low force values, etc. Also I am still a bit concerned about spamming all these debilitating attacks on someone once you get the appropriate grab on them, completely fucking them over very fast. You might want to consider adding |
|
Joint dislocating already has a do_after() and any action on the victim will reset the time one needs to upgrade the grab. I may add a do_after to pinning down. |
|
Yeah, just wanted to bring up some things to think about. I'd feel far less worried about pinning if it could be made to not prevent resisting somehow. |
|
Well, that delay on pinning might be nice (because downing someone is a win in SS13 combat), but otherwise looks all good |
Conflicts: code/game/objects/structures/stool_bed_chair_nest/bed.dm code/modules/mob/mob_grab.dm
Did you forget to commit the file? Seeing only dmi change in that commit. |
|
Fixed. |
Context-Based: Grab Intent [READY FOR REVIEW]
Context-Based Combat: Grab Intent
Basic grab redesign including special grab actions proposed by the community.
Changes:
Features:
Details
Screenshots
Grab Transition Animations

Appearance in Chatbox
