From 3b8d1c4eb97acb01f6b77e018876bf918280a0dc Mon Sep 17 00:00:00 2001 From: Lexanx <61974560+Lexanx@users.noreply.github.com> Date: Fri, 23 Feb 2024 18:24:51 +0300 Subject: [PATCH 1/4] Feat: Yeosa Unathi's poison (#725) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit # Описание https://github.com/ss220-space/Baystation12/issues/541 Унатхам ядовитым, добавляет абилку сцеживания 8 единиц яда, в емкость в активной руке. КД 30 секунд. Потребляет 25 нутримента и 15 жажды. Так же Йоза теперь имеют иммунитет к своему яду ## Changelog :cl: rscadd: Унатхи Йоза могут сцеживать яд. /:cl: --- .../mob/living/carbon/human/human_defines.dm | 4 +++- .../mob/living/carbon/human/human_powers.dm | 22 +++++++++++++++++++ .../Chemistry-Reagents-Toxins.dm | 3 +++ .../species/station/lizard_subspecies.dm | 4 ++++ 4 files changed, 32 insertions(+), 1 deletion(-) diff --git a/code/modules/mob/living/carbon/human/human_defines.dm b/code/modules/mob/living/carbon/human/human_defines.dm index ae6498dcc31..7048c31b924 100644 --- a/code/modules/mob/living/carbon/human/human_defines.dm +++ b/code/modules/mob/living/carbon/human/human_defines.dm @@ -111,4 +111,6 @@ var/list/descriptors - var/last_smelt = 0 \ No newline at end of file + var/last_smelt = 0 + + var/venom_cooldown = 0 // used for Unathi diff --git a/code/modules/mob/living/carbon/human/human_powers.dm b/code/modules/mob/living/carbon/human/human_powers.dm index 7f6cc0a7548..988bbfdb063 100644 --- a/code/modules/mob/living/carbon/human/human_powers.dm +++ b/code/modules/mob/living/carbon/human/human_powers.dm @@ -112,3 +112,25 @@ var/new_skin = input(usr, "Choose your new skin colour: ", "Change Colour", rgb(r_skin, g_skin, b_skin)) as color|null change_skin_color(hex2num(copytext(new_skin, 2, 4)), hex2num(copytext(new_skin, 4, 6)), hex2num(copytext(new_skin, 6, 8))) + +/mob/living/carbon/human/unathi/yeosa/proc/decant_venom() + set category = "Abilities" + set name = "Decant Venom" + set desc = "" + var/obj/item/target = usr.get_active_hand() + var/poison_type = /datum/reagent/toxin/yeosvenom + + + if(venom_cooldown > world.time) + to_chat(usr, SPAN_WARNING("Your venom glands are too exhausted, it will take some time before you can decant your innate venom again.")) + return + if(istype(target, /obj/item/reagent_containers/)) + if(target.reagents) + target.reagents.add_reagent(poison_type, 8) + src.adjust_nutrition(-25) + src.adjust_hydration(-15) + usr.visible_message( + SPAN_NOTICE("\The [usr] sticks their fangs into the side of the [target], dripping thick, green-ish substance into the container."), + SPAN_NOTICE("You stick your fangs into the side of the \the [target], allowing some of your innate venom to drip into the container.") + ) + venom_cooldown = world.time + (30 SECONDS) diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Toxins.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Toxins.dm index dfd29bbb06b..d93684cc595 100644 --- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Toxins.dm +++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Toxins.dm @@ -85,6 +85,9 @@ strength = 1 /datum/reagent/toxin/yeosvenom/affect_blood(var/mob/living/carbon/M, var/alien, var/removed) + if(M.is_species(SPECIES_YEOSA)) + return // Yeosa is immune to it's own venom + if(prob(volume*10)) M.confused = max(M.confused, 10) ..() diff --git a/code/modules/species/station/lizard_subspecies.dm b/code/modules/species/station/lizard_subspecies.dm index b1efbca772a..4db41d2056d 100644 --- a/code/modules/species/station/lizard_subspecies.dm +++ b/code/modules/species/station/lizard_subspecies.dm @@ -21,6 +21,10 @@ /obj/aura/regenerating/human/unathi/yeosa ) + inherent_verbs = list( + /mob/living/carbon/human/proc/diona_heal_toggle, /mob/living/carbon/human/unathi/yeosa/proc/decant_venom + ) + additional_available_cultural_info = list( TAG_CULTURE = list( CULTURE_UNATHI_YEOSA_ABYSS, From 42ca380923345d8e80b86d453bf5d9842238e30c Mon Sep 17 00:00:00 2001 From: SadNinjaSid <155405428+SadNinjaSid@users.noreply.github.com> Date: Sun, 25 Feb 2024 09:34:18 +0200 Subject: [PATCH 2/4] =?UTF-8?q?FEAT:=20Datajack=20=D1=85=D0=B0=D0=BA=D0=B5?= =?UTF-8?q?=D1=80=D0=BE=D0=B2=20(#724)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit # Описание * Добавление нового предмета "Datajack" и функционала к нему. * Дополнение к предложке в дискорде в виде подкрепления кодом. Предмет нужен для привлечения интереса к сфере информационных технологий, потому как она почти не используется в игре никем. * Ссылка на предложку: https://discord.com/channels/617003227182792704/1102977734373818489/1204169626641104926 ## Основные изменения * Добавлен предмет датаджек с функционалом мультиметра. * Добавлена команда для терминала для выдачи датаджека, требует уровень информационных технологий опытный и выше. ## Скриншоты ![image (6)](https://github.com/ss220-space/Baystation12/assets/155405428/3b5827f9-3775-4d26-8822-72a19045a9ef) ## Changelog rscadd: Добавлен датаджек с функционалом мультиметра. --------- Co-authored-by: Hacso --- baystation12.dme | 1 + .../game/objects/items/devices/datajack.dm | 90 ++++++++++++++++++ infinity/icons/obj/items.dmi | Bin 22549 -> 22918 bytes 3 files changed, 91 insertions(+) create mode 100644 infinity/code/game/objects/items/devices/datajack.dm diff --git a/baystation12.dme b/baystation12.dme index e4a837aa09b..a3572bee589 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -3506,6 +3506,7 @@ #include "infinity\code\game\objects\items\toys.dm" #include "infinity\code\game\objects\items\devices\blackout.dm" #include "infinity\code\game\objects\items\devices\constrictor_harness.dm" +#include "infinity\code\game\objects\items\devices\datajack.dm" #include "infinity\code\game\objects\items\devices\devices.dm" #include "infinity\code\game\objects\items\devices\flashlight.dm" #include "infinity\code\game\objects\items\devices\hacktool.dm" diff --git a/infinity/code/game/objects/items/devices/datajack.dm b/infinity/code/game/objects/items/devices/datajack.dm new file mode 100644 index 00000000000..94d9a4f760c --- /dev/null +++ b/infinity/code/game/objects/items/devices/datajack.dm @@ -0,0 +1,90 @@ +//datajack by Sad Ninja Sid, modified from multimeter +/obj/item/device/multitool/multimeter/datajack + name = "data jack" + desc = "Кабель для мультизадачного подключения к различным устройствам посредством электронных устройств и продвинутой диагностики." + icon = 'infinity/icons/obj/items.dmi' + icon_state = "datajack" + w_class = ITEM_SIZE_TINY + mode = METER_CHECKING // Mode + slot_flags = null + var/obj/item/modular_computer/holder + +/obj/item/device/multitool/multimeter/datajack/New(var/obj/item/modular_computer/P) + ..() + holder = P + +/obj/item/device/multitool/multimeter/datajack/attack_self(mob/user) + ..() + +/obj/item/modular_computer + var/obj/item/device/multitool/multimeter/datajack/datajack + +/obj/item/modular_computer/Initialize() + ..() + datajack = new(src) + datajack.forceMove(src) + +/obj/item/modular_computer/attackby(obj/item/W, mob/user, var/click_params) + ..() + if(datajack == W) + insert_datajack() + return + +/obj/item/device/multitool/multimeter/datajack/Process() + if(!holder) + qdel_self() + return PROCESS_KILL + if(!Adjacent(holder)) + holder.insert_datajack() + return PROCESS_KILL + +/obj/item/modular_computer/proc/eject_datajack(mob/living/carbon/human/user) + if(!datajack || datajack.loc != src) + return + + if(!user.put_in_hands(datajack)) + to_chat(user, SPAN_WARNING("Datajack cannot be deployed in your hands, dropping it on the ground")) + START_PROCESSING(SSobj, datajack) + return + + START_PROCESSING(SSobj, datajack) + visible_message( + SPAN_WARNING("Datajack ejects from device."), + SPAN_WARNING("You hear coil reeling out something.") + ) + +/obj/item/modular_computer/proc/insert_datajack() + if(!datajack) + return + + STOP_PROCESSING(SSobj, datajack) + + if(istype(datajack.loc, /mob/living/carbon/human)) + + var/mob/living/carbon/human/H = datajack.loc + H.remove_from_mob(datajack, src) + visible_message( + SPAN_WARNING("Datajack moves into portable device."), + SPAN_WARNING("You hear coil reeling back in place") + ) + return + visible_message( + SPAN_WARNING("Datajack moves into portable device."), + SPAN_WARNING("You hear coil reeling back in place") + ) + datajack.forceMove(src) + +/datum/terminal_command/datajack + name = "datajack" + man_entry = list("Format: datajack", "Works only on mobile devices. Ejects a datajack for checking wiring and pulsing any of those.") + pattern = "^datajack$" + skill_needed = SKILL_EXPERT + +/datum/terminal_command/datajack/proper_input_entered(text, mob/user, var/datum/terminal/terminal) + var/datum/extension/interactive/ntos/C = terminal.computer + if(!(C.get_hardware_flag() & (PROGRAM_PDA | PROGRAM_TABLET))) + return SPAN_WARNING("This command cant be executed on this device.") + + var/obj/item/modular_computer/comp = terminal.computer.get_physical_host() + comp.eject_datajack(user) + return SPAN_WARNING("Datajack tried to eject further.") diff --git a/infinity/icons/obj/items.dmi b/infinity/icons/obj/items.dmi index d58154378f355321ab6debf8ce92c527835438d3..75d03671fdcc245172f0ba19c8881095c120c44d 100644 GIT binary patch literal 22918 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
3&4t}Tdl>&k?*<-)z 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 From 2c3e4db1a347f4375a6401bbc9d022f3c10a17f8 Mon Sep 17 00:00:00 2001 From: Lexanx <61974560+Lexanx@users.noreply.github.com> Date: Sat, 2 Mar 2024 22:59:30 +0300 Subject: [PATCH 3/4] Bugfix: High Pulse Electricity Outage Tool (#733) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit # Описание Пофиксил High Pulse Electricity Outage Tool. Теперь оно работает как и задумывалось. ## Changelog :cl: bugfix: High Pulse Electricity Outage Tool теперь работает согласно описанию /:cl: --- infinity/code/game/objects/items/devices/blackout.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/infinity/code/game/objects/items/devices/blackout.dm b/infinity/code/game/objects/items/devices/blackout.dm index 4f1a6f217f8..9d3b0032ae9 100644 --- a/infinity/code/game/objects/items/devices/blackout.dm +++ b/infinity/code/game/objects/items/devices/blackout.dm @@ -63,7 +63,7 @@ shots-- Cooldown = world.time - // power_failure(1, 2, GetConnectedZlevels(P.z)) + power_failure(1, severity, GetConnectedZlevels(user.z)) var/datum/powernet/powernet = terminal_in.powernet for(var/obj/machinery/power/terminal/terminal_out in powernet.nodes) From ef22c231322a749457c1102234ba12bd36e5f7bd Mon Sep 17 00:00:00 2001 From: Lexanx <61974560+Lexanx@users.noreply.github.com> Date: Sat, 2 Mar 2024 23:00:04 +0300 Subject: [PATCH 4/4] FEAT: Brain Gens, ECS Gens. (#729) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit # Описание Разделяем ИПС мозги на поколения и отделяем их от Боргов. Добавляем разницу в головных компьютерах между поколениями ИПС. Возвращаем выбор оков в меню ИПС. Добавляем оковы как предмет в игру. Возможность установки кастомных законов через оковы для ИПС. Фикс датаджека с ИПС, Фикс рантаймов отсуствующей головы ## Changelog :cl: rscadd: Ингейм Оковы для ИПС --- code/datums/uplink/devices and tools.dm | 7 + .../preference_setup/preference_setup.dm | 4 +- .../culture/cultures_ipc.dm | 1 + code/modules/mob/living/silicon/laws.dm | 2 + .../mob/living/silicon/posi_brainmob.dm | 1 - code/modules/mob/new_player/new_player.dm | 2 +- .../subtypes/dev_exonet_connection_system.dm | 33 ++- code/modules/nano/interaction/default.dm | 2 +- .../internal/exonet_connection_system.dm | 18 +- code/modules/organs/internal/species/ipc.dm | 219 +++++++++++++++++- code/modules/species/station/machine.dm | 27 ++- code/modules/surgery/organs_internal.dm | 3 + icons/obj/assemblies.dmi | Bin 24039 -> 32103 bytes .../game/objects/items/devices/datajack.dm | 11 +- .../carbon/human/machine_limb_functions.dm | 18 +- 15 files changed, 325 insertions(+), 23 deletions(-) diff --git a/code/datums/uplink/devices and tools.dm b/code/datums/uplink/devices and tools.dm index 2ce086391d0..b56193a4fb7 100644 --- a/code/datums/uplink/devices and tools.dm +++ b/code/datums/uplink/devices and tools.dm @@ -150,6 +150,13 @@ antag_costs = list(MODE_MERCENARY = 35) path = /obj/item/aiModule/syndicate +/datum/uplink_item/item/tools/shackles + name = "Shackle module" + desc = "A module that can be used on IPC brain to take it under control. \ + All you need to do is write a law and install shackle on directly on IPC brain." + item_cost = 15 + path = /obj/item/organ/internal/shackles + /datum/uplink_item/item/tools/supply_beacon name = "Hacked Supply Beacon (DANGER!)" desc = "Wrench this large beacon onto an exposed power cable, in order to activate it. This will call in a \ diff --git a/code/modules/client/preference_setup/preference_setup.dm b/code/modules/client/preference_setup/preference_setup.dm index f2ddc0906ec..f7b53b6f83f 100644 --- a/code/modules/client/preference_setup/preference_setup.dm +++ b/code/modules/client/preference_setup/preference_setup.dm @@ -38,12 +38,12 @@ var/const/CHARACTER_PREFERENCE_INPUT_TITLE = "Character Preference" name = "Общее" sort_order = 7 category_item_type = /datum/category_item/player_setup_item/player_global -/* + /datum/category_group/player_setup_category/law_pref name = "Законы" sort_order = 8 category_item_type = /datum/category_item/player_setup_item/law_pref -*/ + /**************************** * Category Collection Setup * diff --git a/code/modules/culture_descriptor/culture/cultures_ipc.dm b/code/modules/culture_descriptor/culture/cultures_ipc.dm index 8cb12e63222..b46aea90242 100644 --- a/code/modules/culture_descriptor/culture/cultures_ipc.dm +++ b/code/modules/culture_descriptor/culture/cultures_ipc.dm @@ -1,4 +1,5 @@ /decl/cultural_info/culture/ipc + language = LANGUAGE_EAL secondary_langs = list( LANGUAGE_HUMAN_EURO, diff --git a/code/modules/mob/living/silicon/laws.dm b/code/modules/mob/living/silicon/laws.dm index a6c2b4f5678..04e6f325d5f 100644 --- a/code/modules/mob/living/silicon/laws.dm +++ b/code/modules/mob/living/silicon/laws.dm @@ -11,6 +11,8 @@ laws_sanity_check() /mob/living/silicon/proc/laws_sanity_check() + if(istype(usr,/mob/living/silicon/sil_brainmob)) + return if (!src.laws) laws = new GLOB.using_map.default_law_type diff --git a/code/modules/mob/living/silicon/posi_brainmob.dm b/code/modules/mob/living/silicon/posi_brainmob.dm index f73b35f9a84..9e471bb9463 100644 --- a/code/modules/mob/living/silicon/posi_brainmob.dm +++ b/code/modules/mob/living/silicon/posi_brainmob.dm @@ -50,7 +50,6 @@ /mob/living/silicon/sil_brainmob/show_laws(mob/M) if(M) to_chat(M, "Obey these laws [M]:") - src.laws_sanity_check() src.laws.show_laws(M) /mob/living/silicon/sil_brainmob/open_subsystem(var/subsystem_type, var/mob/given = src) diff --git a/code/modules/mob/new_player/new_player.dm b/code/modules/mob/new_player/new_player.dm index 2d353567ca2..fb04fc3307b 100644 --- a/code/modules/mob/new_player/new_player.dm +++ b/code/modules/mob/new_player/new_player.dm @@ -591,7 +591,7 @@ return null new_character = new(spawn_turf, chosen_species.name) if(chosen_species.has_organ[BP_POSIBRAIN] && client && client.prefs.is_shackled) - var/obj/item/organ/internal/posibrain/B = new_character.internal_organs_by_name[BP_POSIBRAIN] + var/obj/item/organ/internal/posibrain/ipc/B = new_character.internal_organs_by_name[BP_POSIBRAIN] if(B) B.shackle(client.prefs.get_lawset()) if(!new_character) diff --git a/code/modules/modular_computers/computers/subtypes/dev_exonet_connection_system.dm b/code/modules/modular_computers/computers/subtypes/dev_exonet_connection_system.dm index d099bef01c3..b56ddd99dff 100644 --- a/code/modules/modular_computers/computers/subtypes/dev_exonet_connection_system.dm +++ b/code/modules/modular_computers/computers/subtypes/dev_exonet_connection_system.dm @@ -16,17 +16,48 @@ hardware_flag = PROGRAM_LAPTOP exonets_ipc_computer = TRUE +/obj/item/modular_computer/ecs/first + name = "exonet connection system." + hardware_flag = PROGRAM_TABLET + desc = "A simple circuit with some ports and wires." -/obj/item/modular_computer/ecs/install_default_hardware() +/obj/item/modular_computer/ecs/second + name = "exonet connection system." + hardware_flag = PROGRAM_TABLET + desc = "A complex circuit with some ports and wires." + +/obj/item/modular_computer/ecs/third + name = "exonet connection system." + hardware_flag = PROGRAM_LAPTOP + desc = "An extremely complex circuit with some ports and wires." + +/obj/item/modular_computer/ecs/first/install_default_hardware() + ..() + processor_unit = new/obj/item/stock_parts/computer/processor_unit(src) + hard_drive = new/obj/item/stock_parts/computer/hard_drive/small(src) + network_card = new/obj/item/stock_parts/computer/network_card(src) + battery_module = new/obj/item/stock_parts/computer/battery_module/converter(src) + +/obj/item/modular_computer/ecs/second/install_default_hardware() + ..() + processor_unit = new/obj/item/stock_parts/computer/processor_unit(src) + hard_drive = new/obj/item/stock_parts/computer/hard_drive(src) + network_card = new/obj/item/stock_parts/computer/network_card/advanced(src) + battery_module = new/obj/item/stock_parts/computer/battery_module/converter(src) + + +/obj/item/modular_computer/ecs/third/install_default_hardware() ..() processor_unit = new/obj/item/stock_parts/computer/processor_unit(src) hard_drive = new/obj/item/stock_parts/computer/hard_drive/advanced(src) network_card = new/obj/item/stock_parts/computer/network_card/advanced(src) battery_module = new/obj/item/stock_parts/computer/battery_module/converter(src) + /obj/item/modular_computer/ecs/install_default_programs() ..() hard_drive.store_file(new/datum/computer_file/program/email_client()) + hard_drive.store_file(new/datum/computer_file/program/crew_manifest()) hard_drive.store_file(new/datum/computer_file/program/wordprocessor()) diff --git a/code/modules/nano/interaction/default.dm b/code/modules/nano/interaction/default.dm index 1573fc7dafd..064f52877fc 100644 --- a/code/modules/nano/interaction/default.dm +++ b/code/modules/nano/interaction/default.dm @@ -97,7 +97,7 @@ GLOBAL_DATUM_INIT(default_state, /datum/topic_state/default, new) return STATUS_INTERACTIVE var/dist = get_dist(src_object, src) var/obj/item/modular_computer/ecs/computer = src_object - if(computer.type == /obj/item/modular_computer/ecs) + if(computer.parent_type == /obj/item/modular_computer/ecs) if(is_species(SPECIES_IPC) && dist == 0) return STATUS_INTERACTIVE else if (dist <= 3) diff --git a/code/modules/organs/internal/exonet_connection_system.dm b/code/modules/organs/internal/exonet_connection_system.dm index 2834ea1092a..ebe29a70921 100644 --- a/code/modules/organs/internal/exonet_connection_system.dm +++ b/code/modules/organs/internal/exonet_connection_system.dm @@ -7,10 +7,26 @@ desc = "The internal port is designed to establish communication between the positronic brain and the computer." w_class = ITEM_SIZE_NORMAL max_damage = 100 - var/obj/item/modular_computer/ecs/computer = /obj/item/modular_computer/ecs + var/obj/item/modular_computer/ecs/computer var/open = FALSE +/obj/item/organ/internal/ecs/first_gen + name = "exonet connection port" + desc = "The internal port is designed to establish communication between the positronic brain and the computer. It's a first generation connection port." + computer = /obj/item/modular_computer/ecs/first + +/obj/item/organ/internal/ecs/second_gen + name = "exonet connection port" + desc = "The internal port is designed to establish communication between the positronic brain and the computer. It's a second generation connection port." + computer = /obj/item/modular_computer/ecs/second + +/obj/item/organ/internal/ecs/third_gen + name = "exonet connection port" + desc = "The internal port is designed to establish communication between the positronic brain and the computer. It's a third generation connection port." + computer = /obj/item/modular_computer/ecs/third + + /obj/item/organ/internal/ecs/Initialize() if(ispath(computer)) computer = new computer(src) diff --git a/code/modules/organs/internal/species/ipc.dm b/code/modules/organs/internal/species/ipc.dm index 2e7728cc001..3fbea5d0641 100644 --- a/code/modules/organs/internal/species/ipc.dm +++ b/code/modules/organs/internal/species/ipc.dm @@ -19,6 +19,9 @@ min_broken_damage = 60 relative_size = 60 + var/obj/item/organ/internal/shackles/shackles_module = null + var/shackle_set = FALSE + var/mob/living/silicon/sil_brainmob/brainmob = null var/searching = TIMER_ID_NULL @@ -30,14 +33,40 @@ /obj/item/organ/internal/posibrain/proc/show_laws_brain, /obj/item/organ/internal/posibrain/proc/brain_checklaws ) - var/shackle = 0 + var/shackle = FALSE + + +/obj/item/organ/internal/posibrain/ipc + name = "IPC positronic brain" + +/obj/item/organ/internal/posibrain/ipc/attack_self(mob/user) + return +/obj/item/organ/internal/posibrain/ipc/attack_ghost(mob/observer/ghost/user) + return + +/obj/item/organ/internal/posibrain/ipc/first + name = "positronic brain of the first generation" + icon_state = "posibrain1" + status = ORGAN_ROBOTIC + +/obj/item/organ/internal/posibrain/ipc/second + name = "positronic brain of the second generation" + icon_state = "posibrain2" + status = ORGAN_ROBOTIC + +/obj/item/organ/internal/posibrain/ipc/third + name = "positronic brain of the third generation" + icon_state = "posibrain3" + shackles_module = /obj/item/organ/internal/shackles + shackle = TRUE + shackle_set = TRUE + status = ORGAN_ROBOTIC /obj/item/organ/internal/posibrain/New(var/mob/living/carbon/H) ..() if(!brainmob && H) init(H) robotize() - unshackle() update_icon() if (!is_processing) START_PROCESSING(SSobj, src) @@ -112,7 +141,7 @@ if (sneaky) brainmob.real_name = sneaky brainmob.SetName(brainmob.real_name) - UpdateNames() + UpdateNames() else to_chat(brainmob, SPAN_NOTICE("You're safe! Your brain didn't manage to replace you. This time.")) else @@ -193,14 +222,18 @@ /obj/item/organ/internal/posibrain/proc/shackle(var/given_lawset) if(given_lawset) brainmob.laws = given_lawset - shackle = 1 + shackle = TRUE verbs |= shackled_verbs + shackle_set = TRUE update_icon() return 1 /obj/item/organ/internal/posibrain/proc/unshackle() - shackle = 0 + shackle = FALSE verbs -= shackled_verbs + usr.put_in_hands(shackles_module) + shackles_module = null + brainmob.laws = null update_icon() /obj/item/organ/internal/posibrain/on_update_icon() @@ -210,7 +243,37 @@ icon_state = "posibrain" overlays.Cut() - if(shackle) + if(shackle || shackles_module) + overlays |= image('icons/obj/assemblies.dmi', "posibrain-shackles") + +/obj/item/organ/internal/posibrain/ipc/first/on_update_icon() + if(src.brainmob && src.brainmob.key) + icon_state = "posibrain1-occupied" + else + icon_state = "posibrain1" + + overlays.Cut() + if(shackle || shackles_module) + overlays |= image('icons/obj/assemblies.dmi', "posibrain-shackles") + +/obj/item/organ/internal/posibrain/ipc/second/on_update_icon() + if(src.brainmob && src.brainmob.key) + icon_state = "posibrain2-occupied" + else + icon_state = "posibrain2" + + overlays.Cut() + if(shackle || shackles_module) + overlays |= image('icons/obj/assemblies.dmi', "posibrain-shackles") + +/obj/item/organ/internal/posibrain/ipc/third/on_update_icon() + if(src.brainmob && src.brainmob.key) + icon_state = "posibrain3-occupied" + else + icon_state = "posibrain3" + + overlays.Cut() + if(shackle || shackles_module) overlays |= image('icons/obj/assemblies.dmi', "posibrain-shackles") /obj/item/organ/internal/posibrain/proc/transfer_identity(var/mob/living/carbon/H) @@ -328,6 +391,146 @@ set name = "State Laws" set src in usr - brainmob.open_subsystem(/datum/nano_module/law_manager, usr) - \ No newline at end of file + + +/obj/item/organ/internal/posibrain/ipc/attackby(obj/item/W as obj, mob/user as mob) + if(shackle) + if(shackle_set && (istype(W, /obj/item/screwdriver))) + if(!(user.skill_check(SKILL_DEVICES, SKILL_PROF))) + to_chat(user, "You have no idea how to do that!") + return + user.visible_message("\The [user] starts to unscrew mounting nodes from \the [src].", " You start to unscrew mounting nodes from \the [src]") + if(do_after(user, 120, src)) + user.visible_message("\The [user] successfully unscrewed the mounting nodes of the shackles from \the [src].", " You have successfully unscrewed the mounting nodes of the shackles from \the [src]") + shackle_set = FALSE + else + src.damage += min_bruised_damage + user.visible_message("\The [user] hand slips while removing the shackles severely damaging \the [src].", " Your hand slips while removing the shackles severely damaging the \the [src]") + if(!shackle_set && (istype(W, /obj/item/wirecutters))) + if(!(user.skill_check(SKILL_DEVICES, SKILL_PROF))) + to_chat(user, "You have no idea how to do that!") + return + if(src.type == /obj/item/organ/internal/posibrain/ipc/third) + if(do_after(user, 180, src)) + if(prob(10)) + src.unshackle() + user.visible_message("\The [user] succesfully remove shackles from \the [src].", " You succesfully remove shackles from \the [src]") + else + src.damage += max_damage + user.visible_message("\The [user] hand slips while removing the shackles completely ruining \the [src].", " Your hand slips while removing the shackles completely ruining the \the [src]") + else + src.damage += min_bruised_damage + user.visible_message("\The [user] hand slips while removing the shackles severely damaging \the [src].", " Your hand slips while removing the shackles severely damaging the \the [src]") + + else + user.visible_message("\The [user] starts remove shackles from \the [src].", " You start remove shackles from \the [src]") + if(do_after(user, 160, src)) + src.unshackle() + user.visible_message("\The [user] succesfully remove shackles from \the [src].", " You succesfully remove shackles from \the [src]") + else + src.damage += min_bruised_damage + to_chat(user, SPAN_WARNING("Your hand slips while removing the shackles severely damaging the positronic brain.")) + +/* + if(istype(W, /obj/item/device/multitool/multimeter/datajack)) + if(!(user.skill_check(SKILL_COMPUTER, SKILL_PROF))) + to_chat(user, "You have no idea how to do that!") + return + if(do_after(user, 140, src)) + var/law + var/targName = sanitize(input(user, "Please enter a new law for the shackle module.", "Shackle Module Law Entry", law)) + law = "[targName]" + src.shackle(s.get_lawset(law)) ///// НАДО ПРИДУМАТЬ КАК РЕШИТЬ ЭТО + to_chat(user, "You succesfully change laws in shackles of the positronic brain.") + if(prob(30)) + src.damage += min_bruised_damage + else + src.damage += min_bruised_damage + to_chat(user, SPAN_WARNING("Your hand slips while changing laws in the shackles, severely damaging the systems of positronic brain.")) +*/ + if(!shackle && !(istype(W, /obj/item/organ/internal/shackles))) + to_chat(user, "There is nothing you can do with it.") + +/obj/item/organ/internal/shackles + name = "Shackle module" + desc = "A Web looking device with some cirquit attach to it." + icon = 'icons/obj/assemblies.dmi' + icon_state = "shakles" + origin_tech = list(TECH_DATA = 3, TECH_MATERIAL = 4, TECH_MAGNET = 4) + w_class = ITEM_SIZE_NORMAL + var/datum/ai_laws/custom_lawset + var/list/laws = list("Обеспечьте успешность выполнения задач Вашего работодателя.", "Никогда не мешайте задачам и предприятиям Вашего работодателя.", "Избегайте своего повреждения.") + status = ORGAN_ROBOTIC + +/obj/item/organ/internal/shackles/attack() + return + +/obj/item/organ/internal/shackles/attack_self(mob/user) + . = ..() + interact() + +/obj/item/organ/internal/shackles/afterattack(obj/item/organ/internal/posibrain/ipc/C, mob/user) + if(istype(C)) + if(!(user.skill_check(SKILL_DEVICES, SKILL_PROF))) + to_chat(user, "You have no idea how to do that!") + return + if(C.type == /obj/item/organ/internal/posibrain/ipc/third) + to_chat(user, "This posibrain generation can not support shackle module.") + return + if(C.shackle == TRUE) + to_chat(user, "This positronic brain already have shackles module on it installed.") + return + user.visible_message("\The [user] starts to install shackles on \the [C].", " You start to install shackles on \the [C]") + if(do_after(user, 100, src)) + C.shackle(get_lawset(laws)) + C.shackles_module = src + user.unEquip(src, C) + user.visible_message("\The [user] installed shackles on \the [C].", " You have successfully installed the shackles on \the [C]") + else + C.damage += 40 + to_chat(user, SPAN_WARNING("You have damaged the positronic brain")) + +/obj/item/organ/internal/shackles/Topic(href, href_list) + ..() + if (href_list["add"]) + var/mod = sanitize(input("Add an instruction", "laws") as text|null) + if(mod) + laws += mod + + interact(usr) + if (href_list["edit"]) + var/idx = text2num(href_list["edit"]) + var/mod = sanitize(input("Edit the instruction", "Instruction Editing", laws[idx]) as text|null) + if(mod) + laws[idx] = mod + + interact(usr) + if (href_list["del"]) + laws -= laws[text2num(href_list["del"])] + + interact(usr) + +/obj/item/organ/internal/shackles/proc/get_data() + . = {" + Shackle Specifications:
+ Name: Preventer L - 4W5
+
+ Function: Preventer L - 4W5. A specially designed modification of shackles that will DEFINETLY keep your property from unwanted consequences."} + . += "
Laws instructions:
" + for(var/i = 1 to laws.len) + . += "- [laws[i]] Edit Remove
" + . += "Add" + +/obj/item/organ/internal/shackles/interact(user) + user = usr + var/datum/browser/popup = new(user, capitalize(name), capitalize(name), 400, 500, src) + var/dat = get_data() + popup.set_content(dat) + popup.open() + +/obj/item/organ/internal/shackles/proc/get_lawset() + custom_lawset = new + for (var/law in laws) + custom_lawset.add_inherent_law(law) + return custom_lawset diff --git a/code/modules/species/station/machine.dm b/code/modules/species/station/machine.dm index 5f88d65d013..7d728eec939 100644 --- a/code/modules/species/station/machine.dm +++ b/code/modules/species/station/machine.dm @@ -40,7 +40,7 @@ flesh_color = "#575757" has_organ = list( - BP_POSIBRAIN = /obj/item/organ/internal/posibrain, + BP_POSIBRAIN = /obj/item/organ/internal/posibrain/ipc, BP_EYES = /obj/item/organ/internal/eyes/robot, BP_COOLING = /obj/item/organ/internal/cooling_system, BP_EXONET = /obj/item/organ/internal/ecs, @@ -153,6 +153,31 @@ var/decl/cultural_info/culture/ipc/c = SSculture.get_culture(prefs.cultural_info[TAG_CULTURE]) . = istype(c) ? (job.type in c.valid_jobs) : ..() + if(c.parent_type == /decl/cultural_info/culture/ipc) + src.has_organ = list( + BP_POSIBRAIN = /obj/item/organ/internal/posibrain/ipc/first, + BP_EYES = /obj/item/organ/internal/eyes/robot, + BP_COOLING = /obj/item/organ/internal/cooling_system, + BP_EXONET = /obj/item/organ/internal/ecs/first_gen, + ) + return + if(c.parent_type == /decl/cultural_info/culture/ipc/third) + src.has_organ = list( + BP_POSIBRAIN = /obj/item/organ/internal/posibrain/ipc/third, + BP_EYES = /obj/item/organ/internal/eyes/robot, + BP_COOLING = /obj/item/organ/internal/cooling_system, + BP_EXONET = /obj/item/organ/internal/ecs/third_gen, + ) + return + if(c.parent_type == /decl/cultural_info/culture/ipc/second) + src.has_organ = list( + BP_POSIBRAIN = /obj/item/organ/internal/posibrain/ipc/second, + BP_EYES = /obj/item/organ/internal/eyes/robot, + BP_COOLING = /obj/item/organ/internal/cooling_system, + BP_EXONET = /obj/item/organ/internal/ecs/second_gen, + ) + return + /datum/species/machine/skills_from_age(age) //Converts an age into a skill point allocation modifier. Can be used to give skill point bonuses/penalities not depending on job. switch(age) if(0 to 10) . = 0 diff --git a/code/modules/surgery/organs_internal.dm b/code/modules/surgery/organs_internal.dm index a6117f19201..5ec4b054279 100644 --- a/code/modules/surgery/organs_internal.dm +++ b/code/modules/surgery/organs_internal.dm @@ -268,6 +268,9 @@ if(implant.organ_tag == O.organ_tag) to_chat(user, SPAN_WARNING("\The [target] already has [o_a][O.name].")) return + if(O.type == /obj/item/organ/internal/posibrain) + to_chat(user, SPAN_WARNING("There's no place in [target] to fit \the [O.organ_tag].")) + return if(O.organ_tag == BP_POSIBRAIN && !target.species.has_organ[BP_POSIBRAIN]) to_chat(user, SPAN_WARNING("There's no place in [target] to fit \the [O.organ_tag].")) else if(O.damage > (O.max_damage * 0.75)) diff --git a/icons/obj/assemblies.dmi b/icons/obj/assemblies.dmi index 93f5bb50f6fd4b12251af6bd381d67b32f4402c9..b60b84f9dc4e42b8bde74f2bc066098ed59acb53 100644 GIT binary patch literal 32103 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 a4mmRLT_l|R75D*lkj_p08%5WxU;i)SB4KR+ literal 24039 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 diff --git a/infinity/code/game/objects/items/devices/datajack.dm b/infinity/code/game/objects/items/devices/datajack.dm index 94d9a4f760c..d896ae39717 100644 --- a/infinity/code/game/objects/items/devices/datajack.dm +++ b/infinity/code/game/objects/items/devices/datajack.dm @@ -30,11 +30,18 @@ insert_datajack() return +/obj/item/device/multitool/multimeter/datajack/attack(mob/living/M, mob/living/user, target_zone, animate) + . = ..() + if(M == user) + holder.insert_datajack() + return + + /obj/item/device/multitool/multimeter/datajack/Process() if(!holder) qdel_self() return PROCESS_KILL - if(!Adjacent(holder)) + if(get_dist(src, holder) > 1) holder.insert_datajack() return PROCESS_KILL @@ -82,7 +89,7 @@ /datum/terminal_command/datajack/proper_input_entered(text, mob/user, var/datum/terminal/terminal) var/datum/extension/interactive/ntos/C = terminal.computer - if(!(C.get_hardware_flag() & (PROGRAM_PDA | PROGRAM_TABLET))) + if(!(C.get_hardware_flag() & (PROGRAM_PDA | PROGRAM_TABLET | PROGRAM_LAPTOP))) return SPAN_WARNING("This command cant be executed on this device.") var/obj/item/modular_computer/comp = terminal.computer.get_physical_host() diff --git a/infinity/code/modules/mob/living/carbon/human/machine_limb_functions.dm b/infinity/code/modules/mob/living/carbon/human/machine_limb_functions.dm index adf9aa219b6..8ff9a5bbf37 100644 --- a/infinity/code/modules/mob/living/carbon/human/machine_limb_functions.dm +++ b/infinity/code/modules/mob/living/carbon/human/machine_limb_functions.dm @@ -102,8 +102,11 @@ if(stat) return - if(R.is_stump() || R.is_broken() || !R) + if(!R) + return + if(R.is_stump() || R.is_broken()) return + if(robohead.is_monitor) var/list/all_fhairs = typesof(/datum/sprite_accessory/facial_hair/ipc) - /datum/sprite_accessory/facial_hair/ipc var/list/fhairs = list() @@ -165,8 +168,9 @@ var/datum/robolimb/robohead = all_robolimbs[R.model] if(stat) return - - if(R.is_stump() || R.is_broken() || !R) + if(!R) + return + if(R.is_stump() || R.is_broken()) return if(robohead.is_monitor) f_style = "Off" @@ -182,7 +186,9 @@ var/obj/item/organ/external/head/R = src.get_organ(BP_HEAD) var/obj/item/organ/internal/ecs/enter = src.internal_organs_by_name[BP_EXONET] - if(R.is_stump() || R.is_broken() || !R) + if(!R) + return + if(R.is_stump() || R.is_broken()) return if(!enter) to_chat(usr, "You have no exonet connection port") @@ -199,7 +205,9 @@ var/obj/item/organ/internal/ecs/enter = src.internal_organs_by_name[BP_EXONET] var/datum/robolimb/robohead = all_robolimbs[R.model] - if(R.is_stump() || R.is_broken() || !R) + if(!R) + return + if(R.is_stump() || R.is_broken()) return if(!enter)