Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Brain Gens, ECS Gens. #729

Merged
merged 22 commits into from
Mar 2, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions code/datums/uplink/devices and tools.dm
Original file line number Diff line number Diff line change
Expand Up @@ -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 \
Expand Down
4 changes: 2 additions & 2 deletions code/modules/client/preference_setup/preference_setup.dm
Original file line number Diff line number Diff line change
Expand Up @@ -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 *
Expand Down
1 change: 1 addition & 0 deletions code/modules/culture_descriptor/culture/cultures_ipc.dm
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
/decl/cultural_info/culture/ipc

language = LANGUAGE_EAL
secondary_langs = list(
LANGUAGE_HUMAN_EURO,
Expand Down
2 changes: 2 additions & 0 deletions code/modules/mob/living/silicon/laws.dm
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
1 change: 0 additions & 1 deletion code/modules/mob/living/silicon/posi_brainmob.dm
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,6 @@
/mob/living/silicon/sil_brainmob/show_laws(mob/M)
if(M)
to_chat(M, "<b>Obey these laws [M]:</b>")
src.laws_sanity_check()
src.laws.show_laws(M)

/mob/living/silicon/sil_brainmob/open_subsystem(var/subsystem_type, var/mob/given = src)
Expand Down
2 changes: 1 addition & 1 deletion code/modules/mob/new_player/new_player.dm
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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())


Expand Down
2 changes: 1 addition & 1 deletion code/modules/nano/interaction/default.dm
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
18 changes: 17 additions & 1 deletion code/modules/organs/internal/exonet_connection_system.dm
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
Loading
Loading