mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-08-23 04:51:32 +01:00
Shell May Cry: A comprehensive rework of synthetics. (#20721)
https://www.youtube.com/watch?v=9mPvZ96pHJI A pull request commissioned by the Synthetic Lore Team to comprehensively rework synthetics (read: IPCs) and how they work in Aurora. The objective is to make IPCs as unique as possible from humans, upgrading the robotic feel and atmosphere, while also preserving a good sense of balance in-game. Key features: - A comprehensive expansion of synthetic organs, all of which now fulfill a purpose: hydraulics, cooling units, power systems, actuators, diagnostics units. - Customizable organs with benefits and drawbacks, such as with cooling units and power systems. - Unique ways to repair the organs and more involved steps. - Unique damage mechanics - every organ has wiring and electronics which affect its functioning, and they are defended by plating which provides natural armour. - Improved and immersive diagnostics. - Unique features, benefits, and drawbacks for every IPC frame. - A rework of the positronic brain, which can be either destroyed or shut down, alongside effects caused by low integrity. - A rework of how EMPs affect IPC organs. - Non-binary damage states for each organ. To-do: - [x] Finish the unique features for each frame. - [x] Look into if mechanical synthskin is possible. - [x] Power system. - [x] Posibrain mechanics. - [ ] Passive cooling expansion. - [x] EMP mechanics. - [x] Repair mechanics. - [x] Mob weight mechanics. - [ ] Gurney for heavy mobs. - [x] New augments. - [ ] IPC tag scanning and flashing. --------- Signed-off-by: Werner <1331699+Arrow768@users.noreply.github.com> Co-authored-by: Matt Atlas <liermattia@gmail.com> Co-authored-by: Geeves <22774890+Geevies@users.noreply.github.com> Co-authored-by: Werner <1331699+Arrow768@users.noreply.github.com>
This commit is contained in:
co-authored by
Matt Atlas
Geeves
Werner
parent
1898ad3417
commit
e0aa218843
@@ -0,0 +1,127 @@
|
||||
/datum/design/item/synthetic
|
||||
build_type = MECHFAB
|
||||
time = 12 SECONDS
|
||||
materials = list(DEFAULT_WALL_MATERIAL = 10000, MATERIAL_GLASS = 5000)
|
||||
category = "Synthetic Parts"
|
||||
|
||||
/datum/design/item/synthetic/air_cooling_unit
|
||||
name = "Standard Air Cooling Unit"
|
||||
desc = "Parts to assemble a retail air cooling unit."
|
||||
build_path = /obj/item/organ/internal/machine/cooling_unit/air
|
||||
materials = list(DEFAULT_WALL_MATERIAL = 10000, MATERIAL_GLASS = 5000)
|
||||
|
||||
/datum/design/item/synthetic/zenghu_air_cooling_unit
|
||||
name = "Zeng-Hu Penta-Fan Air Cooling System"
|
||||
desc = "Parts to assemble a Zeng-Hu penta-fan air cooling system."
|
||||
build_path = /obj/item/organ/internal/machine/cooling_unit/air/zenghu
|
||||
materials = list(DEFAULT_WALL_MATERIAL = 10000, MATERIAL_GLASS = 5000, MATERIAL_DIAMOND = 5000, MATERIAL_PLASTEEL = 2500)
|
||||
|
||||
/datum/design/item/synthetic/xion_air_cooling_unit
|
||||
name = "Xion Advanced Air Cooling Unit"
|
||||
desc = "Parts to assemble a Xion advanced air cooling unitw."
|
||||
build_path = /obj/item/organ/internal/machine/cooling_unit/air/xion
|
||||
materials = list(DEFAULT_WALL_MATERIAL = 10000, MATERIAL_GLASS = 5000, MATERIAL_DIAMOND = 1000, MATERIAL_PLASTEEL = 7500)
|
||||
|
||||
/datum/design/item/synthetic/liquid_cooling_unit
|
||||
name = "Standard Liquid Cooling Unit"
|
||||
desc = "Parts to assemble a retail liquid cooling unit."
|
||||
build_path = /obj/item/organ/internal/machine/cooling_unit/liquid
|
||||
materials = list(MATERIAL_PLASTEEL = 5000, MATERIAL_GLASS = 5000, MATERIAL_ALUMINIUM = 5000)
|
||||
|
||||
/datum/design/item/synthetic/zenghu_liquid_cooling_unit
|
||||
name = "Zeng-Hu Lamellar Liquid Cooling System"
|
||||
desc = "Parts to assemble a Zeng-Hu lamellar liquid cooling system."
|
||||
build_path = /obj/item/organ/internal/machine/cooling_unit/liquid/zenghu
|
||||
materials = list(MATERIAL_PLASTEEL = 5000, MATERIAL_GLASS = 5000, MATERIAL_ALUMINIUM = 5000, MATERIAL_URANIUM = 2500, MATERIAL_DIAMOND = 2500)
|
||||
req_tech = list(TECH_MATERIAL = 5, TECH_POWER = 4)
|
||||
|
||||
/datum/design/item/synthetic/xion_liquid_cooling_unit
|
||||
name = "Xion Advanced Cryo-Cooling System"
|
||||
desc = "Parts to assemble a Xion cryo-cooling pump and radiator array."
|
||||
build_path = /obj/item/organ/internal/machine/cooling_unit/liquid/xion
|
||||
materials = list(MATERIAL_PLASTEEL = 5000, MATERIAL_GLASS = 5000, MATERIAL_ALUMINIUM = 5000, MATERIAL_DIAMOND = 5000)
|
||||
req_tech = list(TECH_MATERIAL = 5, TECH_POWER = 4)
|
||||
|
||||
/datum/design/item/synthetic/passive_cooling_unit
|
||||
name = "Standard Passive Cooling Unit"
|
||||
desc = "Parts to assemble a retail passive cooling unit."
|
||||
build_path = /obj/item/organ/internal/machine/cooling_unit/passive
|
||||
materials = list(MATERIAL_STEEL = 10000)
|
||||
|
||||
/datum/design/item/synthetic/zenghu_passive_cooling_unit
|
||||
name = "Zeng-Hu Suprafin Cooling Fins"
|
||||
desc = "Parts to assemble a Zeng-Hu passive cooling unit."
|
||||
build_path = /obj/item/organ/internal/machine/cooling_unit/passive/zenghu
|
||||
materials = list(MATERIAL_STEEL = 10000, MATERIAL_DIAMOND = 2500, MATERIAL_PLASTEEL = 5000)
|
||||
|
||||
/datum/design/item/synthetic/zenghu_passive_cooling_unit
|
||||
name = "Xion Passive Intra-fin Array"
|
||||
desc = "Parts to assemble a Zeng-Hu passive cooling unit."
|
||||
build_path = /obj/item/organ/internal/machine/cooling_unit/passive/xion
|
||||
materials = list(MATERIAL_STEEL = 10000, MATERIAL_DIAMOND = 1000, MATERIAL_PLASTEEL = 7500)
|
||||
|
||||
/datum/design/item/synthetic/diagnostics_unit
|
||||
name = "Diagnostics Unit"
|
||||
desc = "Parts to assemble a retail diagnostics unit."
|
||||
build_path = /obj/item/organ/internal/machine/internal_diagnostics
|
||||
materials = list(MATERIAL_PLASTEEL = 7500, MATERIAL_STEEL = 5000, MATERIAL_GLASS = 2500)
|
||||
|
||||
/datum/design/item/synthetic/actuator
|
||||
name = "Left Arm Actuator"
|
||||
desc = "Parts to assemble retail actuators for the left arm."
|
||||
build_path = /obj/item/organ/internal/machine/actuators/left
|
||||
materials = list(MATERIAL_PLASTEEL = 1500, MATERIAL_STEEL = 5000, MATERIAL_GLASS = 1500)
|
||||
|
||||
/datum/design/item/synthetic/actuator/right
|
||||
name = "Right Arm Actuator"
|
||||
desc = "Parts to assemble retail actuators for the right arm."
|
||||
build_path = /obj/item/organ/internal/machine/actuators/right
|
||||
materials = list(MATERIAL_PLASTEEL = 1500, MATERIAL_STEEL = 5000, MATERIAL_GLASS = 1500)
|
||||
|
||||
/datum/design/item/synthetic/hydraulics
|
||||
name = "Hydraulics"
|
||||
desc = "Parts to assemble retail hydraulics."
|
||||
build_path = /obj/item/organ/internal/machine/hydraulics
|
||||
materials = list(MATERIAL_PLASTEEL = 3000, MATERIAL_ALUMINIUM = 1500, MATERIAL_GLASS = 1500)
|
||||
|
||||
/datum/design/item/synthetic/voice_synthesizer
|
||||
name = "Voice Synthesizer"
|
||||
desc = "Parts to assemble a retail voice synthesizer."
|
||||
build_path = /obj/item/organ/internal/machine/voice_synthesizer
|
||||
materials = list(MATERIAL_STEEL = 5000, MATERIAL_PLASTEEL = 1000, MATERIAL_ALUMINIUM = 1500, MATERIAL_GLASS = 1500)
|
||||
|
||||
/datum/design/item/synthetic/ipc_tag
|
||||
name = "IPC Tag"
|
||||
desc = "Parts to assemble a proprietary and specialized tag for IPCs."
|
||||
build_path = /obj/item/organ/internal/machine/ipc_tag
|
||||
materials = list(MATERIAL_PLASTEEL = 2000, MATERIAL_ALUMINIUM = 2000, MATERIAL_GLASS = 5000, MATERIAL_DIAMOND = 1500)
|
||||
|
||||
/datum/design/item/synthetic/optical_sensor
|
||||
name = "Optical Sensor"
|
||||
desc = "Parts to assemble retail optical sensors."
|
||||
build_path = /obj/item/organ/internal/eyes/optical_sensor
|
||||
materials = list(MATERIAL_PLASTEEL = 1000, MATERIAL_ALUMINIUM = 3000, MATERIAL_GLASS = 10000, MATERIAL_DIAMOND = 1000)
|
||||
|
||||
/datum/design/item/synthetic/power_core
|
||||
name = "Power Core"
|
||||
desc = "Parts to assemble a retail power core."
|
||||
build_path = /obj/item/organ/internal/machine/power_core
|
||||
materials = list(MATERIAL_PLASTEEL = 5000, MATERIAL_ALUMINIUM = 1000, MATERIAL_GLASS = 2500, MATERIAL_URANIUM = 1500)
|
||||
|
||||
/datum/design/item/synthetic/reactor
|
||||
name = "Electric Reactor"
|
||||
desc = "Parts to assemble a retail electric reactor for IPCs."
|
||||
build_path = /obj/item/organ/internal/machine/reactor
|
||||
materials = list(MATERIAL_PLASTEEL = 7500, MATERIAL_ALUMINIUM = 5000, MATERIAL_GLASS = 1000)
|
||||
|
||||
/datum/design/item/synthetic/access_port
|
||||
name = "Access Port"
|
||||
desc = "Parts to assemble a retail access port."
|
||||
build_path = /obj/item/organ/internal/machine/access_port
|
||||
materials = list(MATERIAL_STEEL = 2000, MATERIAL_ALUMINIUM = 2000, MATERIAL_GLASS = 1000)
|
||||
|
||||
/datum/design/item/synthetic/access_port
|
||||
name = "Synthetic Plating"
|
||||
desc = "Specially lathed steel plates to replace destroyed plating around a synthetic's internal components, or to substitute their external armour plating altogether."
|
||||
build_path = /obj/item/synth_plating
|
||||
materials = list(MATERIAL_STEEL = 40000)
|
||||
@@ -176,13 +176,13 @@ won't update every console in existence) but it's more of a hassle to do. Also,
|
||||
src.updateUsrDialog()
|
||||
return
|
||||
|
||||
/obj/machinery/computer/rdconsole/emp_act(severity)
|
||||
/obj/machinery/computer/rdconsole/emag_act(remaining_charges, mob/user, emag_source)
|
||||
. = ..()
|
||||
|
||||
if(!emagged)
|
||||
playsound(src.loc, 'sound/effects/sparks4.ogg', 75, 1)
|
||||
emagged = 1
|
||||
to_chat(usr, SPAN_NOTICE("You you disable the security protocols."))
|
||||
to_chat(usr, SPAN_NOTICE("You disable the security protocols."))
|
||||
return 1
|
||||
|
||||
/obj/machinery/computer/rdconsole/Topic(href, href_list)
|
||||
|
||||
@@ -363,7 +363,7 @@
|
||||
if(!emagged)
|
||||
playsound(src.loc, 'sound/effects/sparks4.ogg', 75, 1)
|
||||
emagged = 1
|
||||
to_chat(user, SPAN_NOTICE("You you disable the security protocols."))
|
||||
to_chat(user, SPAN_NOTICE("You disable the security protocols."))
|
||||
src.updateUsrDialog()
|
||||
return 1
|
||||
|
||||
|
||||
Reference in New Issue
Block a user