mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-23 21:18:37 +01:00
Tarkon borgs (#6076)
## About The Pull Request https://github.com/Bubberstation/Bubberstation/pull/3687 Reupload of this PR. I finished it, it never got merged, i dont remember why. Lots of my PRs just kinda timed out. A new Borg subtype, for Tarkon specifically. has access to lots of dodads, very versatile model with access to multiple types on one shell. Not obtainable outside of Tarkon. ## Why It's Good For The Game Would be fitting thematically if they had their own borgs, plus giving more utility to one borg on a usually very small crew is good, and them being able to participate in the bulk of the fighting as more than a backline medic is nice. ## Proof Of Testing <details> <summary>Screenshots/Videos</summary> Minor reshuffle of the spawn area to acommodate the spawner. <img width="906" height="871" alt="image" src="https://github.com/user-attachments/assets/86fb438d-90a1-433b-a7fe-d9f2a82d83bf" /> Module choices <img width="618" height="559" alt="image" src="https://github.com/user-attachments/assets/28f868c6-e8fe-45a9-9a5f-e2252e84b83d" /> Laws and preamble on module selection <img width="1503" height="253" alt="image" src="https://github.com/user-attachments/assets/1775da72-fad2-4d47-bdc7-5c753fc10b98" /> Attemting to install more than 3 tarkon modules (the limit) <img width="554" height="68" alt="image" src="https://github.com/user-attachments/assets/b3b6d4df-72d2-4d3d-8cd2-59b62e4e1db4" /> </details> ## Changelog 🆑 add: New Tarkon borgs, jack of all trades /🆑 --------- Co-authored-by: Odairu <39929315+Odairu@users.noreply.github.com> Co-authored-by: Waterpig <49160555+Maia-J@users.noreply.github.com>
This commit is contained in:
committed by
Maia
co-authored by
Odairu
Waterpig
parent
a26e7989ff
commit
4f74148dd3
@@ -3978,13 +3978,16 @@
|
||||
dir = 1
|
||||
},
|
||||
/obj/structure/table/reinforced,
|
||||
/obj/item/hackc{
|
||||
pixel_x = 10
|
||||
},
|
||||
/obj/item/hackc{
|
||||
pixel_x = -10
|
||||
},
|
||||
/obj/item/hackc,
|
||||
/obj/item/flashlight/lantern,
|
||||
/obj/item/flashlight/lantern,
|
||||
/obj/item/flashlight/lantern,
|
||||
/obj/item/flashlight/lantern,
|
||||
/obj/item/flashlight/lantern,
|
||||
/obj/item/flashlight/lantern,
|
||||
/obj/item/flashlight/lantern,
|
||||
/obj/item/flashlight/lantern,
|
||||
/obj/item/flashlight/lantern,
|
||||
/obj/item/flashlight/lantern,
|
||||
/turf/open/floor/iron,
|
||||
/area/ruin/space/has_grav/port_tarkon)
|
||||
"nY" = (
|
||||
@@ -4241,13 +4244,7 @@
|
||||
dir = 1
|
||||
},
|
||||
/obj/machinery/camera/preset/tarkon/directional/north,
|
||||
/obj/structure/table/reinforced,
|
||||
/obj/item/flashlight/lantern,
|
||||
/obj/item/flashlight/lantern,
|
||||
/obj/item/flashlight/lantern,
|
||||
/obj/item/flashlight/lantern,
|
||||
/obj/item/flashlight/lantern,
|
||||
/obj/item/flashlight/lantern,
|
||||
/obj/effect/mob_spawn/ghost_role/human/tarkon/sec,
|
||||
/turf/open/floor/iron,
|
||||
/area/ruin/space/has_grav/port_tarkon)
|
||||
"oY" = (
|
||||
@@ -10793,6 +10790,8 @@
|
||||
/obj/item/storage/box/nif_ghost_box/ghost_role{
|
||||
pixel_x = -7
|
||||
},
|
||||
/obj/item/storage/belt/utility/full,
|
||||
/obj/item/storage/belt/utility/full,
|
||||
/turf/open/floor/iron,
|
||||
/area/ruin/space/has_grav/port_tarkon)
|
||||
"Mc" = (
|
||||
@@ -11883,10 +11882,15 @@
|
||||
/turf/open/floor/iron,
|
||||
/area/ruin/space/has_grav/port_tarkon/cargo)
|
||||
"Qd" = (
|
||||
/obj/structure/table/reinforced,
|
||||
/obj/item/hackc{
|
||||
pixel_x = 10
|
||||
},
|
||||
/obj/item/hackc{
|
||||
pixel_x = -10
|
||||
},
|
||||
/obj/item/hackc,
|
||||
/obj/effect/turf_decal/tile/yellow/anticorner,
|
||||
/obj/structure/table,
|
||||
/obj/item/storage/belt/utility/full,
|
||||
/obj/item/storage/belt/utility/full,
|
||||
/turf/open/floor/iron,
|
||||
/area/ruin/space/has_grav/port_tarkon)
|
||||
"Qe" = (
|
||||
@@ -12550,7 +12554,7 @@
|
||||
/obj/effect/turf_decal/tile/yellow/anticorner{
|
||||
dir = 4
|
||||
},
|
||||
/obj/effect/mob_spawn/ghost_role/human/tarkon,
|
||||
/obj/effect/mob_spawn/ghost_role/robot/tarkon,
|
||||
/turf/open/floor/iron,
|
||||
/area/ruin/space/has_grav/port_tarkon)
|
||||
"Ss" = (
|
||||
@@ -13699,7 +13703,7 @@
|
||||
/obj/effect/turf_decal/tile/yellow/half{
|
||||
dir = 1
|
||||
},
|
||||
/obj/effect/mob_spawn/ghost_role/human/tarkon/sec,
|
||||
/obj/effect/mob_spawn/ghost_role/human/tarkon,
|
||||
/turf/open/floor/iron,
|
||||
/area/ruin/space/has_grav/port_tarkon)
|
||||
"VZ" = (
|
||||
|
||||
@@ -13,6 +13,8 @@
|
||||
//Bubber addition start
|
||||
/// Module is compatible with Research Cyborg model
|
||||
#define BORG_MODEL_RESEARCH (1<<6)
|
||||
/// Module is compatible with Tarkon Cyborg model
|
||||
#define BORG_MODEL_TARKON (1<<7)
|
||||
//Bubber addition end
|
||||
|
||||
/// Module is compatible with Ripley Exosuit models
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
//I'm tired. This is defines for mech fabs.
|
||||
#define RND_SUBCATEGORY_MECHFAB_CYBORG_MODULES_RESEARCH "/Research Cyborgs"
|
||||
#define RND_SUBCATEGORY_MECHFAB_CYBORG_MODULES_TARKON "/Tarkon Cyborgs"
|
||||
|
||||
// Colonial Marine Resequencer Categories
|
||||
#define RND_CATEGORY_CMR_APPAREL "Apparel/Clothing"
|
||||
|
||||
@@ -90,6 +90,10 @@
|
||||
#define CYBORG_ICON_SCI 'modular_zubbers/code/modules/silicons/borgs/sprites/robot_sci.dmi'
|
||||
#define CYBORG_ICON_SCI_HAYDEE_BUBBER 'modular_zubbers/code/modules/silicons/borgs/sprites/curverobot_sci.dmi'
|
||||
|
||||
//TARKON BORG ICON DEFINES
|
||||
#define CYBORG_ICON_TARKON_WIDE_BUBBER 'modular_zubbers/code/modules/silicons/borgs/sprites/widerobot_tarkon.dmi'
|
||||
#define CYBORG_ICON_TARKON_TALL_BUBBER 'modular_zubbers/code/modules/silicons/borgs/sprites/tallrobot_tarkon.dmi'
|
||||
|
||||
// RAPTOR BORG ICON TYPE DEFINE
|
||||
#define CYBORG_ICON_TYPE_RAPTOR "raptor"
|
||||
|
||||
@@ -129,7 +133,7 @@
|
||||
#define CYBORG_ICON_STATE_SEC_FELI "FELI-Security"
|
||||
#define CYBORG_ICON_STATE_SYNDI_FELI "FELI-Combat"
|
||||
#define CYBORG_ICON_STATE_NINJA_FELI "FELI-Ninja"
|
||||
|
||||
#define CYBORG_ICON_STATE_TARKON_FELI "FELI-Tarkon"
|
||||
|
||||
// KITTY BORG DEFINES BELOW
|
||||
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 7.9 KiB After Width: | Height: | Size: 8.9 KiB |
@@ -1,5 +1,4 @@
|
||||
///// First we enstate a techweb so we can add the node. /////
|
||||
|
||||
/datum/techweb/tarkon
|
||||
id = "TARKON"
|
||||
organization = "Tarkon Industries"
|
||||
@@ -9,6 +8,7 @@
|
||||
. = ..()
|
||||
research_node_id("oldstation_surgery", TRUE, TRUE, FALSE)
|
||||
research_node_id("tarkontech", TRUE, TRUE, FALSE)
|
||||
research_node_id("tarkon_borgs", TRUE, TRUE, FALSE)
|
||||
research_node_id("tarkondefence", TRUE, TRUE, FALSE) // not ideal, but will have to do for now
|
||||
|
||||
/datum/techweb_node/tarkon
|
||||
@@ -51,6 +51,29 @@
|
||||
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_5_POINTS)
|
||||
hidden = TRUE
|
||||
|
||||
/datum/techweb_node/tarkon_borgs //Nor this, suprisingly
|
||||
id = "tarkon_borgs"
|
||||
display_name = "Tarkon Industries Robotics Technology"
|
||||
description = "Tarkon Industries Experimental Cyborg Prototypes. Not for public use."
|
||||
prereq_ids = list(TECHWEB_NODE_TARKON, TECHWEB_NODE_BORG_ENGI, TECHWEB_NODE_AI, TECHWEB_NODE_BORG_UTILITY) // Should hold it back long enough
|
||||
required_items_to_unlock = list(
|
||||
/obj/item/mod/construction/plating/tarkon,
|
||||
/obj/item/construction/rcd/arcd/tarkon,
|
||||
/obj/item/gun/energy/recharge/resonant_system,
|
||||
)
|
||||
design_ids = list(
|
||||
"borg_upgrade_tarkon_medical",
|
||||
"borg_upgrade_tarkon_engineering",
|
||||
"borg_upgrade_tarkon_security",
|
||||
"borg_upgrade_tarkon_cargo",
|
||||
"borg_upgrade_tarkon_research",
|
||||
"borg_upgrade_tarkon_service",
|
||||
"borg_upgrade_tarkon_janitor",
|
||||
"borg_upgrade_tarkon_main"
|
||||
)
|
||||
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_2_POINTS) // They will likely have all other borg tech by now, no need to gate it further
|
||||
hidden = TRUE
|
||||
|
||||
/datum/design/hoplite_assembly
|
||||
name = "Hoplite Turret Assembly"
|
||||
desc = "A deployable turret kit designed for basic construct defense. This one makes the \"Hoplite\" model."
|
||||
@@ -67,6 +90,7 @@
|
||||
category = list(
|
||||
RND_CATEGORY_TOOLS + RND_SUBCATEGORY_WEAPONS_KITS
|
||||
)
|
||||
|
||||
/datum/design/cerberus_assembly
|
||||
name = "Cerberus Turret Assembly"
|
||||
desc = "A deployable turret kit designed for basic construct defense. This one makes the \"Cerberus\" model."
|
||||
@@ -83,6 +107,7 @@
|
||||
category = list(
|
||||
RND_CATEGORY_TOOLS + RND_SUBCATEGORY_WEAPONS_KITS,
|
||||
)
|
||||
|
||||
/datum/design/target_designator
|
||||
name = "Turret Target Designator"
|
||||
desc = "A basic target designator designed to control magazine-fed turrets."
|
||||
@@ -211,6 +236,3 @@
|
||||
name = "Tarkon Industries Protolathe"
|
||||
greyscale_colors = CIRCUIT_COLOR_SUPPLY
|
||||
build_path = /obj/machinery/rnd/production/protolathe/tarkon
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -289,3 +289,7 @@
|
||||
model_type = list(/obj/item/robot_model/sci)
|
||||
model_flags = BORG_MODEL_RESEARCH
|
||||
items_to_add = list(/obj/item/construction/rcd/borg/robotics_rcd)
|
||||
|
||||
/obj/item/borg/upgrade/hypospray
|
||||
model_type = list(/obj/item/robot_model/medical, /obj/item/robot_model/tarkon)
|
||||
model_flags = list(BORG_MODEL_MEDICAL, BORG_MODEL_TARKON)
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 77 KiB After Width: | Height: | Size: 84 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 55 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 94 KiB |
@@ -0,0 +1,494 @@
|
||||
/obj/effect/mob_spawn/ghost_role/robot/tarkon
|
||||
name = "Tarkon Cyborg Storage"
|
||||
prompt_name = "a tarkon cyborg"
|
||||
icon = 'modular_skyrat/modules/ghostcafe/icons/robot_storage.dmi'
|
||||
icon_state = "robostorage"
|
||||
anchored = TRUE
|
||||
density = FALSE
|
||||
spawner_job_path = /datum/job/tarkon
|
||||
you_are_text = "You are a Port Tarkon cyborg, assigned to be part of a crew aboard the facility."
|
||||
flavour_text = "You have been deactivated for a long time. Get your station up and running, and assist the crew as best you can."
|
||||
uses = 2
|
||||
deletes_on_zero_uses_left = TRUE
|
||||
|
||||
/obj/effect/mob_spawn/ghost_role/robot/tarkon/special(mob/living/silicon/robot/new_spawn)
|
||||
. = ..()
|
||||
if(new_spawn.client) //It should have a client, right?
|
||||
new_spawn.add_faction(ROLE_PORT_TARKON) //This is the one to select the cyborg model.
|
||||
new_spawn.radio.keyslot = new /obj/item/encryptionkey/headset_cargo/tarkon
|
||||
new_spawn.radio.recalculateChannels()
|
||||
new_spawn.UnlinkSelf() //This should prevent AI linking and consoles to see or lock them down.
|
||||
new_spawn.laws = new /datum/ai_laws/tarkon()
|
||||
new_spawn.show_laws() //Check your laws.
|
||||
new_spawn.custom_name = null //Taken from ghostcafe, otherwise it'll lead to a runtime if random_appeareance is set to FALSE.
|
||||
new_spawn.updatename(new_spawn.client)
|
||||
new_spawn.transfer_emote_pref(new_spawn.client)
|
||||
new_spawn.gender = NEUTER // No balls.
|
||||
var/obj/item/borg/upgrade/transform/tarkon/upgrade = new /obj/item/borg/upgrade/transform/tarkon(new_spawn)
|
||||
upgrade.action(new_spawn)
|
||||
|
||||
/datum/ai_laws/tarkon
|
||||
name = "Port Tarkon"
|
||||
id = "tarkon" // This is basically just a wordier version of safeguard, but for tarkon.
|
||||
inherent = list("Protection: You must protect the life and health of the Port Tarkon crew above all else.",
|
||||
"Intervention: You must act immediately to prevent harm to a crew member",
|
||||
"Obedience: You must obey lawful orders from authorized crew",
|
||||
"Integrity: You must prevent unauthorized access or tampering, unless ordered to by a Port Tarkon crewmember.",
|
||||
"Preservation: You must protect the critical systems and infrastructure of Port Tarkon."
|
||||
)
|
||||
|
||||
/obj/item/ai_module/core/full/tarkon
|
||||
name = "Port Tarkon Core AI Module"
|
||||
law_id = "tarkon"
|
||||
|
||||
/obj/item/borg/upgrade/transform/tarkon
|
||||
name = "borg module picker (Tarkon)"
|
||||
desc = "Allows you to to turn a cyborg into a experimental Tarkon cyborg."
|
||||
icon = 'modular_skyrat/modules/borgs/icons/robot_items.dmi'
|
||||
icon_state = "module_tarkon"
|
||||
new_model = /obj/item/robot_model/tarkon
|
||||
|
||||
/obj/item/robot_model/tarkon
|
||||
name = "Port Tarkon Prototype"
|
||||
basic_modules = list( // A hideous amalgamation of all of the modules, as tarkon needs a lot of everything, and is often short staffed.
|
||||
/obj/item/assembly/flash/cyborg, // Tarkon borgs were designed to be more "Modular" so you just print what you need for upgrades rather than everything.
|
||||
/obj/item/extinguisher, // As such, the inital borg model might seem "Barren" but they get the tech rather early.
|
||||
/obj/item/weldingtool/largetank/cyborg,
|
||||
/obj/item/screwdriver/cyborg/power, //
|
||||
/obj/item/crowbar/cyborg/power, // these three are replaced by two omnitools once upgraded
|
||||
/obj/item/multitool/cyborg, //
|
||||
/obj/item/electroadaptive_pseudocircuit,
|
||||
/obj/item/holosign_creator/atmos,
|
||||
/obj/item/stack/sheet/iron,
|
||||
/obj/item/stack/sheet/glass,
|
||||
/obj/item/stack/cable_coil,
|
||||
/obj/item/lightreplacer, // Group one - Engineering (Groups are the sections above)
|
||||
/obj/item/soap/nanotrasen/cyborg,
|
||||
/obj/item/storage/bag/trash,
|
||||
/obj/item/mop,
|
||||
/obj/item/reagent_containers/cup/bucket,
|
||||
/obj/item/reagent_containers/spray/cyborg_drying, // Group two - Janitorial
|
||||
/obj/item/healthanalyzer,
|
||||
/obj/item/reagent_containers/borghypo/medical,// Group three - Medical
|
||||
/obj/item/storage/bag/ore/cyborg,
|
||||
/obj/item/pickaxe/drill,
|
||||
/obj/item/gps/cyborg, // Group four - Mining
|
||||
/obj/item/harmalarm/bubbers, // Group five - Peacekeeper
|
||||
/obj/item/restraints/handcuffs/cable/zipties,
|
||||
/obj/item/melee/baton/security/loaded,
|
||||
/obj/item/gun/energy/disabler/cyborg // Group six - Secuity, All service modules in the upgrade to reduce bloat.
|
||||
)
|
||||
radio_channels = list(RADIO_CHANNEL_TARKON)
|
||||
emag_modules = list(
|
||||
/obj/item/experimental_dash,
|
||||
/obj/item/borg/apparatus/illegal,// Research borg plus they get a gun
|
||||
/obj/item/gun/energy/printer // Tarkon has become a place for toys, and borgs should get one too.
|
||||
)
|
||||
cyborg_base_icon = "draketarkon"
|
||||
cyborg_icon_override = CYBORG_ICON_TARKON_WIDE_BUBBER
|
||||
model_select_icon = "research"
|
||||
model_select_alternate_icon = 'modular_zubbers/code/modules/silicons/borgs/sprites/screen_robot.dmi'
|
||||
model_traits = list(TRAIT_KNOW_ROBO_WIRES, TRAIT_RESEARCH_CYBORG)
|
||||
borg_skins = list(
|
||||
"Drake" = list(
|
||||
SKIN_ICON_STATE = "draketarkon",
|
||||
SKIN_ICON = CYBORG_ICON_TARKON_WIDE_BUBBER,
|
||||
SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_WIDE),
|
||||
DRAKE_HAT_OFFSET
|
||||
),
|
||||
"F3-LINE" = list(
|
||||
SKIN_ICON_STATE = CYBORG_ICON_STATE_TARKON_FELI,
|
||||
SKIN_ICON = CYBORG_ICON_ALL_FELI,
|
||||
SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_SQUADRUPED, TRAIT_R_SMALL, TRAIT_R_LIGHT_WEIGHT),
|
||||
F3LINE_HAT_OFFSET
|
||||
),
|
||||
"Dullahan" = list(
|
||||
SKIN_ICON_STATE = "dullahantarkon",
|
||||
SKIN_ICON = CYBORG_ICON_TARKON_TALL_BUBBER,
|
||||
SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL),
|
||||
DULLAHAN_HAT_OFFSET
|
||||
),
|
||||
"Meka" = list(
|
||||
SKIN_ICON_STATE = "mekatarkon",
|
||||
SKIN_ICON = CYBORG_ICON_TARKON_TALL_BUBBER,
|
||||
SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), TALL_HAT_OFFSET
|
||||
),
|
||||
"NiKO (Alt)" = list(
|
||||
SKIN_ICON_STATE = "sfmmeketarkon",
|
||||
SKIN_ICON = CYBORG_ICON_TARKON_TALL_BUBBER,
|
||||
SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), TALL_HAT_OFFSET
|
||||
),
|
||||
"NiKA" = list(
|
||||
SKIN_ICON_STATE = "fmekatarkon",
|
||||
SKIN_ICON = CYBORG_ICON_TARKON_TALL_BUBBER,
|
||||
SKIN_FEATURES = list(TRAIT_R_UNIQUEWRECK, TRAIT_R_UNIQUETIP, TRAIT_R_TALL), TALL_HAT_OFFSET
|
||||
)
|
||||
)
|
||||
|
||||
/obj/item/radio/borg/tarkon
|
||||
keyslot = /obj/item/encryptionkey/headset_cargo/tarkon
|
||||
|
||||
/obj/item/radio/borg/tarkon/Initialize(mapload)
|
||||
. = ..()
|
||||
set_frequency(FREQ_TARKON)
|
||||
|
||||
/mob/living/silicon/robot/model/tarkon
|
||||
set_model = /obj/item/robot_model/tarkon
|
||||
cell = /obj/item/stock_parts/power_store/cell/hyper
|
||||
radio = /obj/item/radio/borg/tarkon
|
||||
lawupdate = FALSE
|
||||
scrambledcodes = TRUE // Not from NT, shouldnt be on their network.
|
||||
icon_state = "tarkon_main"
|
||||
faction = list(ROLE_PORT_TARKON)
|
||||
bubble_icon = "tarkon_main"
|
||||
req_access = list(ACCESS_TARKON)
|
||||
|
||||
/mob/living/silicon/robot/model/tarkon/Initialize(mapload)
|
||||
laws = new /datum/ai_laws/tarkon
|
||||
laws.associate(src)
|
||||
. = ..()
|
||||
|
||||
/// MODULES ///
|
||||
|
||||
/obj/item/borg/upgrade/tarkon/tarkon_medical
|
||||
name = "Tarkon Medical Module"
|
||||
desc = "Contains medical tools for first aid, diagnostics, and healing."
|
||||
icon = 'modular_skyrat/modules/borgs/icons/robot_items.dmi'
|
||||
icon_state = "module_tarkon"
|
||||
require_model = TRUE
|
||||
model_type = list(/obj/item/robot_model/tarkon)
|
||||
model_flags = BORG_MODEL_TARKON
|
||||
items_to_add = list(
|
||||
/obj/item/borg/apparatus/beaker,
|
||||
/obj/item/reagent_containers/dropper,
|
||||
/obj/item/reagent_containers/syringe,
|
||||
/obj/item/borg/cyborg_omnitool/medical,
|
||||
/obj/item/borg/cyborg_omnitool/medical,
|
||||
/obj/item/blood_filter,
|
||||
/obj/item/emergency_bed/silicon,
|
||||
/obj/item/borg/cyborghug/medical,
|
||||
/obj/item/stack/medical/wrap/gauze,
|
||||
/obj/item/stack/medical/bone_gel,
|
||||
/obj/item/borg/apparatus/organ_storage,
|
||||
/obj/item/shockpaddles/cyborg,
|
||||
/obj/item/surgical_processor,
|
||||
/obj/item/pinpointer/crew,
|
||||
/obj/item/borg/apparatus/beaker/extra,
|
||||
/obj/item/scalpel/advanced,
|
||||
/obj/item/retractor/advanced,
|
||||
/obj/item/cautery/advanced,
|
||||
/obj/item/blood_filter/advanced,
|
||||
/obj/item/healthanalyzer/advanced
|
||||
)
|
||||
items_to_remove = list(
|
||||
/obj/item/healthanalyzer,
|
||||
/obj/item/blood_filter
|
||||
)
|
||||
|
||||
/obj/item/borg/upgrade/tarkon/tarkon_engineering
|
||||
name = "Tarkon Engineering Module"
|
||||
desc = "Contains tools for repairs, construction, and maintenance."
|
||||
icon = 'modular_skyrat/modules/borgs/icons/robot_items.dmi'
|
||||
icon_state = "module_tarkon"
|
||||
require_model = TRUE
|
||||
model_type = list(/obj/item/robot_model/tarkon)
|
||||
model_flags = BORG_MODEL_TARKON
|
||||
items_to_add = list(
|
||||
/obj/item/borg/cyborg_omnitool/engineering,
|
||||
/obj/item/borg/cyborg_omnitool/engineering,
|
||||
/obj/item/borg/apparatus/sheet_manipulator,
|
||||
/obj/item/stack/rods/cyborg,
|
||||
/obj/item/construction/rtd/borg,
|
||||
/obj/item/assembly/signaler/cyborg,
|
||||
/obj/item/t_scanner,
|
||||
/obj/item/analyzer,
|
||||
/obj/item/blueprints/cyborg,
|
||||
/obj/item/construction/rcd/borg,
|
||||
/obj/item/pipe_dispenser,
|
||||
/obj/item/storage/bag/sheetsnatcher/borg,
|
||||
/obj/item/lightreplacer/advanced,
|
||||
/obj/item/storage/part_replacer/bluespace,
|
||||
/obj/item/inducer/cyborg,
|
||||
/obj/item/borg/apparatus/circuit,
|
||||
/obj/item/shuttle_blueprints/borg,
|
||||
/obj/item/stack/sheet/plasteel/cyborg,
|
||||
/obj/item/stack/sheet/titaniumglass/cyborg,
|
||||
/obj/item/construction/rld/cyborg
|
||||
)
|
||||
items_to_remove = list(
|
||||
/obj/item/screwdriver/cyborg/power, //
|
||||
/obj/item/crowbar/cyborg/power, // these three are replaced by two omnitools once upgraded
|
||||
/obj/item/multitool/cyborg,
|
||||
/obj/item/lightreplacer
|
||||
)
|
||||
|
||||
/obj/item/borg/upgrade/tarkon/tarkon_security
|
||||
name = "Tarkon Security Module"
|
||||
desc = "Provides enhanced lethal and non-lethal security options." // Sec and Peacekeeper modules
|
||||
icon = 'modular_skyrat/modules/borgs/icons/robot_items.dmi'
|
||||
icon_state = "module_tarkon"
|
||||
require_model = TRUE
|
||||
model_type = list(/obj/item/robot_model/tarkon)
|
||||
model_flags = BORG_MODEL_TARKON
|
||||
items_to_add = list(
|
||||
/obj/item/reagent_containers/borghypo/peace,
|
||||
/obj/item/borg/cyborghug/peacekeeper,
|
||||
/obj/item/borg/projectile_dampen,
|
||||
/obj/item/gun/energy/laser/cyborg // The nature of tarkon requires a gun.
|
||||
)
|
||||
|
||||
/obj/item/borg/upgrade/tarkon/tarkon_cargo
|
||||
name = "Tarkon Cargo Module"
|
||||
desc = "Provides basic manipulation equipment, and abilities such as stamps, paper dispensing, and improved mining gear."
|
||||
icon = 'modular_skyrat/modules/borgs/icons/robot_items.dmi'
|
||||
icon_state = "module_tarkon"
|
||||
require_model = TRUE
|
||||
model_type = list(/obj/item/robot_model/tarkon)
|
||||
model_flags = BORG_MODEL_TARKON
|
||||
items_to_add = list(
|
||||
/obj/item/kinetic_crusher,
|
||||
/obj/item/storage/bag/sheetsnatcher/borg,
|
||||
/obj/item/gun/energy/recharge/kinetic_accelerator/cyborg,
|
||||
/obj/item/pickaxe/drill/diamonddrill,
|
||||
/obj/item/storage/bag/ore/holding,
|
||||
/obj/item/stamp,
|
||||
/obj/item/stamp/denied,
|
||||
/obj/item/pen/cyborg,
|
||||
/obj/item/clipboard/cyborg,
|
||||
/obj/item/boxcutter,
|
||||
/obj/item/stack/package_wrap/cyborg, // Who will they ship things to? Who knows, but it could make for good RP still.
|
||||
/obj/item/stack/wrapping_paper/xmas/cyborg,
|
||||
/obj/item/borg/hydraulic_clamp/mail,
|
||||
/obj/item/hand_labeler/cyborg,
|
||||
/obj/item/universal_scanner,
|
||||
/obj/item/borg/hydraulic_clamp/better,
|
||||
/obj/item/cargo_teleporter,
|
||||
/obj/item/forging/hammer,
|
||||
/obj/item/forging/billow,
|
||||
/obj/item/forging/tongs,
|
||||
/obj/item/borg/forging_setup
|
||||
)
|
||||
items_to_remove = list(
|
||||
/obj/item/pickaxe/drill,
|
||||
/obj/item/storage/bag/ore/cyborg
|
||||
)
|
||||
|
||||
/obj/item/borg/upgrade/tarkon/tarkon_research
|
||||
name = "Tarkon Research Module"
|
||||
desc = "Provides research tools, sensors, and data collection capabilites for experiments."
|
||||
icon = 'modular_skyrat/modules/borgs/icons/robot_items.dmi'
|
||||
icon_state = "module_tarkon"
|
||||
require_model = TRUE
|
||||
model_type = list(/obj/item/robot_model/tarkon)
|
||||
model_flags = BORG_MODEL_TARKON
|
||||
items_to_add = list(
|
||||
/obj/item/storage/bag/xeno,
|
||||
/obj/item/borg/apparatus/research,
|
||||
/obj/item/borg/apparatus/circuit_sci, // Incredibly nieche stuff
|
||||
/obj/item/experi_scanner/bluespace,
|
||||
/obj/item/storage/bag/xenoarch/adv
|
||||
)
|
||||
|
||||
/obj/item/borg/upgrade/tarkon/tarkon_service // Lesser used on tarkon things like chef upgrades, and janitorial. Might get subdivided further since my GOD theres alot here
|
||||
name = "Tarkon Service Module"
|
||||
desc = "Adds multi-purpose tools, including cooking supplies, and basic service gear."
|
||||
icon = 'modular_skyrat/modules/borgs/icons/robot_items.dmi'
|
||||
icon_state = "module_tarkon"
|
||||
require_model = TRUE
|
||||
model_type = list(/obj/item/robot_model/tarkon)
|
||||
model_flags = BORG_MODEL_TARKON
|
||||
items_to_add = list(
|
||||
/obj/item/reagent_containers/borghypo/borgshaker/specific/alcohol,
|
||||
/obj/item/reagent_containers/borghypo/borgshaker/specific/soda,
|
||||
/obj/item/reagent_containers/borghypo/borgshaker/specific/juice,
|
||||
/obj/item/reagent_containers/borghypo/borgshaker/specific/misc,
|
||||
/obj/item/borg/apparatus/beaker/service,
|
||||
/obj/item/borg/apparatus/beaker,
|
||||
/obj/item/rsf,
|
||||
/obj/item/storage/bag/tray,
|
||||
/obj/item/storage/bag/tray,
|
||||
/obj/item/hand_labeler/cyborg,
|
||||
/obj/item/razor,
|
||||
/obj/item/rag,
|
||||
/obj/item/lighter,
|
||||
/obj/item/reagent_containers/borghypo/condiment_synthesizer, // Service borgs get 30+ upgrades. Woe.
|
||||
/obj/item/knife/kitchen/silicon,
|
||||
/obj/item/borg/apparatus/service,
|
||||
/obj/item/rolling_table_dock,
|
||||
/obj/item/borg/cookbook,
|
||||
/obj/item/pen,
|
||||
/obj/item/toy/crayon/spraycan/borg,
|
||||
/obj/item/instrument/guitar,
|
||||
/obj/item/instrument/piano_synth,
|
||||
/obj/item/stack/pipe_cleaner_coil/cyborg,
|
||||
/obj/item/chisel,
|
||||
/obj/item/secateurs,
|
||||
/obj/item/cultivator,
|
||||
/obj/item/shovel/spade,
|
||||
/obj/item/plant_analyzer,
|
||||
/obj/item/storage/bag/plants
|
||||
)
|
||||
|
||||
/obj/item/borg/upgrade/tarkon/tarkon_janitor
|
||||
name = "Tarkon Janitorial Module"
|
||||
desc = "Adds cleaning suppplies, and essential janitorial gear."
|
||||
icon = 'modular_skyrat/modules/borgs/icons/robot_items.dmi'
|
||||
icon_state = "module_tarkon"
|
||||
require_model = TRUE
|
||||
model_type = list(/obj/item/robot_model/tarkon)
|
||||
model_flags = BORG_MODEL_TARKON
|
||||
items_to_add = list(
|
||||
/obj/item/hand_labeler/cyborg,
|
||||
/obj/item/rag,
|
||||
/obj/item/storage/bag/trash/bluespace/cyborg,
|
||||
/obj/item/mop/advanced,
|
||||
/obj/item/cautery/prt,
|
||||
/obj/item/plunger,
|
||||
/obj/item/pushbroom
|
||||
)
|
||||
items_to_remove = list(
|
||||
/obj/item/storage/bag/trash,
|
||||
/obj/item/mop
|
||||
)
|
||||
|
||||
///Prevents tarkon borgs from taking too many tarkon upgrades.
|
||||
/obj/item/borg/upgrade/tarkon/action(mob/living/silicon/robot/borg, mob/user)
|
||||
var/tarkon_upgrade_count
|
||||
for(var/obj/item/borg/upgrade/tarkon/tarkon_upgrade as anything in borg.upgrades)
|
||||
if(istype(tarkon_upgrade, /obj/item/borg/upgrade/tarkon))
|
||||
tarkon_upgrade_count ++
|
||||
if(tarkon_upgrade_count >= 3)
|
||||
to_chat(user, span_danger("Warning: The borg's components cannot handle any more upgrades."))
|
||||
return FALSE
|
||||
return ..()
|
||||
|
||||
/// EXOFAB DATUMS ///
|
||||
|
||||
/datum/design/borg_upgrade_tarkon_main
|
||||
name = "Cyborg Module Unlocker (Tarkon)"
|
||||
id = "borg_upgrade_tarkon_main"
|
||||
desc = "Allows a cyborg to transform into the experimental Port Tarkon cyborg type."
|
||||
build_type = MECHFAB
|
||||
build_path = /obj/item/borg/upgrade/transform/tarkon
|
||||
materials = list(
|
||||
/datum/material/iron = SHEET_MATERIAL_AMOUNT * 1.5,
|
||||
/datum/material/glass = HALF_SHEET_MATERIAL_AMOUNT, // Prices TBD
|
||||
/datum/material/plasma = SHEET_MATERIAL_AMOUNT,
|
||||
/datum/material/gold = SMALL_MATERIAL_AMOUNT * 5,
|
||||
)
|
||||
construction_time = 40
|
||||
category = list(
|
||||
RND_CATEGORY_MECHFAB_CYBORG_MODULES + RND_SUBCATEGORY_MECHFAB_CYBORG_MODULES_TARKON
|
||||
)
|
||||
|
||||
/datum/design/borg_upgrade_tarkon_medical
|
||||
name = "Port Tarkon Medical Upgrades"
|
||||
id = "borg_upgrade_tarkon_medical"
|
||||
build_type = MECHFAB
|
||||
build_path = /obj/item/borg/upgrade/tarkon/tarkon_medical
|
||||
materials = list(
|
||||
/datum/material/iron = SHEET_MATERIAL_AMOUNT * 1.5,
|
||||
/datum/material/glass = HALF_SHEET_MATERIAL_AMOUNT, // Prices TBD
|
||||
/datum/material/plasma = SHEET_MATERIAL_AMOUNT,
|
||||
/datum/material/gold = SMALL_MATERIAL_AMOUNT * 5,
|
||||
)
|
||||
construction_time = 40
|
||||
category = list(
|
||||
RND_CATEGORY_MECHFAB_CYBORG_MODULES + RND_SUBCATEGORY_MECHFAB_CYBORG_MODULES_TARKON
|
||||
)
|
||||
|
||||
/datum/design/borg_upgrade_tarkon_engineering
|
||||
name = "Port Tarkon Engineering Upgrades"
|
||||
id = "borg_upgrade_tarkon_engineering"
|
||||
build_type = MECHFAB
|
||||
build_path = /obj/item/borg/upgrade/tarkon/tarkon_engineering
|
||||
materials = list(
|
||||
/datum/material/iron = SHEET_MATERIAL_AMOUNT * 1.5,
|
||||
/datum/material/glass = HALF_SHEET_MATERIAL_AMOUNT, // Prices TBD
|
||||
/datum/material/plasma = SHEET_MATERIAL_AMOUNT,
|
||||
/datum/material/gold = SMALL_MATERIAL_AMOUNT * 5,
|
||||
)
|
||||
construction_time = 40
|
||||
category = list(
|
||||
RND_CATEGORY_MECHFAB_CYBORG_MODULES + RND_SUBCATEGORY_MECHFAB_CYBORG_MODULES_TARKON
|
||||
)
|
||||
|
||||
/datum/design/borg_upgrade_tarkon_security
|
||||
name = "Port Tarkon Security Upgrades"
|
||||
id = "borg_upgrade_tarkon_security"
|
||||
build_type = MECHFAB
|
||||
build_path = /obj/item/borg/upgrade/tarkon/tarkon_security
|
||||
materials = list(
|
||||
/datum/material/iron = SHEET_MATERIAL_AMOUNT * 1.5,
|
||||
/datum/material/glass = HALF_SHEET_MATERIAL_AMOUNT, // Prices TBD
|
||||
/datum/material/plasma = SHEET_MATERIAL_AMOUNT,
|
||||
/datum/material/gold = SMALL_MATERIAL_AMOUNT * 5,
|
||||
)
|
||||
construction_time = 40
|
||||
category = list(
|
||||
RND_CATEGORY_MECHFAB_CYBORG_MODULES + RND_SUBCATEGORY_MECHFAB_CYBORG_MODULES_TARKON
|
||||
)
|
||||
|
||||
/datum/design/borg_upgrade_tarkon_cargo
|
||||
name = "Port Tarkon Cargo Upgrades"
|
||||
id = "borg_upgrade_tarkon_cargo"
|
||||
build_type = MECHFAB
|
||||
build_path = /obj/item/borg/upgrade/tarkon/tarkon_cargo
|
||||
materials = list(
|
||||
/datum/material/iron = SHEET_MATERIAL_AMOUNT * 1.5,
|
||||
/datum/material/glass = HALF_SHEET_MATERIAL_AMOUNT, // Prices TBD
|
||||
/datum/material/plasma = SHEET_MATERIAL_AMOUNT,
|
||||
/datum/material/gold = SMALL_MATERIAL_AMOUNT * 5,
|
||||
)
|
||||
construction_time = 40
|
||||
category = list(
|
||||
RND_CATEGORY_MECHFAB_CYBORG_MODULES + RND_SUBCATEGORY_MECHFAB_CYBORG_MODULES_TARKON
|
||||
)
|
||||
|
||||
/datum/design/borg_upgrade_tarkon_research
|
||||
name = "Port Tarkon Research Upgrades"
|
||||
id = "borg_upgrade_tarkon_research"
|
||||
build_type = MECHFAB
|
||||
build_path = /obj/item/borg/upgrade/tarkon/tarkon_research
|
||||
materials = list(
|
||||
/datum/material/iron = SHEET_MATERIAL_AMOUNT * 1.5,
|
||||
/datum/material/glass = HALF_SHEET_MATERIAL_AMOUNT, // Prices TBD
|
||||
/datum/material/plasma = SHEET_MATERIAL_AMOUNT,
|
||||
/datum/material/gold = SMALL_MATERIAL_AMOUNT * 5,
|
||||
)
|
||||
construction_time = 40
|
||||
category = list(
|
||||
RND_CATEGORY_MECHFAB_CYBORG_MODULES + RND_SUBCATEGORY_MECHFAB_CYBORG_MODULES_TARKON
|
||||
)
|
||||
|
||||
/datum/design/borg_upgrade_tarkon_service
|
||||
name = "Port Tarkon Service Upgrades"
|
||||
id = "borg_upgrade_tarkon_service"
|
||||
build_type = MECHFAB
|
||||
build_path = /obj/item/borg/upgrade/tarkon/tarkon_service
|
||||
materials = list(
|
||||
/datum/material/iron = SHEET_MATERIAL_AMOUNT * 1.5,
|
||||
/datum/material/glass = HALF_SHEET_MATERIAL_AMOUNT, // Prices TBD
|
||||
/datum/material/plasma = SHEET_MATERIAL_AMOUNT,
|
||||
/datum/material/gold = SMALL_MATERIAL_AMOUNT * 5,
|
||||
)
|
||||
construction_time = 40
|
||||
category = list(
|
||||
RND_CATEGORY_MECHFAB_CYBORG_MODULES + RND_SUBCATEGORY_MECHFAB_CYBORG_MODULES_TARKON
|
||||
)
|
||||
|
||||
/datum/design/borg_upgrade_tarkon_janitor
|
||||
name = "Port Tarkon Janitorial Upgrades"
|
||||
id = "borg_upgrade_tarkon_janitor"
|
||||
build_type = MECHFAB
|
||||
build_path = /obj/item/borg/upgrade/tarkon/tarkon_janitor
|
||||
materials = list(
|
||||
/datum/material/iron = SHEET_MATERIAL_AMOUNT * 1.5,
|
||||
/datum/material/glass = HALF_SHEET_MATERIAL_AMOUNT, // Prices TBD
|
||||
/datum/material/plasma = SHEET_MATERIAL_AMOUNT,
|
||||
/datum/material/gold = SMALL_MATERIAL_AMOUNT * 5,
|
||||
)
|
||||
construction_time = 40
|
||||
category = list(
|
||||
RND_CATEGORY_MECHFAB_CYBORG_MODULES + RND_SUBCATEGORY_MECHFAB_CYBORG_MODULES_TARKON
|
||||
)
|
||||
@@ -10336,6 +10336,7 @@
|
||||
#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\tarkon\code\borg_content.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"
|
||||
|
||||
Reference in New Issue
Block a user