Files
2e1a819c4f Novastation Synthetic Refactor Port (#29204)
* Bow Update: Fletching instruction manual, bows using projectile damage multipliers, unhardcoded bow sprites, hot pink death

* Conflict Removal

* Update bow_arrows.dm

* Update bow_arrows.dm

* tthis also update the actual bow & arrow code

* Update arrow.dm

* [MIRROR] Bow Update: Fletching instruction manual, bows using projectile damage multipliers, unhardcoded bow sprites, hot pink death [MDB IGNORE] (#3595)

* Bow Update: Fletching instruction manual, bows using projectile damage multipliers, unhardcoded bow sprites, hot pink death

* modularize bone dice(???)

* gives the cargo crate arrows

* conflict

* icon updates

rotates our bows the same way, adds invisible pixels for easier loading
to our primitive bows, removes bow/arrow icons that are clones of
upstream's

also a hack for arrow overlays on bows- currently just defaults to
default arrows if an overlay doesn't exist for it, but our only arrows
aren't that distinct with default arrows at that size (we do not have
alternative arrow overlay sprites)

* recipe changes

im not gonna try explaining everything here but the general idea is that
the cargo fletching kit is sorta novelty bows, and the big boy stuff you
get from smithing

* update ammo hud for bows

* this shouldn't be here

* i forgot to save these

cleans up the recipes, ashwalker arrows are just made by combining by
hand (you could already do this, the recipes were a noobtrap)
and the cargo kit is cheaper

* un-nerf the chaplain bow

---------

Co-authored-by: necromanceranne <40847847+necromanceranne@users.noreply.github.com>
Co-authored-by: Fluffles <piecopresident@gmail.com>

* Refactor Synths away from /Robot/ limbs, Cybernetically augmented humanoids have alternative surgeries (#3970)

* [NO SELF SURGERY] Cybernetically augmented humanoids have alternative surgeries (both standard and advanced) [NO SELF SURGERY], as well as other misc additions

* 1

* p1

* Update limbs.dm

* oh yeah Taurs

* Limbs and Techwebs for them

* 3

* EMP

* Surgery Removals from Synths

* 5

* test

* Look Ma, no more surgery

* Update tgstation.dme

* Update hepatectomy.dm

* little bit more edit cleanup and diff reset

* Update surgery.dm

* Synth Organ Surgery!

* Update lungs.dm

* target

* 4

* Update synth_defines.dm

* you add the metal before the zap zap

* Apply suggestions from code review

Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>

* 1

* Update code/modules/surgery/hepatectomy.dm

* Update code/modules/surgery/advanced/brainwashing.dm

---------

Co-authored-by: necromanceranne <40847847+necromanceranne@users.noreply.github.com>
Co-authored-by: Fluffles <piecopresident@gmail.com>
Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>

* Update tgstation.dme

* fix stuff

* Update declarations.dm

* fix duplicate defines

---------

Co-authored-by: necromanceranne <40847847+necromanceranne@users.noreply.github.com>
Co-authored-by: projectkepler-RU <99981766+projectkepler-ru@users.noreply.github.com>
Co-authored-by: NovaBot <154629622+NovaBot13@users.noreply.github.com>
Co-authored-by: Fluffles <piecopresident@gmail.com>
Co-authored-by: Zergspower <22140677+Zergspower@users.noreply.github.com>
Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
Co-authored-by: Andrew <mt.forspam@gmail.com>
2024-08-11 19:56:17 +05:30

154 lines
6.3 KiB
Plaintext

//open shell
/datum/surgery_step/mechanic_open
name = "unscrew shell (screwdriver or scalpel)"
implements = list(
TOOL_SCREWDRIVER = 100,
TOOL_SCALPEL = 75, // med borgs could try to unscrew shell with scalpel
/obj/item/knife = 50,
/obj/item = 10) // 10% success with any sharp item.
time = 24
preop_sound = 'sound/items/screwdriver.ogg'
success_sound = 'sound/items/screwdriver2.ogg'
/datum/surgery_step/mechanic_open/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
display_results(
user,
target,
span_notice("You begin to unscrew the shell of [target]'s [target.parse_zone_with_bodypart(target_zone)]..."),
span_notice("[user] begins to unscrew the shell of [target]'s [target.parse_zone_with_bodypart(target_zone)]."),
span_notice("[user] begins to unscrew the shell of [target]'s [target.parse_zone_with_bodypart(target_zone)]."),
)
display_pain(target, "You can feel your [target.parse_zone_with_bodypart(target_zone)] grow numb as the sensory panel is unscrewed.", TRUE)
/datum/surgery_step/mechanic_open/tool_check(mob/user, obj/item/tool)
if(implement_type == /obj/item && !tool.get_sharpness())
return FALSE
if(tool.usesound)
preop_sound = tool.usesound
return TRUE
//close shell
/datum/surgery_step/mechanic_close
name = "screw shell (screwdriver or scalpel)"
implements = list(
TOOL_SCREWDRIVER = 100,
TOOL_SCALPEL = 75,
/obj/item/knife = 50,
/obj/item = 10) // 10% success with any sharp item.
time = 24
preop_sound = 'sound/items/screwdriver.ogg'
success_sound = 'sound/items/screwdriver2.ogg'
/datum/surgery_step/mechanic_close/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
display_results(
user,
target,
span_notice("You begin to screw the shell of [target]'s [target.parse_zone_with_bodypart(target_zone)]..."),
span_notice("[user] begins to screw the shell of [target]'s [target.parse_zone_with_bodypart(target_zone)]."),
span_notice("[user] begins to screw the shell of [target]'s [target.parse_zone_with_bodypart(target_zone)]."),
)
display_pain(target, "You feel the faint pricks of sensation return as your [target.parse_zone_with_bodypart(target_zone)]'s panel is screwed in.", TRUE)
/datum/surgery_step/mechanic_close/tool_check(mob/user, obj/item/tool)
if(implement_type == /obj/item && !tool.get_sharpness())
return FALSE
if(tool.usesound)
preop_sound = tool.usesound
return TRUE
//prepare electronics
/datum/surgery_step/prepare_electronics
name = "prepare electronics (multitool or hemostat)"
implements = list(
TOOL_MULTITOOL = 100,
TOOL_HEMOSTAT = 75)
time = 24
preop_sound = 'sound/items/taperecorder/tape_flip.ogg'
success_sound = 'sound/items/taperecorder/taperecorder_close.ogg'
/datum/surgery_step/prepare_electronics/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
display_results(
user,
target,
span_notice("You begin to prepare electronics in [target]'s [target.parse_zone_with_bodypart(target_zone)]..."),
span_notice("[user] begins to prepare electronics in [target]'s [target.parse_zone_with_bodypart(target_zone)]."),
span_notice("[user] begins to prepare electronics in [target]'s [target.parse_zone_with_bodypart(target_zone)]."),
)
display_pain(target, "You can feel a faint buzz in your [target.parse_zone_with_bodypart(target_zone)] as the electronics reboot.", TRUE)
//unwrench
/datum/surgery_step/mechanic_unwrench
name = "unwrench bolts (wrench or retractor)"
implements = list(
TOOL_WRENCH = 100,
TOOL_RETRACTOR = 75)
time = 24
preop_sound = 'sound/items/ratchet.ogg'
/datum/surgery_step/mechanic_unwrench/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
display_results(
user,
target,
span_notice("You begin to unwrench some bolts in [target]'s [target.parse_zone_with_bodypart(target_zone)]..."),
span_notice("[user] begins to unwrench some bolts in [target]'s [target.parse_zone_with_bodypart(target_zone)]."),
span_notice("[user] begins to unwrench some bolts in [target]'s [target.parse_zone_with_bodypart(target_zone)]."),
)
display_pain(target, "You feel a jostle in your [target.parse_zone_with_bodypart(target_zone)] as the bolts begin to loosen.", TRUE)
/datum/surgery_step/mechanic_unwrench/tool_check(mob/user, obj/item/tool)
if(tool.usesound)
preop_sound = tool.usesound
return TRUE
//wrench
/datum/surgery_step/mechanic_wrench
name = "wrench bolts (wrench or retractor)"
implements = list(
TOOL_WRENCH = 100,
TOOL_RETRACTOR = 75)
time = 24
preop_sound = 'sound/items/ratchet.ogg'
/datum/surgery_step/mechanic_wrench/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
display_results(
user,
target,
span_notice("You begin to wrench some bolts in [target]'s [target.parse_zone_with_bodypart(target_zone)]..."),
span_notice("[user] begins to wrench some bolts in [target]'s [target.parse_zone_with_bodypart(target_zone)]."),
span_notice("[user] begins to wrench some bolts in [target]'s [target.parse_zone_with_bodypart(target_zone)]."),
)
display_pain(target, "You feel a jostle in your [target.parse_zone_with_bodypart(target_zone)] as the bolts begin to tighten.", TRUE)
/datum/surgery_step/mechanic_wrench/tool_check(mob/user, obj/item/tool)
if(tool.usesound)
preop_sound = tool.usesound
return TRUE
//open hatch
/datum/surgery_step/open_hatch
name = "open the hatch (hand)"
accept_hand = TRUE
time = 10
preop_sound = 'sound/items/ratchet.ogg'
preop_sound = 'sound/machines/doorclick.ogg'
/datum/surgery_step/open_hatch/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
display_results(
user,
target,
span_notice("You begin to open the hatch holders in [target]'s [target.parse_zone_with_bodypart(target_zone)]..."),
span_notice("[user] begins to open the hatch holders in [target]'s [target.parse_zone_with_bodypart(target_zone)]."),
span_notice("[user] begins to open the hatch holders in [target]'s [target.parse_zone_with_bodypart(target_zone)]."),
)
display_pain(target, "The last faint pricks of tactile sensation fade from your [target.parse_zone_with_bodypart(target_zone)] as the hatch is opened.", TRUE)
/datum/surgery_step/open_hatch/tool_check(mob/user, obj/item/tool)
if(tool.usesound)
preop_sound = tool.usesound
return TRUE