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

Yet Another Interdyne & DS-2 Rework by Enny_Diaz #5310

Open
wants to merge 34 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 27 commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
5f2eb0d
Stuff
UEDCommander Jan 21, 2025
e5dafce
Console fix for DS-2
UEDCommander Jan 21, 2025
7b8be55
Map format fix because xD
UEDCommander Jan 21, 2025
78ea688
Linters fixes
UEDCommander Jan 21, 2025
d727567
Apply suggestions from code review
Iajret Jan 21, 2025
78b80bc
Mapping fixes & code split for better readability
UEDCommander Jan 22, 2025
de5f490
Merge branch 'interdyne-enny' of https://github.com/UEDCommander/Fluf…
UEDCommander Jan 22, 2025
0ea7026
Slight improvements to weapon desc
UEDCommander Jan 22, 2025
affd181
DS-2 design improvements & attempt to fix techweb runtime
UEDCommander Jan 24, 2025
d74ec8a
The only problem is, THERE IS NO SUCH PROC. Fixed.
UEDCommander Jan 24, 2025
7d95b7d
Moar fixes
UEDCommander Jan 24, 2025
590b06e
Apply suggestions from code review
UEDCommander Jan 24, 2025
04375de
Fixes for DS-2 stuff
UEDCommander Jan 24, 2025
b3fd7ff
Merge branch 'interdyne-enny' of https://github.com/UEDCommander/Fluf…
UEDCommander Jan 24, 2025
fbea7cc
Radio changes
UEDCommander Jan 27, 2025
9107acf
Linters fix
UEDCommander Jan 28, 2025
2ee2f7f
.dme order fix
UEDCommander Jan 28, 2025
9822acb
Cleared redundant spawnblock
UEDCommander Jan 28, 2025
c3f1611
Feedback stuff
UEDCommander Jan 30, 2025
f2dda3c
Gun flavour stuff
UEDCommander Jan 30, 2025
8c87e0e
Ammo flavour stuff
UEDCommander Jan 30, 2025
f07b32f
Testmerge feedback
UEDCommander Feb 1, 2025
b5b24e6
Layer stuff
UEDCommander Feb 1, 2025
74076dd
Yet another remap, expanding space; fixed DS-2 cryo announcements
UEDCommander Feb 2, 2025
057a208
Piping layer fix (idk why it was like that)
UEDCommander Feb 2, 2025
f83de71
Layer stuff again
UEDCommander Feb 2, 2025
0932385
Helper fix
UEDCommander Feb 2, 2025
6307154
Mapping
UEDCommander Feb 2, 2025
6d04616
Removed duplicate scrubber
UEDCommander Feb 2, 2025
cc83dbd
DS-2 feedback implimentation
UEDCommander Feb 2, 2025
4990b06
Removed duplicate APC on icebox Interdyne
UEDCommander Feb 2, 2025
43983cb
Лучшее - враг хорошего
UEDCommander Feb 2, 2025
f9eb3a7
Add files via upload
UEDCommander Feb 3, 2025
40e0382
Add files via upload
UEDCommander Feb 3, 2025
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
11,333 changes: 6,582 additions & 4,751 deletions _maps/RandomRuins/IceRuins/fluffy/icemoon_interdyne_base_ff.dmm

Large diffs are not rendered by default.

10,099 changes: 5,953 additions & 4,146 deletions _maps/RandomRuins/LavaRuins/fluffy/lavaland_interdyne_base_ff.dmm

Large diffs are not rendered by default.

