mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2025-12-20 15:21:29 +00:00
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:
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
)
|
||||
|
||||
|
||||
86
code/game/objects/items/weapons/knuckledusters.dm
Normal file
86
code/game/objects/items/weapons/knuckledusters.dm
Normal 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
|
||||
@@ -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"
|
||||
|
||||
@@ -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
BIN
icons/obj/knuckleduster.dmi
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 639 B |
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user