mirror of
https://github.com/Skyrat-SS13/Skyrat-tg.git
synced 2026-08-30 08:18:48 +01:00
* 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>
129 lines
5.0 KiB
Plaintext
129 lines
5.0 KiB
Plaintext
/datum/surgery/advanced/lobotomy
|
|
name = "Lobotomy"
|
|
desc = "An invasive surgical procedure which guarantees removal of almost all brain traumas, but might cause another permanent trauma in return."
|
|
possible_locs = list(BODY_ZONE_HEAD)
|
|
steps = list(
|
|
/datum/surgery_step/incise,
|
|
/datum/surgery_step/retract_skin,
|
|
/datum/surgery_step/saw,
|
|
/datum/surgery_step/clamp_bleeders,
|
|
/datum/surgery_step/lobotomize,
|
|
/datum/surgery_step/close,
|
|
)
|
|
|
|
/datum/surgery/advanced/lobotomy/mechanic
|
|
name = "Wetware OS Destructive Defragmentation"
|
|
desc = "A destructive robotic defragmentation method which guarantees removal of almost all brain traumas, but might cause another permanent trauma in return."
|
|
requires_bodypart_type = BODYTYPE_ROBOTIC
|
|
steps = list(
|
|
/datum/surgery_step/mechanic_open,
|
|
/datum/surgery_step/open_hatch,
|
|
/datum/surgery_step/mechanic_unwrench,
|
|
/datum/surgery_step/lobotomize/mechanic,
|
|
/datum/surgery_step/mechanic_wrench,
|
|
/datum/surgery_step/mechanic_close,
|
|
)
|
|
|
|
/datum/surgery/advanced/lobotomy/can_start(mob/user, mob/living/carbon/target)
|
|
. = ..()
|
|
if(!.)
|
|
return FALSE
|
|
var/obj/item/organ/internal/brain/target_brain = target.get_organ_slot(ORGAN_SLOT_BRAIN)
|
|
if(!target_brain)
|
|
return FALSE
|
|
return TRUE
|
|
|
|
/datum/surgery_step/lobotomize
|
|
name = "perform lobotomy (scalpel)"
|
|
implements = list(
|
|
TOOL_SCALPEL = 85,
|
|
/obj/item/melee/energy/sword = 55,
|
|
/obj/item/knife = 35,
|
|
/obj/item/shard = 25,
|
|
/obj/item = 20,
|
|
)
|
|
time = 100
|
|
preop_sound = 'sound/surgery/scalpel1.ogg'
|
|
success_sound = 'sound/surgery/scalpel2.ogg'
|
|
failure_sound = 'sound/surgery/organ2.ogg'
|
|
surgery_effects_mood = TRUE
|
|
|
|
/datum/surgery_step/lobotomize/mechanic
|
|
name = "execute neural defragging (multitool)"
|
|
implements = list(
|
|
TOOL_MULTITOOL = 85,
|
|
/obj/item/melee/energy/sword = 55,
|
|
/obj/item/knife = 35,
|
|
/obj/item/shard = 25,
|
|
/obj/item = 20,
|
|
)
|
|
preop_sound = 'sound/items/taperecorder/tape_flip.ogg'
|
|
success_sound = 'sound/items/taperecorder/taperecorder_close.ogg'
|
|
|
|
/datum/surgery_step/lobotomize/tool_check(mob/user, obj/item/tool)
|
|
if(implement_type == /obj/item && !tool.get_sharpness())
|
|
return FALSE
|
|
return TRUE
|
|
|
|
/datum/surgery_step/lobotomize/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
|
|
display_results(
|
|
user,
|
|
target,
|
|
span_notice("You begin to perform a lobotomy on [target]'s brain..."),
|
|
span_notice("[user] begins to perform a lobotomy on [target]'s brain."),
|
|
span_notice("[user] begins to perform surgery on [target]'s brain."),
|
|
)
|
|
display_pain(target, "Your head pounds with unimaginable pain!")
|
|
|
|
/datum/surgery_step/lobotomize/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery, default_display_results = FALSE)
|
|
display_results(
|
|
user,
|
|
target,
|
|
span_notice("You succeed in lobotomizing [target]."),
|
|
span_notice("[user] successfully lobotomizes [target]!"),
|
|
span_notice("[user] completes the surgery on [target]'s brain."),
|
|
)
|
|
display_pain(target, "Your head goes totally numb for a moment, the pain is overwhelming!")
|
|
|
|
target.cure_all_traumas(TRAUMA_RESILIENCE_LOBOTOMY)
|
|
if(target.mind && target.mind.has_antag_datum(/datum/antagonist/brainwashed))
|
|
target.mind.remove_antag_datum(/datum/antagonist/brainwashed)
|
|
if(prob(75)) // 75% chance to get a trauma from this
|
|
switch(rand(1, 3))//Now let's see what hopefully-not-important part of the brain we cut off
|
|
if(1)
|
|
target.gain_trauma_type(BRAIN_TRAUMA_MILD, TRAUMA_RESILIENCE_MAGIC)
|
|
if(2)
|
|
if(HAS_TRAIT(target, TRAIT_SPECIAL_TRAUMA_BOOST) && prob(50))
|
|
target.gain_trauma_type(BRAIN_TRAUMA_SPECIAL, TRAUMA_RESILIENCE_MAGIC)
|
|
else
|
|
target.gain_trauma_type(BRAIN_TRAUMA_SEVERE, TRAUMA_RESILIENCE_MAGIC)
|
|
if(3)
|
|
target.gain_trauma_type(BRAIN_TRAUMA_SPECIAL, TRAUMA_RESILIENCE_MAGIC)
|
|
return ..()
|
|
|
|
/datum/surgery_step/lobotomize/failure(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
|
|
var/obj/item/organ/internal/brain/target_brain = target.get_organ_slot(ORGAN_SLOT_BRAIN)
|
|
if(target_brain)
|
|
display_results(
|
|
user,
|
|
target,
|
|
span_warning("You remove the wrong part, causing more damage!"),
|
|
span_notice("[user] successfully lobotomizes [target]!"),
|
|
span_notice("[user] completes the surgery on [target]'s brain."),
|
|
)
|
|
display_pain(target, "The pain in your head only seems to get worse!")
|
|
target_brain.apply_organ_damage(80)
|
|
switch(rand(1,3))
|
|
if(1)
|
|
target.gain_trauma_type(BRAIN_TRAUMA_MILD, TRAUMA_RESILIENCE_MAGIC)
|
|
if(2)
|
|
if(HAS_TRAIT(target, TRAIT_SPECIAL_TRAUMA_BOOST) && prob(50))
|
|
target.gain_trauma_type(BRAIN_TRAUMA_SPECIAL, TRAUMA_RESILIENCE_MAGIC)
|
|
else
|
|
target.gain_trauma_type(BRAIN_TRAUMA_SEVERE, TRAUMA_RESILIENCE_MAGIC)
|
|
if(3)
|
|
target.gain_trauma_type(BRAIN_TRAUMA_SPECIAL, TRAUMA_RESILIENCE_MAGIC)
|
|
else
|
|
user.visible_message(span_warning("[user] suddenly notices that the brain [user.p_they()] [user.p_were()] working on is not there anymore."), span_warning("You suddenly notice that the brain you were working on is not there anymore."))
|
|
return FALSE
|