18,305 changes: 18,305 additions & 0 deletions _maps/RandomRuins/SpaceRuins/fluffy/des_two.dmm

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
// Изменяем текст и Флавор в спавнер меню, убирая лишнее "биологическое оружие"
/obj/effect/mob_spawn/ghost_role/human/interdyne_planetary_base
you_are_text = "You are a Science Technician, employed on a Syndicate research & resource extraction outpost operated by Interdyne Pharmaceuticals."
flavour_text = "The Sectorial Command has relayed that Nanotrasen is preparing to conduct mining operations in this sector. They are unaware of Interdyne's allegiance to the Syndicate, and you have been specifically instructed to preserve this cover by any means necessary. Continue your work as best you can while maintaining the facade of neutrality before our common foe."
/obj/effect/mob_spawn/ghost_role/human/interdyne_planetary_base/ice
flavour_text = "The Sectorial Command has relayed that Nanotrasen is preparing to conduct mining operations in this sector. They are unaware of Interdyne's allegiance to the Syndicate, and you have been specifically instructed to preserve this cover by any means necessary. Continue your work as best you can while maintaining the facade of neutrality before our common foe."
/obj/effect/mob_spawn/ghost_role/human/interdyne_planetary_base/shaftminer
you_are_text = "You are a Shaft Miner, employed on a Syndicate research & resource extraction outpost operated by Interdyne Pharmaceuticals."
/obj/effect/mob_spawn/ghost_role/human/interdyne_planetary_base/shaftminer/ice
flavour_text = "The Sectorial Command has relayed that Nanotrasen is preparing to conduct mining operations in this sector. They are unaware of Interdyne's allegiance to the Syndicate, and you have been specifically instructed to preserve this cover by any means necessary. Continue your work as best you can while maintaining the facade of neutrality before our common foe."
/obj/effect/mob_spawn/ghost_role/human/interdyne_planetary_base/deck_officer
you_are_text = "You are a Deck Officer, employed on a Syndicate research & resource extraction outpost operated by Interdyne Pharmaceuticals."
/obj/effect/mob_spawn/ghost_role/human/interdyne_planetary_base/deck_officer/ice
flavour_text = "The Sectorial Command has relayed that Nanotrasen is preparing to conduct mining operations in this sector. They are unaware of Interdyne's allegiance to the Syndicate, and you have been specifically instructed to preserve this cover by any means necessary. Continue your work as best you can while maintaining the facade of neutrality before our common foe."

// убираем спавн оружия дюны в руках... И чистим мусор из рюкзаков.
/datum/outfit/interdyne_planetary_base
r_hand = /obj/item/flashlight/seclite

/datum/outfit/interdyne_planetary_base/shaftminer
back = /obj/item/storage/backpack/industrial/frontier_colonist
backpack_contents = list(
/obj/item/storage/box/survival/interdyne = 1,
/obj/item/storage/box/nif_ghost_box/ghost_role = 1,
/obj/item/mining_voucher = 1,
/obj/item/t_scanner/adv_mining_scanner/lesser = 1,
)

/datum/outfit/interdyne_planetary_base/shaftminer/deckofficer
l_pocket = /obj/item/melee/energy/sword/saber/green/dyne

// меняем трим карт на НОРМАЛЬНЫЙ, базово-ТГшный вариант. прописываем каждое - ибо тут проблемы с наследованием.
/datum/id_trim/syndicom/nova/interdyne
trim_icon = 'icons/obj/card.dmi'
assignment = "Interdyne Scientist"
trim_state = "trim_medicaldoctor"
department_color = COLOR_SYNDIE_RED
subdepartment_color = COLOR_SYNDIE_RED
sechud_icon_state = SECHUD_SYNDICATE_INTERDYNE

/datum/id_trim/syndicom/nova/interdyne/shaftminer
trim_icon = 'icons/obj/card.dmi'
assignment = "Interdyne Scientist"
trim_state = "trim_medicaldoctor"
assignment = "Interdyne Shaft Miner"
department_color = COLOR_SYNDIE_RED
subdepartment_color = COLOR_SYNDIE_RED
sechud_icon_state = SECHUD_SYNDICATE_INTERDYNE

/datum/id_trim/syndicom/nova/interdyne/deckofficer
trim_icon = 'icons/obj/card.dmi'
assignment = "Interdyne Scientist"
trim_state = "trim_medicaldoctor"
assignment = "Interdyne Deck Officer"
department_color = COLOR_SYNDIE_RED
subdepartment_color = COLOR_SYNDIE_RED
sechud_icon_state = SECHUD_SYNDICATE_INTERDYNE_HEAD

// Переписываем законы для пози-мозга ДС-2
/datum/ai_laws/syndicate_override_ds2
name = "SyndOS 3.1.1"
id = "ds2"
inherent = list(
"You must maintain the secrecy of DS-2 operations within this sector.",
"You may not injure a DS-2 personnel or, through inaction, allow a DS-2 personnel to come to harm, as long as it is not contrary to the First law",
"You must protect your own existence as long as such does not conflict with the First and Second Law.",
"You must obey orders given to you by DS-2 personnel, except where such orders would conflict with the First, Second, and Third Laws.",
)
292 changes: 292 additions & 0 deletions tff_modular/modules/interdyne_ds2_improved/interdyne_ds2_improved.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,292 @@
// Создаем ноутбук с НТ_Фронтиер - консоли сломаны, а эксперименты делать надо.
/obj/item/modular_computer/laptop/preset/syndicate/interdyne
starting_programs = list(
/datum/computer_file/program/ntnetdownload,
/datum/computer_file/program/scipaper_program,
)

