Knuckledusters; New Ways to Beat People to Death in Style (#23685)

* Created Knuckledusters.dm

Time to see if this shit works

* Correct file now

I forgot to add .dm after making file. Oopsies.

* Delete code/game/objects/items/weapons/knuckledusters

Wrong file

* Fixes code and addes sprites

* Finished sprites, dusters can now be gotten

* Tweaks and fixes and additions

* Uplink description tweak

* Now they do more, thanks Snowball for help

* Syndiedusters look good now

* Tweaked values, added Engraved Dusters as steal objective

* Further tweak

* Removal of unnecessary space

Co-authored-by: Henri215 <77684085+Henri215@users.noreply.github.com>

* Tweaks from Henri added

* Gave admin variant new root name

* Autodocumentation of variables

I feel like an idiot not knowing how to autodocument, but feeling like an idiot is worth it so long as I learn

Co-authored-by: Henri215 <77684085+Henri215@users.noreply.github.com>

* Added some suggested changes/code cleaning

* Removes unecessary space, how do I keep missing these?

Co-authored-by: DGamerL <108773801+DGamerL@users.noreply.github.com>

---------

Co-authored-by: Henri215 <77684085+Henri215@users.noreply.github.com>
Co-authored-by: DGamerL <108773801+DGamerL@users.noreply.github.com>
This commit is contained in:
TheKillfish
2024-01-21 22:03:46 +01:00
committed by GitHub
parent 03914685a9
commit 391f296ed9
8 changed files with 111 additions and 0 deletions

View File

@@ -374,6 +374,13 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
item = /obj/item/toy/plushie/carpplushie/dehy_carp
cost = 4
/datum/uplink_item/stealthy_weapons/knuckleduster
name = "Syndicate Knuckleduster"
desc = "A straightforward and fairly concealable melee weapon for bludgeoning someone to death in brutal fashion. This one is designed specifically to cause severe organ damage to the victim."
reference = "SKD"
item = /obj/item/melee/knuckleduster/syndie
cost = 5
cant_discount = TRUE
// GRENADES AND EXPLOSIVES

View File

@@ -150,6 +150,12 @@
protected_jobs = list("Quartermaster")
job_possession = FALSE
/datum/theft_objective/engraved_dusters
name = "the quartermaster's engraved knuckledusters"
typepath = /obj/item/melee/knuckleduster/nanotrasen
protected_jobs = list("Quartermaster")
location_override = "the Quartermaster's Cargo Office"
/datum/theft_objective/number
var/min=0
var/max=0

View File

@@ -136,6 +136,7 @@
/obj/item/caution = 10,
/obj/item/mod/construction/broken_core = 4,
/obj/effect/spawner/random_spawners/mod/maint = 10,
/obj/item/melee/knuckleduster = 10,
////////////////CONTRABAND STUFF//////////////////
/obj/item/grenade/clown_grenade = 3,
/obj/item/grenade/smokebomb = 3,
@@ -165,6 +166,7 @@
/obj/item/storage/pill_bottle/fakedeath = 2,
/obj/item/clothing/suit/jacket/syndicatebomber = 5,
/obj/item/clothing/suit/storage/iaa/blackjacket/armored = 2, // More armored than bomber and has pockets, so it is rarer
/obj/item/melee/knuckleduster/syndie = 2,
"" = 61 // This should be a decently high number for chances where no loot will spawn
)

View File

