[IT'S READY NOW!] [MODULAR] Razor Claws Augment (#23050)

* initial

* god i hate byond

* there we go

* oh right

* Apply suggestions from code review

Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>

* wew

* Manual map merge

* wew

* Apply suggestions from code review

Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>

---------

Co-authored-by: Snakebittenn <12636964+Snakebittenn@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
This commit is contained in:
Nerevar
2023-09-01 17:48:09 -07:00
committed by GitHub
co-authored by GoldenAlpharex Snakebittenn Giz
parent 0ebf6deeda
commit 5f9e018543
13 changed files with 183 additions and 2 deletions
@@ -0,0 +1,7 @@
/obj/item/scratching_stone
name = "scratching stone"
icon = 'modular_skyrat/master_files/icons/obj/kitchen.dmi'
icon_state = "scratchingstone"
desc = "A specialized kind of whetstone, made of unknown alloys to hone a cyborg mercenary's claws to the best they can be. This one looks like a shitty second-hand sold by razorkids. It's got like, what, maybe one use left?"
force = 5
throwforce = 10 //Hey, you can at least use it as a brick.
@@ -31,7 +31,9 @@
"stomach" = "Stomach",
"eyes" = "Eyes",
"tongue" = "Tongue",
"Mouth implant" = "Mouth implant"
"Mouth implant" = "Mouth implant",
"Left Arm implant" = "Left Arm implant",
"Right Arm implant" = "Right Arm implant",
)
var/list/aug_support = list(
Binary file not shown.

After

Width:  |  Height:  |  Size: 367 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 482 B

@@ -77,6 +77,13 @@
cost = CARGO_CRATE_VALUE * 6 // 1200 credits
contains = list(/obj/item/gravity_harness)
/datum/supply_pack/goody/scratching_stone
name = "Scratching Stone"
desc = "A high-grade sharpening stone made of specialized alloys, meant to sharpen razor-claws. Unfortunately, this particular one has by far seen better days."
cost = CARGO_CRATE_VALUE * 4 //800 credits
contains = list(/obj/item/scratching_stone)
contraband = TRUE
/*
* CARPET PACKS
*/
@@ -19,10 +19,20 @@
/datum/augment_item/implant/l_arm
slot = AUGMENT_SLOT_LEFT_ARM_IMPLANT
/datum/augment_item/implant/l_arm/razor_claws
name = "Left Razor Claws"
cost = 4
path = /obj/item/organ/internal/cyberimp/arm/razor_claws/left_arm
//RIGHT ARM IMPLANTS
/datum/augment_item/implant/r_arm
slot = AUGMENT_SLOT_RIGHT_ARM_IMPLANT
/datum/augment_item/implant/r_arm/razor_claws
name = "Right Razor Claws"
cost = 4
path = /obj/item/organ/internal/cyberimp/arm/razor_claws/right_arm
//EYES IMPLANTS
/datum/augment_item/implant/eyes
slot = AUGMENT_SLOT_EYES_IMPLANT
@@ -1,3 +1,19 @@
#define KNIFE_HITSOUND 'sound/weapons/bladeslice.ogg'
#define KNIFE_USESOUND 'sound/weapons/bladeslice.ogg'
#define KNIFE_ATTACK_VERB_CONTINUOUS list("slashes", "tears", "slices", "tears", "lacerates", "rips", "dices", "cuts", "rends")
#define KNIFE_ATTACK_VERB_SIMPLE list("slash", "tear", "slice", "tear", "lacerate", "rip", "dice", "cut", "rend")
#define KNIFE_SHARPNESS SHARP_EDGED
#define KNIFE_BARE_WOUND_BONUS 15
#define CUTTER_HITSOUND 'sound/items/wirecutter.ogg'
#define CUTTER_USESOUND 'sound/items/wirecutter.ogg'
#define CUTTER_ATTACK_VERB_CONTINUOUS list("bashes", "batters", "bludgeons", "thrashes", "whacks")
#define CUTTER_ATTACK_VERB_SIMPLE list("bash", "batter", "bludgeon", "thrash", "whack")
#define CUTTER_FORCE 6
#define CUTTER_WOUND_BONUS 0
#define ENHANCED_KNIFE_FORCE 15
#define ENHANCED_KNIFE_WOUND_BONUS 15
#define ENHANCED_KNIFE_ARMOR_PENETRATION 10
/obj/item/melee/implantarmblade
name = "implanted arm blade"
desc = "A long, sharp, mantis-like blade implanted into someones arm. Cleaves through flesh like its particularly strong butter."
@@ -36,6 +52,98 @@
items_list += WEAKREF(new /obj/item/melee/implantarmblade/energy(src))
return TRUE
/obj/item/knife/razor_claws
name = "implanted razor claws"
desc = "A set of sharp, retractable claws built into the fingertips, five double-edged blades sure to turn people into mincemeat. Capable of shifting into 'Precision' mode to act similar to wirecutters."
icon = 'modular_skyrat/modules/implants/icons/razorclaws.dmi'
righthand_file = 'modular_skyrat/modules/implants/icons/razorclaws_righthand.dmi'
lefthand_file = 'modular_skyrat/modules/implants/icons/razorclaws_lefthand.dmi'
icon_state = "wolverine"
inhand_icon_state = "wolverine"
var/knife_force = 10
w_class = WEIGHT_CLASS_BULKY
var/knife_wound_bonus = 5
var/cutter_force = CUTTER_FORCE
var/cutter_wound_bonus = CUTTER_WOUND_BONUS
var/cutter_bare_wound_bonus = CUTTER_WOUND_BONUS
tool_behaviour = TOOL_KNIFE
toolspeed = 1
item_flags = NEEDS_PERMIT //Beepers gets angry if you get caught with this.
/obj/item/knife/razor_claws/attack_self(mob/user)
playsound(get_turf(user), 'sound/items/change_drill.ogg', 50, TRUE)
if(tool_behaviour != TOOL_WIRECUTTER)
tool_behaviour = TOOL_WIRECUTTER
to_chat(user, span_notice("You shift [src] into Precision mode, for wirecutting."))
icon_state = "precision_wolverine"
inhand_icon_state = "precision_wolverine"
force = cutter_force
wound_bonus = cutter_wound_bonus
bare_wound_bonus = cutter_bare_wound_bonus
sharpness = NONE
hitsound = CUTTER_HITSOUND
usesound = CUTTER_USESOUND
attack_verb_continuous = CUTTER_ATTACK_VERB_CONTINUOUS
attack_verb_simple = CUTTER_ATTACK_VERB_SIMPLE
else
tool_behaviour = TOOL_KNIFE
to_chat(user, span_notice("You shift [src] into Killing mode, for slicing."))
icon_state = "wolverine"
inhand_icon_state = "wolverine"
force = knife_force
sharpness = KNIFE_SHARPNESS
wound_bonus = knife_wound_bonus
bare_wound_bonus = KNIFE_BARE_WOUND_BONUS
hitsound = KNIFE_HITSOUND
usesound = KNIFE_USESOUND
attack_verb_continuous = KNIFE_ATTACK_VERB_CONTINUOUS
attack_verb_simple = KNIFE_ATTACK_VERB_SIMPLE
/obj/item/knife/razor_claws/attackby(obj/item/stone, mob/user, param)
if(!istype(stone, /obj/item/scratching_stone))
return ..()
knife_force = ENHANCED_KNIFE_FORCE
knife_wound_bonus = ENHANCED_KNIFE_WOUND_BONUS
armour_penetration = ENHANCED_KNIFE_ARMOR_PENETRATION //Let's give them some AP for the trouble.
if(tool_behaviour == TOOL_KNIFE)
force = knife_force
wound_bonus = knife_wound_bonus
name = "enhanced razor claws"
desc += span_warning("\n\nThese have undergone a special honing process; they'll kill people even faster than they used to.")
user.visible_message(span_warning("[user] sharpens [src], [stone] disintegrating!"), span_warning("You sharpen [src], making it much more deadly than before, but [stone] disintegrates under the stress."))
playsound(src, 'sound/items/unsheath.ogg', 25, TRUE)
qdel(stone)
return ..()
/obj/item/organ/internal/cyberimp/arm/razor_claws
name = "razor claws implant"
desc = "A set of hidden, retractable blades built into the fingertips; cyborg mercenary approved."
items_to_create = list(/obj/item/knife/razor_claws)
actions_types = list(/datum/action/item_action/organ_action/toggle/razor_claws)
icon = 'modular_skyrat/modules/implants/icons/razorclaws.dmi'
icon_state = "wolverine"
extend_sound = 'sound/items/unsheath.ogg'
retract_sound = 'sound/items/sheath.ogg'
/// bespoke subtypes for augs menu since it's a bit wonky
/obj/item/organ/internal/cyberimp/arm/razor_claws/right_arm
zone = BODY_ZONE_R_ARM
slot = ORGAN_SLOT_RIGHT_ARM_AUG
/obj/item/organ/internal/cyberimp/arm/razor_claws/left_arm
zone = BODY_ZONE_L_ARM
slot = ORGAN_SLOT_LEFT_ARM_AUG
/datum/action/item_action/organ_action/toggle/razor_claws
name = "Extend Claws"
desc = "You can also activate the claws in your hand to change their mode."
button_icon = 'modular_skyrat/master_files/icons/hud/actions.dmi'
button_icon_state = "wolverine"
/obj/item/organ/internal/cyberimp/arm/hacker
name = "hacking arm implant"
desc = "An small arm implant containing an advanced screwdriver, wirecutters, and multitool designed for engineers and on-the-field machine modification. Actually legal, despite what the name may make you think."
@@ -110,3 +218,19 @@
items_list += WEAKREF(new /obj/item/lighter(src)) //Now you can choose between bad and worse!
obj_flags |= EMAGGED
return TRUE
#undef KNIFE_HITSOUND
#undef KNIFE_USESOUND
#undef KNIFE_ATTACK_VERB_CONTINUOUS
#undef KNIFE_ATTACK_VERB_SIMPLE
#undef KNIFE_SHARPNESS
#undef KNIFE_BARE_WOUND_BONUS
#undef CUTTER_HITSOUND
#undef CUTTER_USESOUND
#undef CUTTER_ATTACK_VERB_CONTINUOUS
#undef CUTTER_ATTACK_VERB_SIMPLE
#undef CUTTER_FORCE
#undef CUTTER_WOUND_BONUS
#undef ENHANCED_KNIFE_FORCE
#undef ENHANCED_KNIFE_WOUND_BONUS
#undef ENHANCED_KNIFE_ARMOR_PENETRATION
@@ -11,6 +11,23 @@
)
departmental_flags = DEPARTMENT_BITFLAG_SECURITY
/datum/design/cyberimp_claws
name = "Razor Claws Implant"
desc = "Long, sharp, double-edged razors installed within the fingers, functional for cutting. All kinds of cutting."
id = "ci-razor"
build_type = PROTOLATHE | AWAY_LATHE | MECHFAB
materials = list (
/datum/material/iron = SHEET_MATERIAL_AMOUNT,
/datum/material/glass = HALF_SHEET_MATERIAL_AMOUNT,
/datum/material/silver = HALF_SHEET_MATERIAL_AMOUNT
)
construction_time = 20 SECONDS
build_path = /obj/item/organ/internal/cyberimp/arm/razor_claws
category = list(
RND_CATEGORY_CYBERNETICS + RND_SUBCATEGORY_CYBERNETICS_IMPLANTS_TOOLS
)
departmental_flags = DEPARTMENT_BITFLAG_MEDICAL | DEPARTMENT_BITFLAG_SECURITY
/datum/design/cyberimp_hacker
name = "Hacking Hand Implant"
desc = "An advanced hacking and machine modification toolkit fitted into an arm implant, designed to be installed on a subject's arm."
@@ -1,5 +1,18 @@
/datum/techweb_node/cyber_implants
design_ids = list("ci-nutriment", "ci-scanner", "ci-breather", "ci-gloweyes", "ci-welding", "ci-medhud", "ci-sechud", "ci-diaghud", "ci-botany", "ci-janitor", "ci-lighter")
design_ids = list(
"ci-nutriment",
"ci-scanner",
"ci-breather",
"ci-gloweyes",
"ci-welding",
"ci-medhud",
"ci-sechud",
"ci-diaghud",
"ci-botany",
"ci-janitor",
"ci-lighter",
"ci-razor",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 5000)
/datum/techweb_node/adv_cyber_implants
Binary file not shown.

After

Width:  |  Height:  |  Size: 452 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 354 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 356 B

+1
View File
@@ -5741,6 +5741,7 @@
#include "modular_skyrat\master_files\code\game\objects\items\oxygen_candle.dm"
#include "modular_skyrat\master_files\code\game\objects\items\RCD.dm"
#include "modular_skyrat\master_files\code\game\objects\items\religion.dm"
#include "modular_skyrat\master_files\code\game\objects\items\scratchingstone.dm"
#include "modular_skyrat\master_files\code\game\objects\items\devices\anomaly_neutralizer.dm"
#include "modular_skyrat\master_files\code\game\objects\items\stacks\sheets\sheet_types.dm"
#include "modular_skyrat\master_files\code\game\objects\items\storage\backpack.dm"