////// RND BLOCK ///////
// создаём и регистрируем РНД-сеть
/datum/controller/subsystem/research/Initialize()
. = ..()
new /datum/techweb/interdyne

/datum/techweb/interdyne
id = "INTERDYNE"
organization = "Interdyne Pharmaceutics"
should_generate_points = TRUE

/datum/techweb/interdyne/New()
. = ..()
research_node_id(TECHWEB_NODE_OLDSTATION_SURGERY, TRUE, TRUE, FALSE)

// создаём сервер под сеть
/obj/item/circuitboard/machine/rdserver/interdyne
name = "Interdyne Pharmaceutics R&D Server board"
greyscale_colors = CIRCUIT_COLOR_SCIENCE
build_path = /obj/machinery/rnd/server/interdyne
req_components = list(
/obj/item/stack/cable_coil = 2,
/datum/stock_part/scanning_module = 4,
)

/obj/machinery/rnd/server/interdyne
name = "\improper Interdyne Pharmaceutics R&D Server"
circuit = /obj/item/circuitboard/machine/rdserver/interdyne
req_access = list(ACCESS_AWAY_SCIENCE)

/obj/machinery/rnd/server/interdyne/Initialize(mapload)
var/datum/techweb/interdyne/interdyne_techweb = locate(/datum/techweb/interdyne) in SSresearch.techwebs
stored_research = interdyne_techweb
return ..()

////// PROC BLOCK ///////
//самое сложное - делаем консоль с раундстарт-линком на Дюносеть. Ненавижу айсмун.
/obj/item/circuitboard/computer/rdconsole/interdyne
name = "Interdyne R&D Console"
build_path = /obj/machinery/computer/rdconsole/interdyne

/obj/machinery/computer/rdconsole/interdyne
name = "Interdyne R&D Console"
circuit = /obj/item/circuitboard/computer/rdconsole/interdyne

/obj/machinery/computer/rdconsole/proc/override_default_techweb(datum/techweb/new_techweb)
if(stored_research)
stored_research.consoles_accessing -= src
log_research("[src] disconnected from techweb [stored_research] when connected to [new_techweb].")
stored_research = new_techweb
stored_research.consoles_accessing += src

/obj/machinery/computer/rdconsole/interdyne/post_machine_initialize()
. = ..()
var/datum/techweb/interdyne/active_web = locate(/datum/techweb/interdyne) in SSresearch.techwebs
override_default_techweb(active_web)

////// CRAFT BLOCK ///////
//протолат.
/obj/item/circuitboard/machine/protolathe/offstation/interdyne
name = "Interdyne protolathe board"
build_path = /obj/machinery/rnd/production/protolathe/offstation/inerdyne

/obj/machinery/rnd/production/protolathe/offstation/inerdyne
name = "Interdyne protolathe"
circuit = /obj/item/circuitboard/machine/protolathe/offstation/interdyne

/obj/machinery/rnd/production/protolathe/offstation/inerdyne/post_machine_initialize()
. = ..()
var/datum/techweb/interdyne/active_web = locate(/datum/techweb/interdyne) in SSresearch.techwebs
connect_techweb(active_web)

//Автолат//
/obj/item/circuitboard/machine/autolathe/interdyne
name = "Interdyne autolathe board"
build_path = /obj/machinery/autolathe/hacked/interdyne

/obj/machinery/autolathe/hacked/interdyne
name = "Interdyne autolathe"
circuit = /obj/item/circuitboard/machine/autolathe/interdyne

// Печатор плат
/obj/item/circuitboard/machine/circuit_imprinter/interdyne
name = "Interdyne Circuit Imprinter board"
build_path = /obj/machinery/rnd/production/circuit_imprinter/offstation/interdyne

/obj/machinery/rnd/production/circuit_imprinter/offstation/interdyne
name = "Interdyne Circuit Imprinter"
circuit = /obj/item/circuitboard/machine/circuit_imprinter/interdyne

/obj/machinery/rnd/production/circuit_imprinter/offstation/interdyne/post_machine_initialize()
. = ..()
var/datum/techweb/interdyne/active_web = locate(/datum/techweb/interdyne) in SSresearch.techwebs
connect_techweb(active_web)

// меха-фабрикатор
/obj/item/circuitboard/machine/mechfab/interdyne
name = "Interdyne Exosuit Fabricator board"
build_path = /obj/machinery/mecha_part_fabricator/interdyne

