mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-24 21:48:39 +01:00
## About The Pull Request should fix the empty block CI fail ## Why It's Good For The Game CI yes ## Proof Of Testing did local CI and it didnt give me errors so unless I fuked up running it it should be fine <details> <summary>Screenshots/Videos</summary> </details> ## Changelog no player facing
234 lines
10 KiB
Plaintext
234 lines
10 KiB
Plaintext
#define KNIFE_HITSOUND 'sound/items/weapons/bladeslice.ogg'
|
|
#define KNIFE_USESOUND 'sound/items/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_EXPOSED_WOUND_BONUS 15
|
|
#define CUTTER_HITSOUND 'sound/items/tools/wirecutter.ogg'
|
|
#define CUTTER_USESOUND 'sound/items/tools/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."
|
|
icon = 'modular_skyrat/modules/implants/icons/implanted_blade.dmi'
|
|
righthand_file = 'modular_skyrat/modules/implants/icons/implanted_blade_righthand.dmi'
|
|
lefthand_file = 'modular_skyrat/modules/implants/icons/implanted_blade_lefthand.dmi'
|
|
icon_state = "mantis_blade"
|
|
w_class = WEIGHT_CLASS_BULKY
|
|
obj_flags = CONDUCTS_ELECTRICITY
|
|
sharpness = SHARP_EDGED
|
|
force = 20
|
|
armour_penetration = 20
|
|
item_flags = NEEDS_PERMIT //Beepers gets angry if you get caught with this.
|
|
hitsound = 'modular_skyrat/master_files/sound/weapons/bloodyslice.ogg'
|
|
|
|
/obj/item/melee/implantarmblade/energy
|
|
name = "energy arm blade"
|
|
desc = "A long mantis-like blade made entirely of blazing-hot energy. Stylish and EXTRA deadly!"
|
|
icon_state = "energy_mantis_blade"
|
|
force = 30
|
|
armour_penetration = 10 //Energy isn't as good at going through armor as it is through flesh alone.
|
|
hitsound = 'sound/items/weapons/blade1.ogg'
|
|
|
|
/obj/item/organ/cyberimp/arm/toolkit/armblade
|
|
name = "arm blade implant"
|
|
desc = "An integrated blade implant designed to be installed into a persons arm. Stylish and deadly; Although, being caught with this without proper permits is sure to draw unwanted attention."
|
|
items_to_create = list(/obj/item/melee/implantarmblade)
|
|
icon = 'modular_skyrat/modules/implants/icons/implanted_blade.dmi'
|
|
icon_state = "mantis_blade"
|
|
|
|
/obj/item/organ/cyberimp/arm/toolkit/armblade/emag_act()
|
|
if(obj_flags & EMAGGED)
|
|
return FALSE
|
|
to_chat(usr, span_notice("You unlock [src]'s integrated energy arm blade! You madman!"))
|
|
items_list += WEAKREF(new /obj/item/melee/implantarmblade/energy(src))
|
|
obj_flags |= EMAGGED
|
|
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_exposed_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/tools/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
|
|
exposed_wound_bonus = cutter_exposed_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
|
|
exposed_wound_bonus = KNIFE_EXPOSED_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/cyberimp/arm/toolkit/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/cyberimp/arm/toolkit/razor_claws/right_arm
|
|
zone = BODY_ZONE_R_ARM
|
|
slot = ORGAN_SLOT_RIGHT_ARM_AUG
|
|
|
|
/obj/item/organ/cyberimp/arm/toolkit/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/cyberimp/arm/toolkit/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."
|
|
icon = 'icons/obj/items_cyborg.dmi'
|
|
icon_state = "toolkit_engiborg_multitool"
|
|
items_to_create = list(/obj/item/screwdriver/cyborg, /obj/item/wirecutters/cyborg, /obj/item/multitool/abductor/implant)
|
|
|
|
/obj/item/organ/cyberimp/arm/toolkit/botany
|
|
name = "botany arm implant"
|
|
desc = "A rather simple arm implant containing tools used in gardening and botanical research."
|
|
items_to_create = list(/obj/item/cultivator, /obj/item/shovel/spade, /obj/item/hatchet, /obj/item/gun/energy/floragun, /obj/item/plant_analyzer, /obj/item/geneshears, /obj/item/secateurs, /obj/item/storage/bag/plants, /obj/item/storage/bag/plants/portaseeder)
|
|
|
|
/obj/item/implant_mounted_chainsaw
|
|
name = "integrated chainsaw"
|
|
desc = "A chainsaw that conceals inside your arm."
|
|
icon = 'icons/obj/weapons/chainsaw.dmi'
|
|
icon_state = "chainsaw_on"
|
|
inhand_icon_state = "mounted_chainsaw"
|
|
lefthand_file = 'icons/mob/inhands/weapons/chainsaw_lefthand.dmi'
|
|
righthand_file = 'icons/mob/inhands/weapons/chainsaw_righthand.dmi'
|
|
force = 24
|
|
throwforce = 0
|
|
throw_range = 0
|
|
throw_speed = 0
|
|
sharpness = SHARP_EDGED
|
|
attack_verb_continuous = list("saws", "tears", "lacerates", "cuts", "chops", "dices")
|
|
attack_verb_simple = list("saw", "tear", "lacerate", "cut", "chop", "dice")
|
|
hitsound = 'sound/items/weapons/chainsawhit.ogg'
|
|
tool_behaviour = TOOL_SAW
|
|
toolspeed = 1
|
|
|
|
/obj/item/organ/cyberimp/arm/toolkit/botany/emag_act()
|
|
if(obj_flags & EMAGGED)
|
|
return FALSE
|
|
to_chat(usr, span_notice("You unlock [src]'s deluxe landscaping equipment!"))
|
|
items_list += WEAKREF(new /obj/item/implant_mounted_chainsaw(src)) //time to landscape the station
|
|
obj_flags |= EMAGGED
|
|
return TRUE
|
|
|
|
/obj/item/multitool/abductor/implant
|
|
name = "multitool"
|
|
desc = "An optimized, highly advanced stripped-down multitool able to interface with electronics far better than its standard counterpart."
|
|
icon = 'icons/obj/items_cyborg.dmi'
|
|
icon_state = "toolkit_engiborg_multitool"
|
|
|
|
/obj/item/organ/cyberimp/arm/toolkit/janitor
|
|
name = "janitorial tools implant"
|
|
desc = "A set of janitorial tools on the user's arm."
|
|
items_to_create = list(/obj/item/lightreplacer, /obj/item/holosign_creator, /obj/item/soap/nanotrasen, /obj/item/reagent_containers/spray/cyborg_drying, /obj/item/mop/advanced, /obj/item/paint/paint_remover, /obj/item/reagent_containers/cup/beaker/large, /obj/item/reagent_containers/spray/cleaner) //Beaker if for refilling sprays
|
|
|
|
/obj/item/organ/cyberimp/arm/toolkit/janitor/emag_act()
|
|
if(obj_flags & EMAGGED)
|
|
return FALSE
|
|
to_chat(usr, span_notice("You unlock [src]'s integrated deluxe cleaning supplies!"))
|
|
items_list += WEAKREF(new /obj/item/soap/syndie(src)) //We add not replace.
|
|
items_list += WEAKREF(new /obj/item/reagent_containers/spray/cyborg_lube(src))
|
|
obj_flags |= EMAGGED
|
|
return TRUE
|
|
|
|
/obj/item/organ/cyberimp/arm/toolkit/lighter
|
|
name = "lighter implant"
|
|
desc = "A... implanted lighter. Incredibly useless."
|
|
items_to_create = list(/obj/item/lighter/greyscale) //Hilariously useless.
|
|
|
|
/obj/item/organ/cyberimp/arm/toolkit/lighter/emag_act()
|
|
if(obj_flags & EMAGGED)
|
|
return FALSE
|
|
to_chat(usr, span_notice("You unlock [src]'s integrated Zippo lighter! Finally, classy smoking!"))
|
|
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_EXPOSED_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
|