diff --git a/code/__DEFINES/~skyrat_defines/antagonists.dm b/code/__DEFINES/~skyrat_defines/antagonists.dm index 05c05d4d832..98ffe1ecd2f 100644 --- a/code/__DEFINES/~skyrat_defines/antagonists.dm +++ b/code/__DEFINES/~skyrat_defines/antagonists.dm @@ -42,4 +42,4 @@ #define BORER_ALONE_PRODUCTION (1<<4) // Clock cultist -#define IS_CLOCK(mob) ((FACTION_CLOCK in mob.faction) || mob?.mind?.has_antag_datum(/datum/antagonist/clock_cultist)) +#define IS_CLOCK(mob) ((mob.has_faction(FACTION_CLOCK)) || mob?.mind?.has_antag_datum(/datum/antagonist/clock_cultist)) diff --git a/code/modules/antagonists/ert/ert.dm b/code/modules/antagonists/ert/ert.dm index 3c9d2cec8e3..36ee0b94725 100644 --- a/code/modules/antagonists/ert/ert.dm +++ b/code/modules/antagonists/ert/ert.dm @@ -36,7 +36,7 @@ forge_objectives() if(equip_ert) equipERT() - owner?.current.faction |= FACTION_ERT // SKYRAT EDIT ADDITION + owner?.current.add_faction(FACTION_ERT) // SKYRAT EDIT ADDITION . = ..() /datum/antagonist/ert/get_team() diff --git a/modular_skyrat/modules/Midroundtraitor/code/event.dm b/modular_skyrat/modules/Midroundtraitor/code/event.dm index dacc555534c..cbfedf40740 100644 --- a/modular_skyrat/modules/Midroundtraitor/code/event.dm +++ b/modular_skyrat/modules/Midroundtraitor/code/event.dm @@ -63,5 +63,5 @@ id_trim = /datum/id_trim/chameleon/operative /datum/outfit/syndicateinfiltrator/post_equip(mob/living/carbon/human/H) - H.faction |= ROLE_SYNDICATE + H.add_faction(ROLE_SYNDICATE) H.update_icons() diff --git a/modular_skyrat/modules/ashwalkers/code/species/Ashwalkers.dm b/modular_skyrat/modules/ashwalkers/code/species/Ashwalkers.dm index ffb991ebc35..263a2b518f9 100644 --- a/modular_skyrat/modules/ashwalkers/code/species/Ashwalkers.dm +++ b/modular_skyrat/modules/ashwalkers/code/species/Ashwalkers.dm @@ -14,12 +14,12 @@ . = ..() RegisterSignal(carbon_target, COMSIG_MOB_ITEM_ATTACK, PROC_REF(mob_attack)) carbon_target.AddComponent(/datum/component/ash_age) - carbon_target.faction |= FACTION_ASHWALKER + carbon_target.add_faction(FACTION_ASHWALKER) /datum/species/lizard/ashwalker/on_species_loss(mob/living/carbon/carbon_target) . = ..() UnregisterSignal(carbon_target, COMSIG_MOB_ITEM_ATTACK) - carbon_target.faction &= FACTION_ASHWALKER + carbon_target.remove_faction(FACTION_ASHWALKER) /datum/species/lizard/ashwalker/proc/mob_attack(datum/source, mob/mob_target, mob/user, list/modifiers) SIGNAL_HANDLER diff --git a/modular_skyrat/modules/assault_operatives/code/assault_operatives_outfits.dm b/modular_skyrat/modules/assault_operatives/code/assault_operatives_outfits.dm index 3a63be7617b..257ef1ac0db 100644 --- a/modular_skyrat/modules/assault_operatives/code/assault_operatives_outfits.dm +++ b/modular_skyrat/modules/assault_operatives/code/assault_operatives_outfits.dm @@ -24,7 +24,7 @@ var/obj/item/implant/weapons_auth/weapons_authorisation = new/obj/item/implant/weapons_auth(equipping_human) weapons_authorisation.implant(equipping_human) - equipping_human.faction |= ROLE_SYNDICATE + equipping_human.add_faction(ROLE_SYNDICATE) equipping_human.update_icons() diff --git a/modular_skyrat/modules/assault_operatives/code/shuttle.dm b/modular_skyrat/modules/assault_operatives/code/shuttle.dm index fb5410ede89..043d67e739b 100644 --- a/modular_skyrat/modules/assault_operatives/code/shuttle.dm +++ b/modular_skyrat/modules/assault_operatives/code/shuttle.dm @@ -14,7 +14,7 @@ return TRUE /obj/machinery/computer/shuttle/goldeneye_cruiser/allowed(mob/to_check) - if(issilicon(to_check) && !(ROLE_SYNDICATE in to_check.faction)) + if(issilicon(to_check) && !(to_check.has_faction(ROLE_SYNDICATE))) return FALSE return ..() diff --git a/modular_skyrat/modules/bitrunning/code/virtual_domains/ancient_milsim/outfit.dm b/modular_skyrat/modules/bitrunning/code/virtual_domains/ancient_milsim/outfit.dm index 9290b2053d9..2a7fdb1eab0 100644 --- a/modular_skyrat/modules/bitrunning/code/virtual_domains/ancient_milsim/outfit.dm +++ b/modular_skyrat/modules/bitrunning/code/virtual_domains/ancient_milsim/outfit.dm @@ -61,7 +61,7 @@ /datum/outfit/cin_soldier_player/post_equip(mob/living/carbon/human/user, visualsOnly) . = ..() - user.faction |= ROLE_SYNDICATE + user.add_faction(ROLE_SYNDICATE) // make sure we update the ID's name too var/obj/item/card/id/id_card = user.wear_id diff --git a/modular_skyrat/modules/black_mesa/code/ghost_spawners.dm b/modular_skyrat/modules/black_mesa/code/ghost_spawners.dm index d13a66f10cb..97b31ec25e9 100644 --- a/modular_skyrat/modules/black_mesa/code/ghost_spawners.dm +++ b/modular_skyrat/modules/black_mesa/code/ghost_spawners.dm @@ -28,7 +28,7 @@ /datum/outfit/science_team/post_equip(mob/living/carbon/human/equipped_human, visualsOnly) . = ..() - equipped_human.faction |= FACTION_BLACKMESA + equipped_human.add_faction(FACTION_BLACKMESA) /datum/id_trim/science_team assignment = "Science Team Scientist" @@ -65,7 +65,7 @@ /datum/outfit/security_guard/post_equip(mob/living/carbon/human/equipped_human, visualsOnly) . = ..() - equipped_human.faction |= FACTION_BLACKMESA + equipped_human.add_faction(FACTION_BLACKMESA) /datum/id_trim/security_guard assignment = "Security Guard" @@ -170,7 +170,7 @@ /datum/outfit/hecu/post_equip(mob/living/carbon/human/equipped_human, visualsOnly) . = ..() - equipped_human.faction |= FACTION_HECU + equipped_human.add_faction(FACTION_HECU) /datum/id_trim/hecu assignment = "HECU Marine" @@ -222,7 +222,7 @@ /datum/outfit/hecu/leader/post_equip(mob/living/carbon/human/equipped_human, visualsOnly) . = ..() - equipped_human.faction |= FACTION_HECU + equipped_human.add_faction(FACTION_HECU) /datum/id_trim/hecu_leader assignment = "HECU Captain" diff --git a/modular_skyrat/modules/black_mesa/code/xen_crystal.dm b/modular_skyrat/modules/black_mesa/code/xen_crystal.dm index 030ea3699af..e85f47ad981 100644 --- a/modular_skyrat/modules/black_mesa/code/xen_crystal.dm +++ b/modular_skyrat/modules/black_mesa/code/xen_crystal.dm @@ -60,7 +60,7 @@ for(var/mob/living/mob_to_neutralize in view(src, effect_range)) if(is_type_in_list(mob_to_neutralize, blacklisted_mobs)) return - mob_to_neutralize.faction |= factions + mob_to_neutralize.add_faction(factions) mob_to_neutralize.visible_message(span_green("[mob_to_neutralize] is overcome by a wave of peace and tranquility!")) new /obj/effect/particle_effect/sparks/quantum(get_turf(mob_to_neutralize)) qdel(src) diff --git a/modular_skyrat/modules/borgs/code/robot_model.dm b/modular_skyrat/modules/borgs/code/robot_model.dm index 54e162360ee..1cc2a76c942 100644 --- a/modular_skyrat/modules/borgs/code/robot_model.dm +++ b/modular_skyrat/modules/borgs/code/robot_model.dm @@ -467,11 +467,11 @@ /obj/item/robot_model/ninja/rebuild_modules() . = ..() var/mob/living/silicon/robot/Ninja = loc - Ninja.faction -= "silicon" //ai turrets hostile against assault and medical + Ninja.remove_faction("silicon") //ai turrets hostile against assault and medical /obj/item/robot_model/ninja/remove_module(obj/item/I, delete_after) var/mob/living/silicon/robot/Ninja = loc - Ninja.faction += "silicon" + Ninja.add_faction("silicon") . = ..() /obj/item/robot_model/ninja/ninja_medical diff --git a/modular_skyrat/modules/clock_cult/code/antagonist.dm b/modular_skyrat/modules/clock_cult/code/antagonist.dm index 1b97d08f8ce..b3af9b0d3f2 100644 --- a/modular_skyrat/modules/clock_cult/code/antagonist.dm +++ b/modular_skyrat/modules/clock_cult/code/antagonist.dm @@ -32,7 +32,7 @@ /datum/antagonist/clock_cultist/apply_innate_effects(mob/living/mob_override) . = ..() var/mob/living/current = owner.current - current.faction |= FACTION_CLOCK + current.add_faction(FACTION_CLOCK) current.grant_language(/datum/language/ratvar, source = LANGUAGE_CULTIST) communicate.Grant(current) recall.Grant(current) @@ -42,7 +42,7 @@ /datum/antagonist/clock_cultist/remove_innate_effects(mob/living/mob_override) . = ..() var/mob/living/current = owner.current - current.faction -= FACTION_CLOCK + current.remove_faction(FACTION_CLOCK) current.remove_language(/datum/language/ratvar, TRUE, TRUE, LANGUAGE_CULTIST) communicate.Remove(current) recall.Remove(current) diff --git a/modular_skyrat/modules/clock_cult/code/outfit.dm b/modular_skyrat/modules/clock_cult/code/outfit.dm index 4b922c6ad41..feee1c42c45 100644 --- a/modular_skyrat/modules/clock_cult/code/outfit.dm +++ b/modular_skyrat/modules/clock_cult/code/outfit.dm @@ -14,7 +14,7 @@ ) /datum/outfit/clock/pre_equip(mob/living/carbon/human/equip_human, visualsOnly) - equip_human.faction |= FACTION_CLOCK + equip_human.add_faction(FACTION_CLOCK) /datum/outfit/clock/armor diff --git a/modular_skyrat/modules/colony_fabricator/code/appliances/recycler.dm b/modular_skyrat/modules/colony_fabricator/code/appliances/recycler.dm index b48dcbb2155..cc65c5ab950 100644 --- a/modular_skyrat/modules/colony_fabricator/code/appliances/recycler.dm +++ b/modular_skyrat/modules/colony_fabricator/code/appliances/recycler.dm @@ -12,7 +12,7 @@ /// The sound made when an item is eaten var/item_recycle_sound = 'modular_skyrat/modules/reagent_forging/sound/forge.ogg' /// The recycler's internal materials storage, for when items recycled don't produce enough to make a full sheet of that material - var/datum/component/material_container/materials + var/datum/material_container/materials /// The list of all the materials we can recycle var/static/list/allowed_materials = list( /datum/material/iron, @@ -34,8 +34,8 @@ . = ..() AddElement(/datum/element/repackable, repacked_type, 5 SECONDS) AddElement(/datum/element/manufacturer_examine, COMPANY_FRONTIER) - materials = AddComponent( \ - /datum/component/material_container, \ + materials = new ( \ + src, \ allowed_materials, \ INFINITY, \ MATCONTAINER_EXAMINE, \ diff --git a/modular_skyrat/modules/customization/modules/surgery/organs/nif.dm b/modular_skyrat/modules/customization/modules/surgery/organs/nif.dm deleted file mode 100644 index a798f084775..00000000000 --- a/modular_skyrat/modules/customization/modules/surgery/organs/nif.dm +++ /dev/null @@ -1,66 +0,0 @@ -// A surgery that repairs the patient's NIF -/datum/surgery/repair_nif - name = "Repair NIF" - steps = list( - /datum/surgery_step/incise, - /datum/surgery_step/retract_skin, - /datum/surgery_step/saw, - /datum/surgery_step/clamp_bleeders, - /datum/surgery_step/incise, - /datum/surgery_step/repair_nif, - /datum/surgery_step/close, - ) - - target_mobtypes = list(/mob/living/carbon/human) - possible_locs = list(BODY_ZONE_HEAD) - desc = "A surgical procedure that restores the integrity of an installed NIF." - -/datum/surgery/repair_nif/can_start(mob/user, mob/living/patient) - var/mob/living/carbon/human/nif_patient = patient - var/obj/item/organ/cyberimp/brain/nif/installed_nif = nif_patient.get_organ_by_type(/obj/item/organ/cyberimp/brain/nif) - - if(!nif_patient || !installed_nif) - return FALSE - - return ..() - -/datum/surgery_step/repair_nif - name = "repair installed NIF (multitool)" - repeatable = FALSE - implements = list( - TOOL_MULTITOOL = 100, - TOOL_HEMOSTAT = 35, - TOOL_SCREWDRIVER = 15, - ) - time = 12 SECONDS - -/datum/surgery_step/repair_nif/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) - display_results(user, target, span_notice("You begin to restore the integrity of [target]'s NIF..."), - "[user] begins to fix [target]'s NIF.", - "[user] begins to perform repairs on [target]'s NIF." - ) - -/datum/surgery_step/repair_nif/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) - display_results(user, target, span_notice("You succeed in restoring the integrity of [target]'s NIF."), - "[user] successfully repairs [target]'s NIF!", - "[user] completes the repair on [target]'s NIF." - ) - - var/mob/living/carbon/human/nif_patient = target - var/obj/item/organ/cyberimp/brain/nif/installed_nif = nif_patient.get_organ_by_type(/obj/item/organ/cyberimp/brain/nif) - - - installed_nif.durability = installed_nif.max_durability - installed_nif.send_message("Restored to full integrity!") - - return ..() - -/datum/surgery_step/repair_nif/failure(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) - if(target.get_organ_slot(ORGAN_SLOT_BRAIN)) - display_results(user, target, span_warning("You screw up, causing [target] brain damage!"), - span_warning("[user] screws up, while trying to repair [target]'s NIF!"), - "[user] fails to complete the repair on [target]'s NIF.") - - target.adjust_organ_loss(ORGAN_SLOT_BRAIN, 20) - return FALSE - diff --git a/modular_skyrat/modules/decay_subsystem/code/nests.dm b/modular_skyrat/modules/decay_subsystem/code/nests.dm index d8273bb73e8..5e13bb506bd 100644 --- a/modular_skyrat/modules/decay_subsystem/code/nests.dm +++ b/modular_skyrat/modules/decay_subsystem/code/nests.dm @@ -86,7 +86,7 @@ var/mob/living/entered_mob = arrived - if((NEST_FACTION in entered_mob.faction)) + if((entered_mob.has_faction(NEST_FACTION))) return spawn_mob() @@ -102,7 +102,7 @@ var/mob/living/spawned_mob = new chosen_mob_type(loc) spawned_mob.flags_1 |= (flags_1 & ADMIN_SPAWNED_1) - spawned_mob.faction = faction + spawned_mob.has_faction = faction spawned_mob.ghost_controllable = ghost_controllable RegisterSignal(spawned_mob, COMSIG_LIVING_DEATH, PROC_REF(mob_death)) diff --git a/modular_skyrat/modules/decay_subsystem/code/spawn_nest.dm b/modular_skyrat/modules/decay_subsystem/code/spawn_nest.dm index a96edc45d95..e0c4803b186 100644 --- a/modular_skyrat/modules/decay_subsystem/code/spawn_nest.dm +++ b/modular_skyrat/modules/decay_subsystem/code/spawn_nest.dm @@ -54,6 +54,6 @@ ADMIN_VERB(spawn_mob_spawner, R_ADMIN, "Spawn mob spawner", "Spawns a mob spawne spawned_spawner.icon_state = prefs["nest_icon"]["value"] spawned_spawner.ghost_controllable = prefs["ghost_controllable"]["value"] == "Yes" ? TRUE : FALSE spawned_spawner.passive_spawning = prefs["passive_spawning"]["value"] == "Yes" ? TRUE : FALSE - spawned_spawner.faction += prefs["faction"]["value"] + spawned_spawner.add_faction(prefs["faction"]["value"]) if(prefs["passive_spawning"]["value"] == "Yes") START_PROCESSING(SSobj, spawned_spawner) diff --git a/modular_skyrat/modules/encounters/code/nri_raiders.dm b/modular_skyrat/modules/encounters/code/nri_raiders.dm index 70a18de378c..d1fded723dd 100644 --- a/modular_skyrat/modules/encounters/code/nri_raiders.dm +++ b/modular_skyrat/modules/encounters/code/nri_raiders.dm @@ -100,8 +100,8 @@ GLOBAL_VAR(first_officer) /datum/outfit/pirate/nri/post_equip(mob/living/carbon/human/equipped) . = ..() - equipped.faction -= "pirate" - equipped.faction |= "raider" + equipped.remove_faction("pirate") + equipped.add_faction("raider") // make sure we update the ID's name too var/obj/item/card/id/id_card = equipped.wear_id diff --git a/modular_skyrat/modules/examinemore/code/examine_more.dm b/modular_skyrat/modules/examinemore/code/examine_more.dm index 468276e4b6e..5a915974aa0 100644 --- a/modular_skyrat/modules/examinemore/code/examine_more.dm +++ b/modular_skyrat/modules/examinemore/code/examine_more.dm @@ -55,7 +55,7 @@ would only be recognisable with someone that had the syndicate trait. if(EXAMINE_CHECK_SYNDICATE) if(user.mind) var/datum/mind/M = user.mind - if((ROLE_TRAITOR in M.get_special_roles()) || (ROLE_SYNDICATE in user.faction)) + if((ROLE_TRAITOR in M.get_special_roles()) || (user.has_faction(ROLE_SYNDICATE))) composed_message = "You note the following because of your [special_desc_affiliation ? special_desc_affiliation : "Syndicate Affiliation"]:
" composed_message += special_desc . += composed_message @@ -99,7 +99,7 @@ would only be recognisable with someone that had the syndicate trait. //Standard faction checks if(EXAMINE_CHECK_FACTION) for(var/faction_i in special_desc_factions) - if(faction_i in user.faction) + if(user.has_faction(faction_i)) composed_message = "You note the following because of your loyalty to [faction_i]:
" composed_message += special_desc . += composed_message diff --git a/modular_skyrat/modules/faction/code/mapping/mapping_helpers.dm b/modular_skyrat/modules/faction/code/mapping/mapping_helpers.dm index af39d1b27c3..bf74865e574 100644 --- a/modular_skyrat/modules/faction/code/mapping/mapping_helpers.dm +++ b/modular_skyrat/modules/faction/code/mapping/mapping_helpers.dm @@ -160,7 +160,7 @@ if(1) //Random traitor items new /obj/item/storage/box/syndie_kit/chameleon(src) new /obj/item/storage/backpack/duffelbag/syndie/c4(src) - new /obj/item/computer_disk/syndicate/camera_app(src) + new /obj/item/disk/computer/syndicate/camera_app(src) new /obj/item/gun/chem(src) new /obj/item/card/emag(src) new /obj/item/card/emag/doorjack(src) diff --git a/modular_skyrat/modules/mapping/code/lavaland_ruin_code.dm b/modular_skyrat/modules/mapping/code/lavaland_ruin_code.dm index c7e584f5238..d3a5ad08476 100644 --- a/modular_skyrat/modules/mapping/code/lavaland_ruin_code.dm +++ b/modular_skyrat/modules/mapping/code/lavaland_ruin_code.dm @@ -27,7 +27,7 @@ ears = /obj/item/radio/headset/syndicateciv/staff /datum/outfit/lavaland_syndicate/post_equip(mob/living/carbon/human/syndicate, visualsOnly = FALSE) - syndicate.faction |= ROLE_SYNDICATE + syndicate.add_faction(ROLE_SYNDICATE) var/obj/item/card/id/id_card = syndicate.wear_id if(istype(id_card)) diff --git a/modular_skyrat/modules/mapping/code/mob_spawns.dm b/modular_skyrat/modules/mapping/code/mob_spawns.dm index 6a4cb823750..b37bac43217 100644 --- a/modular_skyrat/modules/mapping/code/mob_spawns.dm +++ b/modular_skyrat/modules/mapping/code/mob_spawns.dm @@ -277,7 +277,7 @@ ears = /obj/item/radio/headset/syndicateciv/staff /datum/outfit/ds2/syndicate/post_equip(mob/living/carbon/human/syndicate) - syndicate.faction |= ROLE_SYNDICATE + syndicate.add_faction(ROLE_SYNDICATE) return ..() //DS-2 Command @@ -334,7 +334,7 @@ id_trim = /datum/id_trim/syndicom/skyrat/ds2/stationadmiral /datum/outfit/ds2/syndicate_command/post_equip(mob/living/carbon/human/syndicate) - syndicate.faction |= ROLE_SYNDICATE + syndicate.add_faction(ROLE_SYNDICATE) return ..() /datum/outfit/hotelstaff diff --git a/modular_skyrat/modules/medical/code/wounds/synth/blunt/robotic_blunt.dm b/modular_skyrat/modules/medical/code/wounds/synth/blunt/robotic_blunt.dm index 9089766b534..2e42b49ba60 100644 --- a/modular_skyrat/modules/medical/code/wounds/synth/blunt/robotic_blunt.dm +++ b/modular_skyrat/modules/medical/code/wounds/synth/blunt/robotic_blunt.dm @@ -135,7 +135,7 @@ if(held_item && victim.dropItemToGround(held_item)) victim.visible_message(span_danger("[victim] drops [held_item] in shock!"), span_warning("The force on your [limb.plaintext_zone] causes you to drop [held_item]!"), vision_distance=COMBAT_MESSAGE_RANGE) -/datum/wound/blunt/robotic/remove_wound(ignore_limb, replaced) +/datum/wound/blunt/robotic/remove_wound(ignore_limb, replaced, destroying) . = ..() QDEL_NULL(active_trauma) diff --git a/modular_skyrat/modules/medical/code/wounds/synth/robotic_burns.dm b/modular_skyrat/modules/medical/code/wounds/synth/robotic_burns.dm index d0b161d16d3..8e9df426241 100644 --- a/modular_skyrat/modules/medical/code/wounds/synth/robotic_burns.dm +++ b/modular_skyrat/modules/medical/code/wounds/synth/robotic_burns.dm @@ -132,7 +132,7 @@ set_highest_scar(null) -/datum/wound/burn/robotic/overheat/remove_wound(ignore_limb, replaced) +/datum/wound/burn/robotic/overheat/remove_wound(ignore_limb, replaced, destroying) if (!replaced && highest_scar) already_scarred = TRUE highest_scar.lazy_attach(limb) diff --git a/modular_skyrat/modules/mold/code/mold_structures.dm b/modular_skyrat/modules/mold/code/mold_structures.dm index 5cd190ff4fc..ac441e8f1db 100644 --- a/modular_skyrat/modules/mold/code/mold_structures.dm +++ b/modular_skyrat/modules/mold/code/mold_structures.dm @@ -238,7 +238,7 @@ if(!isliving(nearby_atom)) return var/mob/living/nearby_mob = nearby_atom - if(!(FACTION_MOLD in nearby_mob.faction)) + if(!(nearby_mob.has_faction(FACTION_MOLD))) INVOKE_ASYNC(src, PROC_REF(discharge)) /obj/structure/mold/structure/bulb/proc/make_full() @@ -267,7 +267,7 @@ addtimer(CALLBACK(src, PROC_REF(make_full)), 1 MINUTES, TIMER_UNIQUE|TIMER_NO_HASH_WAIT) /obj/structure/mold/structure/bulb/attack_generic(mob/user, damage_amount, damage_type, damage_flag, sound_effect, armor_penetration) - if(FACTION_MOLD in user.faction) + if(user.has_faction(FACTION_MOLD)) return ..() discharge() . = ..() diff --git a/modular_skyrat/modules/nanotrasen_rep/code/nanotrasen_consultant.dm b/modular_skyrat/modules/nanotrasen_rep/code/nanotrasen_consultant.dm index e4101ba9c1e..9f4d731b4c4 100644 --- a/modular_skyrat/modules/nanotrasen_rep/code/nanotrasen_consultant.dm +++ b/modular_skyrat/modules/nanotrasen_rep/code/nanotrasen_consultant.dm @@ -106,7 +106,7 @@ /obj/item/modular_computer/pda/nanotrasen_consultant name = "nanotrasen consultant's PDA" icon_state = "/obj/item/modular_computer/pda/nanotrasen_consultant" - inserted_disk = /obj/item/computer_disk/command/captain + inserted_disk = /obj/item/disk/computer/command/captain inserted_item = /obj/item/pen/fountain/green greyscale_colors = "#017941#0060b8" @@ -151,7 +151,7 @@ new /obj/item/clothing/neck/petcollar(src) new /obj/item/pet_carrier(src) new /obj/item/clothing/suit/armor/vest(src) - new /obj/item/computer_disk/command/captain(src) + new /obj/item/disk/computer/command/captain(src) new /obj/item/radio/headset/heads/nanotrasen_consultant/alt(src) new /obj/item/radio/headset/heads/nanotrasen_consultant(src) new /obj/item/storage/photo_album/personal(src) diff --git a/modular_skyrat/modules/opposing_force/code/equipment/gadgets.dm b/modular_skyrat/modules/opposing_force/code/equipment/gadgets.dm index 9a17c8ec1a9..1431832c290 100644 --- a/modular_skyrat/modules/opposing_force/code/equipment/gadgets.dm +++ b/modular_skyrat/modules/opposing_force/code/equipment/gadgets.dm @@ -171,7 +171,7 @@ /datum/opposing_force_equipment/gadget_stealth/camera_app name = "SyndEye Program" - item_type = /obj/item/computer_disk/syndicate/camera_app + item_type = /obj/item/disk/computer/syndicate/camera_app /datum/opposing_force_equipment/gadget_stealth/microlaser name = "Radioactive Microlaser" diff --git a/modular_skyrat/modules/quirks/neutral.dm b/modular_skyrat/modules/quirks/neutral.dm index d4e8accd933..24e13624be3 100644 --- a/modular_skyrat/modules/quirks/neutral.dm +++ b/modular_skyrat/modules/quirks/neutral.dm @@ -301,7 +301,7 @@ GLOBAL_VAR_INIT(DNR_trait_overlay, generate_DNR_trait_overlay()) /datum/quirk/item_quirk/mouse/add_unique(client/client_source) var/mob/living/carbon/human/human_holder = quirk_holder var/obj/item/organ/tongue/mouse/new_tongue = new(get_turf(human_holder)) - human_holder.faction |= FACTION_RAT + human_holder.add_faction(FACTION_RAT) new_tongue.copy_traits_from(human_holder.get_organ_slot(ORGAN_SLOT_TONGUE)) new_tongue.Insert(human_holder, special = TRUE, movement_flags = DELETE_IF_REPLACED) diff --git a/modular_skyrat/modules/synths/code/surgery/mechanic_steps.dm b/modular_skyrat/modules/synths/code/surgery/mechanic_steps.dm deleted file mode 100644 index aff60ef554b..00000000000 --- a/modular_skyrat/modules/synths/code/surgery/mechanic_steps.dm +++ /dev/null @@ -1,150 +0,0 @@ -//cut wires -/datum/surgery_step/cut_wires - name = "cut wires (wirecutters/scalpel)" - implements = list( - TOOL_WIRECUTTER = 100, - TOOL_SCALPEL = 75, - /obj/item/knife = 50, - /obj/item = 10, - ) // 10% success with any sharp item. - time = 2.4 SECONDS - preop_sound = 'sound/items/tools/wirecutter.ogg' - -/datum/surgery_step/cut_wires/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) - display_results( - user, - target, - span_notice("You begin to cut loose wires in [target]'s [parse_zone(target_zone)]..."), - "[user] begins to cut loose wires in [target]'s [parse_zone(target_zone)].", - "[user] begins to cut loose wires in [target]'s [parse_zone(target_zone)].", - ) - -/datum/surgery_step/cut_wires/tool_check(mob/user, obj/item/tool) - if(implement_type == /obj/item && !tool.get_sharpness()) - return FALSE - return TRUE - -//pry off plating -/datum/surgery_step/pry_off_plating - name = "pry off plating (crowbar/hemostat)" - implements = list( - TOOL_CROWBAR = 100, - TOOL_HEMOSTAT = 75, - ) - time = 2.4 SECONDS - preop_sound = 'sound/items/tools/crowbar.ogg' - -/datum/surgery_step/pry_off_plating/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) - do_sparks(rand(5, 9), FALSE, target.loc) - return TRUE - -/datum/surgery_step/pry_off_plating/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) - display_results( - user, - target, - span_notice("You begin to pry off [target]'s [parse_zone(target_zone)] plating..."), - "[user] begins to pry off [target]'s [parse_zone(target_zone)] plating.", - "[user] begins to pry off [target]'s [parse_zone(target_zone)] plating.", - ) - -//weld plating -/datum/surgery_step/weld_plating - name = "weld plating (welder)" - implements = list( - TOOL_WELDER = 100, - ) - time = 2.4 SECONDS - preop_sound = 'sound/items/tools/welder.ogg' - -/datum/surgery_step/weld_plating/tool_check(mob/user, obj/item/tool) - if(implement_type == TOOL_WELDER && !tool.use_tool(user, user, 0, volume=50, amount=1)) - return FALSE - return TRUE - -/datum/surgery_step/weld_plating/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) - display_results( - user, - target, - span_notice("You begin to weld [target]'s [parse_zone(target_zone)] plating..."), - "[user] begins to weld [target]'s [parse_zone(target_zone)] plating.", - "[user] begins to weld [target]'s [parse_zone(target_zone)] plating.", - ) - -//weld plating - Act -/datum/surgery_step/weld_plating_slice - name = "weld plating" - implements = list( - TOOL_WELDER = 100, - ) - time = 2.4 SECONDS - preop_sound = 'sound/items/tools/welder.ogg' - -/datum/surgery_step/weld_plating/tool_check(mob/user, obj/item/tool) - if(implement_type == TOOL_WELDER && !tool.use_tool(user, user, 0, volume=50, amount=1)) - return FALSE - return TRUE - -/datum/surgery_step/weld_plating/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) - display_results( - user, - target, - span_notice("You begin to weld into [target]'s [parse_zone(target_zone)] plating to open it..."), - "[user] begins to weld into [target]'s [parse_zone(target_zone)] plating with [tool].", - "[user] begins to weld into [target]'s [parse_zone(target_zone)] plating.", - ) - -//replace wires -/datum/surgery_step/replace_wires - name = "replace wires (cable coil)" - implements = list(/obj/item/stack/cable_coil = 100) - time = 2.4 SECONDS - var/cableamount = 5 - -/datum/surgery_step/replace_wires/tool_check(mob/user, obj/item/tool) - var/obj/item/stack/cable_coil/coil = tool - if(coil.get_amount() < cableamount) - to_chat(user, span_warning("Not enough cable!")) - return FALSE - return TRUE - -/datum/surgery_step/replace_wires/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) - var/obj/item/stack/cable_coil/coil = tool - if(coil && !(coil.get_amount() < cableamount)) //failproof - coil.use(cableamount) - return TRUE - -/datum/surgery_step/replace_wires/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) - display_results( - user, - target, - span_notice("You begin to replace [target]'s [parse_zone(target_zone)] wiring..."), - "[user] begins to replace [target]'s [parse_zone(target_zone)] wiring.", - "[user] begins to replace [target]'s [parse_zone(target_zone)] wiring.", - ) - -//add plating -/datum/surgery_step/add_plating - name = "add plating (iron sheet)" - implements = list(/obj/item/stack/sheet/iron = 100) - time = 2.4 SECONDS - var/ironamount = 5 - -/datum/surgery_step/add_plating/tool_check(mob/user, obj/item/tool) - var/obj/item/stack/sheet/iron/plat = tool - if(plat.get_amount() < ironamount) - to_chat(user, span_warning("Not enough iron!")) - return FALSE - return TRUE - -/datum/surgery_step/add_plating/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) - var/obj/item/stack/sheet/iron/plat = tool - return plat?.use(ironamount) - -/datum/surgery_step/add_plating/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) - display_results( - user, - target, - span_notice("You begin to add plating to [target]'s [parse_zone(target_zone)]..."), - "[user] begins to add plating to [target]'s [parse_zone(target_zone)].", - "[user] begins to add plating to [target]'s [parse_zone(target_zone)].", - ) diff --git a/modular_skyrat/modules/synths/code/surgery/robot_brain_surgery.dm b/modular_skyrat/modules/synths/code/surgery/robot_brain_surgery.dm deleted file mode 100644 index 14b4c011188..00000000000 --- a/modular_skyrat/modules/synths/code/surgery/robot_brain_surgery.dm +++ /dev/null @@ -1,124 +0,0 @@ -/datum/surgery/robot_brain_surgery - name = "Reset Posibrain Logic (Brain Surgery)" - steps = list( - /datum/surgery_step/mechanic_open, - /datum/surgery_step/mechanic_unwrench, - /datum/surgery_step/pry_off_plating, - /datum/surgery_step/prepare_electronics, - /datum/surgery_step/fix_robot_brain, - /datum/surgery_step/mechanic_close, - ) - - target_mobtypes = list(/mob/living/carbon/human) - possible_locs = list(BODY_ZONE_CHEST) // The brains are in the chest - requires_bodypart_type = BODYTYPE_ROBOTIC | BODYTYPE_NANO //Bubber Edit - BODYTYPE_NANO - desc = "A surgical procedure that restores the default behavior logic and personality matrix of an IPC posibrain." - -/datum/surgery/robot_brain_surgery/can_start(mob/user, mob/living/carbon/target, obj/item/tool) - var/obj/item/organ/brain/synth/brain = target.get_organ_slot(ORGAN_SLOT_BRAIN) - - if (!..()) - return FALSE - - if(!istype(brain) && !issynthetic(target)) - return FALSE - else - return TRUE - -/datum/surgery_step/fix_robot_brain - name = "fix posibrain (multitool)" - implements = list( - TOOL_MULTITOOL = 95, - TOOL_HEMOSTAT = 35, - /obj/item/pen = 15 - ) - repeatable = TRUE - time = 12 SECONDS //long and complicated - -/datum/surgery_step/fix_robot_brain/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) - display_results( - user, - target, - span_notice("You begin to clear system corruption from [target]'s posibrain..."), - "[user] begins to fix [target]'s posibrain.", - "[user] begins to perform surgery on [target]'s posibrain.", - ) - -/datum/surgery_step/fix_robot_brain/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) - display_results(user, - target, - span_notice("You succeed in clearing system corruption from [target]'s posibrain."), - "[user] successfully fixes [target]'s posibrain!", - "[user] completes the surgery on [target]'s posibrain.", - ) - - if(target.mind && target.mind.has_antag_datum(/datum/antagonist/brainwashed)) - target.mind.remove_antag_datum(/datum/antagonist/brainwashed) - - target.set_organ_loss(ORGAN_SLOT_BRAIN, target.get_organ_loss(ORGAN_SLOT_BRAIN) - 60) //we set damage in this case in order to clear the "failing" flag - target.cure_all_traumas(TRAUMA_RESILIENCE_SURGERY) - target.cure_all_traumas(TRAUMA_RESILIENCE_LOBOTOMY) //Lobotomy tier fix cause you can't clone this! - target.apply_status_effect(/datum/status_effect/vulnerable_to_damage/surgery) - - if(target.get_organ_loss(ORGAN_SLOT_BRAIN) > NONE) - to_chat(user, "[target]'s posibrain still has some lasting system damage that can be cleared.") - - return ..() - -/datum/surgery_step/fix_robot_brain/failure(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) - if(target.get_organ_slot(ORGAN_SLOT_BRAIN)) - display_results( - user, - target, - span_warning("You screw up, fragmenting their data!"), - span_warning("[user] screws up, causing damage to the circuits!"), - "[user] completes the surgery on [target]'s posibrain.", - ) - - target.adjust_organ_loss(ORGAN_SLOT_BRAIN, 60) - target.gain_trauma_type(BRAIN_TRAUMA_SEVERE, TRAUMA_RESILIENCE_LOBOTOMY) - else - user.visible_message(span_warning("[user] suddenly notices that the posibrain [user.p_they()] [user.p_were()] working on is not there anymore."), span_warning("You suddenly notice that the posibrain you were working on is not there anymore.")) - - return FALSE - -/datum/surgery/robot_trauma_surgery - name = "Reticulate Posibrain Splines (Blessed Lobotomy)" - desc = "A surgical procedure that refurbishes low level components in the posibrain, to fix the strongest trauma errors." - possible_locs = list(BODY_ZONE_CHEST) // The brains are in the chest - requires_bodypart_type = BODYTYPE_ROBOTIC - target_mobtypes = list(/mob/living/carbon/human) - steps = list( - /datum/surgery_step/mechanic_open, - /datum/surgery_step/mechanic_unwrench, - /datum/surgery_step/pry_off_plating, - /datum/surgery_step/prepare_electronics, - /datum/surgery_step/fix_robot_brain/advanced, - /datum/surgery_step/mechanic_close, - ) - -/datum/surgery_step/fix_robot_brain/advanced - name = "reticulate splines (multitool)" - repeatable = FALSE - chems_needed = list( - /datum/reagent/medicine/liquid_solder, - /datum/reagent/water/holywater, - ) - -/datum/surgery_step/fix_robot_brain/advanced/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) - display_results(user, - target, - span_notice("You succeed in reticulating [target]'s splines."), - "[user] successfully fixes [target]'s posibrain!", - "[user] completes the surgery on [target]'s posibrain.", - ) - - target.set_organ_loss(ORGAN_SLOT_BRAIN, target.get_organ_loss(ORGAN_SLOT_BRAIN) - 60) //we set damage in this case in order to clear the "failing" flag - target.cure_all_traumas(TRAUMA_RESILIENCE_SURGERY) - target.cure_all_traumas(TRAUMA_RESILIENCE_LOBOTOMY) - target.cure_all_traumas(TRAUMA_RESILIENCE_MAGIC) - target.apply_status_effect(/datum/status_effect/vulnerable_to_damage/surgery) - playsound(source = get_turf(target), soundin = 'sound/effects/magic/repulse.ogg', vol = 75, vary = TRUE, falloff_distance = 2) - if(target.mind && target.mind.has_antag_datum(/datum/antagonist/brainwashed)) - target.mind.remove_antag_datum(/datum/antagonist/brainwashed) - return ..() diff --git a/modular_skyrat/modules/synths/code/surgery/robot_chassis_restoration.dm b/modular_skyrat/modules/synths/code/surgery/robot_chassis_restoration.dm deleted file mode 100644 index 048b45be0ef..00000000000 --- a/modular_skyrat/modules/synths/code/surgery/robot_chassis_restoration.dm +++ /dev/null @@ -1,120 +0,0 @@ -#define SYNTH_REVIVE_WELD_INTERNALS_DAMAGE 30 - -// Should be a very quick surgery, it's meant to replace defibs (mostly!) -/datum/surgery/positronic_restoration - name = "Posibrain Reboot (Revival)" - steps = list( - /datum/surgery_step/mechanic_open, - /datum/surgery_step/open_hatch, - /datum/surgery_step/mechanic_unwrench, - /datum/surgery_step/prepare_electronics, - /datum/surgery_step/weld_plating/fullbody, - /datum/surgery_step/finalize_positronic_restoration, - /datum/surgery_step/mechanic_close, - ) - - target_mobtypes = list(/mob/living/carbon/human) - possible_locs = list(BODY_ZONE_CHEST) - requires_bodypart_type = BODYTYPE_ROBOTIC - desc = "A surgical procedure that reboots a positronic brain." - -/datum/surgery/positronic_restoration/can_start(mob/user, mob/living/carbon/target) - if(!..() || target.stat != DEAD || !target.get_organ_slot(ORGAN_SLOT_BRAIN) || !issynthetic(target)) - return FALSE - - return TRUE - -/datum/surgery_step/pry_off_plating/fullbody - time = 1.4 SECONDS - -/datum/surgery_step/pry_off_plating/fullbody/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) - display_results( - user, - target, - span_notice("You begin to pry open the outer protective panels on [target]'s braincase..."), - span_notice("[user] begins to pry open the outer protective panels on [target]'s braincase."), - span_notice("[user] begins to pry open the panels on [target]'s braincase.") - ) - -/datum/surgery_step/weld_plating/fullbody - time = 2 SECONDS - -/datum/surgery_step/weld_plating/fullbody/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) - display_results( - user, - target, - span_notice("You begin to slice the inner protective panels from [target]'s braincase..."), - span_notice("[user] begins to slice the inner protective panels from [target]'s braincase."), - span_notice("[user] begins to slice the panels from [target]'s braincase.") - ) - -/datum/surgery_step/weld_plating/fullbody/success(mob/user, mob/living/target, target_zone, obj/item/tool, datum/surgery/surgery, default_display_results) - . = ..() - - target.apply_damage(SYNTH_REVIVE_WELD_INTERNALS_DAMAGE, BRUTE, "[target_zone]", wound_bonus = CANT_WOUND) - -/datum/surgery_step/add_plating/fullbody - time = 3 SECONDS - ironamount = 15 - -/datum/surgery_step/add_plating/fullbody/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) - display_results( - user, - target, - span_notice("You begin to add new panels to [target]'s braincase..."), - span_notice("[user] begins to add new panels to [target]'s braincase."), - span_notice("[user] begins to add new panels to [target]'s braincase.") - ) - -/datum/surgery_step/add_plating/fullbody/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) - . = ..() - - target.heal_bodypart_damage(brute = SYNTH_REVIVE_WELD_INTERNALS_DAMAGE, target_zone = "[target_zone]") - -/datum/surgery_step/finalize_positronic_restoration - name = "finalize positronic restoration (multitool/shocking implement)" - implements = list( - TOOL_MULTITOOL = 100, - /obj/item/shockpaddles = 70, - /obj/item/melee/touch_attack/shock = 70, - /obj/item/melee/baton/security = 35, - /obj/item/gun/energy = 10 - ) - time = 5 SECONDS - -/datum/surgery_step/finalize_positronic_restoration/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) - display_results( - user, - target, - span_notice("You begin to force a reboot in [target]'s posibrain..."), - span_notice("[user] begins to force a reboot in [target]'s posibrain."), - span_notice("[user] begins to force a reboot in [target]'s posibrain.") - ) - - target.notify_revival("Someone is trying to reboot your posibrain.", source = target) - -/datum/surgery_step/finalize_positronic_restoration/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) - if (target.stat < DEAD) - target.visible_message(span_notice("...[target] is completely unaffected! Seems like they're already active!")) - return TRUE - - target.cure_husk() - target.grab_ghost() - target.updatehealth() - - if(target.revive()) - target.emote("chime") - target.visible_message(span_notice("...[target] reactivates, their chassis coming online!")) - to_chat(target, span_danger("[CONFIG_GET(string/blackoutpolicy)]")) - return TRUE //This is due to synths having some weirdness with their revive. - else - target.emote("buzz") - target.visible_message(span_warning("...[target.p_they()] convulses, then goes offline.")) - return FALSE - -/datum/surgery_step/finalize_positronic_restoration/failure(mob/user, mob/living/target, target_zone, obj/item/tool, datum/surgery/surgery, fail_prob) - . = ..() - - target.adjust_organ_loss(ORGAN_SLOT_BRAIN, 5, 130) - -#undef SYNTH_REVIVE_WELD_INTERNALS_DAMAGE diff --git a/modular_skyrat/modules/synths/code/surgery/robot_healing.dm b/modular_skyrat/modules/synths/code/surgery/robot_healing.dm deleted file mode 100644 index 2ee49d9d361..00000000000 --- a/modular_skyrat/modules/synths/code/surgery/robot_healing.dm +++ /dev/null @@ -1,269 +0,0 @@ -#define DAMAGE_ROUNDING 0.1 -#define FAIL_DAMAGE_MULTIPLIER 0.8 -#define FINAL_STEP_HEAL_MULTIPLIER 0.55 - -//Almost copypaste of tend wounds, with some changes -/datum/surgery/robot_healing - steps = list( - /datum/surgery_step/mechanic_open, - /datum/surgery_step/pry_off_plating, - /datum/surgery_step/cut_wires, - /datum/surgery_step/robot_heal, - /datum/surgery_step/mechanic_close, - ) - - target_mobtypes = list(/mob/living/carbon/human) - possible_locs = list(BODY_ZONE_CHEST) - replaced_by = /datum/surgery - requires_bodypart_type = BODYTYPE_ROBOTIC - surgery_flags = SURGERY_IGNORE_CLOTHES | SURGERY_REQUIRE_RESTING | SURGERY_REQUIRE_LIMB | SURGERY_SELF_OPERABLE - - /// The step to use in the 4th surgery step. - var/healing_step_type - /// If true, doesn't send the surgery preop message. Set during surgery. - var/surgery_preop_message_sent = FALSE - -/datum/surgery/robot_healing/New(surgery_target, surgery_location, surgery_bodypart) - ..() - if(healing_step_type) - steps = list( - /datum/surgery_step/mechanic_open, - /datum/surgery_step/pry_off_plating, - /datum/surgery_step/cut_wires, - healing_step_type, - /datum/surgery_step/mechanic_close, - ) - -/datum/surgery_step/robot_heal - name = "repair body (crowbar/wirecutters)" - implements = list(TOOL_CROWBAR = 100, TOOL_WIRECUTTER = 100) - repeatable = TRUE - time = 2.7 SECONDS - - /// If this surgery is healing brute damage. Set during operation steps. - var/heals_brute = FALSE - /// If this surgery is healing burn damage. Set during operation steps. - var/heals_burn = FALSE - /// How much healing the sugery gives. - var/brute_heal_amount = 7 - /// How much healing the sugery gives. - var/burn_heal_amount = 7 - /// Percentage of total damaged healed per cycle. If 0, no healing of the damage is performed - var/brute_multiplier = 0 - /// Percentage of total damaged healed per cycle. If 0, no healing of the damage is performed - var/burn_multiplier = 0 - -/datum/surgery_step/robot_heal/tool_check(mob/user, obj/item/tool) - if(implement_type == TOOL_CROWBAR && implement_type == TOOL_WIRECUTTER) - return FALSE - return TRUE - -/datum/surgery_step/robot_heal/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) - var/woundtype - if(implement_type == TOOL_CROWBAR) - heals_brute = TRUE - heals_burn = FALSE - woundtype = "dents" - return - - if(implement_type == TOOL_WIRECUTTER) - heals_brute = FALSE - heals_burn = TRUE - woundtype = "wiring" - return - - if(!istype(surgery, /datum/surgery/robot_healing)) - return - - var/datum/surgery/robot_healing/the_surgery = surgery - if(the_surgery.surgery_preop_message_sent) - return - - display_results( - user, - target, - span_notice("You attempt to fix some of [target]'s [woundtype]."), - span_notice("[user] attempts to fix some of [target]'s [woundtype]."), - span_notice("[user] attempts to fix some of [target]'s [woundtype]."), - ) - -/datum/surgery_step/robot_heal/initiate(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery, try_to_fail = FALSE) - if(..()) - while((heals_brute && target.get_brute_loss() && tool) || (heals_burn && target.get_fire_loss() && tool)) - if(!..()) - break - -/datum/surgery_step/robot_heal/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) - var/user_message = "You succeed in fixing some of [target]'s damage" //no period, add initial space to "addons" - var/target_message = "[user] fixes some of [target]'s damage" //see above - var/brute_healed = 0 - var/burn_healed = 0 - var/status_msg = list() - feedback_value = null - if(heals_brute) - brute_healed = brute_heal_amount - tool.use_tool(target, user, 0, volume = 50, amount = 1) - brute_healed += round((target.get_brute_loss() * brute_multiplier), DAMAGE_ROUNDING) - - if(heals_burn) - burn_healed = burn_heal_amount - tool.use_tool(target, user, 0, volume = 50, amount = 1) - burn_healed += round((target.get_fire_loss() * burn_multiplier), DAMAGE_ROUNDING) - - if(!get_location_accessible(target, target_zone)) - brute_healed *= FINAL_STEP_HEAL_MULTIPLIER - burn_healed *= FINAL_STEP_HEAL_MULTIPLIER - status_msg += "[target.p_have()] clothing on" - - if(length(status_msg) > 0) - user_message += " as best as you can while [target.p_they()] [english_list(status_msg)]" - target_message += " as best as [user.p_they()] can while [target.p_they()] [english_list(status_msg)]" - - feedback_value = brute_healed + burn_healed - - target.heal_bodypart_damage(brute_healed, burn_healed, updating_health = FALSE) - - if(!get_feedback_message(user, target)) - user_message += get_progress(user, target, brute_healed, burn_healed) - - if(HAS_MIND_TRAIT(user, TRAIT_MORBID) && ishuman(user) && target.stat != DEAD) //Morbid folk don't care about tending the dead as much as tending the living - var/mob/living/carbon/human/morbid_weirdo = user - morbid_weirdo.add_mood_event("morbid_tend_wounds", /datum/mood_event/morbid_tend_wounds) - - display_results( - user, - target, - span_notice("[user_message]."), - span_notice("[target_message]."), - span_notice("[target_message]."), - ) - - if(istype(surgery, /datum/surgery/robot_healing)) - var/datum/surgery/robot_healing/the_surgery = surgery - the_surgery.surgery_preop_message_sent = TRUE - - return TRUE - -/datum/surgery_step/robot_heal/failure(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) - display_results( - user, - target, - span_warning("You screwed up!"), - span_warning("[user] screws up!"), - span_notice("[user] fixes some of [target]'s damage."), - target_detailed = TRUE, - ) - - var/brute_dealt = 0 - var/burn_dealt = 0 - if(heals_brute) - brute_dealt = brute_heal_amount * FAIL_DAMAGE_MULTIPLIER - brute_dealt += round((target.get_brute_loss() * (brute_multiplier * 0.5)), DAMAGE_ROUNDING) - - if(heals_burn) - burn_dealt = burn_heal_amount * FAIL_DAMAGE_MULTIPLIER - burn_dealt += round((target.get_fire_loss() * (burn_multiplier * 0.5)), DAMAGE_ROUNDING) - - target.take_bodypart_damage(brute_dealt, burn_dealt, wound_bonus = CANT_WOUND) - return FALSE - -/***************************TYPES***************************/ -/datum/surgery/robot_healing/basic - name = "Repair Robotic Chassis (Basic)" - desc = "A surgical procedure that provides repairs and maintenance to robotic chassis. Is slightly more efficient when the patient is severely damaged." - healing_step_type = /datum/surgery_step/robot_heal/basic - replaced_by = /datum/surgery/robot_healing/upgraded - -/datum/surgery/robot_healing/upgraded - name = "Repair Robotic Chassis (Adv.)" - desc = "A surgical procedure that provides highly effective repairs and maintenance to robotic chassis. Is somewhat more efficient when the patient is severely damaged." - healing_step_type = /datum/surgery_step/robot_heal/upgraded - replaced_by = /datum/surgery/robot_healing/experimental - requires_tech = TRUE - -/datum/surgery/robot_healing/experimental - name = "Repair Robotic Chassis (Exp.)" - desc = "A surgical procedure that quickly provides highly effective repairs and maintenance to robotic chassis. Is moderately more efficient when the patient is severely damaged." - healing_step_type = /datum/surgery_step/robot_heal/experimental - replaced_by = null - requires_tech = TRUE - -/***************************STEPS***************************/ - -/datum/surgery_step/robot_heal/basic - brute_multiplier = 0.07 - burn_multiplier = 0.07 - -/datum/surgery_step/robot_heal/upgraded - brute_multiplier = 0.1 - burn_multiplier = 0.1 - -/datum/surgery_step/robot_heal/experimental - brute_multiplier = 0.2 - burn_multiplier = 0.2 - -// Mostly a copypaste of standard tend wounds get_progress(). In order to abstract this, I'd have to rework the hierarchy of surgery upstream, so I'll just do this. Pain. -/** - * Args: - * * mob/user: The user performing this surgery. - * * mob/living/carbon/target: The target of the surgery. - * * brute_healed: The amount of brute we just healed. - * * burn_healed: The amount of burn we just healed. - * - * Returns: - * * A string containing either an estimation of how much longer the surgery will take, or exact numbers of the remaining damages, depending on if a health analyzer - * is held or not. - */ -/datum/surgery_step/robot_heal/proc/get_progress(mob/user, mob/living/carbon/target, brute_healed, burn_healed) - var/estimated_remaining_steps = 0 - if(brute_healed > 0) - estimated_remaining_steps = max(0, (target.get_brute_loss() / brute_healed)) - if(burn_healed > 0) - estimated_remaining_steps = max(estimated_remaining_steps, (target.get_fire_loss() / burn_healed)) // whichever is higher between brute or burn steps - - var/progress_text - - if(locate(/obj/item/healthanalyzer) in user.held_items) - if(target.get_brute_loss()) - progress_text = ". Remaining brute: [target.get_brute_loss()]" - if(target.get_fire_loss()) - progress_text += ". Remaining burn: [target.get_fire_loss()]" - else - switch(estimated_remaining_steps) - if(-INFINITY to 1) - return - if(1 to 3) - progress_text = ", finishing up the last few signs of damage" - if(3 to 6) - progress_text = ", counting down the last few patches of trauma" - if(6 to 9) - progress_text = ", continuing to plug away at [target.p_their()] extensive damages" - if(9 to 12) - progress_text = ", steadying yourself for the long surgery ahead" - if(12 to 15) - progress_text = ", though [target.p_they()] still look[target.p_s()] heavily battered" - if(15 to INFINITY) - progress_text = ", though you feel like you're barely making a dent in treating [target.p_their()] broken body" - - return progress_text - -/datum/surgery_step/robot_heal/get_feedback_message(mob/living/user, mob/living/target, speed_mod = 1) - var/show_message = FALSE - if(HAS_TRAIT(user, TRAIT_MEDICAL_HUD) || HAS_TRAIT(user, TRAIT_DIAGNOSTIC_HUD)) - show_message = TRUE - else if(locate(/obj/item/healthanalyzer) in user.held_items) - show_message = TRUE - else if(get_location_modifier(target) == OPERATING_COMPUTER_MODIFIER) - show_message = TRUE - - if(!show_message) - return - - if(heals_brute) - return "[round(1 / speed_mod, 0.1)]x ([target.get_brute_loss()]) [feedback_value]" - else - return "[round(1 / speed_mod, 0.1)]x ([target.get_fire_loss()]) [feedback_value]" - -#undef DAMAGE_ROUNDING -#undef FAIL_DAMAGE_MULTIPLIER -#undef FINAL_STEP_HEAL_MULTIPLIER diff --git a/modular_skyrat/modules/synths/code/surgery/robot_heart_surgery.dm b/modular_skyrat/modules/synths/code/surgery/robot_heart_surgery.dm deleted file mode 100644 index c428b143577..00000000000 --- a/modular_skyrat/modules/synths/code/surgery/robot_heart_surgery.dm +++ /dev/null @@ -1,74 +0,0 @@ -/// Hydraulic Pump Surgery -/datum/surgery/hydraulic_maintenance - name = "Hydraulic Pump Maintenance" - requires_bodypart_type = BODYTYPE_ROBOTIC | BODYTYPE_NANO - surgery_flags = SURGERY_REQUIRE_RESTING | SURGERY_REQUIRE_LIMB | SURGERY_REQUIRES_REAL_LIMB - steps = list( - /datum/surgery_step/mechanic_open, - /datum/surgery_step/mechanic_unwrench, - /datum/surgery_step/pry_off_plating, - /datum/surgery_step/prepare_electronics, - /datum/surgery_step/hydraulic/repair, - /datum/surgery_step/mechanic_wrench, - /datum/surgery_step/mechanic_close, - ) - target_mobtypes = list(/mob/living/carbon/human) - possible_locs = list(BODY_ZONE_CHEST) - desc = "A mechanical surgery procedure designed to repair an androids internal hydraulic pump." - -/datum/surgery/hydraulic_maintenance/can_start(mob/user, mob/living/carbon/target) - var/obj/item/organ/heart/hydraulic_pump = target.get_organ_slot(ORGAN_SLOT_HEART) - if(isnull(hydraulic_pump) || !issynthetic(target) || hydraulic_pump.damage < 10) - return FALSE - return ..() - -/datum/surgery_step/hydraulic/repair - name = "tighten seals (screwdriver or wrench)" - implements = list( - TOOL_SCREWDRIVER = 90, - TOOL_WRENCH = 90, - TOOL_WIRECUTTER = 35, - /obj/item/stack/package_wrap = 15, - ) - preop_sound = 'sound/items/tools/ratchet_slow.ogg' - success_sound = 'sound/machines/airlock/doorclick.ogg' - -/datum/surgery_step/hydraulic/repair/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) - display_results( - user, - target, - span_notice("You begin to tighten the clamps around [target]'s hydraulic pump..."), - span_notice("[user] begins to repair [target]'s hydraulic pump with [tool]!"), - span_notice("[user] begins to repair [target]'s hydraulic pump!"), - ) - display_pain(target, "The pain in your chest is unbearable! You can barely take it anymore!") - -/datum/surgery_step/hydraulic/repair/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery, default_display_results = FALSE) - var/mob/living/carbon/human/patient = target - var/obj/item/organ/heart/hydraulic = patient.get_organ_slot(ORGAN_SLOT_HEART) - patient.set_organ_loss(ORGAN_SLOT_HEART, 0) // adjust_organ_loss didnt work here without runtimes spamming, setting to 0 as synths have no natural organ decay/regeneration - if(hydraulic.organ_flags & ORGAN_EMP) - hydraulic.organ_flags &= ~ORGAN_EMP - display_results( - user, - target, - span_notice("You successfully repair [target]'s hydraulic pump."), - span_notice("[user] finishes clamping tubing down around [target]'s hydraulic pump with [tool]."), - span_notice("[user] finishes clamping tubing down around [target]'s hydraulic pump."), - ) - display_pain(target, "The warnings, but your pump is as strong as ever!") - return ..() - -/datum/surgery_step/hydraulic/repair/failure(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) - if(ishuman(target)) - var/mob/living/carbon/human/patient = target - display_results( - user, - target, - span_warning("You screw up and slip your [tool] into their pump, tearing part of the pump off!"), - span_warning("[user] screws up, causing high pressure oil to spurt out of [target]'s chest profusely!"), - span_warning("[user] completes the surgery, but is that oil supposed to be squirting out of [target]'s chest like that?"), - ) - display_pain(target, "Your chest burns; you feel oil flooding your chest cavity!") - patient.adjust_organ_loss(ORGAN_SLOT_HEART, 20) - return FALSE diff --git a/modular_skyrat/modules/synths/code/surgery/robot_liver_surgery.dm b/modular_skyrat/modules/synths/code/surgery/robot_liver_surgery.dm deleted file mode 100644 index 5f4f12171a6..00000000000 --- a/modular_skyrat/modules/synths/code/surgery/robot_liver_surgery.dm +++ /dev/null @@ -1,73 +0,0 @@ -/// Reagent Processor Repair surgery -/datum/surgery/reagent_pump - name = "Reagent Processor Manual Reset" - surgery_flags = SURGERY_REQUIRE_RESTING | SURGERY_REQUIRE_LIMB | SURGERY_REQUIRES_REAL_LIMB - steps = list( - /datum/surgery_step/mechanic_open, - /datum/surgery_step/mechanic_unwrench, - /datum/surgery_step/pry_off_plating, - /datum/surgery_step/prepare_electronics, - /datum/surgery_step/reagent_pump/repair, - /datum/surgery_step/mechanic_wrench, - /datum/surgery_step/mechanic_close, - ) - target_mobtypes = list(/mob/living/carbon/human) - possible_locs = list(BODY_ZONE_CHEST) - requires_bodypart_type = BODYTYPE_ROBOTIC - desc = "A mechanical list of actions to reset the reagent processor and purge built up minerals." - -/datum/surgery/reagent_pump/can_start(mob/user, mob/living/carbon/target) - var/obj/item/organ/liver/reagent_processor = target.get_organ_slot(ORGAN_SLOT_LIVER) - if(isnull(reagent_processor) || !issynthetic(target) || reagent_processor.damage < 10) - return FALSE - return ..() - -/datum/surgery_step/reagent_pump/repair - name = "perform valve adjustment (screwdriver)" - implements = list( - TOOL_SCREWDRIVER = 95, - TOOL_SCALPEL = 45, - /obj/item/melee/energy/sword = 35, - /obj/item/knife = 25, - /obj/item/shard = 5, - ) - preop_sound = 'sound/items/tools/screwdriver_operating.ogg' - success_sound = 'sound/machines/airlock/doorclick.ogg' - -/datum/surgery_step/reagent_pump/repair/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) - display_results( - user, - target, - span_notice("You start to descale minerals built up in [target]'s reagent processor..."), - span_notice("[user] begins to fix [target]'s reagent processor with [tool]."), - span_notice("[user] begins to fix [target]'s reagent processor."), - ) - display_pain(target, "Your systems disconnect from your reagent processor, avoiding unnecessary errors.") - -/datum/surgery_step/reagent_pump/repair/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery, default_display_results = FALSE) - var/mob/living/carbon/human/patient = target - var/obj/item/organ/liver/reagent_processor = target.get_organ_slot(ORGAN_SLOT_LIVER) - patient.set_organ_loss(ORGAN_SLOT_LIVER, 0) // adjust_organ_loss didnt work here without runtimes spamming, setting to 0 as synths have no natural organ decay/regeneration - if(reagent_processor.organ_flags & ORGAN_EMP) - reagent_processor.organ_flags &= ~ORGAN_EMP - display_results( - user, - target, - span_notice("You successfully descale [target]'s reagent processor, restoring factory settings and removing built up minerals."), - span_notice("[user] successfully descales [target]'s reagent processor, restoring factory settings and removing built up minerals."), - span_notice("[user] successfully resets [target]'s reagent processor."), - ) - display_pain(target, "Flow rate restored.") - return ..() - -/datum/surgery_step/reagent_pump/repair/failure(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery) - var/mob/living/carbon/human/patient = target - patient.adjust_organ_loss(ORGAN_SLOT_LIVER, 15) - display_results( - user, - target, - span_warning("You adjust [target]'s reagent processor out of spec!"), - span_warning("[user] follows the wrong guide for [target]'s reagent processor!"), - span_warning("[user] finishes adjusting [target]'s reagent processor... wait that isn't right..."), - ) - display_pain(target, "You see errors flow across your vision!") diff --git a/modular_skyrat/modules/synths/code/surgery/robot_lung_surgery.dm b/modular_skyrat/modules/synths/code/surgery/robot_lung_surgery.dm deleted file mode 100644 index f35cb2b0761..00000000000 --- a/modular_skyrat/modules/synths/code/surgery/robot_lung_surgery.dm +++ /dev/null @@ -1,75 +0,0 @@ -/// Heatsink Repair Surgery -/datum/surgery/heatsink - name = "Heatsink Maintenance" - surgery_flags = SURGERY_REQUIRE_RESTING | SURGERY_REQUIRE_LIMB | SURGERY_REQUIRES_REAL_LIMB - steps = list( - /datum/surgery_step/mechanic_open, - /datum/surgery_step/mechanic_unwrench, - /datum/surgery_step/weld_plating_slice, - /datum/surgery_step/pry_off_plating, - /datum/surgery_step/prepare_electronics, - /datum/surgery_step/heatsink/repair, - /datum/surgery_step/mechanic_wrench, - /datum/surgery_step/mechanic_close, - ) - target_mobtypes = list(/mob/living/carbon/human) - possible_locs = list(BODY_ZONE_CHEST) - requires_bodypart_type = BODYTYPE_ROBOTIC - desc = "A mechanical surgery procedure designed to repair an androids internal heatsink." - -/datum/surgery/heatsink/can_start(mob/user, mob/living/carbon/target, obj/item/tool) - var/obj/item/organ/lungs/target_lungs = target.get_organ_slot(ORGAN_SLOT_LUNGS) - if(isnull(target_lungs) || !issynthetic(target) || target_lungs.damage < 10 ) - return FALSE - return ..() - -/datum/surgery_step/heatsink/repair - name = "Tighten heatsink mounts (wrench)" - implements = list( - TOOL_WRENCH = 90, - TOOL_RETRACTOR = 45, - ) - time = 2.4 SECONDS - preop_sound = 'sound/items/tools/ratchet_fast.ogg' - success_sound = 'sound/machines/airlock/doorclick.ogg' - -/datum/surgery_step/heatsink/repair/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) - display_results( - user, - target, - span_notice("You begin to tighten the bolts on [target]'s heatsink..."), - span_notice("[user] begins to tighten the bolts on [target]'s heatsink using [tool]."), - span_notice("[user] begins to tighten the bolts on [target]'s heatsink."), - ) - display_pain(target, "You feel a metal clank inside your chest as [user] starts to work.") - -/datum/surgery_step/heatsink/repair/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery, default_display_results = FALSE) - if(ishuman(target)) - var/mob/living/carbon/human/patient = target - var/obj/item/organ/lungs/heatsink = patient.get_organ_slot(ORGAN_SLOT_LUNGS) - patient.set_organ_loss(ORGAN_SLOT_LUNGS, 0) // adjust_organ_loss didnt work here without runtimes spamming, setting to 0 as synths have no natural organ decay/regeneration - if(heatsink.organ_flags & ORGAN_EMP) - heatsink.organ_flags &= ~ORGAN_EMP - display_results( - user, - target, - span_notice("You successfully tighten [target]'s bolts on their heatsink."), - span_notice("[user] successfully tightened [target]'s heatsink using [tool]."), - span_notice("[user] finishes tightening [target]'s heatsink."), - ) - display_pain(target, "Your internal errors clear for your temperature regulation.") - return ..() - -/datum/surgery_step/heatsink/repair/failure(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) - if(ishuman(target)) - var/mob/living/carbon/human/patient = target - display_results( - user, - target, - span_warning("You slip and barely catch the [tool] before it falls, failing to tighten [target]'s heatsink down!"), - span_warning("[user]'s butterfingers barely catches the [tool] before it falls into [target]'s chest!"), - span_warning("[user] screws up, nearly dropping the [tool] into [target]'s chest!"), - ) - display_pain(target, "You feel a dull thud in your chest; it feels like a [tool] fell into your chest cavity!") - patient.adjust_organ_loss(ORGAN_SLOT_LUNGS, 10) // better find your wrench! - return FALSE diff --git a/modular_skyrat/modules/synths/code/surgery/robot_stomach_surgery.dm b/modular_skyrat/modules/synths/code/surgery/robot_stomach_surgery.dm deleted file mode 100644 index 94d1def95d7..00000000000 --- a/modular_skyrat/modules/synths/code/surgery/robot_stomach_surgery.dm +++ /dev/null @@ -1,73 +0,0 @@ -/// Bioreactor Maintenance -/datum/surgery/bioreactor - name = "Bioreactor Maintenance" - surgery_flags = SURGERY_REQUIRE_RESTING | SURGERY_REQUIRE_LIMB | SURGERY_REQUIRES_REAL_LIMB - organ_to_manipulate = ORGAN_SLOT_STOMACH - possible_locs = list(BODY_ZONE_CHEST) - requires_bodypart_type = BODYTYPE_ROBOTIC | BODYTYPE_NANO - steps = list( - /datum/surgery_step/mechanic_open, - /datum/surgery_step/mechanic_unwrench, - /datum/surgery_step/pry_off_plating, - /datum/surgery_step/prepare_electronics, - /datum/surgery_step/bioreactor/repair, - /datum/surgery_step/mechanic_wrench, - /datum/surgery_step/mechanic_close, - ) - desc = "A mechanical surgery procedure designed to repair an androids internal bioreactor." - -/datum/surgery/bioreactor/can_start(mob/user, mob/living/carbon/target) - var/obj/item/organ/stomach/bioreactor = target.get_organ_slot(ORGAN_SLOT_STOMACH) - if(isnull(bioreactor) || !issynthetic(target) || bioreactor.damage < 10) - return FALSE - return ..() - -/datum/surgery_step/bioreactor/repair - name = "perform bioreactor maintenance (screwdriver)" - implements = list( - TOOL_SCREWDRIVER = 95, - TOOL_SCALPEL = 45, - /obj/item/melee/energy/sword = 35, - /obj/item/knife = 25, - /obj/item/shard = 5, - ) - preop_sound = 'sound/items/tools/ratchet_slow.ogg' - success_sound = 'sound/machines/airlock/doorclick.ogg' - -/datum/surgery_step/bioreactor/repair/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) - display_results( - user, - target, - span_notice("You begin to patch the damaged section of [target]'s bioreactor..."), - span_notice("[user] begins to delicately repair [target]'s bioreactor using [tool]."), - span_notice("[user] begins to delicately repair [target]'s bioreactor."), - ) - display_pain(target, "You feel a horrible stab in your gut!") - -/datum/surgery_step/bioreactor/repair/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery, default_display_results = FALSE) - var/mob/living/carbon/human/patient = target - var/obj/item/organ/stomach/bioreactor = target.get_organ_slot(ORGAN_SLOT_STOMACH) - patient.set_organ_loss(ORGAN_SLOT_STOMACH, 0) // adjust_organ_loss didnt work here without runtimes spamming, setting to 0 as synths have no natural organ decay/regeneration - if(bioreactor.organ_flags & ORGAN_EMP) - bioreactor.organ_flags &= ~ORGAN_EMP - display_results( - user, - target, - span_notice("You successfully repair the damaged part of [target]'s bioreactor."), - span_notice("[user] successfully repairs the damaged part of [target]'s bioreactor using [tool]."), - span_notice("[user] successfully repairs the damaged part of [target]'s bioreactor."), - ) - display_pain(target, "The errors clear from your bioreactor.") - return ..() - -/datum/surgery_step/bioreactor/repair/failure(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery) - var/mob/living/carbon/human/patient = target - patient.adjust_organ_loss(ORGAN_SLOT_STOMACH, 15) - display_results( - user, - target, - span_warning("You slip and puncture [target]'s bioreactor!"), - span_warning("[user] slips and punctures [target]'s bioreactor with the [tool]!"), - span_warning("[user] slips and punctures [target]'s bioreactor!"), - ) - display_pain(target, "Your midsection throws additional errors; that's not right!") diff --git a/modular_skyrat/modules/synths/code/surgery/robot_surgery_rename.dm b/modular_skyrat/modules/synths/code/surgery/robot_surgery_rename.dm deleted file mode 100644 index 427d60d6f03..00000000000 --- a/modular_skyrat/modules/synths/code/surgery/robot_surgery_rename.dm +++ /dev/null @@ -1,14 +0,0 @@ -/datum/surgery/amputation/mechanic - name = "Disconnect limb" - -/datum/surgery/autopsy/mechanic - name = "System Failure Analysis (Autopsy)" - -/datum/surgery/organ_manipulation/mechanic - name = "Hardware Manipulation (Organ Manipulation)" - -/datum/surgery/organ_manipulation/mechanic/external - name = "Chassis Manipulation (External Manipulation)" - - - diff --git a/modular_skyrat/modules/synths/code/surgery/surgery.dm b/modular_skyrat/modules/synths/code/surgery/surgery.dm deleted file mode 100644 index 60d1a050bc0..00000000000 --- a/modular_skyrat/modules/synths/code/surgery/surgery.dm +++ /dev/null @@ -1,57 +0,0 @@ -//Blacklists upstream's mechanical surgeries for augmented people in favor of our synth surgeries - -/datum/surgery/advanced/bioware/cortex_folding/mechanic/can_start(mob/user, mob/living/carbon/target) - return !issynthetic(target) && ..() - -/datum/surgery/advanced/bioware/cortex_imprint/mechanic/can_start(mob/user, mob/living/carbon/target) - return !issynthetic(target) && ..() - -/datum/surgery/advanced/bioware/ligament_hook/mechanic/can_start(mob/user, mob/living/carbon/target) - return !issynthetic(target) && ..() - -/datum/surgery/advanced/bioware/muscled_veins/mechanic/can_start(mob/user, mob/living/carbon/target) - return !issynthetic(target) && ..() - -/datum/surgery/advanced/bioware/nerve_grounding/mechanic/can_start(mob/user, mob/living/carbon/target) - return !issynthetic(target) && ..() - -/datum/surgery/advanced/bioware/nerve_splicing/mechanic/can_start(mob/user, mob/living/carbon/target) - return !issynthetic(target) && ..() - -/datum/surgery/advanced/bioware/vein_threading/mechanic/can_start(mob/user, mob/living/carbon/target) - return !issynthetic(target) && ..() - -/datum/surgery/advanced/lobotomy/mechanic/can_start(mob/user, mob/living/carbon/target) - return !issynthetic(target) && ..() - -/datum/surgery/blood_filter/mechanic/can_start(mob/user, mob/living/carbon/target) - return !issynthetic(target) && ..() - -/datum/surgery/brain_surgery/mechanic/can_start(mob/user, mob/living/carbon/target) - return !issynthetic(target) && ..() - -/datum/surgery/coronary_bypass/mechanic/can_start(mob/user, mob/living/carbon/target) - return !issynthetic(target) && ..() - -/datum/surgery/gastrectomy/mechanic/can_start(mob/user, mob/living/carbon/target) - return !issynthetic(target) && ..() - -/datum/surgery/hepatectomy/mechanic/can_start(mob/user, mob/living/carbon/target) - return !issynthetic(target) && ..() - -/datum/surgery/lipoplasty/mechanic/can_start(mob/user, mob/living/carbon/target) - return !issynthetic(target) && ..() - -/datum/surgery/lobectomy/mechanic/can_start(mob/user, mob/living/carbon/target) - return !issynthetic(target) && ..() - -//Disable both normal and mechanical for synths. Makes some sense on augmented people so lacks a biotype check. -/datum/surgery/revival/can_start(mob/user, mob/living/carbon/target) - return !issynthetic(target) && ..() - -/datum/surgery/stomach_pump/mechanic/can_start(mob/user, mob/living/carbon/target) - return !issynthetic(target) && ..() - -/// Proteans can not heal via these surgeries. -/datum/surgery/healing/can_start(mob/user, mob/living/patient) - return !isprotean(patient) && ..() diff --git a/modular_skyrat/modules/telecomms_specialist/telecomms_specialist.dm b/modular_skyrat/modules/telecomms_specialist/telecomms_specialist.dm index ca350971d76..d125b7e40da 100644 --- a/modular_skyrat/modules/telecomms_specialist/telecomms_specialist.dm +++ b/modular_skyrat/modules/telecomms_specialist/telecomms_specialist.dm @@ -38,7 +38,7 @@ /obj/item/reagent_containers/cup = 10, /obj/item/stock_parts/subspace = 8, /obj/item/banhammer = 8, - /obj/item/computer_disk/maintenance = 1, + /obj/item/disk/computer/maintenance = 1, ) rpg_title = "Code Whisperer" job_flags = STATION_JOB_FLAGS diff --git a/modular_zubbers/code/_globalvars/lists/maintenance_loot_common.dm b/modular_zubbers/code/_globalvars/lists/maintenance_loot_common.dm index 464e1e36f26..216a8832e11 100644 --- a/modular_zubbers/code/_globalvars/lists/maintenance_loot_common.dm +++ b/modular_zubbers/code/_globalvars/lists/maintenance_loot_common.dm @@ -549,18 +549,18 @@ GLOBAL_LIST_INIT(common_loot, list( //common: basic items /obj/item/mining_voucher = 3 ) = 75, list( - /obj/item/computer_disk = 25, - /obj/item/computer_disk/engineering = 1, - /obj/item/computer_disk/medical = 1, - /obj/item/computer_disk/ordnance = 1, - /obj/item/computer_disk/security = 1, - /obj/item/computer_disk/advanced = 5, - /obj/item/computer_disk/maintenance/camera = 20, - /obj/item/computer_disk/maintenance/modsuit_control = 20, - /obj/item/computer_disk/maintenance/scanner = 20, - /obj/item/computer_disk/maintenance/theme = 20, - /obj/item/computer_disk/virus/clown = 1, - /obj/item/computer_disk/virus/mime = 1, + /obj/item/disk/computer = 25, + /obj/item/disk/computer/engineering = 1, + /obj/item/disk/computer/medical = 1, + /obj/item/disk/computer/ordnance = 1, + /obj/item/disk/computer/security = 1, + /obj/item/disk/computer/advanced = 5, + /obj/item/disk/computer/maintenance/camera = 20, + /obj/item/disk/computer/maintenance/modsuit_control = 20, + /obj/item/disk/computer/maintenance/scanner = 20, + /obj/item/disk/computer/maintenance/theme = 20, + /obj/item/disk/computer/virus/clown = 1, + /obj/item/disk/computer/virus/mime = 1, /obj/item/disk/data = 25, /obj/item/disk/holodisk = 10, /obj/item/disk/holodisk/woospider = 5, diff --git a/modular_zubbers/code/game/gamemodes/fleshmind/fleshmind_generic_actions.dm b/modular_zubbers/code/game/gamemodes/fleshmind/fleshmind_generic_actions.dm index 083fde19286..eeb0208b748 100644 --- a/modular_zubbers/code/game/gamemodes/fleshmind/fleshmind_generic_actions.dm +++ b/modular_zubbers/code/game/gamemodes/fleshmind/fleshmind_generic_actions.dm @@ -78,7 +78,7 @@ if(!message) return for(var/mob/iterating_mob in GLOB.player_list) - if(!(FACTION_FLESHMIND in iterating_mob.faction) && !isobserver(iterating_mob)) + if(!(iterating_mob.has_faction(FACTION_FLESHMIND)) && !isobserver(iterating_mob)) continue to_chat(iterating_mob, span_purple("FLESHMIND ([owner]): [message]")) diff --git a/modular_zubbers/code/game/gamemodes/fleshmind/human_corruption_component.dm b/modular_zubbers/code/game/gamemodes/fleshmind/human_corruption_component.dm index 6eb6ab24c60..b3f1494c401 100644 --- a/modular_zubbers/code/game/gamemodes/fleshmind/human_corruption_component.dm +++ b/modular_zubbers/code/game/gamemodes/fleshmind/human_corruption_component.dm @@ -60,7 +60,7 @@ granted_actions += new_action RegisterSignal(new_action, COMSIG_QDELETING, PROC_REF(action_destroyed)) - infected_human.faction |= FACTION_FLESHMIND + infected_human.add_faction(FACTION_FLESHMIND) for(var/trait in traits_to_give) ADD_TRAIT(infected_human, trait, "fleshmind") @@ -73,7 +73,7 @@ /datum/component/human_corruption/Destroy(force, silent) QDEL_LIST(granted_actions) var/mob/living/parent_mob = parent - parent_mob.faction -= FACTION_FLESHMIND + parent_mob.remove_faction(FACTION_FLESHMIND) UnregisterSignal(parent, list( COMSIG_ATOM_UPDATE_OVERLAYS, COMSIG_ATOM_EXAMINE, diff --git a/modular_zubbers/code/game/gamemodes/fleshmind/machine_corruption_component.dm b/modular_zubbers/code/game/gamemodes/fleshmind/machine_corruption_component.dm index b6a9c30bd90..6b6537f57b5 100644 --- a/modular_zubbers/code/game/gamemodes/fleshmind/machine_corruption_component.dm +++ b/modular_zubbers/code/game/gamemodes/fleshmind/machine_corruption_component.dm @@ -167,7 +167,7 @@ if(!isliving(user)) return var/mob/living/living_user = user - if((FACTION_FLESHMIND in living_user.faction)) + if((living_user.has_faction(FACTION_FLESHMIND))) return if(!living_user.can_interact_with(parent_machinery)) return diff --git a/modular_zubbers/code/game/objects/items/robot/items/storage.dm b/modular_zubbers/code/game/objects/items/robot/items/storage.dm index 3b474e52c77..27192357f36 100644 --- a/modular_zubbers/code/game/objects/items/robot/items/storage.dm +++ b/modular_zubbers/code/game/objects/items/robot/items/storage.dm @@ -16,7 +16,7 @@ /obj/item/disk/data, /obj/item/disk/design_disk, /obj/item/disk/tech_disk, - /obj/item/computer_disk,//ordinance + /obj/item/disk/computer,//ordinance /obj/item/disk/nanite_program, /obj/item/stock_parts, /obj/item/reagent_containers/cup/beaker, diff --git a/modular_zubbers/code/modules/admin/transform.dm b/modular_zubbers/code/modules/admin/transform.dm index 06a9ba45efa..95c78e881dc 100644 --- a/modular_zubbers/code/modules/admin/transform.dm +++ b/modular_zubbers/code/modules/admin/transform.dm @@ -63,7 +63,7 @@ GLOBAL_LIST_INIT(pp_transformables, list( ), list( name = "Blood-Drunk Miner", - key = /mob/living/simple_animal/hostile/megafauna/blood_drunk_miner + key = /mob/living/basic/boss/blood_drunk_miner ), list( name = "Gladiator", diff --git a/modular_zubbers/code/modules/antagonists/ashwalker/ashwalker.dm b/modular_zubbers/code/modules/antagonists/ashwalker/ashwalker.dm index 3eb3dab5e07..dbf6d860131 100644 --- a/modular_zubbers/code/modules/antagonists/ashwalker/ashwalker.dm +++ b/modular_zubbers/code/modules/antagonists/ashwalker/ashwalker.dm @@ -3,4 +3,4 @@ /datum/species/lizard/ashwalker/on_species_gain(mob/living/carbon/carbon_target, datum/species/old_species, pref_load, regenerate_icons) . = ..() - carbon_target.faction |= FACTION_ASHWALKER + carbon_target.add_faction(FACTION_ASHWALKER) diff --git a/modular_zubbers/code/modules/condos/condo_subsystem.dm b/modular_zubbers/code/modules/condos/condo_subsystem.dm index 04c1c766a14..bc6988b3124 100644 --- a/modular_zubbers/code/modules/condos/condo_subsystem.dm +++ b/modular_zubbers/code/modules/condos/condo_subsystem.dm @@ -25,7 +25,7 @@ SUBSYSTEM_DEF(condos) /obj/item/clothing/suit/hooded/ablative, \ /obj/item/nuke_core, \ /obj/item/nuke_core_container, \ - /obj/item/computer_disk/hdd_theft, \ + /obj/item/disk/computer/hdd_theft, \ /obj/item/nuke_core_container/supermatter, \ /obj/item/aicard, \ /obj/item/gun/energy/temperature/security, \ diff --git a/modular_zubbers/code/modules/mkultra/reagent.dm b/modular_zubbers/code/modules/mkultra/reagent.dm index 338d1854465..89b43939cf6 100644 --- a/modular_zubbers/code/modules/mkultra/reagent.dm +++ b/modular_zubbers/code/modules/mkultra/reagent.dm @@ -256,7 +256,7 @@ Creating a chem with a low purity will make you permanently fall in love with so return var/lewd = (Lover.client?.prefs?.read_preference(/datum/preference/toggle/erp/hypnosis)) && (Love.client?.prefs?.read_preference(/datum/preference/toggle/erp/hypnosis)) to_chat(Lover, "[(lewd?"":"")]You develop a deep and sudden bond with [Love][(lewd?", your heart beginning to race as your mind filles with thoughts about them.":".")] You are determined to keep them safe and happy, and feel drawn towards them.") - Lover.faction |= "[REF(Love)]" + Lover.add_faction("[REF(Love)]") Lover.apply_status_effect(/datum/status_effect/in_love, Love) SSblackbox.record_feedback("tally", "fermi_chem", 1, "Times people have become infatuated.") return diff --git a/modular_zubbers/code/modules/mob/living/basic/space_fauna/dolphin_ai.dm b/modular_zubbers/code/modules/mob/living/basic/space_fauna/dolphin_ai.dm index 43f9bc47ab0..9fceab935ca 100644 --- a/modular_zubbers/code/modules/mob/living/basic/space_fauna/dolphin_ai.dm +++ b/modular_zubbers/code/modules/mob/living/basic/space_fauna/dolphin_ai.dm @@ -23,6 +23,6 @@ return FALSE if (the_target in controller.blackboard[BB_BASIC_MOB_RETALIATE_LIST]) return FALSE - if (FACTION_CARP in the_target.faction) + if (the_target.has_faction(FACTION_CARP)) return FALSE return TRUE diff --git a/modular_zubbers/code/modules/silicons/borgs/code/robot_model.dm b/modular_zubbers/code/modules/silicons/borgs/code/robot_model.dm index eb621df9f4b..9cb0857d1b3 100644 --- a/modular_zubbers/code/modules/silicons/borgs/code/robot_model.dm +++ b/modular_zubbers/code/modules/silicons/borgs/code/robot_model.dm @@ -66,14 +66,14 @@ var/mob/living/silicon/robot/cyborg = loc cyborg.scrambledcodes = TRUE cyborg.req_access = list(ACCESS_CENT_GENERAL) - cyborg.faction |= ROLE_DEATHSQUAD //You're part of CENTCOM now + cyborg.add_faction(ROLE_DEATHSQUAD) //You're part of CENTCOM now /obj/item/robot_model/centcom/remove_module(obj/item/removed_module, delete_after) ..() var/mob/living/silicon/robot/cyborg = loc cyborg.scrambledcodes = FALSE cyborg.req_access = list(ACCESS_ROBOTICS) - cyborg.faction -= ROLE_DEATHSQUAD //You're no longer part of CENTCOM + cyborg.remove_faction(ROLE_DEATHSQUAD) //You're no longer part of CENTCOM /* Research cyborgs */ diff --git a/modular_zubbers/code/modules/surgery/advanced/trauma_surgery.dm b/modular_zubbers/code/modules/surgery/advanced/trauma_surgery.dm deleted file mode 100644 index f62b5c91b9a..00000000000 --- a/modular_zubbers/code/modules/surgery/advanced/trauma_surgery.dm +++ /dev/null @@ -1,132 +0,0 @@ -/datum/surgery/brain_surgery - desc = "A minor head surgery for repairing brain damage and removing mild traumas." - -/datum/surgery/advanced/neurectomy - name = "Neurectomy" - desc = "An invasive surgical procedure which guarantees removal of deep-rooted brain traumas, but takes a while for the body to recover..." - 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/neurectomy, - /datum/surgery_step/close, - ) - var/resilience_level = TRAUMA_RESILIENCE_LOBOTOMY - -/datum/surgery/advanced/neurectomy/can_start(mob/user, mob/living/carbon/target) - . = ..() - if(!.) - return FALSE - - var/obj/item/organ/brain/target_brain = target.get_organ_slot(ORGAN_SLOT_BRAIN) - if(!target_brain) - return FALSE - - if(LAZYLEN(target.get_traumas())) - for(var/active_trauma in target.get_traumas()) - var/datum/brain_trauma/trauma = active_trauma - if(trauma.resilience == resilience_level) - return TRUE - - return FALSE - -/datum/surgery_step/neurectomy - name = "reticulate nerve splines (scalpel)" - implements = list( - TOOL_SCALPEL = 100, - /obj/item/melee/energy/sword = 55, - /obj/item/knife = 35, - /obj/item/shard = 25, - /obj/item/pen = 15, - ) - chems_needed = list( - /datum/reagent/medicine/neurine, - ) - time = 10 SECONDS - repeatable = FALSE - preop_sound = 'sound/items/handling/surgery/scalpel1.ogg' - success_sound = 'sound/items/handling/surgery/scalpel2.ogg' - failure_sound = 'sound/items/handling/surgery/organ2.ogg' - surgery_effects_mood = TRUE - -/datum/surgery_step/neurectomy/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) - display_results( - user, - target, - span_notice("You begin to excise the nerve in [target]'s brain..."), - span_notice("[user] begins to fix [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/neurectomy/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 excising [target]'s failed nerve."), - span_notice("[user] successfully excises [target]'s nerve!"), - 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.set_organ_loss(ORGAN_SLOT_BRAIN, target.get_organ_loss(ORGAN_SLOT_BRAIN) - 40) - target.cure_all_traumas(TRAUMA_RESILIENCE_BASIC) - target.cure_all_traumas(TRAUMA_RESILIENCE_SURGERY) - target.cure_all_traumas(TRAUMA_RESILIENCE_LOBOTOMY) - var/datum/surgery/advanced/neurectomy/surgery_type = surgery - if(surgery_type.resilience_level == TRAUMA_RESILIENCE_MAGIC) - target.cure_all_traumas(TRAUMA_RESILIENCE_MAGIC) - playsound(source = get_turf(target), soundin = 'sound/effects/magic/repulse.ogg', vol = 75, vary = TRUE, falloff_distance = 2) - target.apply_status_effect(/datum/status_effect/vulnerable_to_damage/surgery) - if(target.mind && target.mind.has_antag_datum(/datum/antagonist/brainwashed)) - target.mind.remove_antag_datum(/datum/antagonist/brainwashed) - return ..() - -/datum/surgery_step/neurectomy/failure(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) - var/obj/item/organ/brain/target_brain = target.get_organ_slot(ORGAN_SLOT_BRAIN) - if(target_brain) - display_results( - user, - target, - span_warning("You excise the wrong nerve, causing more damage!"), - span_warning("[user] fails to excise [target]'s brain!"), - 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) - target.apply_status_effect(/datum/status_effect/vulnerable_to_damage/surgery) - 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 - -/datum/surgery/advanced/neurectomy/blessed - name = "Blessed Neurectomy" - desc = "We're not quite sure exactly how it works, but with the blessing of a chaplain combined with modern chemicals, this manages to remove soul-bound traumas once thought to be magic." - steps = list( - /datum/surgery_step/incise, - /datum/surgery_step/retract_skin, - /datum/surgery_step/saw, - /datum/surgery_step/clamp_bleeders, - /datum/surgery_step/neurectomy/blessed, - /datum/surgery_step/close, - ) - resilience_level = TRAUMA_RESILIENCE_MAGIC - -/datum/surgery_step/neurectomy/blessed - name = "reticulate nerve splines (scalpel)" - chems_needed = list( - /datum/reagent/water/holywater, - /datum/reagent/medicine/neurine, - ) diff --git a/modular_zubbers/code/modules/surgery/autopsy.dm b/modular_zubbers/code/modules/surgery/autopsy.dm deleted file mode 100644 index d86be2b9750..00000000000 --- a/modular_zubbers/code/modules/surgery/autopsy.dm +++ /dev/null @@ -1,7 +0,0 @@ -/datum/surgery/autopsy/xenomorph - name = "Xenomorph Autopsy" - surgery_flags = SURGERY_REQUIRE_RESTING | SURGERY_MORBID_CURIOSITY - target_mobtypes = list(/mob/living/basic/alien, /mob/living/carbon/alien) - -/datum/experiment/autopsy/xenomorph/is_valid_autopsy(mob/target) - return (isalien(target) || istype(target, /mob/living/basic/alien)) diff --git a/modular_zubbers/code/modules/surgery/healing.dm b/modular_zubbers/code/modules/surgery/healing.dm deleted file mode 100644 index 5d3b34efb71..00000000000 --- a/modular_zubbers/code/modules/surgery/healing.dm +++ /dev/null @@ -1,80 +0,0 @@ -// Speed changes to tend wounds balancing for 135% player health -/datum/surgery_step/heal - time = 2.7 SECONDS - -/datum/surgery_step/heal/brute/basic - brutehealing = 7 - -/datum/surgery_step/heal/brute/upgraded - brutehealing = 7 - -/datum/surgery_step/heal/brute/upgraded/femto - brutehealing = 7 - -/datum/surgery_step/heal/burn/basic - burnhealing = 7 - -/datum/surgery_step/heal/burn/upgraded - burnhealing = 7 - -/datum/surgery_step/heal/burn/upgraded/femto - burnhealing = 7 - -/datum/surgery_step/heal/combo - brutehealing = 5 - burnhealing = 5 - brute_multiplier = 0.07 - burn_multiplier = 0.07 - time = 1.5 SECONDS - -/datum/surgery_step/heal/combo/upgraded - brutehealing = 5 - burnhealing = 5 - brute_multiplier = 0.1 - burn_multiplier = 0.1 - -/datum/surgery_step/heal/combo/upgraded/femto - brutehealing = 7 - burnhealing = 7 - brute_multiplier = 0.2 - burn_multiplier = 0.2 - time = 1.5 SECONDS - -/datum/surgery_step/proc/get_feedback_message(mob/living/user, mob/living/target, speed_mod = 1) - return - -/datum/surgery_step/heal/brute/get_feedback_message(mob/living/user, mob/living/target, speed_mod = 1) - var/show_message = FALSE - if(HAS_TRAIT(user, TRAIT_MEDICAL_HUD)) - show_message = TRUE - else if(locate(/obj/item/healthanalyzer) in user.held_items) - show_message = TRUE - else if(get_location_modifier(target) == OPERATING_COMPUTER_MODIFIER) - show_message = TRUE - - if(show_message) - return "[round(1 / speed_mod, 0.1)]x ([target.get_brute_loss()]) [feedback_value]" - -/datum/surgery_step/heal/burn/get_feedback_message(mob/living/user, mob/living/target, speed_mod = 1) - var/show_message = FALSE - if(HAS_TRAIT(user, TRAIT_MEDICAL_HUD)) - show_message = TRUE - else if(locate(/obj/item/healthanalyzer) in user.held_items) - show_message = TRUE - else if(get_location_modifier(target) == OPERATING_COMPUTER_MODIFIER) - show_message = TRUE - - if(show_message) - return "[round(1 / speed_mod, 0.1)]x ([target.get_fire_loss()]) [feedback_value]" - -/datum/surgery_step/heal/combo/get_feedback_message(mob/living/user, mob/living/target, speed_mod = 1) - var/show_message = FALSE - if(HAS_TRAIT(user, TRAIT_MEDICAL_HUD)) - show_message = TRUE - else if(locate(/obj/item/healthanalyzer) in user.held_items) - show_message = TRUE - else if(get_location_modifier(target) == OPERATING_COMPUTER_MODIFIER) - show_message = TRUE - - if(show_message) - return "[round(1 / speed_mod, 0.1)]x ([target.get_brute_loss()]/[target.get_fire_loss()]) [feedback_value]" diff --git a/modular_zubbers/code/modules/surgery/organs/ear_surgery.dm b/modular_zubbers/code/modules/surgery/organs/ear_surgery.dm deleted file mode 100644 index 81f8687e321..00000000000 --- a/modular_zubbers/code/modules/surgery/organs/ear_surgery.dm +++ /dev/null @@ -1,30 +0,0 @@ -/datum/surgery/ear_surgery - requires_bodypart_type = BODYTYPE_ORGANIC | BODYTYPE_ALIEN | BODYTYPE_NANO | BODYTYPE_SHADOW - -/datum/surgery/ear_surgery/mechanic - name = "Auditory Sensor repair" - 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/prepare_electronics, - /datum/surgery_step/fix_ears/mechanic, - /datum/surgery_step/mechanic_wrench, - /datum/surgery_step/mechanic_close - ) - -/datum/surgery_step/fix_ears - preop_sound = 'sound/items/handling/surgery/hemostat1.ogg' - success_sound = 'sound/items/handling/surgery/retractor2.ogg' - failure_sound = 'sound/items/handling/surgery/organ2.ogg' - -/datum/surgery_step/fix_ears/mechanic - name = "repair auditory sensor (screwdriver/hemostat)" - implements = list( - TOOL_SCREWDRIVER = 100, - TOOL_HEMOSTAT = 45, - /obj/item/pen = 25) - preop_sound = 'sound/items/taperecorder/tape_flip.ogg' - success_sound = 'sound/items/taperecorder/taperecorder_close.ogg' - failure_sound = 'sound/items/handling/disk_drop.ogg' diff --git a/modular_zubbers/code/modules/surgery/organs/eye_surgery.dm b/modular_zubbers/code/modules/surgery/organs/eye_surgery.dm deleted file mode 100644 index f0ccc45739a..00000000000 --- a/modular_zubbers/code/modules/surgery/organs/eye_surgery.dm +++ /dev/null @@ -1,28 +0,0 @@ -/datum/surgery/eye_surgery - requires_bodypart_type = BODYTYPE_ORGANIC | BODYTYPE_ALIEN | BODYTYPE_NANO | BODYTYPE_SHADOW - -/datum/surgery/eye_surgery/mechanic - name = "Optical Sensor repair" - requires_bodypart_type = BODYTYPE_ROBOTIC - steps = list( - /datum/surgery_step/mechanic_open, - /datum/surgery_step/open_hatch, - /datum/surgery_step/prepare_electronics, - /datum/surgery_step/fix_eyes/mechanic, - /datum/surgery_step/mechanic_close - ) - -/datum/surgery_step/fix_eyes - preop_sound = 'sound/items/handling/surgery/hemostat1.ogg' - success_sound = 'sound/items/handling/surgery/retractor2.ogg' - failure_sound = 'sound/items/handling/surgery/organ2.ogg' - -/datum/surgery_step/fix_eyes/mechanic - name = "repair optical sensor (screwdriver/hemostat)" - implements = list( - TOOL_SCREWDRIVER = 100, - TOOL_HEMOSTAT = 45, - /obj/item/pen = 25) - preop_sound = 'sound/items/taperecorder/tape_flip.ogg' - success_sound = 'sound/items/taperecorder/taperecorder_close.ogg' - failure_sound = 'sound/items/handling/disk_drop.ogg' diff --git a/modular_zubbers/code/modules/surgery/robotic_cavity_implant.dm b/modular_zubbers/code/modules/surgery/robotic_cavity_implant.dm deleted file mode 100644 index df46aa85c74..00000000000 --- a/modular_zubbers/code/modules/surgery/robotic_cavity_implant.dm +++ /dev/null @@ -1,34 +0,0 @@ -/datum/surgery/cavity_implant/mechanic //new surgery path for augments and synths so they can have cavity implants. - name = "Robotic cavity implant" - requires_bodypart_type = BODYTYPE_ROBOTIC - possible_locs = list(BODY_ZONE_CHEST) - steps = list( - /datum/surgery_step/mechanic_open, - /datum/surgery_step/mechanic_unwrench, - /datum/surgery_step/prepare_electronics, - /datum/surgery_step/open_hatch, - /datum/surgery_step/handle_cavity, - /datum/surgery_step/close_cavity, - /datum/surgery_step/mechanic_wrench, - /datum/surgery_step/mechanic_close) - -/datum/surgery_step/close_cavity //new surgery step used solely for the mechanical variant. Used to seal the cavity so the surgery can progress to the proper surgery end point for synthetics. - name = "solder cavity (cautery or welder)" - implements = list( - TOOL_CAUTERY = 100, - /obj/item/gun/energy/laser = 90, - TOOL_WELDER = 100, - /obj/item = 30) // 30% success with any hot item. - time = 24 - preop_sound = 'sound/items/handling/surgery/cautery1.ogg' - success_sound = 'sound/items/handling/surgery/cautery2.ogg' - -/datum/surgery_step/close_cavity/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) - display_results( - user, - target, - span_notice("You begin to solder the electronics around [target]'s cavity..."), - span_notice("[user] begins to solder [target]'s internal cavity with [tool]!"), - span_notice("[user] begins to solder [target]'s internal cavity!"), - ) - display_pain(target, "The pain in your chest is unbearable! You can barely take it anymore!") diff --git a/modular_zubbers/code/modules/synths/code/surgery/robot_brain_surgery.dm b/modular_zubbers/code/modules/synths/code/surgery/robot_brain_surgery.dm deleted file mode 100644 index 101f012b131..00000000000 --- a/modular_zubbers/code/modules/synths/code/surgery/robot_brain_surgery.dm +++ /dev/null @@ -1,165 +0,0 @@ -/datum/surgery/robot_brain_surgery - name = "Reset Posibrain Logic (Brain Surgery)" - steps = list( - /datum/surgery_step/mechanic_open, - /datum/surgery_step/mechanic_unwrench, - /datum/surgery_step/pry_off_plating, - /datum/surgery_step/prepare_electronics, - /datum/surgery_step/fix_robot_brain, - /datum/surgery_step/mechanic_close, - ) - - target_mobtypes = list(/mob/living/carbon/human) - possible_locs = list(BODY_ZONE_CHEST) // The brains are in the chest - requires_bodypart_type = BODYTYPE_ROBOTIC - desc = "A surgical procedure that restores the default behavior logic and personality matrix of an IPC posibrain, removing deep-rooted traumas." - -/datum/surgery/robot_brain_surgery/can_start(mob/user, mob/living/carbon/target, obj/item/tool) - var/obj/item/organ/brain/synth/brain = target.get_organ_slot(ORGAN_SLOT_BRAIN) - - if (!..()) - return FALSE - - if(!istype(brain) && !issynthetic(target)) - return FALSE - else - return TRUE - -/datum/surgery_step/fix_robot_brain - name = "fix posibrain (multitool/hemostat)" - implements = list( - TOOL_MULTITOOL = 100, - TOOL_HEMOSTAT = 90, - /obj/item/pen = 15) - repeatable = TRUE - preop_sound = 'sound/items/handling/tools/multitool_pickup.ogg' - success_sound = 'sound/items/handling/tools/multitool_drop.ogg' - failure_sound = 'sound/items/handling/tools/multitool_drop.ogg' - time = 12 SECONDS //long and complicated - -/datum/surgery_step/fix_robot_brain/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) - display_results( - user, - target, - span_notice("You begin to clear system corruption from [target]'s posibrain..."), - "[user] begins to fix [target]'s posibrain.", - "[user] begins to perform surgery on [target]'s posibrain.", - ) - -/datum/surgery_step/fix_robot_brain/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) - display_results(user, - target, - span_notice("You succeed in clearing system corruption from [target]'s posibrain."), - "[user] successfully fixes [target]'s posibrain!", - "[user] completes the surgery on [target]'s posibrain.", - ) - - if(target.mind && target.mind.has_antag_datum(/datum/antagonist/brainwashed)) - target.mind.remove_antag_datum(/datum/antagonist/brainwashed) - - target.set_organ_loss(ORGAN_SLOT_BRAIN, target.get_organ_loss(ORGAN_SLOT_BRAIN) - 60) //we set damage in this case in order to clear the "failing" flag - target.cure_all_traumas(TRAUMA_RESILIENCE_SURGERY) - if(target.get_organ_loss(ORGAN_SLOT_BRAIN) > NONE) - to_chat(user, "[target]'s posibrain still has some lasting system damage that can be cleared.") - - return ..() - -/datum/surgery_step/fix_robot_brain/failure(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) - if(target.get_organ_slot(ORGAN_SLOT_BRAIN)) - display_results( - user, - target, - span_warning("You screw up, fragmenting their data!"), - span_warning("[user] screws up, causing damage to the circuits!"), - "[user] completes the surgery on [target]'s posibrain.", - ) - - target.adjust_organ_loss(ORGAN_SLOT_BRAIN, 60) - target.gain_trauma_type(BRAIN_TRAUMA_SEVERE, TRAUMA_RESILIENCE_LOBOTOMY) - else - user.visible_message(span_warning("[user] suddenly notices that the posibrain [user.p_they()] [user.p_were()] working on is not there anymore."), span_warning("You suddenly notice that the posibrain you were working on is not there anymore.")) - - return FALSE - -/datum/surgery/robot_trauma_surgery - name = "Neural Defragmentation (Neurectomy)" - desc = "Requires Liquid Solder. A surgical procedure that refurbishes low level components in the posibrain, to fix deep-rooted trauma errors." - possible_locs = list(BODY_ZONE_CHEST) // The brains are in the chest - requires_bodypart_type = BODYTYPE_ROBOTIC - requires_tech = TRUE - target_mobtypes = list(/mob/living/carbon/human) - steps = list( - /datum/surgery_step/mechanic_open, - /datum/surgery_step/mechanic_unwrench, - /datum/surgery_step/pry_off_plating, - /datum/surgery_step/prepare_electronics, - /datum/surgery_step/fix_robot_brain/trauma, - /datum/surgery_step/mechanic_close, - ) - var/resilience_level = TRAUMA_RESILIENCE_LOBOTOMY - -/datum/surgery/robot_trauma_surgery/can_start(mob/user, mob/living/carbon/target, obj/item/tool) - . = ..() - if(!.) - return FALSE - - var/obj/item/organ/brain/synth/target_brain = target.get_organ_slot(ORGAN_SLOT_BRAIN) - if(!istype(target_brain) && !issynthetic(target)) - return FALSE - - if(LAZYLEN(target.get_traumas())) - for(var/active_trauma in target.get_traumas()) - var/datum/brain_trauma/trauma = active_trauma - if(trauma.resilience == resilience_level) - return TRUE - - return FALSE - -/datum/surgery_step/fix_robot_brain/trauma - name = "reticulate splines (multitool/hemostat)" - repeatable = FALSE - chems_needed = list( - /datum/reagent/medicine/liquid_solder, - ) - -/datum/surgery_step/fix_robot_brain/trauma/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) - display_results(user, - target, - span_notice("You succeed in reticulating [target]'s splines."), - "[user] successfully fixes [target]'s posibrain!", - "[user] completes the surgery on [target]'s posibrain.", - ) - - target.set_organ_loss(ORGAN_SLOT_BRAIN, target.get_organ_loss(ORGAN_SLOT_BRAIN) - 60) //we set damage in this case in order to clear the "failing" flag - target.cure_all_traumas(TRAUMA_RESILIENCE_BASIC) - target.cure_all_traumas(TRAUMA_RESILIENCE_SURGERY) - target.cure_all_traumas(TRAUMA_RESILIENCE_LOBOTOMY) - var/datum/surgery/robot_trauma_surgery/surgery_type = surgery - if(surgery_type.resilience_level == TRAUMA_RESILIENCE_MAGIC) - target.cure_all_traumas(TRAUMA_RESILIENCE_MAGIC) - playsound(source = get_turf(target), soundin = 'sound/effects/magic/repulse.ogg', vol = 75, vary = TRUE, falloff_distance = 2) - target.apply_status_effect(/datum/status_effect/vulnerable_to_damage/surgery) - if(target.mind && target.mind.has_antag_datum(/datum/antagonist/brainwashed)) - target.mind.remove_antag_datum(/datum/antagonist/brainwashed) - return ..() - -/datum/surgery/robot_trauma_surgery/blessed - name = "Devine Debugging (Blessed Neurectomy)" - desc = "Requires Liquid Solder and Holy Water. A surgical procedure that refurbishes low level components in the posibrain, to fix the strongest, soulbound trauma errors." - steps = list( - /datum/surgery_step/mechanic_open, - /datum/surgery_step/mechanic_unwrench, - /datum/surgery_step/pry_off_plating, - /datum/surgery_step/prepare_electronics, - /datum/surgery_step/fix_robot_brain/blessed, - /datum/surgery_step/mechanic_close, - ) - resilience_level = TRAUMA_RESILIENCE_MAGIC - -/datum/surgery_step/fix_robot_brain/blessed - name = "trigger godmode debugging (multitool/hemostat)" - repeatable = FALSE - chems_needed = list( - /datum/reagent/medicine/liquid_solder, - /datum/reagent/water/holywater, - ) diff --git a/modular_zubbers/code/modules/vehicles/mech_fabricator.dm b/modular_zubbers/code/modules/vehicles/mech_fabricator.dm index 54f8834f40f..52ef1b2815f 100644 --- a/modular_zubbers/code/modules/vehicles/mech_fabricator.dm +++ b/modular_zubbers/code/modules/vehicles/mech_fabricator.dm @@ -6,7 +6,7 @@ /obj/machinery/mecha_part_fabricator/interdyne/emag_act(mob/user, obj/item/card/emag/emag_card) if(obj_flags & EMAGGED) return FALSE - if(ROLE_SYNDICATE in user.faction) + if(user.has_faction(ROLE_SYNDICATE)) obj_flags |= EMAGGED for(var/found_illegal_mech_nods in SSresearch.techweb_nodes) var/datum/techweb_node/illegal_mech_node = SSresearch.techweb_nodes[found_illegal_mech_nods] diff --git a/modular_zubbers/maps/offstation/dauntless/implant_syndie.dm b/modular_zubbers/maps/offstation/dauntless/implant_syndie.dm index 2742617a6b0..7d508182654 100644 --- a/modular_zubbers/maps/offstation/dauntless/implant_syndie.dm +++ b/modular_zubbers/maps/offstation/dauntless/implant_syndie.dm @@ -15,7 +15,7 @@ var/mob/living/living_target = target var/obj/item/implant/weapons_auth/weapons_authorisation = new/obj/item/implant/weapons_auth(living_target) weapons_authorisation.implant(living_target) - living_target.faction |= ROLE_SYNDICATE + living_target.add_faction(ROLE_SYNDICATE) return TRUE /obj/item/implant/interdyne/removed(mob/target, silent = FALSE, special = FALSE) @@ -25,7 +25,7 @@ var/mob/living/living_target = target var/obj/item/implant/weapons_auth/weapons_authorisation = new/obj/item/implant/weapons_auth(living_target) weapons_authorisation.removed(living_target) - living_target.faction &= ROLE_SYNDICATE + living_target.remove_faction(ROLE_SYNDICATE) return TRUE /obj/item/implanter/interdyne diff --git a/modular_zubbers/maps/offstation/dauntless/mob_spawns.dm b/modular_zubbers/maps/offstation/dauntless/mob_spawns.dm index 9578217f8de..0a6e301373a 100644 --- a/modular_zubbers/maps/offstation/dauntless/mob_spawns.dm +++ b/modular_zubbers/maps/offstation/dauntless/mob_spawns.dm @@ -297,7 +297,7 @@ head = /obj/item/clothing/head/soft/black /datum/outfit/dauntless/syndicate/post_equip(mob/living/carbon/human/syndicate) - syndicate.faction |= ROLE_SYNDICATE + syndicate.add_faction(ROLE_SYNDICATE) return ..() // Dauntless Command @@ -356,5 +356,5 @@ id_trim = /datum/id_trim/syndicom/bubberstation/dauntless/stationadmiral /datum/outfit/dauntless/command/post_equip(mob/living/carbon/human/syndicate) - syndicate.faction |= ROLE_SYNDICATE + syndicate.add_faction(ROLE_SYNDICATE) return ..() diff --git a/modular_zubbers/maps/offstation/dauntless/robot.dm b/modular_zubbers/maps/offstation/dauntless/robot.dm index 9cd9018bea8..86d0abb7e35 100644 --- a/modular_zubbers/maps/offstation/dauntless/robot.dm +++ b/modular_zubbers/maps/offstation/dauntless/robot.dm @@ -9,7 +9,7 @@ /obj/item/borg/upgrade/syndicate_access/action(mob/living/silicon/robot/R, user) . = ..() // Turns out this is all you need for access to the doors. See code\game\machinery\_machinery.dm - R.faction += ROLE_SYNDICATE + R.add_faction(ROLE_SYNDICATE) to_chat(R, span_alert("Additional access detected! Remote camera interface destroyed.")) to_chat(user, span_warning("The cyborg whirrs a bit as additional access levels are added, and the remote camera module shorts out a fuse.")) // Remove the camera, much like how the camera is removed for ghost cafe cyborgs @@ -19,7 +19,7 @@ /obj/item/borg/upgrade/syndicate_access/deactivate(mob/living/silicon/robot/R, user) . = ..() - R.faction = initial(R.faction) + R.set_faction(initial(faction)) /obj/item/borg/upgrade/syndicate_access/dauntless/examine_more(mob/user) . = ..() diff --git a/modular_zubbers/maps/offstation/persistence/mob_spawns.dm b/modular_zubbers/maps/offstation/persistence/mob_spawns.dm index 4815537da78..e9f76d4d92b 100644 --- a/modular_zubbers/maps/offstation/persistence/mob_spawns.dm +++ b/modular_zubbers/maps/offstation/persistence/mob_spawns.dm @@ -72,8 +72,8 @@ /obj/effect/mob_spawn/ghost_role/robot/persistence/special(mob/living/silicon/robot/new_spawn) . = ..() if(new_spawn.client) //It should have a client, right? - new_spawn.faction += ROLE_SYNDICATE - new_spawn.faction += ROLE_PERSISTENCE //This is the one to select the cyborg model. + new_spawn.add_faction(ROLE_SYNDICATE) + new_spawn.add_faction(ROLE_PERSISTENCE) //This is the one to select the cyborg model. new_spawn.radio.keyslot = new /obj/item/encryptionkey/headset_syndicate/cybersun(src) new_spawn.radio.recalculateChannels() new_spawn.UnlinkSelf() //This should prevent AI linking and consoles to see or lock them down. @@ -328,7 +328,7 @@ //gives syndicate role so turrets don't shoot operative /datum/outfit/persistence/syndicate/post_equip(mob/living/carbon/human/syndicate) - syndicate.faction |= ROLE_SYNDICATE + syndicate.add_faction(ROLE_SYNDICATE) return ..() // Dauntless Command @@ -394,7 +394,7 @@ //gives syndicate role so turrets don't shoot operatives /datum/outfit/persistence/command/post_equip(mob/living/carbon/human/syndicate) - syndicate.faction |= ROLE_SYNDICATE + syndicate.add_faction(ROLE_SYNDICATE) return ..() //Give cyborg a specific chameleon item that do not disrupt, still lose power though. diff --git a/modular_zubbers/modules/ammo_workbench/code/ammo_workbench.dm b/modular_zubbers/modules/ammo_workbench/code/ammo_workbench.dm index 28f92752a6d..134e376a5fa 100644 --- a/modular_zubbers/modules/ammo_workbench/code/ammo_workbench.dm +++ b/modular_zubbers/modules/ammo_workbench/code/ammo_workbench.dm @@ -50,6 +50,7 @@ /// can this print any round of any caliber given a correct ammo_box? (you varedit this at your own risk, especially if used in a player-facing context.) /// does not force ammo to load in. just makes it able to print wacky ammotypes e.g. lionhunter 7.62, techshells var/adminbus = FALSE + var/datum/material_container/materials /obj/machinery/ammo_workbench/unlocked allowed_harmful = TRUE @@ -66,8 +67,9 @@ ) /obj/machinery/ammo_workbench/Initialize(mapload) - AddComponent( \ - /datum/component/material_container, \ + var/datum/material_container/materials = new( \ + src, \ + /datum/material_container, \ SSmaterials.materials_by_category[MAT_CATEGORY_ITEM_MATERIAL], \ 200000, \ MATCONTAINER_EXAMINE, \ @@ -78,7 +80,6 @@ /obj/machinery/ammo_workbench/examine(mob/user) . += ..() - var/datum/component/material_container/materials = GetComponent(/datum/component/material_container) if(in_range(user, src) || isobserver(user)) . += span_notice("The status display reads: Storing up to [materials.max_amount] material units.
Material consumption at [creation_efficiency*100]%.") @@ -171,11 +172,10 @@ data["turboBoost"] = turbo_boost data["materials"] = list() - var/datum/component/material_container/mat_container = GetComponent(/datum/component/material_container) - if (mat_container) - for(var/mat in mat_container.materials) + if (materials) + for(var/mat in materials.materials) var/datum/material/M = mat - var/amount = mat_container.materials[M] + var/amount = materials.materials[M] var/sheet_amount = amount / SHEET_MATERIAL_AMOUNT var/ref = REF(M) data["materials"] += list(list("name" = M.name, "id" = ref, "amount" = sheet_amount)) @@ -226,13 +226,11 @@ if("Release") - var/datum/component/material_container/mat_container = GetComponent(/datum/component/material_container) - - if(!mat_container) + if(!materials) return var/datum/material/mat = locate(params["id"]) - var/amount = mat_container.materials[mat] + var/amount = materials.materials[mat] if(!amount) return @@ -247,7 +245,7 @@ var/sheets_to_remove = round(min(desired,50,stored_amount)) - mat_container.retrieve_stack(sheets_to_remove, mat, loc) + materials.retrieve_stack(sheets_to_remove, mat, loc) . = TRUE if("ReadDisk") @@ -344,8 +342,6 @@ if(!loaded_magazine) return - var/datum/component/material_container/materials = GetComponent(/datum/component/material_container) - var/obj/item/ammo_casing/new_casing = new casing_type var/list/required_materials = new_casing.get_material_composition() @@ -457,7 +453,6 @@ for(var/datum/stock_part/matter_bin/new_matter_bin in component_parts) mat_capacity += new_matter_bin.tier * (40 * SHEET_MATERIAL_AMOUNT) - var/datum/component/material_container/materials = GetComponent(/datum/component/material_container) materials.max_amount = mat_capacity update_ammotypes() diff --git a/tgstation.dme b/tgstation.dme index 0e23d7859fc..7f8ed731bfb 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -7976,7 +7976,6 @@ #include "modular_skyrat\modules\customization\modules\surgery\organs\moth_antennae.dm" #include "modular_skyrat\modules\customization\modules\surgery\organs\moth_markings.dm" #include "modular_skyrat\modules\customization\modules\surgery\organs\neck_accessory.dm" -#include "modular_skyrat\modules\customization\modules\surgery\organs\nif.dm" #include "modular_skyrat\modules\customization\modules\surgery\organs\organ.dm" #include "modular_skyrat\modules\customization\modules\surgery\organs\pod.dm" #include "modular_skyrat\modules\customization\modules\surgery\organs\skrell_hair.dm" @@ -8801,16 +8800,6 @@ #include "modular_skyrat\modules\synths\code\species\prefsmenu.dm" #include "modular_skyrat\modules\synths\code\species\screen.dm" #include "modular_skyrat\modules\synths\code\species\synthetic.dm" -#include "modular_skyrat\modules\synths\code\surgery\mechanic_steps.dm" -#include "modular_skyrat\modules\synths\code\surgery\robot_brain_surgery.dm" -#include "modular_skyrat\modules\synths\code\surgery\robot_chassis_restoration.dm" -#include "modular_skyrat\modules\synths\code\surgery\robot_healing.dm" -#include "modular_skyrat\modules\synths\code\surgery\robot_heart_surgery.dm" -#include "modular_skyrat\modules\synths\code\surgery\robot_liver_surgery.dm" -#include "modular_skyrat\modules\synths\code\surgery\robot_lung_surgery.dm" -#include "modular_skyrat\modules\synths\code\surgery\robot_stomach_surgery.dm" -#include "modular_skyrat\modules\synths\code\surgery\robot_surgery_rename.dm" -#include "modular_skyrat\modules\synths\code\surgery\surgery.dm" #include "modular_skyrat\modules\tagline\code\world.dm" #include "modular_skyrat\modules\tarkon\code\clothing\head.dm" #include "modular_skyrat\modules\tarkon\code\clothing\mod.dm" @@ -9921,18 +9910,12 @@ #include "modular_zubbers\code\modules\storyteller\storytellers\tellers\storyteller_4_bomb.dm" #include "modular_zubbers\code\modules\storyteller\storytellers\tellers\storyteller_5_gamer.dm" #include "modular_zubbers\code\modules\storyteller\storytellers\tellers\storyteller_6_enemy.dm" -#include "modular_zubbers\code\modules\surgery\autopsy.dm" -#include "modular_zubbers\code\modules\surgery\healing.dm" -#include "modular_zubbers\code\modules\surgery\robotic_cavity_implant.dm" #include "modular_zubbers\code\modules\surgery\surgery_step.dm" #include "modular_zubbers\code\modules\surgery\tools.dm" -#include "modular_zubbers\code\modules\surgery\advanced\trauma_surgery.dm" #include "modular_zubbers\code\modules\surgery\bodyparts\_bodyparts.dm" #include "modular_zubbers\code\modules\surgery\bodyparts\dismemberment.dm" #include "modular_zubbers\code\modules\surgery\bodyparts\kinetic.dm" #include "modular_zubbers\code\modules\surgery\bodyparts\species_parts\misc_bodyparts.dm" -#include "modular_zubbers\code\modules\surgery\organs\ear_surgery.dm" -#include "modular_zubbers\code\modules\surgery\organs\eye_surgery.dm" #include "modular_zubbers\code\modules\surgery\organs\external\antennae.dm" #include "modular_zubbers\code\modules\surgery\organs\external\wings.dm" #include "modular_zubbers\code\modules\surgery\organs\internal\cyberimp\augments_arms.dm" @@ -9949,7 +9932,6 @@ #include "modular_zubbers\code\modules\syndicate_offstation\storage\fireaxe.dm" #include "modular_zubbers\code\modules\syndicate_offstation\storage\lockers.dm" #include "modular_zubbers\code\modules\syndicate_offstation\storage\safe.dm" -#include "modular_zubbers\code\modules\synths\code\surgery\robot_brain_surgery.dm" #include "modular_zubbers\code\modules\tarkon\code\cameras.dm" #include "modular_zubbers\code\modules\tarkon\code\tarkon_loot.dm" #include "modular_zubbers\code\modules\tarkon\code\clothing\backpack.dm"