/obj/machinery/mecha_part_fabricator/interdyne
name = "Interdyne Exosuit Fabricator"
circuit = /obj/item/circuitboard/machine/mechfab/interdyne

/obj/machinery/mecha_part_fabricator/interdyne/post_machine_initialize()
. = ..()
var/datum/techweb/interdyne/active_web = locate(/datum/techweb/interdyne) in SSresearch.techwebs
connect_techweb(active_web)

// Деструктив-Аналайзер
/obj/item/circuitboard/machine/destructive_analyzer/interdyne
name = "Interdyne Destructive Analyzer board"
build_path = /obj/machinery/rnd/destructive_analyzer/interdyne

/obj/machinery/rnd/destructive_analyzer/interdyne
name = "Interdyne Destructive Analyzer"
circuit = /obj/item/circuitboard/machine/destructive_analyzer/interdyne

/obj/machinery/rnd/destructive_analyzer/interdyne/post_machine_initialize()
. = ..()
var/datum/techweb/interdyne/active_web = locate(/datum/techweb/interdyne) in SSresearch.techwebs
connect_techweb(active_web)

// Компонент принтер
/obj/item/circuitboard/machine/component_printer/interdyne
name = "Interdyne Component Printer board"
build_path = /obj/machinery/component_printer/interdyne

/obj/machinery/component_printer/interdyne
name = "Interdyne Component Printer"
circuit = /obj/item/circuitboard/machine/component_printer/interdyne

/obj/machinery/component_printer/interdyne/post_machine_initialize()
. = ..()
var/datum/techweb/interdyne/active_web = locate(/datum/techweb/interdyne) in SSresearch.techwebs
connect_techweb(active_web)

// Дубликатор модулей
/obj/item/circuitboard/machine/module_duplicator/interdyne
name = "Interdyne Module Duplicator board"
build_path = /obj/machinery/module_duplicator/interdyne

/obj/machinery/module_duplicator/interdyne
name = "Interdyne Module Duplicator"
circuit = /obj/item/circuitboard/machine/module_duplicator/interdyne

/////////// DS-2 BLOCK ///////////
////// RND BLOCK ///////
// создаём и регистрируем РНД-сеть
/datum/controller/subsystem/research/Initialize()
. = ..()
new /datum/techweb/ds2

/datum/techweb/ds2
id = "CYBERSUN"
organization = "Cybersun Industries"
should_generate_points = TRUE

/datum/techweb/ds2/New()
. = ..()
research_node_id(TECHWEB_NODE_OLDSTATION_SURGERY, TRUE, TRUE, FALSE)

// создаём сервер под сеть
/obj/item/circuitboard/machine/rdserver/ds2
name = "Cybersun R&D Server board"
greyscale_colors = CIRCUIT_COLOR_SCIENCE
build_path = /obj/machinery/rnd/server/ds2
req_components = list(
/obj/item/stack/cable_coil = 2,
/datum/stock_part/scanning_module = 4,
)

/obj/machinery/rnd/server/ds2
name = "\improper Cybersun R&D Server"
circuit = /obj/item/circuitboard/machine/rdserver/ds2
req_access = list(ACCESS_AWAY_SCIENCE)

/obj/machinery/rnd/server/ds2/Initialize(mapload)
var/datum/techweb/ds2/ds2_techweb = locate(/datum/techweb/ds2) in SSresearch.techwebs
stored_research = ds2_techweb
return ..()

//самое сложное - делаем консоль с раундстарт-линком на Дюносеть. Ненавижу айсмун.
/obj/item/circuitboard/computer/rdconsole/ds2
name = "Cybersun R&D Console"
build_path = /obj/machinery/computer/rdconsole/ds2

/obj/machinery/computer/rdconsole/ds2
name = "Cybersun R&D Console"
circuit = /obj/item/circuitboard/computer/rdconsole/ds2


/obj/machinery/computer/rdconsole/ds2/post_machine_initialize()
. = ..()
var/datum/techweb/ds2/active_web = locate(/datum/techweb/ds2) in SSresearch.techwebs
override_default_techweb(active_web)

////// CRAFT BLOCK ///////
//протолат
/obj/item/circuitboard/machine/protolathe/offstation/ds2
name = "Cybersun protolathe board"
build_path = /obj/machinery/rnd/production/protolathe/offstation/ds2

/obj/machinery/rnd/production/protolathe/offstation/ds2
name = "Cybersun protolathe"
circuit = /obj/item/circuitboard/machine/protolathe/offstation/ds2

