Skip to content

Commit

Permalink
Fingergun emote! (Monkestation#1343)
Browse files Browse the repository at this point in the history
* lol

* lets make sure it doesn't embed..

* prounugnsd

* BANG!

having a gun pointed at you and walking away no longer makes you say "BANG!"

* waoh

lower the ammo count

let's not fill the mimes chatbox

* no spam

* change fingergun icon

* inhand icon defines?

* Update tgstation.dme

---------

Co-authored-by: dwasint <[email protected]>
  • Loading branch information
CannibalHunter and dwasint authored Mar 18, 2024
1 parent 1e9a1c0 commit b2672b8
Show file tree
Hide file tree
Showing 3 changed files with 106 additions and 0 deletions.
105 changes: 105 additions & 0 deletions monkestation/code/modules/mob/living/carbon/emote.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,105 @@
//Finger Guns *blows smoke off his finger tips*
/datum/emote/living/carbon/fingergun
key = "fingergun"
key_third_person = "fingerguns"
hands_use_check = TRUE
cooldown = 3 SECONDS

/datum/emote/living/carbon/fingergun/run_emote(mob/user, params, type_override, intentional)
. = ..()
if(!.)
return
var/obj/item/gun/ballistic/fingergun_emote/N = new(user)
if(user.put_in_hands(N))
to_chat(user, span_notice("You fold your hand into a finger gun."))
user.manual_emote("folds [user.p_their()] hand into a finger gun.")
else
qdel(N)
to_chat(user, span_warning("You're incapable of readying a finger gun in your current state."))

/obj/item/ammo_casing/caseless/fingergun_bullet
name = "imaginary bullet"
desc = "Bullets are not real idiot."
projectile_type = /obj/projectile/bullet/fingergun_bullet
item_flags = DROPDEL
caliber = "bulletsarenotrealyouidiot"
custom_materials = list()
harmful = FALSE

/obj/projectile/bullet/fingergun_bullet
name = "imaginary bullet"
desc = "Bullets are not real idiot."
icon = 'monkestation/icons/obj/weapons/guns/fingergun_emote.dmi'
icon_state = "projectile"
damage = 0
hitsound_wall = ""
impact_effect_type = null
embedding = list(embed_chance=0)

/obj/item/ammo_box/magazine/fingergun_emote
name = "finger gun magazine"
desc = "You should not be seeing this..."
ammo_type = /obj/item/ammo_casing/caseless/fingergun_bullet
caliber = "bulletsarenotrealyouidiot"
max_ammo = 8

/obj/item/gun/ballistic/fingergun_emote
name = "finger gun"
desc = "''Ya' need a count?'' ''Nah sir.'' *abruptly gets shot in the head. ''Well.. that ain't good...'' *falls over backwards ''I should'a seen this comming.''"
icon = 'monkestation/icons/obj/weapons/guns/fingergun_emote.dmi'
icon_state = "item"
lefthand_file = 'icons/mob/inhands/items_lefthand.dmi'
righthand_file = 'icons/mob/inhands/items_righthand.dmi'
inhand_icon_state = "nothing"
item_flags = DROPDEL | HAND_ITEM
force = 0
throwforce = 0
load_sound_volume = 0
rack_sound_volume = 0
lock_back_sound_volume = 0
eject_sound_volume = 0
bolt_drop_sound_volume = 0
dry_fire_sound = ""
pinless = TRUE
clumsy_check = FALSE
trigger_guard = TRIGGER_GUARD_ALLOW_ALL
gun_flags = NONE
mag_type = /obj/item/ammo_box/magazine/fingergun_emote
spawnwithmagazine = TRUE
internal_magazine = TRUE
bolt_type = BOLT_TYPE_NO_BOLT
fire_delay = 0.5

/obj/item/gun/ballistic/fingergun_emote/shoot_live_shot(mob/living/user, pointblank = 0, atom/pbtarget = null) //mostly copied from /obj/item/gun/proc/shoot_live_shot(
if(!HAS_TRAIT(user, TRAIT_MIMING))
user.say("'s hand flying upwards with imaginary recoil*BANG!")
if(tk_firing(user))
visible_message(
span_danger("[src] fires itself[pointblank ? " point blank at [pbtarget]!" : "!"]"),
vision_distance = COMBAT_MESSAGE_RANGE
)
else if(pointblank)
user.visible_message(
span_danger("[user] fires [src] point blank at [pbtarget]!"),
span_danger("You fire [src] point blank at [pbtarget]!"),
)
to_chat(pbtarget, span_userdanger("[user] fires [src] point blank at you!"))
if(pb_knockback > 0 && ismob(pbtarget))
var/mob/PBT = pbtarget
var/atom/throw_target = get_edge_target_turf(PBT, user.dir)
PBT.throw_at(throw_target, pb_knockback, 2)
else if(!tk_firing(user))
user.visible_message(
span_danger("[user] fires [src]!"),
vision_distance = COMBAT_MESSAGE_RANGE,
ignored_mobs = user
)

/obj/item/gun/ballistic/fingergun_emote/attack_self()
return

/obj/item/gun/ballistic/fingergun_emote/attackby()
return

/obj/item/gun/ballistic/fingergun_emote/eject_magazine()
return
Binary file not shown.
1 change: 1 addition & 0 deletions tgstation.dme
Original file line number Diff line number Diff line change
Expand Up @@ -6378,6 +6378,7 @@
#include "monkestation\code\modules\mob\living\carbon\carbon_defense.dm"
#include "monkestation\code\modules\mob\living\carbon\carbon_defines.dm"
#include "monkestation\code\modules\mob\living\carbon\carbon_update_icons.dm"
#include "monkestation\code\modules\mob\living\carbon\emote.dm"
#include "monkestation\code\modules\mob\living\carbon\human\accessory_helpers.dm"
#include "monkestation\code\modules\mob\living\carbon\human\carbon.dm"
#include "monkestation\code\modules\mob\living\carbon\human\custom_bodytype.dm"
Expand Down

0 comments on commit b2672b8

Please sign in to comment.