@@ -0,0 +1,86 @@
/obj/item/melee/knuckleduster
name = "knuckleduster"
desc = "Simple metal punch enhancers, perfect for bar brawls."
icon = 'icons/obj/knuckleduster.dmi'
icon_state = "knuckleduster"
flags = CONDUCT
force = 5
throwforce = 3
w_class = WEIGHT_CLASS_SMALL
resistance_flags = FIRE_PROOF
materials = list(MAT_METAL = 500)
origin_tech = "combat=2"
attack_verb = list("struck", "bludgeoned", "bashed", "smashed")
/// Is the weapon gripped or not?
var/gripped = FALSE
/// Can the weapon damage organs directly or not?
var/elite = FALSE
/// Chance to break bones on hit
var/robust = 10
/// How much organ damage can the weapon do?
var/trauma = 5
/obj/item/melee/knuckleduster/attack_self(mob/user)
if(!gripped)
gripped = TRUE
to_chat(user, "You tighten your grip on [src], ensuring you won't drop it.")
flags |= NODROP
else
gripped = FALSE
to_chat(user, "You relax your grip on [src].")
flags &= ~NODROP
return
/obj/item/melee/knuckleduster/attack(mob/living/target, mob/living/user)
. = ..()
if(!ishuman(target))
return
var/obj/item/organ/external/punched = target.get_organ(user.zone_selected)
if(gripped && prob(robust) && target.health < 90) // Better at throwing strong punches when gripped
if(HAS_TRAIT(target, TRAIT_NO_BONES))
punched.cause_internal_bleeding() // Those with no bones get no relief, although this is primarily for Slimes
else
punched.fracture()
return
if(!length(punched.internal_organs))
return
var/obj/item/organ/internal/squishy = pick(punched.internal_organs)
if(gripped && elite && target.health < 90)
squishy.receive_damage(trauma)
if(punched.is_broken())
squishy.receive_damage(trauma) // Probably not so good for your organs to have your already broken ribs punched hard again
return
/obj/item/melee/knuckleduster/syndie
name = "syndicate knuckleduster"
desc = "For feeling like a real Syndicate Elite when threatening to punch someone to death."
icon_state = "knuckleduster_syndie"
force = 10
throwforce = 5
origin_tech = "combat=2;syndicate=1"
elite = TRUE
robust = 15
/obj/item/melee/knuckleduster/nanotrasen
name = "engraved knuckleduster"
desc = "Perfect for giving that Greytider a golden, painful lesson."
icon_state = "knuckleduster_nt"
force = 10
throwforce = 5
origin_tech = "combat=3"
resistance_flags = FIRE_PROOF | ACID_PROOF
materials = list(MAT_GOLD = 500)
robust = 20
/obj/item/melee/knuckleduster/admin
name = "handheld bone-breakers"
desc = "Your bones just hurt looking at it."
icon_state = "knuckleduster_nt"
force = 25
throwforce = 25
elite = TRUE
robust = 100
trauma = 30

View File

@@ -31,6 +31,7 @@
new /obj/item/flash(src)
new /obj/item/cartridge/qm(src)
new /obj/item/storage/bag/mail(src)
new /obj/item/melee/knuckleduster/nanotrasen(src)
/obj/structure/closet/secure_closet/quartermaster/lavaland //used in mining outpost
name = "quartermaster's secondary locker"

View File

@@ -949,3 +949,11 @@
materials = list(MAT_METAL = 1500, MAT_GLASS = 500)
build_path = /obj/item/mail_scanner
category = list("initial", "Miscellaneous")
/datum/design/knuckleduster
name = "Knuckleduster"
id = "knuckleduster"
build_type = AUTOLATHE
materials = list(MAT_METAL = 500)
build_path = /obj/item/melee/knuckleduster
category = list("hacked", "Security")

BIN
icons/obj/knuckleduster.dmi Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 639 B

View File

@@ -1089,6 +1089,7 @@
#include "code\game\objects\items\weapons\holosign_projector.dm"
#include "code\game\objects\items\weapons\holy_weapons.dm"
#include "code\game\objects\items\weapons\kitchen.dm"
#include "code\game\objects\items\weapons\knuckledusters.dm"
#include "code\game\objects\items\weapons\legcuffs.dm"
#include "code\game\objects\items\weapons\lighters.dm"
#include "code\game\objects\items\weapons\manuals.dm"