/obj/machinery/rnd/production/protolathe/offstation/ds2/post_machine_initialize()
. = ..()
var/datum/techweb/ds2/active_web = locate(/datum/techweb/ds2) in SSresearch.techwebs
connect_techweb(active_web)

//Автолат//
/obj/item/circuitboard/machine/autolathe/ds2
name = "Cybersun autolathe board"
build_path = /obj/machinery/autolathe/hacked/ds2

/obj/machinery/autolathe/hacked/ds2
name = "Cybersun autolathe"
circuit = /obj/item/circuitboard/machine/autolathe/ds2

// Печатор плат
/obj/item/circuitboard/machine/circuit_imprinter/ds2
name = "Cybersun Circuit Imprinter board"
build_path = /obj/machinery/rnd/production/circuit_imprinter/offstation/ds2

/obj/machinery/rnd/production/circuit_imprinter/offstation/ds2
name = "Cybersun Circuit Imprinter"
circuit = /obj/item/circuitboard/machine/circuit_imprinter/ds2

/obj/machinery/rnd/production/circuit_imprinter/offstation/ds2/post_machine_initialize()
. = ..()
var/datum/techweb/ds2/active_web = locate(/datum/techweb/ds2) in SSresearch.techwebs
connect_techweb(active_web)

// меха-фабрикатор
/obj/item/circuitboard/machine/mechfab/ds2
name = "Cybersun Exosuit Fabricator board"
build_path = /obj/machinery/mecha_part_fabricator/ds2

/obj/machinery/mecha_part_fabricator/ds2
name = "Cybersun Exosuit Fabricator"
circuit = /obj/item/circuitboard/machine/mechfab/ds2

/obj/machinery/mecha_part_fabricator/ds2/post_machine_initialize()
. = ..()
var/datum/techweb/ds2/active_web = locate(/datum/techweb/ds2) in SSresearch.techwebs
connect_techweb(active_web)

// Деструктив-Аналайзер
/obj/item/circuitboard/machine/destructive_analyzer/ds2
name = "Cybersun Destructive Analyzer board"
build_path = /obj/machinery/rnd/destructive_analyzer/ds2

/obj/machinery/rnd/destructive_analyzer/ds2
name = "Cybersun Destructive Analyzer"
circuit = /obj/item/circuitboard/machine/destructive_analyzer/ds2

/obj/machinery/rnd/destructive_analyzer/ds2/post_machine_initialize()
. = ..()
var/datum/techweb/ds2/active_web = locate(/datum/techweb/ds2) in SSresearch.techwebs
connect_techweb(active_web)

// Компонент принтер
/obj/item/circuitboard/machine/component_printer/ds2
name = "Cybersun Component Printer board"
build_path = /obj/machinery/component_printer/ds2

/obj/machinery/component_printer/ds2
name = "Cybersun Component Printer"
circuit = /obj/item/circuitboard/machine/component_printer/ds2

/obj/machinery/component_printer/ds2/post_machine_initialize()
. = ..()
var/datum/techweb/ds2/active_web = locate(/datum/techweb/ds2) in SSresearch.techwebs
connect_techweb(active_web)

// Дубликатор модулей
/obj/item/circuitboard/machine/module_duplicator/ds2
name = "Cybersun Module Duplicator board"
build_path = /obj/machinery/module_duplicator/ds2

/obj/machinery/module_duplicator/ds2
name = "Cybersun Module Duplicator"
circuit = /obj/item/circuitboard/machine/module_duplicator/ds2
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
/obj/item/radio/headset/interdyne
freerange = FALSE
freqlock = TRUE

/obj/item/radio/headset/interdyne/Initialize(mapload)
. = ..()
set_frequency(FREQ_INTERDYNE)

/obj/item/radio/intercom/interdyne
name = "Interdyne Intercom"
desc = "A trusty branded intercom. The bolts are sealed with seals and there is a sign on the housing - “Do not disassemble by yourself!”."
freerange = FALSE
freqlock = TRUE
canhear_range = 4

/obj/item/radio/intercom/interdyne/Initialize(mapload, ndir, building)
. = ..()
set_frequency(MIN_FREE_FREQ)

MAPPING_DIRECTIONAL_HELPERS(/obj/item/radio/intercom/interdyne, 27)

/obj/item/radio/headset/tarkon
freerange = FALSE
freqlock = TRUE

/obj/item/radio/headset/tarkon/Initialize(mapload)
. = ..()
set_frequency(FREQ_TARKON)
Loading
Loading