mirror of
https://github.com/yogstation13/Yogstation.git
synced 2025-02-26 09:04:50 +00:00
Engineering/Miner Cyborg NV Meson Upgrade (#20115)
* laws, module, etc * cmag functionality * playsound whoopies * judges my flavortext creative skills * stun time * should revert all of this stuff * night vision * upgrade and module service * design and techweb * I HATE WEBEDITS
This commit is contained in:
@@ -9,7 +9,7 @@
|
|||||||
/// Module is compatible with Engineering Cyborg models
|
/// Module is compatible with Engineering Cyborg models
|
||||||
#define BORG_MODULE_ENGINEERING (1<<4)
|
#define BORG_MODULE_ENGINEERING (1<<4)
|
||||||
/// Module is compatible with Service Cyborg model
|
/// Module is compatible with Service Cyborg model
|
||||||
#define BORG_MODEL_SERVICE (1<<5)
|
#define BORG_MODULE_SERVICE (1<<5)
|
||||||
|
|
||||||
/// Module is compatible with Ripley Exosuit models
|
/// Module is compatible with Ripley Exosuit models
|
||||||
#define EXOSUIT_MODULE_RIPLEY (1<<0)
|
#define EXOSUIT_MODULE_RIPLEY (1<<0)
|
||||||
|
|||||||
@@ -18,9 +18,10 @@
|
|||||||
#define INVISIBILITY_ABSTRACT 101 //only used for abstract objects (e.g. spacevine_controller), things that are not really there.
|
#define INVISIBILITY_ABSTRACT 101 //only used for abstract objects (e.g. spacevine_controller), things that are not really there.
|
||||||
|
|
||||||
#define BORGMESON (1<<0)
|
#define BORGMESON (1<<0)
|
||||||
#define BORGTHERM (1<<1)
|
#define BORGMESON_NIGHTVISION (1<<1)
|
||||||
#define BORGXRAY (1<<2)
|
#define BORGTHERM (1<<2)
|
||||||
#define BORGMATERIAL (1<<3)
|
#define BORGXRAY (1<<3)
|
||||||
|
#define BORGMATERIAL (1<<4)
|
||||||
|
|
||||||
//for clothing visor toggles, these determine which vars to toggle
|
//for clothing visor toggles, these determine which vars to toggle
|
||||||
#define VISOR_FLASHPROTECT (1<<0)
|
#define VISOR_FLASHPROTECT (1<<0)
|
||||||
|
|||||||
@@ -230,7 +230,7 @@
|
|||||||
sub_category += "Medical"
|
sub_category += "Medical"
|
||||||
if(module_types & BORG_MODULE_ENGINEERING)
|
if(module_types & BORG_MODULE_ENGINEERING)
|
||||||
sub_category += "Engineering"
|
sub_category += "Engineering"
|
||||||
if(module_types & BORG_MODEL_SERVICE)
|
if(module_types & BORG_MODULE_SERVICE)
|
||||||
sub_category += "Service"
|
sub_category += "Service"
|
||||||
else
|
else
|
||||||
sub_category += "All Cyborgs"
|
sub_category += "All Cyborgs"
|
||||||
|
|||||||
@@ -4,7 +4,6 @@
|
|||||||
/obj/item/borg
|
/obj/item/borg
|
||||||
icon = 'icons/mob/robot_items.dmi'
|
icon = 'icons/mob/robot_items.dmi'
|
||||||
|
|
||||||
|
|
||||||
/obj/item/borg/stun
|
/obj/item/borg/stun
|
||||||
name = "electrically-charged arm"
|
name = "electrically-charged arm"
|
||||||
icon_state = "elecarm"
|
icon_state = "elecarm"
|
||||||
@@ -700,7 +699,6 @@
|
|||||||
/obj/item/borg/sight
|
/obj/item/borg/sight
|
||||||
var/sight_mode = null
|
var/sight_mode = null
|
||||||
|
|
||||||
|
|
||||||
/obj/item/borg/sight/xray
|
/obj/item/borg/sight/xray
|
||||||
name = "\proper X-ray vision"
|
name = "\proper X-ray vision"
|
||||||
icon = 'icons/obj/decals.dmi'
|
icon = 'icons/obj/decals.dmi'
|
||||||
@@ -717,12 +715,17 @@
|
|||||||
sight_mode = BORGTHERM
|
sight_mode = BORGTHERM
|
||||||
icon_state = "thermal"
|
icon_state = "thermal"
|
||||||
|
|
||||||
|
|
||||||
/obj/item/borg/sight/meson
|
/obj/item/borg/sight/meson
|
||||||
name = "\proper meson vision"
|
name = "\proper meson vision"
|
||||||
sight_mode = BORGMESON
|
sight_mode = BORGMESON
|
||||||
icon_state = "meson"
|
icon_state = "meson"
|
||||||
|
|
||||||
|
/obj/item/borg/sight/meson/nightvision
|
||||||
|
name = "\proper night vision meson vision"
|
||||||
|
icon = 'icons/obj/clothing/glasses.dmi'
|
||||||
|
icon_state = "nvgmeson"
|
||||||
|
sight_mode = BORGMESON_NIGHTVISION
|
||||||
|
|
||||||
/obj/item/borg/sight/material
|
/obj/item/borg/sight/material
|
||||||
name = "\proper material vision"
|
name = "\proper material vision"
|
||||||
sight_mode = BORGMATERIAL
|
sight_mode = BORGMATERIAL
|
||||||
@@ -732,7 +735,6 @@
|
|||||||
name = "hud"
|
name = "hud"
|
||||||
var/obj/item/clothing/glasses/hud/hud = null
|
var/obj/item/clothing/glasses/hud/hud = null
|
||||||
|
|
||||||
|
|
||||||
/obj/item/borg/sight/hud/med
|
/obj/item/borg/sight/hud/med
|
||||||
name = "medical hud"
|
name = "medical hud"
|
||||||
icon_state = "healthhud"
|
icon_state = "healthhud"
|
||||||
@@ -741,7 +743,6 @@
|
|||||||
. = ..()
|
. = ..()
|
||||||
hud = new /obj/item/clothing/glasses/hud/health(src)
|
hud = new /obj/item/clothing/glasses/hud/health(src)
|
||||||
|
|
||||||
|
|
||||||
/obj/item/borg/sight/hud/sec
|
/obj/item/borg/sight/hud/sec
|
||||||
name = "security hud"
|
name = "security hud"
|
||||||
icon_state = "securityhud"
|
icon_state = "securityhud"
|
||||||
|
|||||||
@@ -675,7 +675,7 @@
|
|||||||
icon_state = "cyborg_upgrade3"
|
icon_state = "cyborg_upgrade3"
|
||||||
require_module = TRUE
|
require_module = TRUE
|
||||||
module_types = list(/obj/item/robot_module/service)
|
module_types = list(/obj/item/robot_module/service)
|
||||||
module_flags = BORG_MODEL_SERVICE
|
module_flags = BORG_MODULE_SERVICE
|
||||||
|
|
||||||
/obj/item/borg/upgrade/condiment_synthesizer/action(mob/living/silicon/robot/R, user = usr)
|
/obj/item/borg/upgrade/condiment_synthesizer/action(mob/living/silicon/robot/R, user = usr)
|
||||||
. = ..()
|
. = ..()
|
||||||
@@ -1376,13 +1376,52 @@
|
|||||||
for(var/obj/item/storage/bag/gem/cyborg/satchel in R.module.modules)
|
for(var/obj/item/storage/bag/gem/cyborg/satchel in R.module.modules)
|
||||||
R.module.remove_module(satchel, TRUE)
|
R.module.remove_module(satchel, TRUE)
|
||||||
|
|
||||||
|
/obj/item/borg/upgrade/nv_mesons
|
||||||
|
name = "cyborg night vision mesons"
|
||||||
|
desc = "An upgrade for cyborgs that replaces their normal meson goggles, if they have them, with a night vision variant."
|
||||||
|
icon_state = "cyborg_upgrade5"
|
||||||
|
require_module = TRUE
|
||||||
|
module_types = list(/obj/item/robot_module/engineering, /obj/item/robot_module/miner)
|
||||||
|
|
||||||
|
/// Replaces the cyborg's meson goggles with night vision meson goggles.
|
||||||
|
/obj/item/borg/upgrade/nv_mesons/action(mob/living/silicon/robot/R, user = usr)
|
||||||
|
. = ..()
|
||||||
|
if(!.)
|
||||||
|
return FALSE
|
||||||
|
|
||||||
|
for(var/obj/item/borg/sight/meson/meson in R.module.modules)
|
||||||
|
R.module.remove_module(meson, TRUE)
|
||||||
|
|
||||||
|
var/obj/item/borg/sight/meson/nightvision/nvgmeson = locate() in R.module.modules
|
||||||
|
if(nvgmeson)
|
||||||
|
to_chat(user, span_warning("This cyborg is already equipped with night vision mesons."))
|
||||||
|
return FALSE
|
||||||
|
|
||||||
|
nvgmeson = new(R.module)
|
||||||
|
R.module.basic_modules += nvgmeson
|
||||||
|
R.module.add_module(nvgmeson, FALSE, TRUE)
|
||||||
|
|
||||||
|
/obj/item/borg/upgrade/nv_mesons/deactivate(mob/living/silicon/robot/R, user = usr)
|
||||||
|
. = ..()
|
||||||
|
if(!.)
|
||||||
|
return FALSE
|
||||||
|
|
||||||
|
for(var/obj/item/borg/sight/meson/nightvision/nvgmeson in R.module.modules)
|
||||||
|
R.module.remove_module(nvgmeson, TRUE)
|
||||||
|
|
||||||
|
var/obj/item/borg/sight/meson/meson = locate() in R.module.modules
|
||||||
|
if(!meson)
|
||||||
|
meson = new(R.module)
|
||||||
|
R.module.basic_modules += meson
|
||||||
|
R.module.add_module(meson, FALSE, TRUE)
|
||||||
|
|
||||||
/obj/item/borg/upgrade/service_cookbook
|
/obj/item/borg/upgrade/service_cookbook
|
||||||
name = "service cyborg cookbook"
|
name = "service cyborg cookbook"
|
||||||
desc = "An upgrade to the service cyborg which lets them create more food."
|
desc = "An upgrade to the service cyborg which lets them create more food."
|
||||||
icon_state = "cyborg_upgrade3"
|
icon_state = "cyborg_upgrade3"
|
||||||
require_module = TRUE
|
require_module = TRUE
|
||||||
module_types = list(/obj/item/robot_module/service)
|
module_types = list(/obj/item/robot_module/service)
|
||||||
module_flags = BORG_MODEL_SERVICE
|
module_flags = BORG_MODULE_SERVICE
|
||||||
|
|
||||||
/obj/item/borg/upgrade/service_cookbook/action(mob/living/silicon/robot/R, user = usr)
|
/obj/item/borg/upgrade/service_cookbook/action(mob/living/silicon/robot/R, user = usr)
|
||||||
. = ..()
|
. = ..()
|
||||||
|
|||||||
@@ -1061,13 +1061,18 @@
|
|||||||
|
|
||||||
if(sight_mode & BORGMESON)
|
if(sight_mode & BORGMESON)
|
||||||
sight |= SEE_TURFS
|
sight |= SEE_TURFS
|
||||||
lighting_alpha = LIGHTING_PLANE_ALPHA_INVISIBLE
|
lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE
|
||||||
see_in_dark = 1
|
see_in_dark = 2
|
||||||
|
|
||||||
|
if(sight_mode & BORGMESON_NIGHTVISION)
|
||||||
|
sight |= SEE_TURFS
|
||||||
|
lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE
|
||||||
|
see_in_dark = 8
|
||||||
|
|
||||||
if(sight_mode & BORGMATERIAL)
|
if(sight_mode & BORGMATERIAL)
|
||||||
sight |= SEE_OBJS
|
sight |= SEE_OBJS
|
||||||
lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE
|
lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE
|
||||||
see_in_dark = 1
|
see_in_dark = 2
|
||||||
|
|
||||||
if(sight_mode & BORGXRAY)
|
if(sight_mode & BORGXRAY)
|
||||||
sight |= (SEE_TURFS|SEE_MOBS|SEE_OBJS)
|
sight |= (SEE_TURFS|SEE_MOBS|SEE_OBJS)
|
||||||
|
|||||||
@@ -1038,6 +1038,16 @@
|
|||||||
construction_time = 4 SECONDS
|
construction_time = 4 SECONDS
|
||||||
category = list("Cyborg Upgrade Modules")
|
category = list("Cyborg Upgrade Modules")
|
||||||
|
|
||||||
|
/datum/design/borg_upgrade_nv_mesons
|
||||||
|
name = "Cyborg Upgrade (Night Vision Mesons)"
|
||||||
|
id = "borg_upgrade_nv_mesons"
|
||||||
|
build_type = MECHFAB
|
||||||
|
build_path = /obj/item/borg/upgrade/nv_mesons
|
||||||
|
/// Exact cost of NV Mesons for humans.
|
||||||
|
materials = list(/datum/material/iron = 600, /datum/material/glass = 600, /datum/material/plasma = 350, /datum/material/uranium = 1000, /datum/material/plastic = 150)
|
||||||
|
construction_time = 4 SECONDS
|
||||||
|
category = list("Cyborg Upgrade Modules")
|
||||||
|
|
||||||
/datum/design/borg_upgrade_service_cookbook
|
/datum/design/borg_upgrade_service_cookbook
|
||||||
name = "Cyborg Upgrade (Cookbook)"
|
name = "Cyborg Upgrade (Cookbook)"
|
||||||
id = "borg_upgrade_service_cookbook"
|
id = "borg_upgrade_service_cookbook"
|
||||||
|
|||||||
@@ -463,7 +463,7 @@
|
|||||||
display_name = "Night Vision Technology"
|
display_name = "Night Vision Technology"
|
||||||
description = "Allows seeing in the dark without actual light!"
|
description = "Allows seeing in the dark without actual light!"
|
||||||
prereq_ids = list("integrated_HUDs", "adv_engi", "emp_adv")
|
prereq_ids = list("integrated_HUDs", "adv_engi", "emp_adv")
|
||||||
design_ids = list("health_hud_night", "security_hud_night", "diagnostic_hud_night", "night_visision_goggles", "nvgmesons", "nightscigoggles")
|
design_ids = list("health_hud_night", "security_hud_night", "diagnostic_hud_night", "night_visision_goggles", "nvgmesons", "nightscigoggles", "borg_upgrade_nv_mesons")
|
||||||
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 5000)
|
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 5000)
|
||||||
|
|
||||||
////////////////////////Medical////////////////////////
|
////////////////////////Medical////////////////////////
|
||||||
|
|||||||
Reference in New Issue
Block a user