[MIRROR] Cybernetic Moth Eyes : Cybermoff 2077 [MDB IGNORE] (#23140)

* Cybernetic Moth Eyes : Cybermoff 2077

* Update _eyes.dm

* Modular adjustments, and cleans up some skyrat edits while we're here

* Adds the moth cybereyes as augment options

* Revert "Adds the moth cybereyes as augment options"

This reverts commit 7c91d01ed0c14d4a3ec435b2fc878267a7b8618b.

* Update organs.dm

* Update internal_HA.dmi

---------

Co-authored-by: jimmyl <70376633+mc-oofert@users.noreply.github.com>
Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
This commit is contained in:
SkyratBot
2023-08-17 09:59:00 -04:00
committed by GitHub
co-authored by jimmyl Bloop
parent 267c47a37a
commit 1aa547866c
11 changed files with 146 additions and 73 deletions
@@ -142,15 +142,10 @@
experiment_proper = TRUE
required_gas = /datum/gas/halon
// SKYRAT EDIT BEGIN - MATERIAL MEAT WAS REMOVED
// ORIGINAL: /datum/experiment/scanning/random/material/meat
/datum/experiment/scanning/random/material/silver
/datum/experiment/scanning/random/material/meat
name = "Biological Material Scanning Experiment"
// ORIGINAL: description = "They told us we couldn't make chairs out of every material in the world. You're here to prove those nay-sayers wrong."
description = "Supposedly silver has an inert anti-microbial effect; scan a few samples to test this."
// ORIGINAL: possible_material_types = list(/datum/material/meat)
possible_material_types = list(/datum/material/silver)
// SKYRAT EDIT END - MATERIAL MEAT WAS REMOVED
description = "They told us we couldn't make chairs out of every material in the world. You're here to prove those nay-sayers wrong."
possible_material_types = list(/datum/material/meat)
/datum/experiment/scanning/random/material/easy
name = "Low Grade Material Scanning Experiment"
@@ -454,6 +454,11 @@
)
departmental_flags = DEPARTMENT_BITFLAG_MEDICAL
/datum/design/cyberimp_xray/moth
name = "Moth X-ray Eyes"
id = "ci-xray-moth"
build_path = /obj/item/organ/internal/eyes/robotic/xray/moth
/datum/design/cyberimp_thermals
name = "Thermal Eyes"
desc = "These cybernetic eyes will give you Thermal vision. Vertical slit pupil included."
@@ -474,6 +479,11 @@
)
departmental_flags = DEPARTMENT_BITFLAG_MEDICAL
/datum/design/cyberimp_thermals/moth
name = "Moth Thermal Eyes"
id = "ci-thermals-moth"
build_path = /obj/item/organ/internal/eyes/robotic/thermals/moth
/datum/design/cyberimp_antidrop
name = "Anti-Drop Implant"
desc = "This cybernetic brain implant will allow you to force your hand muscles to contract, preventing item dropping. Twitch ear to toggle."
@@ -868,6 +878,11 @@
)
departmental_flags = DEPARTMENT_BITFLAG_MEDICAL
/datum/design/cybernetic_eyes/moth
name = "Basic Cybernetic Moth Eyes"
id = "cybernetic_eyes_moth"
build_path = /obj/item/organ/internal/eyes/robotic/basic/moth
/datum/design/cybernetic_eyes/improved
name = "Cybernetic Eyes"
desc = "A pair of cybernetic eyes."
@@ -878,6 +893,11 @@
)
departmental_flags = DEPARTMENT_BITFLAG_MEDICAL
/datum/design/cybernetic_eyes/improved/moth
name = "Cybernetic Moth Eyes"
id = "cybernetic_eyes_improved_moth"
build_path = /obj/item/organ/internal/eyes/robotic/moth
/datum/design/cyberimp_welding
name = "Welding Shield Eyes"
desc = "These reactive micro-shields will protect you from welders and flashes without obscuring your vision."
@@ -891,6 +911,11 @@
)
departmental_flags = DEPARTMENT_BITFLAG_MEDICAL
/datum/design/cyberimp_welding/moth
name = "Welding Shield Moth Eyes"
id = "ci-welding-moth"
build_path = /obj/item/organ/internal/eyes/robotic/shield/moth
/datum/design/cyberimp_gloweyes
name = "Luminescent Eyes"
desc = "A pair of cybernetic eyes that can emit multicolored light"
@@ -904,6 +929,11 @@
)
departmental_flags = DEPARTMENT_BITFLAG_MEDICAL
/datum/design/cyberimp_gloweyes/moth
name = "Luminescent Moth Eyes"
id = "ci-gloweyes-moth"
build_path = /obj/item/organ/internal/eyes/robotic/glow/moth
/////////////////////
///Surgery Designs///
/////////////////////
+9 -16
View File
@@ -281,6 +281,7 @@
"circular_saw",
"cybernetic_ears",
"cybernetic_eyes",
"cybernetic_eyes_moth",
"cybernetic_heart",
"cybernetic_liver",
"cybernetic_lungs",
@@ -433,8 +434,6 @@
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
required_experiments = list(/datum/experiment/autopsy/human)
// SKYRAT EDIT BEGIN - MATERIAL MEAT WAS REMOVED
/datum/techweb_node/adv_biotech
id = "adv_biotech"
display_name = "Advanced Biotechnology"
@@ -453,22 +452,10 @@
"piercesyringe",
"plasmarefiller",
"smoke_machine",
//SKYRAT EDIT START - RESEARCH DESIGNS
"monkey_helmet",
"brute2medicell",
"burn2medicell",
"toxin2medicell",
"oxy2medicell",
"relocatemedicell",
"tempmedicell",
"bodymedicell",
"clotmedicell",
//SKYRAT EDIT END -
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 5000)
required_experiments = list(/datum/experiment/autopsy/nonhuman)
discount_experiments = list(/datum/experiment/scanning/random/material/silver = 4000) // SKYRAT EDIT CHANGE - ORIGINAL : discount_experiments = list(/datum/experiment/scanning/random/material/meat = 4000)
discount_experiments = list(/datum/experiment/scanning/random/material/meat = 4000)
/datum/techweb_node/xenoorgan_biotech
id = "xenoorgan_bio"
@@ -1393,6 +1380,7 @@
design_ids = list(
"cybernetic_ears_u",
"cybernetic_eyes_improved",
"cybernetic_eyes_improved_moth",
"cybernetic_heart_tier2",
"cybernetic_liver_tier2",
"cybernetic_lungs_tier2",
@@ -1416,6 +1404,8 @@
"cybernetic_ears_xray",
"ci-gloweyes",
"ci-welding",
"ci-gloweyes-moth",
"ci-welding-moth",
"cybernetic_heart_tier3",
"cybernetic_liver_tier3",
"cybernetic_lungs_tier3",
@@ -1470,11 +1460,14 @@
display_name = "Combat Cybernetic Implants"
description = "Military grade combat implants to improve performance."
prereq_ids = list("adv_cyber_implants","weaponry","NVGtech","high_efficiency")
// SKYRAT EDIT - REMOVED: X-rays+Thermals from here
design_ids = list(
"ci-antidrop",
"ci-antistun",
"ci-thermals",
"ci-thrusters",
"ci-xray",
"ci-thermals-moth",
"ci-xray-moth",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
@@ -139,7 +139,6 @@
if(overlay_ignore_lighting && !(obscured & ITEM_SLOT_EYES))
eye_overlays += emissive_appearance(eye_left.icon, eye_left.icon_state, parent, -eyes_layer, alpha = eye_left.alpha) //SKYRAT EDIT CHANGE - TODO fix upstream
eye_overlays += emissive_appearance(eye_right.icon, eye_right.icon_state, parent, -eyes_layer, alpha = eye_right.alpha) //SKYRAT EDIT CHANGE - TODO fix upstream
var/obj/item/bodypart/head/my_head = parent.get_bodypart(BODY_ZONE_HEAD)
if(my_head)
if(my_head.head_flags & HEAD_EYECOLOR)
@@ -417,12 +416,8 @@
actions_types = list(/datum/action/item_action/organ_action/use, /datum/action/item_action/organ_action/toggle)
var/max_light_beam_distance = 5
var/obj/item/flashlight/eyelight/glow/eye
/// The overlay that is used when both eyes are set to match the light color
var/mutable_appearance/eyes_overlay
/// The overlay that is used when custom color selection is enabled, for the left eye
var/mutable_appearance/eyes_overlay_left
/// The overlay that is used when custom color selection is enabled, for the right eye
var/mutable_appearance/eyes_overlay_right
/// base icon state for eye overlays
var/base_eye_state = "eyes_glow_gs"
/// Whether or not to match the eye color to the light or use a custom selection
var/eye_color_mode = MATCH_LIGHT_COLOR
/// The selected color for the light beam itself
@@ -460,9 +455,6 @@
/obj/item/organ/internal/eyes/robotic/glow/on_remove(mob/living/carbon/eye_owner)
deactivate(eye_owner, close_ui = TRUE)
QDEL_NULL(eyes_overlay)
QDEL_NULL(eyes_overlay_left)
QDEL_NULL(eyes_overlay_right)
eye.forceMove(src)
return ..()
@@ -549,14 +541,14 @@
eye.on = TRUE
if(eye.light_range) // at range 0 we are just going to make the eyes glow emissively, no light overlay
eye.set_light_on(TRUE)
update_mob_eyes_overlay()
update_mob_eye_color()
/**
* Deactivates the light
*
* Turns off the attached flashlight object, closes UIs, updates the mob overlay to be removed.
* Arguments:
* * mob/living/carbon/eye_owner - the mob who the eyes belong to, for passing to update_mob_eyes_overlay
* * mob/living/carbon/eye_owner - the mob who the eyes belong to
* * close_ui - whether or not to close the ui
*/
/obj/item/organ/internal/eyes/robotic/glow/proc/deactivate(mob/living/carbon/eye_owner = owner, close_ui = FALSE)
@@ -564,7 +556,7 @@
SStgui.close_uis(src)
eye.on = FALSE
eye.set_light_on(FALSE)
update_mob_eyes_overlay(eye_owner)
update_mob_eye_color(eye_owner)
/**
* Randomizes the light color
@@ -656,44 +648,19 @@
if(QDELETED(eye_owner) || !ishuman(eye_owner)) //Other carbon mobs don't have eye color.
return
eye_owner.dna.species.handle_body(eye_owner)
update_mob_eyes_overlay()
/**
* Updates the emissive mob eye overlay
*
* When the light is on, the overlay(s) are added. When it is disabled, they are cut.
* Adds one or two overlays depending on what the eye_color_mode toggle is set to.
* Arguments:
* * mob/living/carbon/eye_owner - the mob to add the overlay to
*/
/obj/item/organ/internal/eyes/robotic/glow/proc/update_mob_eyes_overlay(mob/living/carbon/eye_owner = owner)
if(QDELETED(eye_owner))
return
if(!ishuman(eye_owner))
return
eye_owner.cut_overlay(eyes_overlay)
eye_owner.cut_overlay(eyes_overlay_left)
eye_owner.cut_overlay(eyes_overlay_right)
if(!eye.on)
return
eye_icon_state = initial(eye_icon_state)
overlay_ignore_lighting = FALSE
else
overlay_ignore_lighting = TRUE
eye_icon_state = base_eye_state
switch(eye_color_mode)
if(MATCH_LIGHT_COLOR)
eyes_overlay = emissive_appearance('icons/mob/human/human_face.dmi', "eyes_glow_gs", eye_owner, layer = -BODY_LAYER, alpha = owner.alpha)
eyes_overlay.color = current_color_string
eye_owner.add_overlay(eyes_overlay)
if(USE_CUSTOM_COLOR)
eyes_overlay_left = emissive_appearance('icons/mob/human/human_face.dmi', "eyes_glow_gs_left", eye_owner, layer = -BODY_LAYER, alpha = owner.alpha)
eyes_overlay_right = emissive_appearance('icons/mob/human/human_face.dmi', "eyes_glow_gs_right", eye_owner, layer = -BODY_LAYER, alpha = owner.alpha)
eyes_overlay_left.color = eye_color_left
eyes_overlay_right.color = eye_color_right
eye_owner.add_overlay(eyes_overlay_left)
eye_owner.add_overlay(eyes_overlay_right)
var/obj/item/bodypart/head/head = eye_owner.get_bodypart(BODY_ZONE_HEAD) //if we have eyes we definently have a head anyway
var/previous_flags = head.head_flags
head.head_flags = previous_flags | HEAD_EYECOLOR
eye_owner.dna.species.handle_body(eye_owner)
head.head_flags = previous_flags
#undef MATCH_LIGHT_COLOR
#undef USE_CUSTOM_COLOR
@@ -708,6 +675,44 @@
icon_state = "eyeballs-moth"
flash_protect = FLASH_PROTECTION_SENSITIVE
/obj/item/organ/internal/eyes/robotic/moth
name = "robotic moth eyes"
eye_icon_state = "motheyes"
icon_state = "eyeballs-cybermoth"
desc = "Your vision is augmented. Much like actual moth eyes, very sensitive to bright lights."
flash_protect = FLASH_PROTECTION_SENSITIVE
/obj/item/organ/internal/eyes/robotic/basic/moth
name = "basic robotic moth eyes"
eye_icon_state = "motheyes"
icon_state = "eyeballs-cybermoth"
flash_protect = FLASH_PROTECTION_SENSITIVE
/obj/item/organ/internal/eyes/robotic/xray/moth
name = "robotic eyes"
eye_icon_state = "motheyes"
icon_state = "eyeballs-cybermoth"
desc = "These cybernetic imitation moth eyes will give you X-ray vision. Blinking is futile. Much like actual moth eyes, very sensitive to bright lights."
flash_protect = FLASH_PROTECTION_SENSITIVE
/obj/item/organ/internal/eyes/robotic/shield/moth
name = "shielded robotic moth eyes"
eye_icon_state = "motheyes"
icon_state = "eyeballs-cybermoth"
/obj/item/organ/internal/eyes/robotic/glow/moth
name = "High Luminosity Moth Eyes"
eye_icon_state = "motheyes"
base_eye_state = "eyes_mothglow"
icon_state = "eyeballs-cybermoth"
desc = "Special glowing eyes, to be one with the lamp. Much like actual moth eyes, very sensitive to bright lights."
flash_protect = FLASH_PROTECTION_SENSITIVE
/obj/item/organ/internal/eyes/robotic/thermals/moth //we inherit flash weakness from thermals
name = "thermal moth eyes"
eye_icon_state = "motheyes"
icon_state = "eyeballs-cybermoth"
/obj/item/organ/internal/eyes/snail
name = "snail eyes"
desc = "These eyes seem to have a large range, but might be cumbersome with glasses."
Binary file not shown.

Before

Width:  |  Height:  |  Size: 100 KiB

After

Width:  |  Height:  |  Size: 101 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 35 KiB

After

Width:  |  Height:  |  Size: 35 KiB

@@ -0,0 +1,4 @@
// Changed to silver
/datum/experiment/scanning/random/material/meat
description = "Supposedly silver has an inert anti-microbial effect; scan a few samples to test this."
possible_material_types = list(/datum/material/silver)
@@ -1,4 +1,7 @@
// MODULAR ADDITIONS
//
/datum/techweb_node/adv_vision
id = "adv_vision"
display_name = "Combat Cybernetic Eyes"
@@ -7,5 +10,37 @@
design_ids = list(
"ci-thermals",
"ci-xray",
"ci-thermals-moth",
"ci-xray-moth",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 4000)
/datum/techweb_node/adv_biotech/New()
. = ..()
design_ids += list(
"monkey_helmet",
"brute2medicell",
"burn2medicell",
"toxin2medicell",
"oxy2medicell",
"relocatemedicell",
"tempmedicell",
"bodymedicell",
"clotmedicell",
)
// MODULAR REMOVALS
//
// Modularly removes x-ray and thermals from here, it's in adv_vision instead
/datum/techweb_node/combat_cyber_implants/New()
. = ..()
design_ids -= list(
"ci-thermals",
"ci-xray",
"ci-thermals-moth",
"ci-xray-moth",
)
// MODULAR MODIFICATIONS
//
@@ -69,12 +69,22 @@
name = "Cybernetic eyes"
path = /obj/item/organ/internal/eyes/robotic
/datum/augment_item/organ/eyes/cybernetic/moth
name = "Cybernetic moth eyes"
path = /obj/item/organ/internal/eyes/robotic/moth
/datum/augment_item/organ/eyes/highlumi
name = "High-luminosity eyes"
path = /obj/item/organ/internal/eyes/robotic/glow
allowed_biotypes = MOB_ORGANIC|MOB_ROBOTIC
cost = 1
/datum/augment_item/organ/eyes/highlumi/moth
name = "High Luminosity Moth Eyes"
path = /obj/item/organ/internal/eyes/robotic/glow/moth
allowed_biotypes = MOB_ORGANIC|MOB_ROBOTIC
cost = 1
//TONGUES
/datum/augment_item/organ/tongue
slot = AUGMENT_SLOT_TONGUE
Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.9 KiB

After

Width:  |  Height:  |  Size: 6.3 KiB

+1
View File
@@ -5822,6 +5822,7 @@
#include "modular_skyrat\master_files\code\modules\clothing\under\jobs\civilian\civilian.dm"
#include "modular_skyrat\master_files\code\modules\clothing\under\jobs\civilian\suits.dm"
#include "modular_skyrat\master_files\code\modules\events\_event.dm"
#include "modular_skyrat\master_files\code\modules\experisci\experiment.dm"
#include "modular_skyrat\master_files\code\modules\food_and_drinks\recipes\food_mixtures.dm"
#include "modular_skyrat\master_files\code\modules\jobs\off_duty_check.dm"
#include "modular_skyrat\master_files\code\modules\jobs\departments\departments.dm"