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

Adds the ability to hold people at gunpoint. #9952

Merged
merged 5 commits into from
Oct 12, 2023

Conversation

CydiaLamiales
Copy link
Contributor

@CydiaLamiales CydiaLamiales commented Oct 3, 2023

About The Pull Request

Adds the ability to hold people at gunpoint by pointing at them with a gun in hand.
To activate gunpoint you must be within 1 tile of someone. If you're not grabbing them you can press the button to grab them after a delay, then aggressive grab after another button press and delay.
While you're holding someone at gunpoint, you'll know if they'll equip/drop anything in hand or try to resist your grab.
If you shoot someone while holding them at a gunpoint, the bullet will do 4 times the damage. Clumsy people have a 40% chance of blowing their own brains out instead.

Why It's Good For The Game

Allows for more RP situations where an antagonist holds someone hostage, or interrogates someone while "persuading" them with a gun.

Testing Photographs and Procedure

Screenshots&Videos

https://cdn.discordapp.com/attachments/801432004058939422/1158835808502030396/bandicam_2023-10-03_21-33-27-232.mp4?ex=651db172&is=651c5ff2&hm=342fcc739bd45962f7cbc78dfa99e74d1c93f9c284171e720489831cd8b7083f&

Grabbing and upgrading grabs through the pointing menu.

bandicam.2023-10-03.22-28-47-113.mp4

Changelog

🆑
add: Added the ability to hold someone at gunpoint by pointing at them with a gun while they're aggressively grabbed by you. Shooting someone while holding them at a gunpoint will deal 4x the normal damage.
/:cl:

UnregisterSignal(src.target, COMSIG_MOVABLE_NO_LONGER_PULLED)


/datum/component/aiming/proc/shoot(var/damage_multiplier = 1)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The new parameter here doesn't seem to do anything, since the damage is handled by GUN_AIMED or GUN_AIMED_POINTBLANK being being passed to the gun.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah I was trying to do something else but forgot to remove this.

process_fire(user, user, FALSE, params, shot_leg)
user.dropItemToGround(src, TRUE)
if(aimed == GUN_AIMED_POINTBLANK)
to_chat(user, "<span class='userdanger>In a cruel twist of fate you fumble your grip and accidentally shoot yourself in the head!</span>")
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You might want to consider checking for non-lethal weapons (although blowing your brain out with a disabler would be pretty funny).

/datum/component/aiming/proc/setup_pointblank()
holding_at_gunpoint = TRUE
RegisterSignal(target, COMSIG_MOB_EQUIPPED_ITEM, PROC_REF(on_equip))
RegisterSignal(target, COMSIG_MOB_DROPPED_ITEM, PROC_REF(on_drop))
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there any particular reason you're re-registering EQUIPPED_ITEM and DROPPED_ITEM here? They're registered on proc/aim, and I can't see any way in which this gets called before aim does.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm yeah, since they're registered on aim() there's no point in registering them here.

Copy link
Member

@PowerfulBacon PowerfulBacon left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This might be too difficult in game to use effectively (people just walk away from the person doing it) but we will see how it goes. It can be made easier if need be or given special interactions like pushovers can always be held at gunpoint.

@PowerfulBacon PowerfulBacon added this pull request to the merge queue Oct 12, 2023
Merged via the queue into BeeStation:master with commit 4e37041 Oct 12, 2023
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants