From b42d589e803a6c08f38ce3185babb02be6cc9650 Mon Sep 17 00:00:00 2001 From: "D. Resnyanskiy" Date: Mon, 24 Jun 2024 18:53:20 +0500 Subject: [PATCH 01/36] Basic hud upgrades functionality --- code/__DEFINES/research.dm | 1 + code/game/objects/items/weapons/disks.dm | 10 ++ code/modules/item_upgrades/item_upgrade.dm | 131 +++++++++++++++++++++ code/modules/research/designs.dm | 40 +++++++ code/modules/research/rdconsole.dm | 9 ++ code/modules/research/research.dm | 73 ++++++++++++ icons/obj/item_upgrades.dmi | Bin 0 -> 439 bytes taucetistation.dme | 1 + 8 files changed, 265 insertions(+) create mode 100644 code/modules/item_upgrades/item_upgrade.dm create mode 100644 icons/obj/item_upgrades.dmi diff --git a/code/__DEFINES/research.dm b/code/__DEFINES/research.dm index 93ade8003617..87a6ac6c67ee 100644 --- a/code/__DEFINES/research.dm +++ b/code/__DEFINES/research.dm @@ -5,6 +5,7 @@ #define RESEARCH_BLUESPACE "bluespace" #define RESEARCH_ROBOTICS "robotics" #define RESEARCH_ILLEGAL "illegal" +#define RESEARCH_SPECIAL "special" // Is used in calculating reliability increase per prototype created. #define RND_RELIABILITY_EXPONENT 0.75 diff --git a/code/game/objects/items/weapons/disks.dm b/code/game/objects/items/weapons/disks.dm index bb1b5dc78402..5dd7e978c200 100644 --- a/code/game/objects/items/weapons/disks.dm +++ b/code/game/objects/items/weapons/disks.dm @@ -143,6 +143,16 @@ m_amt = 30 g_amt = 10 var/datum/tech/stored + var/datum/technology/stored_technology + +/obj/item/weapon/disk/tech_disk/hud + name = "HUD tech disk" + desc = "That disk contains design of basic HUD upgrade" + w_class = SIZE_TINY + m_amt = 30 + g_amt = 10 + stored_technology = new /datum/technology/tier1_hud_upgrade() + /obj/item/weapon/disk/tech_disk/atom_init() var/diskcolor = pick(0,1,2,3,4,5,6,7,8) diff --git a/code/modules/item_upgrades/item_upgrade.dm b/code/modules/item_upgrades/item_upgrade.dm new file mode 100644 index 000000000000..e92bf15ab37a --- /dev/null +++ b/code/modules/item_upgrades/item_upgrade.dm @@ -0,0 +1,131 @@ +#define HUD_UPGRADE_MEDSCAN 1 +#define HUD_UPGRADE_NIGHTVISION 2 +#define HUD_UPGRADE_THERMAL 3 +#define HUD_UPGRADE_THERMAL_ADVANCED 4 + +/obj/item/clothing/glasses/sunglasses/hud/advanced + name = "mixed HUD" + desc = "A heads-up display that scans the humans in view and provides accurate data about their ID status and health status." + icon_state = "secmedhud" + body_parts_covered = 0 + hud_types = list(DATA_HUD_SECURITY) + item_action_types = list() + var/upgrade_tier = 0 + +/obj/item/clothing/glasses/sunglasses/hud/advanced/proc/toggle_hud_mode(var/mode_type) + switch(mode_type) + if("night") + if(ishuman(usr)) + var/mob/living/carbon/human/H = usr + if(src.darkness_view) + src.lighting_alpha = null + src.sightglassesmod = null + src.darkness_view = 0 + else + src.lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_VISIBLE + src.sightglassesmod = "nightsight" + src.darkness_view = 7 + playsound(src, activation_sound, VOL_EFFECTS_MASTER, 10, FALSE) + H.update_sight() + update_item_actions() + +/obj/item/clothing/glasses/sunglasses/hud/advanced/attackby(obj/item/W, mob/living/user) + if(istype(W, /obj/item/hud_upgrade)) + var/obj/item/hud_upgrade/hud_upgrade = W + if(upgrade_tier >= hud_upgrade.tier) + to_chat(usr, "You've already installed that upgrade") + return + if(upgrade_tier < hud_upgrade.tier - 1) + to_chat(usr, "You have to install previous upgrades") + return + switch(hud_upgrade.tier) + if(HUD_UPGRADE_MEDSCAN) + hud_types.Add(DATA_HUD_MEDICAL) + if(HUD_UPGRADE_NIGHTVISION) + item_actions.Add(new /datum/action/item_action/hands_free/switch_hud_modes/night(src)) + upgrade_tier = hud_upgrade.tier + update_item_actions() + qdel(hud_upgrade) + . = ..() + +/obj/item/hud_upgrade + icon = 'icons/obj/item_upgrades.dmi' + var/tier = 0 +/obj/item/hud_upgrade/hud1 + name = "Damage Scan Upgrade" + desc = "Allows HUD to show damage on person." + icon_state = "medscan" + tier = 1 +/obj/item/hud_upgrade/hud2 + name = "Basic Nightvision HUD upgrade" + desc = "Allows HUD to turn a basic nightvision mode. Can be installed only after damage scan upgrade" + icon_state = "nightvision" + tier = 2 +/obj/item/hud_upgrade/hud3 + name = "Thermal HUD upgrade" + desc = "Allows HUD to turn a basic thermal mode, makes nightvision mode more comfortable for use. Can be installed only after basic nightvision upgrade" + icon_state = "thermal1" + tier = 3 +/obj/item/hud_upgrade/hud4 + name = "Advanced Thermal HUD upgrade" + desc = "Makes thermal mode comfortable and combines it with nightvision mode. Can be installed only after thermal upgrade" + icon_state = "thermal2" + tier = 4 + +/datum/action/item_action/hands_free/switch_hud_modes/ + name = "Switch Mode" + button_icon = 'icons/obj/clothing/glasses.dmi' + +/datum/action/item_action/hands_free/switch_hud_modes/night + name = "Toggle Nightvision" + button_icon_state = "night" + +/datum/action/item_action/hands_free/switch_hud_modes/night/Activate() + var/obj/item/clothing/glasses/sunglasses/hud/advanced/hud = target + hud.toggle_hud_mode("night") + +/datum/action/item_action/hands_free/switch_hud_modes/thermal1 //only thermal + name = "Toggle thermal" + button_icon_state = "thermal" + +/datum/action/item_action/hands_free/switch_hud_modes/thermal1/Activate() + // if(ishuman(usr)) + // var/mob/living/carbon/human/H = usr + // var/obj/item/clothing/glasses/glasses = target + // glasses.darkness_view = 0 + // if(glasses.vision_flags) + // glasses.lighting_alpha = null + // glasses.sightglassesmod = null + // glasses.vision_flags = 0 + // glasses.invisa_view = 0 + // else + // glasses.lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_VISIBLE + // glasses.sightglassesmod = "thermal" + // glasses.vision_flags = SEE_MOBS + // glasses.invisa_view = 2 + // playsound(src, activation_sound, VOL_EFFECTS_MASTER, 10, FALSE) + // H.update_sight() + // update_item_actions() + +/datum/action/item_action/hands_free/switch_hud_modes/thermal2 //mixed thermal and nightvision + name = "Toggle Advanced Thermal" + button_icon_state = "material" + +/datum/action/item_action/hands_free/switch_hud_modes/thermal2/Activate() + // if(ishuman(usr)) + // var/obj/item/clothing/glasses/glasses = target + // glasses.sightglassesmod = null + // var/mob/living/carbon/human/H = usr + // if(glasses.lighting_alpha == LIGHTING_PLANE_ALPHA_MOSTLY_VISIBLE) + // glasses.lighting_alpha = null + // glasses.vision_flags = 0 + // glasses.invisa_view = 0 + // glasses.darkness_view = 0 + // else + // glasses.lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_VISIBLE + // glasses.vision_flags = SEE_MOBS + // glasses.invisa_view = 2 + // glasses.darkness_view = 7 + // playsound(src, activation_sound, VOL_EFFECTS_MASTER, 10, FALSE) + // H.update_sight() + // update_item_actions() diff --git a/code/modules/research/designs.dm b/code/modules/research/designs.dm index 6b6092372ffe..e9a19014b443 100644 --- a/code/modules/research/designs.dm +++ b/code/modules/research/designs.dm @@ -2879,3 +2879,43 @@ other types of metals and chemistry for reagents). materials = list(MAT_METAL = 2000, MAT_GLASS = 1000) build_path = /obj/item/rig_module/emp_shield category = list("Rig Modules") + +///////////////////////////////////////// +////////////////Upgrades///////////////// +///////////////////////////////////////// + +/datum/design/tier1_hud_upgrade + name = "Damage Scan Upgrade" + desc = "Allows HUD to show damage on person." + id = "tier1_hud_upgrade" + build_type = PROTOLATHE + materials = list(MAT_METAL = 2000, MAT_GLASS = 1000) + build_path = /obj/item/hud_upgrade/hud1 + category = list("Special upgrades") + +/datum/design/tier2_hud_upgrade + name = "Basic Nightvision HUD upgrade" + desc = "Allows HUD to turn a basic nightvision mode. Can be installed only after damage scan upgrade" + id = "tier2_hud_upgrade" + build_type = PROTOLATHE + materials = list(MAT_METAL = 2000, MAT_GLASS = 1000) + build_path = /obj/item/hud_upgrade/hud2 + category = list("Special upgrades") + +/datum/design/tier3_hud_upgrade + name = "Thermal HUD upgrade" + desc = "Allows HUD to turn a basic thermal mode, makes nightvision mode more comfortable for use. Can be installed only after basic nightvision upgrade" + id = "tier3_hud_upgrade" + build_type = PROTOLATHE + materials = list(MAT_METAL = 2000, MAT_GLASS = 1000) + build_path = /obj/item/hud_upgrade/hud3 + category = list("Special upgrades") + +/datum/design/tier4_hud_upgrade + name = "Advanced Thermal HUD upgrade" + desc = "Makes thermal mode comfortable and combines it with nightvision mode. Can be installed only after thermal upgrade" + id = "tier4_hud_upgrade" + build_type = PROTOLATHE + materials = list(MAT_METAL = 2000, MAT_GLASS = 1000) + build_path = /obj/item/hud_upgrade/hud4 + category = list("Special upgrades") diff --git a/code/modules/research/rdconsole.dm b/code/modules/research/rdconsole.dm index 6177b6e25854..79fbd4ed533b 100644 --- a/code/modules/research/rdconsole.dm +++ b/code/modules/research/rdconsole.dm @@ -146,6 +146,15 @@ ADD_TO_GLOBAL_LIST(/obj/machinery/computer/rdconsole, RDcomputer_list) files.research_points += research_points else to_chat(user, "There was no usefull data inside [D.name]'s buffer.") + else if(istype(D, /obj/item/weapon/disk/tech_disk)) + var/obj/item/weapon/disk/tech_disk/disk = D + if(disk.stored_technology) + to_chat(user, "You succesfully uploaded '[disk.stored_technology.name]' in the console") + files.UnlockTechology(disk.stored_technology, TRUE) + user.remove_from_mob(disk) + qdel(disk) + else + to_chat(user, "You can't upload empty disk") else //The construction/deconstruction of the console code. ..() diff --git a/code/modules/research/research.dm b/code/modules/research/research.dm index 87603bc80bf7..378775bc5f95 100644 --- a/code/modules/research/research.dm +++ b/code/modules/research/research.dm @@ -348,6 +348,15 @@ The tech datums are the actual "tech trees" that you improve through researching shown = FALSE item_tech_req = "syndicate" // research any traiter item and this tech will show up +/datum/tech/special + name = "Special Technologies Research" + shortname = "Special Tech" + desc = "Technologies of another corporations that can be used for Nanotrasen benefit" + id = RESEARCH_SPECIAL + rare = 3 + shown = TRUE + item_tech_req = "special" // research any special item and this tech will show up + /datum/technology var/name = "name" @@ -1709,3 +1718,67 @@ The tech datums are the actual "tech trees" that you improve through researching cost = 5000 unlocks_designs = list("camera_bug") + + +/datum/technology/tier1_hud_upgrade + name = "Damage Scan HUD upgrade" + desc = "Damage Scan HUD upgrade" + id = "tier1_hud_upgrade" + tech_type = RESEARCH_SPECIAL + + x = 0.1 + y = 0.2 + icon = "camerabug" + + required_technologies = list("tier1_hud_upgrade") + required_tech_levels = list(RESEARCH_SPECIAL = 1) + + unlocks_designs = list("tier1_hud_upgrade") + +/datum/technology/tier2_hud_upgrade + name = "Basic Nightvision HUD upgrade" + desc = "Basic Nightvision HUD upgrade" + id = "tier2_hud_upgrade" + tech_type = RESEARCH_SPECIAL + + x = 0.2 + y = 0.2 + icon = "camerabug" + + required_technologies = list("tier1_hud_upgrade") + required_tech_levels = list(RESEARCH_SPECIAL = 2) + cost = 10000 + + unlocks_designs = list("tier2_hud_upgrade") + +/datum/technology/tier3_hud_upgrade + name = "Thermal HUD upgrade" + desc = "Ultra HUD upgrade" + id = "tier3_hud_upgrade" + tech_type = RESEARCH_SPECIAL + + x = 0.3 + y = 0.2 + icon = "camerabug" + + required_technologies = list("tier2_hud_upgrade") + required_tech_levels = list(RESEARCH_SPECIAL = 3) + cost = 20000 + + unlocks_designs = list("tier3_hud_upgrade") + +/datum/technology/tier4_hud_upgrade + name = "Advanced Thermal HUD upgrade" + desc = "Advanced Thermal HUD upgrade" + id = "tier4_hud_upgrade" + tech_type = RESEARCH_SPECIAL + + x = 0.4 + y = 0.2 + icon = "camerabug" + + required_technologies = list("tier3_hud_upgrade") + required_tech_levels = list(RESEARCH_SPECIAL = 4) + cost = 30000 + + unlocks_designs = list("tier4_hud_upgrade") diff --git a/icons/obj/item_upgrades.dmi b/icons/obj/item_upgrades.dmi new file mode 100644 index 0000000000000000000000000000000000000000..c6b25a3c27ed0f7b45958abcb39a20a21eb82fa0 GIT binary patch literal 439 zcmV;o0Z9IdP)epGcz;)GXOKp00960%m4u3^=GpH0004WQchCV=-0C=2JR&a84_w-Y6@%7{?OD!tS%+FJ>RWQ*r;NmRLOex6#a*U0*I5Sc+ z(=$pSoZ^zil2jm5sU#z{C^s?3NQsLxC9|j)C}haRnO2mTn+jp0D>NjiFb`x)StiI8 z1l8uIrW7Y9;#8-s;OgfB_7(tp%|EaH<4gYl006s5L_t(YiS3lZ4Z|Q5Lld$#Z;t<3ksDl>=FAn)ka>(;DNkAN+4iE>3L+`3bMxI6Y z!EHb2cfak29-xo(_Gk?peRuQ8VIXw?7hNRaI2lMtZ2&G&#c^GyIK(!P4@k|5t|X8; h_kh?2dRIO2d%heGL{|2B@QeTe002ovPDHLkV1mo`v+)1` literal 0 HcmV?d00001 diff --git a/taucetistation.dme b/taucetistation.dme index ec9563fc9538..07a18f6d6f9c 100644 --- a/taucetistation.dme +++ b/taucetistation.dme @@ -1747,6 +1747,7 @@ #include "code\modules\holodeck\HolodeckTemplate.dm" #include "code\modules\holomap\holochip.dm" #include "code\modules\holomap\holochips.dm" +#include "code\modules\item_upgrades\item_upgrade.dm" #include "code\modules\jungle\falsewall.dm" #include "code\modules\jungle\jungle.dm" #include "code\modules\jungle\jungle_animals.dm" From dc839e09e1546639c21f41a667610e733fb72dd5 Mon Sep 17 00:00:00 2001 From: AirBlack Date: Mon, 24 Jun 2024 19:55:43 +0600 Subject: [PATCH 02/36] Added override button icon states --- code/_onclick/hud/action.dm | 6 +++++- code/modules/item_upgrades/item_upgrade.dm | 8 ++++---- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/code/_onclick/hud/action.dm b/code/_onclick/hud/action.dm index 5809073fc058..87785a6366dc 100644 --- a/code/_onclick/hud/action.dm +++ b/code/_onclick/hud/action.dm @@ -21,6 +21,8 @@ var/button_icon = 'icons/hud/actions.dmi' var/button_icon_state = "default" var/background_icon_state = "bg_default" + var/icon/button_overlay_icon = null + var/button_overlay_state = null var/transparent_when_unavailable = TRUE var/mob/owner @@ -196,7 +198,9 @@ cut_overlays() var/image/img - if(owner.action_type == AB_ITEM && owner.target) + if(owner.button_overlay_icon && owner.button_overlay_state) + img = image(owner.button_overlay_icon, owner.button_overlay_state) + else if(owner.action_type == AB_ITEM && owner.target) var/obj/item/I = owner.target img = image(I.icon, src , I.icon_state) else if(owner.button_icon && owner.button_icon_state) diff --git a/code/modules/item_upgrades/item_upgrade.dm b/code/modules/item_upgrades/item_upgrade.dm index e92bf15ab37a..ebae800371c2 100644 --- a/code/modules/item_upgrades/item_upgrade.dm +++ b/code/modules/item_upgrades/item_upgrade.dm @@ -74,11 +74,11 @@ /datum/action/item_action/hands_free/switch_hud_modes/ name = "Switch Mode" - button_icon = 'icons/obj/clothing/glasses.dmi' + button_overlay_icon = 'icons/obj/clothing/glasses.dmi' /datum/action/item_action/hands_free/switch_hud_modes/night name = "Toggle Nightvision" - button_icon_state = "night" + button_overlay_state = "night" /datum/action/item_action/hands_free/switch_hud_modes/night/Activate() var/obj/item/clothing/glasses/sunglasses/hud/advanced/hud = target @@ -86,7 +86,7 @@ /datum/action/item_action/hands_free/switch_hud_modes/thermal1 //only thermal name = "Toggle thermal" - button_icon_state = "thermal" + button_overlay_state = "thermal" /datum/action/item_action/hands_free/switch_hud_modes/thermal1/Activate() // if(ishuman(usr)) @@ -109,7 +109,7 @@ /datum/action/item_action/hands_free/switch_hud_modes/thermal2 //mixed thermal and nightvision name = "Toggle Advanced Thermal" - button_icon_state = "material" + button_overlay_state = "material" /datum/action/item_action/hands_free/switch_hud_modes/thermal2/Activate() // if(ishuman(usr)) From 1c7c57b6c996b7779a186102d284f44a3ecc9ea2 Mon Sep 17 00:00:00 2001 From: AirBlack Date: Mon, 24 Jun 2024 21:35:36 +0600 Subject: [PATCH 03/36] Bassic toggle functionality --- code/modules/item_upgrades/item_upgrade.dm | 114 ++++++++++----------- 1 file changed, 56 insertions(+), 58 deletions(-) diff --git a/code/modules/item_upgrades/item_upgrade.dm b/code/modules/item_upgrades/item_upgrade.dm index ebae800371c2..e95f454ec6d4 100644 --- a/code/modules/item_upgrades/item_upgrade.dm +++ b/code/modules/item_upgrades/item_upgrade.dm @@ -3,6 +3,10 @@ #define HUD_UPGRADE_THERMAL 3 #define HUD_UPGRADE_THERMAL_ADVANCED 4 +#define HUD_TOGGLEABLE_MODE_NIGHTVISION "night" +#define HUD_TOGGLEABLE_MODE_THERMAL "thermal" +#define HUD_TOGGLEABLE_MODE_THERMAL_ADVANCED "thermal_adv" + /obj/item/clothing/glasses/sunglasses/hud/advanced name = "mixed HUD" desc = "A heads-up display that scans the humans in view and provides accurate data about their ID status and health status." @@ -11,23 +15,36 @@ hud_types = list(DATA_HUD_SECURITY) item_action_types = list() var/upgrade_tier = 0 + var/current_mode = null -/obj/item/clothing/glasses/sunglasses/hud/advanced/proc/toggle_hud_mode(var/mode_type) +/obj/item/clothing/glasses/sunglasses/hud/advanced/proc/apply_effects(var/mode_type, var/enable) + if(!ishuman(usr)) + return + var/mob/living/carbon/human/human = usr switch(mode_type) - if("night") - if(ishuman(usr)) - var/mob/living/carbon/human/H = usr - if(src.darkness_view) - src.lighting_alpha = null - src.sightglassesmod = null - src.darkness_view = 0 - else - src.lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_VISIBLE - src.sightglassesmod = "nightsight" - src.darkness_view = 7 - playsound(src, activation_sound, VOL_EFFECTS_MASTER, 10, FALSE) - H.update_sight() - update_item_actions() + if(HUD_TOGGLEABLE_MODE_NIGHTVISION) + if(enable) + src.lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_VISIBLE + src.sightglassesmod = "nightsight" + src.darkness_view = 7 + else + src.lighting_alpha = null + src.sightglassesmod = null + src.darkness_view = 0 + playsound(src, activation_sound, VOL_EFFECTS_MASTER, 10, FALSE) + human.update_sight() + update_item_actions() + + +/obj/item/clothing/glasses/sunglasses/hud/advanced/proc/switch_mode(var/mode_type) + if(current_mode) + apply_effects(current_mode, FALSE) + if(current_mode == mode_type) + current_mode = null + return + + apply_effects(current_mode, TRUE) + current_mode = mode_type /obj/item/clothing/glasses/sunglasses/hud/advanced/attackby(obj/item/W, mob/living/user) if(istype(W, /obj/item/hud_upgrade)) @@ -43,6 +60,10 @@ hud_types.Add(DATA_HUD_MEDICAL) if(HUD_UPGRADE_NIGHTVISION) item_actions.Add(new /datum/action/item_action/hands_free/switch_hud_modes/night(src)) + if(HUD_UPGRADE_THERMAL) + item_actions.Add(new /datum/action/item_action/hands_free/switch_hud_modes/thermal(src)) + if(HUD_UPGRADE_THERMAL_ADVANCED) + item_actions.Add(new /datum/action/item_action/hands_free/switch_hud_modes/thermal_advanced(src)) upgrade_tier = hud_upgrade.tier update_item_actions() qdel(hud_upgrade) @@ -75,57 +96,34 @@ /datum/action/item_action/hands_free/switch_hud_modes/ name = "Switch Mode" button_overlay_icon = 'icons/obj/clothing/glasses.dmi' + var/hud_mode + +/datum/action/item_action/hands_free/switch_hud_modes/Activate() + var/obj/item/clothing/glasses/sunglasses/hud/advanced/hud = target + if(!hud_mode || !istype(hud)) + return + + hud.switch_mode(hud_mode) /datum/action/item_action/hands_free/switch_hud_modes/night name = "Toggle Nightvision" button_overlay_state = "night" + hud_mode = HUD_TOGGLEABLE_MODE_NIGHTVISION -/datum/action/item_action/hands_free/switch_hud_modes/night/Activate() - var/obj/item/clothing/glasses/sunglasses/hud/advanced/hud = target - hud.toggle_hud_mode("night") - -/datum/action/item_action/hands_free/switch_hud_modes/thermal1 //only thermal +/datum/action/item_action/hands_free/switch_hud_modes/thermal //only thermal name = "Toggle thermal" button_overlay_state = "thermal" + hud_mode = HUD_TOGGLEABLE_MODE_THERMAL -/datum/action/item_action/hands_free/switch_hud_modes/thermal1/Activate() - // if(ishuman(usr)) - // var/mob/living/carbon/human/H = usr - // var/obj/item/clothing/glasses/glasses = target - // glasses.darkness_view = 0 - // if(glasses.vision_flags) - // glasses.lighting_alpha = null - // glasses.sightglassesmod = null - // glasses.vision_flags = 0 - // glasses.invisa_view = 0 - // else - // glasses.lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_VISIBLE - // glasses.sightglassesmod = "thermal" - // glasses.vision_flags = SEE_MOBS - // glasses.invisa_view = 2 - // playsound(src, activation_sound, VOL_EFFECTS_MASTER, 10, FALSE) - // H.update_sight() - // update_item_actions() - -/datum/action/item_action/hands_free/switch_hud_modes/thermal2 //mixed thermal and nightvision +/datum/action/item_action/hands_free/switch_hud_modes/thermal_advanced //mixed thermal and nightvision name = "Toggle Advanced Thermal" button_overlay_state = "material" + hud_mode = HUD_TOGGLEABLE_MODE_THERMAL_ADVANCED -/datum/action/item_action/hands_free/switch_hud_modes/thermal2/Activate() - // if(ishuman(usr)) - // var/obj/item/clothing/glasses/glasses = target - // glasses.sightglassesmod = null - // var/mob/living/carbon/human/H = usr - // if(glasses.lighting_alpha == LIGHTING_PLANE_ALPHA_MOSTLY_VISIBLE) - // glasses.lighting_alpha = null - // glasses.vision_flags = 0 - // glasses.invisa_view = 0 - // glasses.darkness_view = 0 - // else - // glasses.lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_VISIBLE - // glasses.vision_flags = SEE_MOBS - // glasses.invisa_view = 2 - // glasses.darkness_view = 7 - // playsound(src, activation_sound, VOL_EFFECTS_MASTER, 10, FALSE) - // H.update_sight() - // update_item_actions() +#undef HUD_UPGRADE_MEDSCAN +#undef HUD_UPGRADE_NIGHTVISION +#undef HUD_UPGRADE_THERMAL +#undef HUD_UPGRADE_THERMAL_ADVANCED +#undef HUD_TOGGLEABLE_MODE_NIGHTVISION +#undef HUD_TOGGLEABLE_MODE_THERMAL +#undef HUD_TOGGLEABLE_MODE_THERMAL_ADVANCED From 4893f7bb2a6d3c6e899182de7387865c8f6bd946 Mon Sep 17 00:00:00 2001 From: "D. Resnyanskiy" Date: Mon, 24 Jun 2024 21:27:54 +0500 Subject: [PATCH 04/36] Added other functionality for advanced HUD --- code/modules/item_upgrades/item_upgrade.dm | 44 ++++++++++++++++------ code/modules/research/designs.dm | 8 ++-- 2 files changed, 37 insertions(+), 15 deletions(-) diff --git a/code/modules/item_upgrades/item_upgrade.dm b/code/modules/item_upgrades/item_upgrade.dm index e95f454ec6d4..e27e82f8be5d 100644 --- a/code/modules/item_upgrades/item_upgrade.dm +++ b/code/modules/item_upgrades/item_upgrade.dm @@ -24,13 +24,34 @@ switch(mode_type) if(HUD_TOGGLEABLE_MODE_NIGHTVISION) if(enable) - src.lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_VISIBLE - src.sightglassesmod = "nightsight" - src.darkness_view = 7 + lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_VISIBLE + sightglassesmod = "nightsight" + darkness_view = 7 else - src.lighting_alpha = null - src.sightglassesmod = null - src.darkness_view = 0 + lighting_alpha = null + sightglassesmod = null + darkness_view = 0 + if(HUD_TOGGLEABLE_MODE_THERMAL) + if(enable) + lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_VISIBLE + sightglassesmod = "thermal" + vision_flags = SEE_MOBS + + else + lighting_alpha = null + sightglassesmod = null + vision_flags = 0 + + if(HUD_TOGGLEABLE_MODE_THERMAL_ADVANCED) + if(enable) + lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_VISIBLE + darkness_view = 7 + vision_flags = SEE_MOBS + else + lighting_alpha = null + darkness_view = 0 + vision_flags = 0 + playsound(src, activation_sound, VOL_EFFECTS_MASTER, 10, FALSE) human.update_sight() update_item_actions() @@ -43,7 +64,7 @@ current_mode = null return - apply_effects(current_mode, TRUE) + apply_effects(mode_type, TRUE) current_mode = mode_type /obj/item/clothing/glasses/sunglasses/hud/advanced/attackby(obj/item/W, mob/living/user) @@ -58,6 +79,7 @@ switch(hud_upgrade.tier) if(HUD_UPGRADE_MEDSCAN) hud_types.Add(DATA_HUD_MEDICAL) + def_hud_types.Add(DATA_HUD_MEDICAL) if(HUD_UPGRADE_NIGHTVISION) item_actions.Add(new /datum/action/item_action/hands_free/switch_hud_modes/night(src)) if(HUD_UPGRADE_THERMAL) @@ -72,22 +94,22 @@ /obj/item/hud_upgrade icon = 'icons/obj/item_upgrades.dmi' var/tier = 0 -/obj/item/hud_upgrade/hud1 +/obj/item/hud_upgrade/medscan name = "Damage Scan Upgrade" desc = "Allows HUD to show damage on person." icon_state = "medscan" tier = 1 -/obj/item/hud_upgrade/hud2 +/obj/item/hud_upgrade/night name = "Basic Nightvision HUD upgrade" desc = "Allows HUD to turn a basic nightvision mode. Can be installed only after damage scan upgrade" icon_state = "nightvision" tier = 2 -/obj/item/hud_upgrade/hud3 +/obj/item/hud_upgrade/thermal name = "Thermal HUD upgrade" desc = "Allows HUD to turn a basic thermal mode, makes nightvision mode more comfortable for use. Can be installed only after basic nightvision upgrade" icon_state = "thermal1" tier = 3 -/obj/item/hud_upgrade/hud4 +/obj/item/hud_upgrade/thermal_advanced name = "Advanced Thermal HUD upgrade" desc = "Makes thermal mode comfortable and combines it with nightvision mode. Can be installed only after thermal upgrade" icon_state = "thermal2" diff --git a/code/modules/research/designs.dm b/code/modules/research/designs.dm index e9a19014b443..76cb033d89db 100644 --- a/code/modules/research/designs.dm +++ b/code/modules/research/designs.dm @@ -2890,7 +2890,7 @@ other types of metals and chemistry for reagents). id = "tier1_hud_upgrade" build_type = PROTOLATHE materials = list(MAT_METAL = 2000, MAT_GLASS = 1000) - build_path = /obj/item/hud_upgrade/hud1 + build_path = /obj/item/hud_upgrade/medscan category = list("Special upgrades") /datum/design/tier2_hud_upgrade @@ -2899,7 +2899,7 @@ other types of metals and chemistry for reagents). id = "tier2_hud_upgrade" build_type = PROTOLATHE materials = list(MAT_METAL = 2000, MAT_GLASS = 1000) - build_path = /obj/item/hud_upgrade/hud2 + build_path = /obj/item/hud_upgrade/night category = list("Special upgrades") /datum/design/tier3_hud_upgrade @@ -2908,7 +2908,7 @@ other types of metals and chemistry for reagents). id = "tier3_hud_upgrade" build_type = PROTOLATHE materials = list(MAT_METAL = 2000, MAT_GLASS = 1000) - build_path = /obj/item/hud_upgrade/hud3 + build_path = /obj/item/hud_upgrade/thermal category = list("Special upgrades") /datum/design/tier4_hud_upgrade @@ -2917,5 +2917,5 @@ other types of metals and chemistry for reagents). id = "tier4_hud_upgrade" build_type = PROTOLATHE materials = list(MAT_METAL = 2000, MAT_GLASS = 1000) - build_path = /obj/item/hud_upgrade/hud4 + build_path = /obj/item/hud_upgrade/thermal_advanced category = list("Special upgrades") From 7b459274d626e2d70e37af647c109b19ccd63994 Mon Sep 17 00:00:00 2001 From: "D. Resnyanskiy" Date: Tue, 25 Jun 2024 00:23:51 +0500 Subject: [PATCH 05/36] Added HUD design, advanced thermals replaces other buttons --- code/modules/item_upgrades/item_upgrade.dm | 6 +++++- code/modules/research/designs.dm | 9 +++++++++ code/modules/research/research.dm | 10 +++++----- 3 files changed, 19 insertions(+), 6 deletions(-) diff --git a/code/modules/item_upgrades/item_upgrade.dm b/code/modules/item_upgrades/item_upgrade.dm index e27e82f8be5d..522490a3b046 100644 --- a/code/modules/item_upgrades/item_upgrade.dm +++ b/code/modules/item_upgrades/item_upgrade.dm @@ -34,7 +34,7 @@ if(HUD_TOGGLEABLE_MODE_THERMAL) if(enable) lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_VISIBLE - sightglassesmod = "thermal" + sightglassesmod = "sepia" vision_flags = SEE_MOBS else @@ -85,6 +85,10 @@ if(HUD_UPGRADE_THERMAL) item_actions.Add(new /datum/action/item_action/hands_free/switch_hud_modes/thermal(src)) if(HUD_UPGRADE_THERMAL_ADVANCED) + for(var/datum/action/item_action/hands_free/switch_hud_modes/night/action in item_actions) + item_actions.Remove(action) + for(var/datum/action/item_action/hands_free/switch_hud_modes/thermal/action in item_actions) + item_actions.Remove(action) item_actions.Add(new /datum/action/item_action/hands_free/switch_hud_modes/thermal_advanced(src)) upgrade_tier = hud_upgrade.tier update_item_actions() diff --git a/code/modules/research/designs.dm b/code/modules/research/designs.dm index 76cb033d89db..b2a4fff379bf 100644 --- a/code/modules/research/designs.dm +++ b/code/modules/research/designs.dm @@ -2316,6 +2316,15 @@ other types of metals and chemistry for reagents). build_path = /obj/item/device/hud_calibrator category = list("Support") +/datum/design/hud_advanced + name = "Advanced HUD" + desc = "An advanced HUD that can be flexibly modified" + id = "advanced_hud" + build_type = PROTOLATHE + materials = list(MAT_METAL = 150, MAT_GLASS = 150) + build_path = /obj/item/clothing/glasses/sunglasses/hud/advanced + category = list("Support") + ///////////////////////////////////////// //////////////////Test/////////////////// ///////////////////////////////////////// diff --git a/code/modules/research/research.dm b/code/modules/research/research.dm index 378775bc5f95..fd4611764ce2 100644 --- a/code/modules/research/research.dm +++ b/code/modules/research/research.dm @@ -1727,13 +1727,13 @@ The tech datums are the actual "tech trees" that you improve through researching tech_type = RESEARCH_SPECIAL x = 0.1 - y = 0.2 + y = 0.8 icon = "camerabug" required_technologies = list("tier1_hud_upgrade") required_tech_levels = list(RESEARCH_SPECIAL = 1) - unlocks_designs = list("tier1_hud_upgrade") + unlocks_designs = list("tier1_hud_upgrade", "advanced_hud") /datum/technology/tier2_hud_upgrade name = "Basic Nightvision HUD upgrade" @@ -1742,7 +1742,7 @@ The tech datums are the actual "tech trees" that you improve through researching tech_type = RESEARCH_SPECIAL x = 0.2 - y = 0.2 + y = 0.8 icon = "camerabug" required_technologies = list("tier1_hud_upgrade") @@ -1758,7 +1758,7 @@ The tech datums are the actual "tech trees" that you improve through researching tech_type = RESEARCH_SPECIAL x = 0.3 - y = 0.2 + y = 0.8 icon = "camerabug" required_technologies = list("tier2_hud_upgrade") @@ -1774,7 +1774,7 @@ The tech datums are the actual "tech trees" that you improve through researching tech_type = RESEARCH_SPECIAL x = 0.4 - y = 0.2 + y = 0.8 icon = "camerabug" required_technologies = list("tier3_hud_upgrade") From 84bcab1362baae65e176e50670dabc2bc4625c60 Mon Sep 17 00:00:00 2001 From: "D. Resnyanskiy" Date: Tue, 25 Jun 2024 13:29:59 +0500 Subject: [PATCH 06/36] Special tech tree is now unshown by default --- code/modules/research/rdconsole.dm | 1 + code/modules/research/research.dm | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/code/modules/research/rdconsole.dm b/code/modules/research/rdconsole.dm index 79fbd4ed533b..17be3770b70c 100644 --- a/code/modules/research/rdconsole.dm +++ b/code/modules/research/rdconsole.dm @@ -150,6 +150,7 @@ ADD_TO_GLOBAL_LIST(/obj/machinery/computer/rdconsole, RDcomputer_list) var/obj/item/weapon/disk/tech_disk/disk = D if(disk.stored_technology) to_chat(user, "You succesfully uploaded '[disk.stored_technology.name]' in the console") + files.tech_trees[disk.stored_technology.tech_type].shown = TRUE files.UnlockTechology(disk.stored_technology, TRUE) user.remove_from_mob(disk) qdel(disk) diff --git a/code/modules/research/research.dm b/code/modules/research/research.dm index fd4611764ce2..668bef87d602 100644 --- a/code/modules/research/research.dm +++ b/code/modules/research/research.dm @@ -354,7 +354,7 @@ The tech datums are the actual "tech trees" that you improve through researching desc = "Technologies of another corporations that can be used for Nanotrasen benefit" id = RESEARCH_SPECIAL rare = 3 - shown = TRUE + shown = FALSE item_tech_req = "special" // research any special item and this tech will show up From 61a2cbdfdf2a74c73a46d889a7edb2d7792a3181 Mon Sep 17 00:00:00 2001 From: "D. Resnyanskiy" Date: Thu, 27 Jun 2024 01:51:52 +0500 Subject: [PATCH 07/36] Upgrading huds now in separate proc. Deleted not working properly code that replaces action buttons --- code/modules/item_upgrades/item_upgrade.dm | 37 ++++++++++++---------- 1 file changed, 20 insertions(+), 17 deletions(-) diff --git a/code/modules/item_upgrades/item_upgrade.dm b/code/modules/item_upgrades/item_upgrade.dm index 522490a3b046..4801c4da8964 100644 --- a/code/modules/item_upgrades/item_upgrade.dm +++ b/code/modules/item_upgrades/item_upgrade.dm @@ -8,7 +8,7 @@ #define HUD_TOGGLEABLE_MODE_THERMAL_ADVANCED "thermal_adv" /obj/item/clothing/glasses/sunglasses/hud/advanced - name = "mixed HUD" + name = "Advanced HUD" desc = "A heads-up display that scans the humans in view and provides accurate data about their ID status and health status." icon_state = "secmedhud" body_parts_covered = 0 @@ -67,6 +67,19 @@ apply_effects(mode_type, TRUE) current_mode = mode_type +/obj/item/clothing/glasses/sunglasses/hud/advanced/proc/upgrade_hud(var/obj/item/hud_upgrade/hud_upgrade) + switch(hud_upgrade.tier) + if(HUD_UPGRADE_MEDSCAN) + hud_types.Add(DATA_HUD_MEDICAL) + def_hud_types.Add(DATA_HUD_MEDICAL) + if(HUD_UPGRADE_NIGHTVISION) + item_actions.Add(new /datum/action/item_action/hands_free/switch_hud_modes/night(src)) + if(HUD_UPGRADE_THERMAL) + item_actions.Add(new /datum/action/item_action/hands_free/switch_hud_modes/thermal(src)) + if(HUD_UPGRADE_THERMAL_ADVANCED) + item_actions.Add(new /datum/action/item_action/hands_free/switch_hud_modes/thermal_advanced(src)) + upgrade_tier = hud_upgrade.tier + /obj/item/clothing/glasses/sunglasses/hud/advanced/attackby(obj/item/W, mob/living/user) if(istype(W, /obj/item/hud_upgrade)) var/obj/item/hud_upgrade/hud_upgrade = W @@ -76,22 +89,12 @@ if(upgrade_tier < hud_upgrade.tier - 1) to_chat(usr, "You have to install previous upgrades") return - switch(hud_upgrade.tier) - if(HUD_UPGRADE_MEDSCAN) - hud_types.Add(DATA_HUD_MEDICAL) - def_hud_types.Add(DATA_HUD_MEDICAL) - if(HUD_UPGRADE_NIGHTVISION) - item_actions.Add(new /datum/action/item_action/hands_free/switch_hud_modes/night(src)) - if(HUD_UPGRADE_THERMAL) - item_actions.Add(new /datum/action/item_action/hands_free/switch_hud_modes/thermal(src)) - if(HUD_UPGRADE_THERMAL_ADVANCED) - for(var/datum/action/item_action/hands_free/switch_hud_modes/night/action in item_actions) - item_actions.Remove(action) - for(var/datum/action/item_action/hands_free/switch_hud_modes/thermal/action in item_actions) - item_actions.Remove(action) - item_actions.Add(new /datum/action/item_action/hands_free/switch_hud_modes/thermal_advanced(src)) - upgrade_tier = hud_upgrade.tier - update_item_actions() + if(user.is_in_hands(src)) + upgrade_hud(hud_upgrade) + add_item_actions(user) + else + to_chat(usr, "You have to hold huds in hands to upgrade it") + return qdel(hud_upgrade) . = ..() From 81daf02d79cd32b8df5a026b4075264c4837e08b Mon Sep 17 00:00:00 2001 From: AirBlack Date: Thu, 27 Jun 2024 03:05:14 +0600 Subject: [PATCH 08/36] fix item action removal --- code/modules/item_upgrades/item_upgrade.dm | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/code/modules/item_upgrades/item_upgrade.dm b/code/modules/item_upgrades/item_upgrade.dm index 4801c4da8964..8e6059dd9297 100644 --- a/code/modules/item_upgrades/item_upgrade.dm +++ b/code/modules/item_upgrades/item_upgrade.dm @@ -77,8 +77,16 @@ if(HUD_UPGRADE_THERMAL) item_actions.Add(new /datum/action/item_action/hands_free/switch_hud_modes/thermal(src)) if(HUD_UPGRADE_THERMAL_ADVANCED) + for(var/datum/action/item_action/hands_free/switch_hud_modes/night/night_action in item_actions) + night_action.Remove(usr) + item_actions.Remove(night_action) + for(var/datum/action/item_action/hands_free/switch_hud_modes/thermal/thermal_action in item_actions) + thermal_action.Remove(usr) + item_actions.Remove(thermal_action) item_actions.Add(new /datum/action/item_action/hands_free/switch_hud_modes/thermal_advanced(src)) + upgrade_tier = hud_upgrade.tier + add_item_actions(usr) /obj/item/clothing/glasses/sunglasses/hud/advanced/attackby(obj/item/W, mob/living/user) if(istype(W, /obj/item/hud_upgrade)) From face44aa18327d475453edfc91c04923e4006d5f Mon Sep 17 00:00:00 2001 From: "D. Resnyanskiy" Date: Fri, 12 Jul 2024 02:20:53 +0500 Subject: [PATCH 09/36] Added new icons, sprites and rebalanced designes --- code/modules/item_upgrades/item_upgrade.dm | 23 ++++++++++++++------- code/modules/research/designs.dm | 6 +++--- code/modules/research/research.dm | 8 +++---- icons/obj/clothing/goggles.dmi | Bin 0 -> 6499 bytes nano/css/shared.css | 8 +++++++ nano/images/science.png | Bin 46600 -> 52065 bytes 6 files changed, 31 insertions(+), 14 deletions(-) create mode 100644 icons/obj/clothing/goggles.dmi diff --git a/code/modules/item_upgrades/item_upgrade.dm b/code/modules/item_upgrades/item_upgrade.dm index 8e6059dd9297..5b2d227d4b1e 100644 --- a/code/modules/item_upgrades/item_upgrade.dm +++ b/code/modules/item_upgrades/item_upgrade.dm @@ -10,7 +10,8 @@ /obj/item/clothing/glasses/sunglasses/hud/advanced name = "Advanced HUD" desc = "A heads-up display that scans the humans in view and provides accurate data about their ID status and health status." - icon_state = "secmedhud" + icon = 'icons/obj/clothing/goggles.dmi' + icon_state = "sechud" body_parts_covered = 0 hud_types = list(DATA_HUD_SECURITY) item_action_types = list() @@ -70,13 +71,17 @@ /obj/item/clothing/glasses/sunglasses/hud/advanced/proc/upgrade_hud(var/obj/item/hud_upgrade/hud_upgrade) switch(hud_upgrade.tier) if(HUD_UPGRADE_MEDSCAN) - hud_types.Add(DATA_HUD_MEDICAL) - def_hud_types.Add(DATA_HUD_MEDICAL) + icon_state = "mixhud" + hud_types.Add(DATA_HUD_MEDICAL_ADV) + def_hud_types.Add(DATA_HUD_MEDICAL_ADV) if(HUD_UPGRADE_NIGHTVISION) + icon_state = "nvghud" item_actions.Add(new /datum/action/item_action/hands_free/switch_hud_modes/night(src)) if(HUD_UPGRADE_THERMAL) + icon_state = "thermalhud" item_actions.Add(new /datum/action/item_action/hands_free/switch_hud_modes/thermal(src)) if(HUD_UPGRADE_THERMAL_ADVANCED) + icon_state = "4thtier" for(var/datum/action/item_action/hands_free/switch_hud_modes/night/night_action in item_actions) night_action.Remove(usr) item_actions.Remove(night_action) @@ -104,6 +109,10 @@ to_chat(usr, "You have to hold huds in hands to upgrade it") return qdel(hud_upgrade) + if(istype(W, /obj/item/device/hud_calibrator)) + var/obj/item/device/hud_calibrator = W + to_chat(usr, "You try to recalibrate huds, but nothing happens") + qdel(hud_calibrator) . = ..() /obj/item/hud_upgrade @@ -132,7 +141,7 @@ /datum/action/item_action/hands_free/switch_hud_modes/ name = "Switch Mode" - button_overlay_icon = 'icons/obj/clothing/glasses.dmi' + button_overlay_icon = 'icons/obj/clothing/goggles.dmi' var/hud_mode /datum/action/item_action/hands_free/switch_hud_modes/Activate() @@ -144,17 +153,17 @@ /datum/action/item_action/hands_free/switch_hud_modes/night name = "Toggle Nightvision" - button_overlay_state = "night" + button_overlay_state = "nvghud" hud_mode = HUD_TOGGLEABLE_MODE_NIGHTVISION /datum/action/item_action/hands_free/switch_hud_modes/thermal //only thermal name = "Toggle thermal" - button_overlay_state = "thermal" + button_overlay_state = "thermalhud" hud_mode = HUD_TOGGLEABLE_MODE_THERMAL /datum/action/item_action/hands_free/switch_hud_modes/thermal_advanced //mixed thermal and nightvision name = "Toggle Advanced Thermal" - button_overlay_state = "material" + button_overlay_state = "4thtier" hud_mode = HUD_TOGGLEABLE_MODE_THERMAL_ADVANCED #undef HUD_UPGRADE_MEDSCAN diff --git a/code/modules/research/designs.dm b/code/modules/research/designs.dm index 6464af0ff94f..41654ecc5832 100644 --- a/code/modules/research/designs.dm +++ b/code/modules/research/designs.dm @@ -2907,7 +2907,7 @@ other types of metals and chemistry for reagents). desc = "Allows HUD to turn a basic nightvision mode. Can be installed only after damage scan upgrade" id = "tier2_hud_upgrade" build_type = PROTOLATHE - materials = list(MAT_METAL = 2000, MAT_GLASS = 1000) + materials = list(MAT_METAL = 4000, MAT_GLASS = 2000, MAT_URANIUM = 2000) build_path = /obj/item/hud_upgrade/night category = list("Special upgrades") @@ -2916,7 +2916,7 @@ other types of metals and chemistry for reagents). desc = "Allows HUD to turn a basic thermal mode, makes nightvision mode more comfortable for use. Can be installed only after basic nightvision upgrade" id = "tier3_hud_upgrade" build_type = PROTOLATHE - materials = list(MAT_METAL = 2000, MAT_GLASS = 1000) + materials = list(MAT_METAL = 4000, MAT_GLASS = 2000, MAT_PHORON = 2500) build_path = /obj/item/hud_upgrade/thermal category = list("Special upgrades") @@ -2925,6 +2925,6 @@ other types of metals and chemistry for reagents). desc = "Makes thermal mode comfortable and combines it with nightvision mode. Can be installed only after thermal upgrade" id = "tier4_hud_upgrade" build_type = PROTOLATHE - materials = list(MAT_METAL = 2000, MAT_GLASS = 1000) + materials = list(MAT_METAL = 4000, MAT_GLASS = 2000, MAT_GOLD = 1500, MAT_URANIUM = 3000, MAT_PHORON = 3500) build_path = /obj/item/hud_upgrade/thermal_advanced category = list("Special upgrades") diff --git a/code/modules/research/research.dm b/code/modules/research/research.dm index 3370a735bb88..1a9fddb54bf9 100644 --- a/code/modules/research/research.dm +++ b/code/modules/research/research.dm @@ -1728,7 +1728,7 @@ The tech datums are the actual "tech trees" that you improve through researching x = 0.1 y = 0.8 - icon = "camerabug" + icon = "mixhudadv" required_technologies = list("tier1_hud_upgrade") required_tech_levels = list(RESEARCH_SPECIAL = 1) @@ -1743,7 +1743,7 @@ The tech datums are the actual "tech trees" that you improve through researching x = 0.2 y = 0.8 - icon = "camerabug" + icon = "nvghud" required_technologies = list("tier1_hud_upgrade") required_tech_levels = list(RESEARCH_SPECIAL = 2) @@ -1759,7 +1759,7 @@ The tech datums are the actual "tech trees" that you improve through researching x = 0.3 y = 0.8 - icon = "camerabug" + icon = "thermalhud" required_technologies = list("tier2_hud_upgrade") required_tech_levels = list(RESEARCH_SPECIAL = 3) @@ -1775,7 +1775,7 @@ The tech datums are the actual "tech trees" that you improve through researching x = 0.4 y = 0.8 - icon = "camerabug" + icon = "4thtier" required_technologies = list("tier3_hud_upgrade") required_tech_levels = list(RESEARCH_SPECIAL = 4) diff --git a/icons/obj/clothing/goggles.dmi b/icons/obj/clothing/goggles.dmi new file mode 100644 index 0000000000000000000000000000000000000000..fd37baffa52be6fb5fde510d6ba9c27037eb63ce GIT binary patch literal 6499 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 JDb%_a^>36V0C@la literal 0 HcmV?d00001 diff --git a/nano/css/shared.css b/nano/css/shared.css index 516c8922483a..d01fad2a45b2 100644 --- a/nano/css/shared.css +++ b/nano/css/shared.css @@ -770,6 +770,14 @@ th.cargo { .sciTechTreeIcon.icon-camerabug { background-position: -64px -320px; } .sciTechTreeIcon.icon-smuggler { background-position: -96px -320px; } +.sciTechTreeIcon.icon-sechudadv { background-position: -128px -320px;} +.sciTechTreeIcon.icon-mixhudadv { background-position: -160px -320px;} +.sciTechTreeIcon.icon-nvghud { background-position: -192px -320px;} +.sciTechTreeIcon.icon-thermalhud { background-position: -224px -320px;} +.sciTechTreeIcon.icon-4thtier { background-position: -32px -352px;} + + + .sciMenuButton { width: 300px; float: left; diff --git a/nano/images/science.png b/nano/images/science.png index 46094cde22016bde9d81b642ef5e518062ef7301..7af41e64e9b2d793a87c675800a942cb2ba9b97c 100644 GIT binary patch literal 52065 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%0D#PP8l@g6v;|Of33V>?OIkUOF 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 XK~W=F;HJ(O1Uw2ds?t?b=3o8?yoFj! From c0a052d8be22b432e0d6d31c7e6ee864cc8980a1 Mon Sep 17 00:00:00 2001 From: "D. Resnyanskiy" Date: Fri, 12 Jul 2024 22:28:05 +0500 Subject: [PATCH 10/36] Added disk with starting technology on derelict --- maps/templates/space_structures/cloning_lab.dmm | 8 +++++++- maps/templates/space_structures/old_station.dmm | 7 ++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/maps/templates/space_structures/cloning_lab.dmm b/maps/templates/space_structures/cloning_lab.dmm index 4396cab90393..e622e0c99623 100644 --- a/maps/templates/space_structures/cloning_lab.dmm +++ b/maps/templates/space_structures/cloning_lab.dmm @@ -185,6 +185,7 @@ /obj/effect/decal/cleanable/dirt, /obj/item/weapon/book/manual/wiki/medical_genetics, /obj/structure/table, +/obj/item/weapon/disk/tech_disk/hud, /turf/simulated/floor, /area/space_structures/cloning_lab) "G" = ( @@ -192,6 +193,7 @@ /obj/machinery/light/small{ dir = 4 }, +/mob/living/simple_animal/hostile/syndicate/ranged/space/elite, /turf/simulated/floor, /area/space_structures/cloning_lab) "H" = ( @@ -250,6 +252,10 @@ "Q" = ( /turf/simulated/floor/airless, /area/space_structures/cloning_lab) +"V" = ( +/mob/living/simple_animal/hostile/syndicate/melee, +/turf/simulated/floor, +/area/space_structures/cloning_lab) (1,1,1) = {" a @@ -295,7 +301,7 @@ a a b v -y +V G b "} diff --git a/maps/templates/space_structures/old_station.dmm b/maps/templates/space_structures/old_station.dmm index d4478b985d96..dea822852b0e 100644 --- a/maps/templates/space_structures/old_station.dmm +++ b/maps/templates/space_structures/old_station.dmm @@ -2618,6 +2618,11 @@ icon_state = "whitepurple" }, /area/space_structures/old_station/right) +"qq" = ( +/obj/structure/table/glass, +/obj/item/weapon/disk/tech_disk/hud, +/turf/simulated/floor, +/area/space_structures/old_station/right/rnd) "qr" = ( /obj/effect/decal/cleanable/dirt, /turf/simulated/floor{ @@ -13049,7 +13054,7 @@ TE pM Jy aZ -aZ +qq cm vX Ni From 4e67c65a744166d21b8c77e88be4951a0d64205b Mon Sep 17 00:00:00 2001 From: "D. Resnyanskiy" Date: Fri, 12 Jul 2024 23:14:57 +0500 Subject: [PATCH 11/36] Fixed sprites on character --- code/modules/item_upgrades/item_upgrade.dm | 5 +++++ icons/mob/eyes.dmi | Bin 9866 -> 10715 bytes icons/obj/clothing/goggles.dmi | Bin 6499 -> 6570 bytes 3 files changed, 5 insertions(+) diff --git a/code/modules/item_upgrades/item_upgrade.dm b/code/modules/item_upgrades/item_upgrade.dm index 5b2d227d4b1e..c2d0e143e8ab 100644 --- a/code/modules/item_upgrades/item_upgrade.dm +++ b/code/modules/item_upgrades/item_upgrade.dm @@ -12,6 +12,7 @@ desc = "A heads-up display that scans the humans in view and provides accurate data about their ID status and health status." icon = 'icons/obj/clothing/goggles.dmi' icon_state = "sechud" + item_state = "sechud" body_parts_covered = 0 hud_types = list(DATA_HUD_SECURITY) item_action_types = list() @@ -72,16 +73,20 @@ switch(hud_upgrade.tier) if(HUD_UPGRADE_MEDSCAN) icon_state = "mixhud" + item_state = "mixhud" hud_types.Add(DATA_HUD_MEDICAL_ADV) def_hud_types.Add(DATA_HUD_MEDICAL_ADV) if(HUD_UPGRADE_NIGHTVISION) icon_state = "nvghud" + item_state = "nvghud" item_actions.Add(new /datum/action/item_action/hands_free/switch_hud_modes/night(src)) if(HUD_UPGRADE_THERMAL) icon_state = "thermalhud" + item_state = "thermalhud" item_actions.Add(new /datum/action/item_action/hands_free/switch_hud_modes/thermal(src)) if(HUD_UPGRADE_THERMAL_ADVANCED) icon_state = "4thtier" + item_state = "4thtier" for(var/datum/action/item_action/hands_free/switch_hud_modes/night/night_action in item_actions) night_action.Remove(usr) item_actions.Remove(night_action) diff --git a/icons/mob/eyes.dmi b/icons/mob/eyes.dmi index d22109fdda121666c9101d34a12264a9ec1ee883..9424360ce848bce7d57794da748b201d9e4158fc 100644 GIT binary patch literal 10715 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
  • %UKhKOtezIz~2XL7D`uZO$0s!gmWwRIs0ko~s zP`v@pO10}ERpL%VNZk&qdVu2q4(#_WiJLtf=csION1bED0|F;nLPIU|^-Z)EQvx|V z9gv{sTsGk$@2FB>b6!C8>~rpO^12+^zn}j3*dd)z|dHm-T26jV8=hRK zyM>769T`eUKa+OH%3RV}mM?PVG$TA7`W2i9fq3F}-vwYx zmJ;4OnSnqLHhvn1{U<>wETz-mIpb@bW z$?KmG1uAb*Lj@WFA-^giDL$ZaKv`;!5hSgrDLKyEnyOLyqQ4o?h|vyRLp^o96}!of z5mH;3zMXfi$+h9VWe0T9?-m-U`oEVDQaL%8HUZ2Av{C)6`w!-?V`%=$58JztR$>uo ztV1svDlhr?p`a39>^0OvgG%4NoaPbh5(sD6%C$pOp4rq)$*6lg`q5(dBi%VO<&Ty2 zZWqkU(VdSO9C!tYE!1h$xdgle)HnPiaWrVQ;C(5C4d45<7%$ecnf;4H17xW;%^!>4 zglYwB{Pg5dHjg|gxBe#z*5<$b^`f-1qV1b(GW^71fBbfDAei8vM#>@f ztMWP9$>yO|tnZcDK6O8Wu~)$$k!~Tm_eM#*ihimO)^kV@iJ^&T*Rph1g`Mq!d%-!K zHmfsm#+L#>GFypUZf2;bmmxxLqwIO6Bbryp>NRW;KtK!A-(70lI`<$bv}(dXbNtsG zZ{01>{;hHEuPk_1NVBj=ccRRkXxq_{ES)T|Sf&WU$>b24!|i_=jCsdHr$258NrG%6MTqwLb55H>Wp)Sw^XuWvWU z=HZMaDGrxaT3L(Mx@Ku9FW9AfZaN1~VHyciT|1t&w%(I>it$ABQji*pHLl_j-naFP z?G5uC4caihKqL4!IWbwD@1ZBhnNSFWV8_6I_>oDxiL$avVQ*7X1@@>y`3%*(8`14_t%U!*NR2A9(DuX7h%K4OF45$tPi1X z?Jyi>4_{CMgC`JqI*J5Q{L=mRyHYNRNQ_*glkp*Fn}L=z4!qXVEvXb#r z=F_J2wK{KFBFju#Q5Sfps{3~s4h`(=V)S?k-uPj~cO3fckg97}|8Px|2>wb^e(*ip z-@tVrFpST=h=&6_+ML})Oi2L*`W?9;1w^{PNnv?%efM3Z=Ph2D<&j~>HxB}d-v3hy zxIs4#TX&4lPz((UiDw~phV8uodl+?n*q_)6&%EdnJ}Mfr?NYT_)3T&R!k#9H&DmGP7As^mB8+TDF*&+LId`qq}S<^?5{rYHml@&Tn;jc$>FwB{Uc~77 zFzFH9LfzPS(LcIxR;7ci#Yu-Xoi~73^DQx*o5?OH_(k**{O#i69cq86wMB#J02ECq zxD0>>y_&2T`Y14-#%Y1Uy8PWvol0C@6z;X;z&{MoIDJng7c1H{_G)v`TJBCLc*^x; z0GS;V-t{i5SrlqPgNI4)h+3>=3;yiqw+Dk0GrbklMr-f`lXtY=nR?Qg-#QmVr||df zLqdEdn%x8I-*^9l2$a{bo*ZH%e`@D2d$~yrP!qlrIYDC#|BwsiG){h-?k8Fq)1zXO z+TzE;^G{<-@D9Bk?}26@o>r$G%~GSLQ@P)AOs%J~mMy!IKd9P~Nt1EBI?2S9FQ vcR0jE1VC4dC^txaFB1Z)-~1Z^w#4BM=qCi!&__c7Y=MjnO!P~yJP7|kYx%&K literal 9866 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%0DQz5 zRCrU@tAT8>J*b*owJ{!G?~^0PPGG}GpSh3XdTW|Dkb&Vx5sm5SJI`{hRBsdAAzFua zH7%+nyJJXi28Ib-Y7^g%VQU3~5ny7OQIr)tAF{}(i7 z)^iQeJfMQp%d;G*$!jym%mI}HWhHU<0?umty!7uzME~r-Yk(mCb#e;=89=PMbY1~` zLcR&A#i5Q}yZApGl{!)@odmNT4EQxfMMZr{5$hMi(4=r0?%hQSGYrvl4lVzm_ymON z2^F((1vPY8I`0!VW>BfZ(`;{rr$^-OSeBdv3ngQXoSc57Y#%eY0>p)&;OIsgDK2i; zK=l2=IRt0uNihj+3~k%;BYFekkh%&}AU1m!KB+IC-)J z`5K^SxA9yzq2%O<@EXf|qS`R>92iF#jz`!qS>lINh3^vPkLk>+pVpUlqM`gjhXg|w zYY0&2bfQY1<<=~O8)9&*{8XpRmVuD)2tZu`oQEwJr$!PP^c&~n9I9CagI6z`mQ?oz zO7$CK4LlpQZVoDxRDKTKl!_IQsUfA)fBbNE2nawdyQ>`++?UT=gP2@{2}F0;j{<%k zJU&k`^72|rS(E^5Z>qr76l#P99Ag>+9|_c>hJ6V)zR{E6ARUTsHZ-~Pp-GFj6F1?8;ZUmkA2=SC+#5UR;4ExNc^YcigjAc$iX zY5h|R$Un3nL+1ugI*R>yW_?N&1cWzFU*UubaQ1&=Fh1-3VLlI$ISsCHV6Xb962)O< zT{CfWJ;4ckLtfMQP5)1%eNbxsig|`r5j~b04)jGO218K0i)r&1DgU(n-8GucD?Z_z zZy;>w5otBRhI{ zU1aPfZu=5gW%fmaYa5qJ7ZMFW-Au<5z|RzD5gpsc<)v<#_2DKgAMndDm4WIo|+0o6scC!ofZ2G$^sx zndIXp1sI)IhcLVL{tbBdb#XZ_NJ0xq{zH2gNb>vk)rJ3de*|>qnLp_MpPVVSFlLkY zp}Fn=V)qw-vCLpZgy>Ikg0ZIxkN4}304l)<3hL=^X^~tv0uEK3kNnoTy|*r6Q|i71 z`1^Mff&c4AGW>TOL275Ms_8Nclf*a5PcZqBgy?*ER3V z0+i@(%!b6uChvp!V_#7`!;n!#QvJ_{j(3U>Yh_2J@^(f$+ff>Jk4&wj0;rI^{hlk@ z0^~>BRR@!}xXw>D6YuKRFUfQ$lR_u`w=ZjW5Vrq1I<)VRz`bH{Ddn;D9$*T9*kf(# eZ`{JKxdJlkQup}SAN7I702%5TLrbsTd-QK1whU+h diff --git a/icons/obj/clothing/goggles.dmi b/icons/obj/clothing/goggles.dmi index fd37baffa52be6fb5fde510d6ba9c27037eb63ce..ecc2d6b7e2336c264749fb6355b33f0058f5062e 100644 GIT binary patch literal 6570 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 U#YYkRKNvtmMO(R2@nz`00kYoOzW@LL literal 6499 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 JDb%_a^>36V0C@la From 5df62a03c3aceea67fa00f181949b198cd29b5e8 Mon Sep 17 00:00:00 2001 From: "D. Resnyanskiy" Date: Sat, 13 Jul 2024 01:43:13 +0500 Subject: [PATCH 12/36] Changed one of the derelicts with disk --- maps/templates/space_structures/delivery_shuttle.dmm | 2 ++ maps/templates/space_structures/old_station.dmm | 7 +------ 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/maps/templates/space_structures/delivery_shuttle.dmm b/maps/templates/space_structures/delivery_shuttle.dmm index 0a19034d5700..61215c3afe0e 100644 --- a/maps/templates/space_structures/delivery_shuttle.dmm +++ b/maps/templates/space_structures/delivery_shuttle.dmm @@ -42,6 +42,7 @@ /obj/machinery/light/small{ dir = 8 }, +/obj/item/weapon/disk/tech_disk/hud, /turf/simulated/shuttle/floor{ icon_state = "floor3" }, @@ -56,6 +57,7 @@ /obj/structure/stool/bed/chair/schair{ dir = 1 }, +/mob/living/simple_animal/hostile/syndicate/ranged/space/elite, /turf/simulated/shuttle/floor{ icon_state = "floor3" }, diff --git a/maps/templates/space_structures/old_station.dmm b/maps/templates/space_structures/old_station.dmm index dea822852b0e..d4478b985d96 100644 --- a/maps/templates/space_structures/old_station.dmm +++ b/maps/templates/space_structures/old_station.dmm @@ -2618,11 +2618,6 @@ icon_state = "whitepurple" }, /area/space_structures/old_station/right) -"qq" = ( -/obj/structure/table/glass, -/obj/item/weapon/disk/tech_disk/hud, -/turf/simulated/floor, -/area/space_structures/old_station/right/rnd) "qr" = ( /obj/effect/decal/cleanable/dirt, /turf/simulated/floor{ @@ -13054,7 +13049,7 @@ TE pM Jy aZ -qq +aZ cm vX Ni From 14ecfcbcc238c0ea5da7e72ade5508312691bc05 Mon Sep 17 00:00:00 2001 From: "D. Resnyanskiy" Date: Sat, 13 Jul 2024 01:58:40 +0500 Subject: [PATCH 13/36] Probably fix for codelinter --- code/modules/item_upgrades/item_upgrade.dm | 10 +++++----- code/modules/research/rdconsole.dm | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/code/modules/item_upgrades/item_upgrade.dm b/code/modules/item_upgrades/item_upgrade.dm index c2d0e143e8ab..46a3edb17eaf 100644 --- a/code/modules/item_upgrades/item_upgrade.dm +++ b/code/modules/item_upgrades/item_upgrade.dm @@ -69,7 +69,7 @@ apply_effects(mode_type, TRUE) current_mode = mode_type -/obj/item/clothing/glasses/sunglasses/hud/advanced/proc/upgrade_hud(var/obj/item/hud_upgrade/hud_upgrade) +/obj/item/clothing/glasses/sunglasses/hud/advanced/proc/upgrade_hud(obj/item/hud_upgrade/hud_upgrade) switch(hud_upgrade.tier) if(HUD_UPGRADE_MEDSCAN) icon_state = "mixhud" @@ -102,21 +102,21 @@ if(istype(W, /obj/item/hud_upgrade)) var/obj/item/hud_upgrade/hud_upgrade = W if(upgrade_tier >= hud_upgrade.tier) - to_chat(usr, "You've already installed that upgrade") + to_chat(usr, "You've already installed that upgrade") return if(upgrade_tier < hud_upgrade.tier - 1) - to_chat(usr, "You have to install previous upgrades") + to_chat(usr, "You have to install previous upgrades") return if(user.is_in_hands(src)) upgrade_hud(hud_upgrade) add_item_actions(user) else - to_chat(usr, "You have to hold huds in hands to upgrade it") + to_chat(usr, "You have to hold huds in hands to upgrade it") return qdel(hud_upgrade) if(istype(W, /obj/item/device/hud_calibrator)) var/obj/item/device/hud_calibrator = W - to_chat(usr, "You try to recalibrate huds, but nothing happens") + to_chat(usr, "You try to recalibrate huds, but nothing happens") qdel(hud_calibrator) . = ..() diff --git a/code/modules/research/rdconsole.dm b/code/modules/research/rdconsole.dm index 17be3770b70c..444c5510481d 100644 --- a/code/modules/research/rdconsole.dm +++ b/code/modules/research/rdconsole.dm @@ -155,7 +155,7 @@ ADD_TO_GLOBAL_LIST(/obj/machinery/computer/rdconsole, RDcomputer_list) user.remove_from_mob(disk) qdel(disk) else - to_chat(user, "You can't upload empty disk") + to_chat(user, "You can't upload empty disk") else //The construction/deconstruction of the console code. ..() From 7998e59495a9ca82443a629cdfabdc90ddcc6e58 Mon Sep 17 00:00:00 2001 From: "D. Resnyanskiy" Date: Sat, 13 Jul 2024 02:03:58 +0500 Subject: [PATCH 14/36] Super mega fix for codelinter --- code/modules/item_upgrades/item_upgrade.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/item_upgrades/item_upgrade.dm b/code/modules/item_upgrades/item_upgrade.dm index 46a3edb17eaf..5a56a15c39e7 100644 --- a/code/modules/item_upgrades/item_upgrade.dm +++ b/code/modules/item_upgrades/item_upgrade.dm @@ -19,7 +19,7 @@ var/upgrade_tier = 0 var/current_mode = null -/obj/item/clothing/glasses/sunglasses/hud/advanced/proc/apply_effects(var/mode_type, var/enable) +/obj/item/clothing/glasses/sunglasses/hud/advanced/proc/apply_effects(mode_type, enable) if(!ishuman(usr)) return var/mob/living/carbon/human/human = usr @@ -59,7 +59,7 @@ update_item_actions() -/obj/item/clothing/glasses/sunglasses/hud/advanced/proc/switch_mode(var/mode_type) +/obj/item/clothing/glasses/sunglasses/hud/advanced/proc/switch_mode(mode_type) if(current_mode) apply_effects(current_mode, FALSE) if(current_mode == mode_type) From 68bfc522133404e7880469b45d95ad4b02f6ac72 Mon Sep 17 00:00:00 2001 From: "D. Resnyanskiy" Date: Sun, 14 Jul 2024 16:52:27 +0500 Subject: [PATCH 15/36] Fixed world sprites --- code/modules/item_upgrades/item_upgrade.dm | 20 +++++++++++++------- icons/mob/eyes.dmi | Bin 10715 -> 10389 bytes icons/obj/clothing/goggles.dmi | Bin 6570 -> 6106 bytes 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/code/modules/item_upgrades/item_upgrade.dm b/code/modules/item_upgrades/item_upgrade.dm index 5a56a15c39e7..be857107ab49 100644 --- a/code/modules/item_upgrades/item_upgrade.dm +++ b/code/modules/item_upgrades/item_upgrade.dm @@ -11,8 +11,9 @@ name = "Advanced HUD" desc = "A heads-up display that scans the humans in view and provides accurate data about their ID status and health status." icon = 'icons/obj/clothing/goggles.dmi' - icon_state = "sechud" item_state = "sechud" + item_state_inventory = "sechud" + item_state_world = "sechud_w" body_parts_covered = 0 hud_types = list(DATA_HUD_SECURITY) item_action_types = list() @@ -72,21 +73,25 @@ /obj/item/clothing/glasses/sunglasses/hud/advanced/proc/upgrade_hud(obj/item/hud_upgrade/hud_upgrade) switch(hud_upgrade.tier) if(HUD_UPGRADE_MEDSCAN) - icon_state = "mixhud" item_state = "mixhud" + item_state_inventory = "mixhud" + item_state_world = "mixhud_w" hud_types.Add(DATA_HUD_MEDICAL_ADV) def_hud_types.Add(DATA_HUD_MEDICAL_ADV) if(HUD_UPGRADE_NIGHTVISION) - icon_state = "nvghud" item_state = "nvghud" + item_state_inventory = "nvghud" + item_state_world = "nvghud_w" item_actions.Add(new /datum/action/item_action/hands_free/switch_hud_modes/night(src)) if(HUD_UPGRADE_THERMAL) - icon_state = "thermalhud" item_state = "thermalhud" + item_state_inventory = "thermalhud" + item_state_world = "thermalhud_w" item_actions.Add(new /datum/action/item_action/hands_free/switch_hud_modes/thermal(src)) if(HUD_UPGRADE_THERMAL_ADVANCED) - icon_state = "4thtier" - item_state = "4thtier" + item_state = "thermalhudadv" + item_state_inventory = "thermalhudadv" + item_state_world = "thermalhudadv_w" for(var/datum/action/item_action/hands_free/switch_hud_modes/night/night_action in item_actions) night_action.Remove(usr) item_actions.Remove(night_action) @@ -96,6 +101,7 @@ item_actions.Add(new /datum/action/item_action/hands_free/switch_hud_modes/thermal_advanced(src)) upgrade_tier = hud_upgrade.tier + update_world_icon() add_item_actions(usr) /obj/item/clothing/glasses/sunglasses/hud/advanced/attackby(obj/item/W, mob/living/user) @@ -168,7 +174,7 @@ /datum/action/item_action/hands_free/switch_hud_modes/thermal_advanced //mixed thermal and nightvision name = "Toggle Advanced Thermal" - button_overlay_state = "4thtier" + button_overlay_state = "thermalhudadv" hud_mode = HUD_TOGGLEABLE_MODE_THERMAL_ADVANCED #undef HUD_UPGRADE_MEDSCAN diff --git a/icons/mob/eyes.dmi b/icons/mob/eyes.dmi index 9424360ce848bce7d57794da748b201d9e4158fc..39fd23e36f8777ace9f100a08a1ef15392a4d320 100644 GIT binary patch literal 10389 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 literal 10715 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

  • %UKhKOtezIz~2XL7D`uZO$0s!gmWwRIs0ko~s zP`v@pO10}ERpL%VNZk&qdVu2q4(#_WiJLtf=csION1bED0|F;nLPIU|^-Z)EQvx|V z9gv{sTsGk$@2FB>b6!C8>~rpO^12+^zn}j3*dd)z|dHm-T26jV8=hRK zyM>769T`eUKa+OH%3RV}mM?PVG$TA7`W2i9fq3F}-vwYx zmJ;4OnSnqLHhvn1{U<>wETz-mIpb@bW z$?KmG1uAb*Lj@WFA-^giDL$ZaKv`;!5hSgrDLKyEnyOLyqQ4o?h|vyRLp^o96}!of z5mH;3zMXfi$+h9VWe0T9?-m-U`oEVDQaL%8HUZ2Av{C)6`w!-?V`%=$58JztR$>uo ztV1svDlhr?p`a39>^0OvgG%4NoaPbh5(sD6%C$pOp4rq)$*6lg`q5(dBi%VO<&Ty2 zZWqkU(VdSO9C!tYE!1h$xdgle)HnPiaWrVQ;C(5C4d45<7%$ecnf;4H17xW;%^!>4 zglYwB{Pg5dHjg|gxBe#z*5<$b^`f-1qV1b(GW^71fBbfDAei8vM#>@f ztMWP9$>yO|tnZcDK6O8Wu~)$$k!~Tm_eM#*ihimO)^kV@iJ^&T*Rph1g`Mq!d%-!K zHmfsm#+L#>GFypUZf2;bmmxxLqwIO6Bbryp>NRW;KtK!A-(70lI`<$bv}(dXbNtsG zZ{01>{;hHEuPk_1NVBj=ccRRkXxq_{ES)T|Sf&WU$>b24!|i_=jCsdHr$258NrG%6MTqwLb55H>Wp)Sw^XuWvWU z=HZMaDGrxaT3L(Mx@Ku9FW9AfZaN1~VHyciT|1t&w%(I>it$ABQji*pHLl_j-naFP z?G5uC4caihKqL4!IWbwD@1ZBhnNSFWV8_6I_>oDxiL$avVQ*7X1@@>y`3%*(8`14_t%U!*NR2A9(DuX7h%K4OF45$tPi1X z?Jyi>4_{CMgC`JqI*J5Q{L=mRyHYNRNQ_*glkp*Fn}L=z4!qXVEvXb#r z=F_J2wK{KFBFju#Q5Sfps{3~s4h`(=V)S?k-uPj~cO3fckg97}|8Px|2>wb^e(*ip z-@tVrFpST=h=&6_+ML})Oi2L*`W?9;1w^{PNnv?%efM3Z=Ph2D<&j~>HxB}d-v3hy zxIs4#TX&4lPz((UiDw~phV8uodl+?n*q_)6&%EdnJ}Mfr?NYT_)3T&R!k#9H&DmGP7As^mB8+TDF*&+LId`qq}S<^?5{rYHml@&Tn;jc$>FwB{Uc~77 zFzFH9LfzPS(LcIxR;7ci#Yu-Xoi~73^DQx*o5?OH_(k**{O#i69cq86wMB#J02ECq zxD0>>y_&2T`Y14-#%Y1Uy8PWvol0C@6z;X;z&{MoIDJng7c1H{_G)v`TJBCLc*^x; z0GS;V-t{i5SrlqPgNI4)h+3>=3;yiqw+Dk0GrbklMr-f`lXtY=nR?Qg-#QmVr||df zLqdEdn%x8I-*^9l2$a{bo*ZH%e`@D2d$~yrP!qlrIYDC#|BwsiG){h-?k8Fq)1zXO z+TzE;^G{<-@D9Bk?}26@o>r$G%~GSLQ@P)AOs%J~mMy!IKd9P~Nt1EBI?2S9FQ vcR0jE1VC4dC^txaFB1Z)-~1Z^w#4BM=qCi!&__c7Y=MjnO!P~yJP7|kYx%&K diff --git a/icons/obj/clothing/goggles.dmi b/icons/obj/clothing/goggles.dmi index ecc2d6b7e2336c264749fb6355b33f0058f5062e..bb1f3f31c67c71a73510dd1f00d36a5e6aea4321 100644 GIT binary patch literal 6106 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 U#YYkRKNvtmMO(R2@nz`00kYoOzW@LL From f57411c5eac772a2d9757b270c610ef6470da353 Mon Sep 17 00:00:00 2001 From: "D. Resnyanskiy" Date: Sun, 14 Jul 2024 19:34:09 +0500 Subject: [PATCH 16/36] Added new sprites for upgrade circuits --- code/modules/item_upgrades/item_upgrade.dm | 12 ++++++++---- icons/obj/item_upgrades.dmi | Bin 439 -> 1064 bytes 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/code/modules/item_upgrades/item_upgrade.dm b/code/modules/item_upgrades/item_upgrade.dm index be857107ab49..345f6eb9a79d 100644 --- a/code/modules/item_upgrades/item_upgrade.dm +++ b/code/modules/item_upgrades/item_upgrade.dm @@ -132,22 +132,26 @@ /obj/item/hud_upgrade/medscan name = "Damage Scan Upgrade" desc = "Allows HUD to show damage on person." - icon_state = "medscan" + item_state_inventory = "medscan" + item_state_world = "medscan_w" tier = 1 /obj/item/hud_upgrade/night name = "Basic Nightvision HUD upgrade" desc = "Allows HUD to turn a basic nightvision mode. Can be installed only after damage scan upgrade" - icon_state = "nightvision" + item_state_inventory = "nightvision" + item_state_world = "nightvision_w" tier = 2 /obj/item/hud_upgrade/thermal name = "Thermal HUD upgrade" desc = "Allows HUD to turn a basic thermal mode, makes nightvision mode more comfortable for use. Can be installed only after basic nightvision upgrade" - icon_state = "thermal1" + item_state_inventory = "thermal" + item_state_world = "thermal_w" tier = 3 /obj/item/hud_upgrade/thermal_advanced name = "Advanced Thermal HUD upgrade" desc = "Makes thermal mode comfortable and combines it with nightvision mode. Can be installed only after thermal upgrade" - icon_state = "thermal2" + item_state_inventory = "thermaladv" + item_state_world = "thermaladv_w" tier = 4 /datum/action/item_action/hands_free/switch_hud_modes/ diff --git a/icons/obj/item_upgrades.dmi b/icons/obj/item_upgrades.dmi index c6b25a3c27ed0f7b45958abcb39a20a21eb82fa0..91739adeabea95cc7e6ac239268698e6f64019fd 100644 GIT binary patch delta 1001 zcmVgpiBL{Q4GJ0x0000DNk~Le0001B0001B2m=5B0M$l^3IG5AT~JI^ zMZmzovWs|WTUmg6dPq`YH#0OSEIiYfL2^qh_{BO;G%wbuQKp`n;&O$uQfBdFAGt*x zkI*tJMJB2+^ii(93#f~%hkI2r&*B6RtMV2cp|00P%ZL_t(& zf$f;tvZF8zMA;LDeRC2Z|Nom~VMGjAHWkR!Jh)$5oGzhTb(=VUj@5rB*E013qpMGMPVJ zuqc3!TSRPQR~7Jai%5Px^e|%HBF{r64@3b*%v+RYBn_Z{y=+m}(dzjy{6tJ!G!0t^ zM4yOhi?)>qKK8st*RgFtC~wg;kChLENZz7tpYnig!xmllT0g%;xO2qgvGI}N&k@fj zBW)h>dTpOyMR5LO=gSPve`;*bf9;>g2-gjj{DtBBk%BMV1Ro-+sB{2xY``uzob{rABIeC_waC49~I z!AY6={RMn&zn=sjL4Pz5cnO4W>h~CMyXzu+{*u)ZoZkH delta 371 zcmV-(0gV2r2)6@SiBL{Q4GJ0x0000DNk~Le0000$0000$1Oos709Z$C?EnA(8&FJC zMZmzo%*->)%*@Q005dZ)|1$tH%m4uY|I7dY;Pq#-00001bW%=J06^y0W&i*HgOQt0 zf5%9Pi!&v&s2C_@$ix-W=K}T? z0DH|pum0mp{{R30yGcYrR7i>Kl)(+dAQVFrvOu#zl?gJ0VFK6yu|l&!GIrsH9SIcm zSbY1^6MjPQr|F+Euj{Lx&9=Q6Sat@MfBhMd8>k~UaK{V_)IgaT2m%BFthc@f%1l5& zAfU|R5X2#eo<;Y;Z9nLDzwL(}ppW$SXbl{F zck{_%Aawv2T_oT*8AwQN04`C*ab2f4#5Rx*NX?3_B#=7yfY=6lS3UB3z8nuk5mxqj R@QeTe002ovPDHLkV1j@ql+yqJ From 9529a0c175a45dfe2227ce743979e2961964a0e5 Mon Sep 17 00:00:00 2001 From: Dmitriy Resnyanskiy <62596930+L4rever@users.noreply.github.com> Date: Mon, 15 Jul 2024 21:16:38 +0500 Subject: [PATCH 17/36] Update code/modules/item_upgrades/item_upgrade.dm Co-authored-by: Chip11-n <50750952+Chip11-n@users.noreply.github.com> --- code/modules/item_upgrades/item_upgrade.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/item_upgrades/item_upgrade.dm b/code/modules/item_upgrades/item_upgrade.dm index 345f6eb9a79d..17c30710c1d1 100644 --- a/code/modules/item_upgrades/item_upgrade.dm +++ b/code/modules/item_upgrades/item_upgrade.dm @@ -154,7 +154,7 @@ item_state_world = "thermaladv_w" tier = 4 -/datum/action/item_action/hands_free/switch_hud_modes/ +/datum/action/item_action/hands_free/switch_hud_modes name = "Switch Mode" button_overlay_icon = 'icons/obj/clothing/goggles.dmi' var/hud_mode From 51384153f2a86a4399e9dfd7390d87693cb67fea Mon Sep 17 00:00:00 2001 From: "D. Resnyanskiy" Date: Sun, 21 Jul 2024 01:22:21 +0500 Subject: [PATCH 18/36] Added sound for uploading --- code/modules/research/rdconsole.dm | 1 + sound/machines/disk-upload.ogg | Bin 0 -> 29466 bytes 2 files changed, 1 insertion(+) create mode 100644 sound/machines/disk-upload.ogg diff --git a/code/modules/research/rdconsole.dm b/code/modules/research/rdconsole.dm index 444c5510481d..80d08cea5168 100644 --- a/code/modules/research/rdconsole.dm +++ b/code/modules/research/rdconsole.dm @@ -132,6 +132,7 @@ ADD_TO_GLOBAL_LIST(/obj/machinery/computer/rdconsole, RDcomputer_list) if(istype(D, /obj/item/weapon/disk/research_points)) var/obj/item/weapon/disk/research_points/disk = D to_chat(user, "[name] received [disk.stored_points] research points from [disk.name]") + playsound(get_turf(src), 'sound/machines/disk-upload.ogg', VOL_EFFECTS_MASTER) files.research_points += disk.stored_points user.remove_from_mob(disk) qdel(disk) diff --git a/sound/machines/disk-upload.ogg b/sound/machines/disk-upload.ogg new file mode 100644 index 0000000000000000000000000000000000000000..01f71e65037166ad6ff3aa79a18ebedfcb0af621 GIT binary patch literal 29466 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 literal 0 HcmV?d00001 From 92359a4332e8f1e75406d9f3673def29fc47457d Mon Sep 17 00:00:00 2001 From: "D. Resnyanskiy" Date: Sun, 21 Jul 2024 02:03:43 +0500 Subject: [PATCH 19/36] Added sound to all disks --- code/modules/research/rdconsole.dm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/code/modules/research/rdconsole.dm b/code/modules/research/rdconsole.dm index 80d08cea5168..b40f9391a9b9 100644 --- a/code/modules/research/rdconsole.dm +++ b/code/modules/research/rdconsole.dm @@ -132,7 +132,7 @@ ADD_TO_GLOBAL_LIST(/obj/machinery/computer/rdconsole, RDcomputer_list) if(istype(D, /obj/item/weapon/disk/research_points)) var/obj/item/weapon/disk/research_points/disk = D to_chat(user, "[name] received [disk.stored_points] research points from [disk.name]") - playsound(get_turf(src), 'sound/machines/disk-upload.ogg', VOL_EFFECTS_MASTER) + playsound(src, 'sound/machines/disk-upload.ogg', VOL_EFFECTS_MASTER) files.research_points += disk.stored_points user.remove_from_mob(disk) qdel(disk) @@ -151,6 +151,7 @@ ADD_TO_GLOBAL_LIST(/obj/machinery/computer/rdconsole, RDcomputer_list) var/obj/item/weapon/disk/tech_disk/disk = D if(disk.stored_technology) to_chat(user, "You succesfully uploaded '[disk.stored_technology.name]' in the console") + playsound(src, 'sound/machines/disk-upload.ogg', VOL_EFFECTS_MASTER) files.tech_trees[disk.stored_technology.tech_type].shown = TRUE files.UnlockTechology(disk.stored_technology, TRUE) user.remove_from_mob(disk) From 1817c8a24dca2da74f5393839cc686baa947a0de Mon Sep 17 00:00:00 2001 From: KatoMarika Date: Thu, 8 Aug 2024 19:23:09 +0300 Subject: [PATCH 20/36] mob remove --- .../space_structures/cloning_lab.dmm | 547 ++---------------- .../space_structures/delivery_shuttle.dmm | 228 +------- 2 files changed, 79 insertions(+), 696 deletions(-) diff --git a/maps/templates/space_structures/cloning_lab.dmm b/maps/templates/space_structures/cloning_lab.dmm index e622e0c99623..e5a1a446cc6e 100644 --- a/maps/templates/space_structures/cloning_lab.dmm +++ b/maps/templates/space_structures/cloning_lab.dmm @@ -1,499 +1,54 @@ -//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE -"a" = ( -/turf/environment/space, -/area/space) -"b" = ( -/turf/simulated/wall/r_wall, -/area/space_structures/cloning_lab) -"c" = ( -/obj/structure/rack, -/obj/item/weapon/circuitboard/cloning, -/obj/item/stack/cable_coil/random, -/obj/item/weapon/shard, -/turf/simulated/floor/plating, -/area/space_structures/cloning_lab) -"d" = ( -/obj/machinery/light_construct/small{ - dir = 1 - }, -/obj/machinery/power/apc{ - dir = 1; - name = "Cloning Facility APC"; - pixel_y = 32 - }, -/turf/simulated/floor/plating, -/area/space_structures/cloning_lab) -"e" = ( -/turf/simulated/floor/plating, -/area/space_structures/cloning_lab) -"f" = ( -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plating, -/area/space_structures/cloning_lab) -"g" = ( -/obj/structure/reagent_dispensers/fueltank, -/turf/simulated/floor/plating, -/area/space_structures/cloning_lab) -"h" = ( -/obj/structure/reagent_dispensers/watertank, -/turf/simulated/floor/plating, -/area/space_structures/cloning_lab) -"i" = ( -/obj/structure/window/fulltile/reinforced{ - grilled = 1; - icon_state = "gr_window_reinforced" - }, -/turf/simulated/floor/plating, -/area/space_structures/cloning_lab) -"j" = ( -/obj/machinery/door/airlock/maintenance, -/turf/simulated/floor/plating, -/area/space_structures/cloning_lab) -"k" = ( -/obj/structure/table, -/obj/item/weapon/storage/firstaid/regular, -/obj/item/device/healthanalyzer{ - desc = "A prototype model of a hand-held body scanner able to distinguish vital signs of the subject."; - name = "Prototype Health Analyzer" - }, -/turf/simulated/floor{ - dir = 1; - icon_state = "white" - }, -/area/space_structures/cloning_lab) -"l" = ( -/obj/structure/table, -/turf/simulated/floor{ - dir = 1; - icon_state = "white" - }, -/area/space_structures/cloning_lab) -"m" = ( -/obj/structure/table, -/obj/item/weapon/storage/box/syringes, -/turf/simulated/floor{ - dir = 1; - icon_state = "white" - }, -/area/space_structures/cloning_lab) -"n" = ( -/obj/structure/table, -/obj/structure/bedsheetbin, -/obj/machinery/light{ - dir = 1 - }, -/turf/simulated/floor{ - dir = 1; - icon_state = "white" - }, -/area/space_structures/cloning_lab) -"o" = ( -/turf/simulated/floor{ - dir = 1; - icon_state = "white" - }, -/area/space_structures/cloning_lab) -"p" = ( -/obj/structure/sign/nanotrasen, -/turf/simulated/wall/r_wall, -/area/space_structures/cloning_lab) -"q" = ( -/obj/random/vending/snack, -/turf/simulated/floor/airless, -/area/space_structures/cloning_lab) -"r" = ( -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor, -/area/space_structures/cloning_lab) -"s" = ( -/obj/structure/sign/directions/science{ - dir = 8 - }, -/turf/simulated/wall/r_wall, -/area/space_structures/cloning_lab) -"t" = ( -/obj/effect/decal/cleanable/blood, -/obj/effect/decal/remains/human, -/turf/simulated/floor, -/area/space_structures/cloning_lab) -"u" = ( -/obj/machinery/iv_drip, -/turf/simulated/floor, -/area/space_structures/cloning_lab) -"v" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/small{ - dir = 4 - }, -/obj/item/weapon/bedsheet/purple, -/obj/structure/stool/bed, -/turf/simulated/floor, -/area/space_structures/cloning_lab) -"w" = ( -/obj/effect/decal/turf_decal{ - dir = 8; - icon_state = "warn" - }, -/turf/simulated/floor{ - icon_state = "white" - }, -/area/space_structures/cloning_lab) -"x" = ( -/obj/structure/sign/departments/science, -/turf/simulated/wall/r_wall, -/area/space_structures/cloning_lab) -"y" = ( -/turf/simulated/floor, -/area/space_structures/cloning_lab) -"z" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/airless, -/area/space_structures/cloning_lab) -"A" = ( -/turf/simulated/floor/plating/airless, -/area/space_structures/cloning_lab) -"B" = ( -/obj/structure/stool/bed/chair/comfy/white{ - dir = 8 - }, -/turf/simulated/floor, -/area/space_structures/cloning_lab) -"C" = ( -/obj/machinery/door/airlock/research/glass{ - name = "Reabilitaion Chamber"; - dir = 4 - }, -/turf/simulated/floor, -/area/space_structures/cloning_lab) -"D" = ( -/obj/structure/stool/bed/chair, -/turf/simulated/floor{ - dir = 1; - icon_state = "white" - }, -/area/space_structures/cloning_lab) -"E" = ( -/obj/machinery/door/airlock/research{ - name = "Cloning Facility"; - dir = 4 - }, -/turf/simulated/floor, -/area/space_structures/cloning_lab) -"F" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/item/weapon/book/manual/wiki/medical_genetics, -/obj/structure/table, -/obj/item/weapon/disk/tech_disk/hud, -/turf/simulated/floor, -/area/space_structures/cloning_lab) -"G" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/small{ - dir = 4 - }, -/mob/living/simple_animal/hostile/syndicate/ranged/space/elite, -/turf/simulated/floor, -/area/space_structures/cloning_lab) -"H" = ( -/obj/machinery/clonepod, -/turf/simulated/floor{ - dir = 1; - icon_state = "white" - }, -/area/space_structures/cloning_lab) -"I" = ( -/obj/structure/computerframe{ - anchored = 1 - }, -/obj/machinery/light, -/turf/simulated/floor{ - dir = 1; - icon_state = "white" - }, -/area/space_structures/cloning_lab) -"J" = ( -/obj/machinery/dna_scannernew, -/turf/simulated/floor{ - dir = 1; - icon_state = "white" - }, -/area/space_structures/cloning_lab) -"K" = ( -/obj/structure/table, -/obj/item/device/flashlight/lamp, -/turf/simulated/floor{ - dir = 1; - icon_state = "white" - }, -/area/space_structures/cloning_lab) -"L" = ( -/obj/structure/table, -/obj/item/weapon/disk/research_points, -/obj/item/weapon/paper/cloning_lab, -/turf/simulated/floor{ - dir = 1; - icon_state = "white" - }, -/area/space_structures/cloning_lab) -"M" = ( -/obj/structure/filingcabinet/chestdrawer, -/obj/item/weapon/paper/cloning_log, -/turf/simulated/floor{ - dir = 1; - icon_state = "white" - }, -/area/space_structures/cloning_lab) -"O" = ( -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/airless, -/area/space_structures/cloning_lab) -"Q" = ( -/turf/simulated/floor/airless, -/area/space_structures/cloning_lab) -"V" = ( -/mob/living/simple_animal/hostile/syndicate/melee, -/turf/simulated/floor, -/area/space_structures/cloning_lab) +"a" = (/turf/environment/space,/area/space) +"b" = (/turf/simulated/wall/r_wall,/area/space_structures/cloning_lab) +"c" = (/obj/structure/rack,/obj/item/weapon/circuitboard/cloning,/obj/item/stack/cable_coil/random,/obj/item/weapon/shard,/turf/simulated/floor/plating,/area/space_structures/cloning_lab) +"d" = (/obj/machinery/light_construct/small{dir = 1},/obj/machinery/power/apc{dir = 1; name = "Cloning Facility APC"; pixel_y = 32},/turf/simulated/floor/plating,/area/space_structures/cloning_lab) +"e" = (/turf/simulated/floor/plating,/area/space_structures/cloning_lab) +"f" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/space_structures/cloning_lab) +"g" = (/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor/plating,/area/space_structures/cloning_lab) +"h" = (/obj/structure/reagent_dispensers/watertank,/turf/simulated/floor/plating,/area/space_structures/cloning_lab) +"i" = (/obj/structure/window/fulltile/reinforced{grilled = 1; icon_state = "gr_window_reinforced"},/turf/simulated/floor/plating,/area/space_structures/cloning_lab) +"j" = (/obj/machinery/door/airlock/maintenance,/turf/simulated/floor/plating,/area/space_structures/cloning_lab) +"k" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/regular,/obj/item/device/healthanalyzer{desc = "A prototype model of a hand-held body scanner able to distinguish vital signs of the subject."; name = "Prototype Health Analyzer"},/turf/simulated/floor{dir = 1; icon_state = "white"},/area/space_structures/cloning_lab) +"l" = (/obj/structure/table,/turf/simulated/floor{dir = 1; icon_state = "white"},/area/space_structures/cloning_lab) +"m" = (/obj/structure/table,/obj/item/weapon/storage/box/syringes,/turf/simulated/floor{dir = 1; icon_state = "white"},/area/space_structures/cloning_lab) +"n" = (/obj/structure/table,/obj/structure/bedsheetbin,/obj/machinery/light{dir = 1},/turf/simulated/floor{dir = 1; icon_state = "white"},/area/space_structures/cloning_lab) +"o" = (/turf/simulated/floor{dir = 1; icon_state = "white"},/area/space_structures/cloning_lab) +"p" = (/obj/structure/sign/nanotrasen,/turf/simulated/wall/r_wall,/area/space_structures/cloning_lab) +"q" = (/obj/random/vending/snack,/turf/simulated/floor/airless,/area/space_structures/cloning_lab) +"r" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor,/area/space_structures/cloning_lab) +"s" = (/obj/structure/sign/directions/science{dir = 8},/turf/simulated/wall/r_wall,/area/space_structures/cloning_lab) +"t" = (/obj/effect/decal/cleanable/blood,/obj/effect/decal/remains/human,/turf/simulated/floor,/area/space_structures/cloning_lab) +"u" = (/obj/machinery/iv_drip,/turf/simulated/floor,/area/space_structures/cloning_lab) +"v" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/light/small{dir = 4},/obj/item/weapon/bedsheet/purple,/obj/structure/stool/bed,/turf/simulated/floor,/area/space_structures/cloning_lab) +"w" = (/obj/effect/decal/turf_decal{dir = 8; icon_state = "warn"},/turf/simulated/floor{icon_state = "white"},/area/space_structures/cloning_lab) +"x" = (/obj/structure/sign/departments/science,/turf/simulated/wall/r_wall,/area/space_structures/cloning_lab) +"y" = (/turf/simulated/floor,/area/space_structures/cloning_lab) +"z" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/airless,/area/space_structures/cloning_lab) +"A" = (/turf/simulated/floor/plating/airless,/area/space_structures/cloning_lab) +"B" = (/obj/structure/stool/bed/chair/comfy/white{dir = 8},/turf/simulated/floor,/area/space_structures/cloning_lab) +"C" = (/obj/machinery/door/airlock/research/glass{name = "Reabilitaion Chamber"; dir = 4},/turf/simulated/floor,/area/space_structures/cloning_lab) +"D" = (/obj/structure/stool/bed/chair,/turf/simulated/floor{dir = 1; icon_state = "white"},/area/space_structures/cloning_lab) +"E" = (/obj/machinery/door/airlock/research{name = "Cloning Facility"; dir = 4},/turf/simulated/floor,/area/space_structures/cloning_lab) +"F" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/item/weapon/book/manual/wiki/medical_genetics,/obj/structure/table,/obj/item/weapon/disk/tech_disk/hud,/turf/simulated/floor,/area/space_structures/cloning_lab) +"G" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/light/small{dir = 4},/turf/simulated/floor,/area/space_structures/cloning_lab) +"H" = (/obj/machinery/clonepod,/turf/simulated/floor{dir = 1; icon_state = "white"},/area/space_structures/cloning_lab) +"I" = (/obj/structure/computerframe{anchored = 1},/obj/machinery/light,/turf/simulated/floor{dir = 1; icon_state = "white"},/area/space_structures/cloning_lab) +"J" = (/obj/machinery/dna_scannernew,/turf/simulated/floor{dir = 1; icon_state = "white"},/area/space_structures/cloning_lab) +"K" = (/obj/structure/table,/obj/item/device/flashlight/lamp,/turf/simulated/floor{dir = 1; icon_state = "white"},/area/space_structures/cloning_lab) +"L" = (/obj/structure/table,/obj/item/weapon/disk/research_points,/obj/item/weapon/paper/cloning_lab,/turf/simulated/floor{dir = 1; icon_state = "white"},/area/space_structures/cloning_lab) +"M" = (/obj/structure/filingcabinet/chestdrawer,/obj/item/weapon/paper/cloning_log,/turf/simulated/floor{dir = 1; icon_state = "white"},/area/space_structures/cloning_lab) +"O" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/airless,/area/space_structures/cloning_lab) +"Q" = (/turf/simulated/floor/airless,/area/space_structures/cloning_lab) (1,1,1) = {" -a -a -a -a -a -i -i -i -i -i -"} -(2,1,1) = {" -a -a -a -a -a -i -t -B -F -i -"} -(3,1,1) = {" -a -a -a -a -a -i -u -r -r -i -"} -(4,1,1) = {" -a -a -a -a -a -b -v -V -G -b -"} -(5,1,1) = {" -a -a -a -a -a -b -b -C -b -b -"} -(6,1,1) = {" -a -a -a -a -a -a -b -y -b -a -"} -(7,1,1) = {" -a -a -a -a -a -b -b -C -b -b -"} -(8,1,1) = {" -a -a -a -a -b -b -w -w -w -i -"} -(9,1,1) = {" -a -a -a -a -i -k -o -o -H -i -"} -(10,1,1) = {" -a -a -a -a -i -l -o -D -I -b -"} -(11,1,1) = {" -b -b -b -b -b -m -o -o -J -b -"} -(12,1,1) = {" -b -c -f -f -b -n -o -o -K -i -"} -(13,1,1) = {" -b -d -e -f -j -o -o -D -L -i -"} -(14,1,1) = {" -b -e -g -h -b -o -o -o -M -b -"} -(15,1,1) = {" -b -b -b -b -b -o -o -o -o -b -"} -(16,1,1) = {" -a -a -a -a -b -p -x -E -b -b -"} -(17,1,1) = {" -a -a -a -a -i -q -Q -O -A -b -"} -(18,1,1) = {" -a -a -a -a -i -O -z -A -A -A -"} -(19,1,1) = {" -a -a -a -a -b -s -A -A -a -a -"} -(20,1,1) = {" -a -a -a -a -a -b -i -a -a -a +aaaaaaaaaabbbbbaaaaa +aaaaaaaaaabcdebaaaaa +aaaaaaaaaabfegbaaaaa +aaaaaaaaaabffhbaaaaa +aaaaaaabiibbjbbbiiba +iiibbabbklmnooopqOsb +ituvbbbwoooooooxQzAi +iBryCyCwoDooDooEOAAa +iFrGbbbwHIJKLMobAAaa +iiibbabiibbiibbbbAaa "} diff --git a/maps/templates/space_structures/delivery_shuttle.dmm b/maps/templates/space_structures/delivery_shuttle.dmm index 61215c3afe0e..4620100c548e 100644 --- a/maps/templates/space_structures/delivery_shuttle.dmm +++ b/maps/templates/space_structures/delivery_shuttle.dmm @@ -1,203 +1,31 @@ -//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE -"a" = ( -/turf/environment/space, -/area/space) -"b" = ( -/turf/environment/space, -/turf/simulated/shuttle/wall{ - dir = 2; - icon_state = "swall_s6" - }, -/area/space_structures/delivery_shuttle) -"c" = ( -/obj/structure/shuttle/window, -/turf/simulated/shuttle/floor{ - icon_state = "floor3" - }, -/area/space_structures/delivery_shuttle) -"d" = ( -/turf/environment/space, -/turf/simulated/shuttle/wall{ - dir = 2; - icon_state = "swall_s10" - }, -/area/space_structures/delivery_shuttle) -"e" = ( -/turf/simulated/shuttle/wall{ - dir = 2; - icon_state = "swall3" - }, -/area/space_structures/delivery_shuttle) -"f" = ( -/obj/structure/computerframe{ - anchored = 1; - dir = 2 - }, -/obj/item/weapon/shard, -/obj/machinery/door_control{ - id = "pizza"; - name = "Cargo Compartment Control"; - pixel_x = 25 - }, -/obj/machinery/light/small{ - dir = 8 - }, -/obj/item/weapon/disk/tech_disk/hud, -/turf/simulated/shuttle/floor{ - icon_state = "floor3" - }, -/area/space_structures/delivery_shuttle) -"g" = ( -/obj/machinery/door/unpowered/shuttle, -/turf/simulated/shuttle/floor{ - icon_state = "floor3" - }, -/area/space_structures/delivery_shuttle) -"h" = ( -/obj/structure/stool/bed/chair/schair{ - dir = 1 - }, -/mob/living/simple_animal/hostile/syndicate/ranged/space/elite, -/turf/simulated/shuttle/floor{ - icon_state = "floor3" - }, -/area/space_structures/delivery_shuttle) -"i" = ( -/turf/simulated/shuttle/wall{ - dir = 2; - icon_state = "swallc4" - }, -/area/space_structures/delivery_shuttle) -"j" = ( -/turf/simulated/shuttle/wall{ - dir = 2; - icon_state = "swallc3" - }, -/area/space_structures/delivery_shuttle) -"k" = ( -/obj/structure/closet/crate/freezer/rations, -/turf/simulated/shuttle/floor{ - icon_state = "floor3" - }, -/area/space_structures/delivery_shuttle) -"l" = ( -/obj/structure/closet/crate/freezer, -/obj/item/pizzabox/margherita, -/obj/item/pizzabox/meat, -/obj/item/pizzabox/mushroom, -/obj/item/pizzabox/vegetable, -/turf/simulated/shuttle/floor{ - icon_state = "floor3" - }, -/area/space_structures/delivery_shuttle) -"m" = ( -/obj/structure/closet/crate/freezer, -/obj/item/weapon/reagent_containers/food/snacks/sushi, -/obj/item/weapon/reagent_containers/food/snacks/sushi, -/obj/item/weapon/reagent_containers/food/snacks/sashimi, -/obj/item/weapon/reagent_containers/food/snacks/sashimi, -/turf/simulated/shuttle/floor{ - icon_state = "floor3" - }, -/area/space_structures/delivery_shuttle) -"n" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/turf/simulated/shuttle/floor{ - icon_state = "floor3" - }, -/area/space_structures/delivery_shuttle) -"o" = ( -/turf/simulated/shuttle/floor{ - icon_state = "floor3" - }, -/area/space_structures/delivery_shuttle) -"p" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/turf/simulated/shuttle/floor{ - icon_state = "floor3" - }, -/area/space_structures/delivery_shuttle) -"q" = ( -/obj/structure/shuttle/engine/heater, -/turf/simulated/shuttle/wall{ - dir = 2; - icon_state = "swall3" - }, -/area/space_structures/delivery_shuttle) -"r" = ( -/obj/machinery/door/poddoor/shutters{ - id = "pizza"; - name = "Cargo Compartment Shutters" - }, -/turf/simulated/shuttle/floor{ - icon_state = "floor3" - }, -/area/space_structures/delivery_shuttle) -"s" = ( -/obj/structure/shuttle/engine/propulsion, -/turf/environment/space, -/area/space_structures/delivery_shuttle) -"t" = ( -/obj/structure/shuttle/engine/propulsion{ - desc = "Looks like meteor hit the engine!"; - dir = 4; - icon_state = "burst_r"; - name = "broken propulsion" - }, -/turf/environment/space, -/area/space_structures/delivery_shuttle) +"a" = (/turf/environment/space,/area/space) +"b" = (/turf/environment/space,/turf/simulated/shuttle/wall{dir = 2; icon_state = "swall_s6"},/area/space_structures/delivery_shuttle) +"c" = (/obj/structure/shuttle/window,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space_structures/delivery_shuttle) +"d" = (/turf/environment/space,/turf/simulated/shuttle/wall{dir = 2; icon_state = "swall_s10"},/area/space_structures/delivery_shuttle) +"e" = (/turf/simulated/shuttle/wall{dir = 2; icon_state = "swall3"},/area/space_structures/delivery_shuttle) +"f" = (/obj/structure/computerframe{anchored = 1; dir = 2},/obj/item/weapon/shard,/obj/machinery/door_control{id = "pizza"; name = "Cargo Compartment Control"; pixel_x = 25},/obj/machinery/light/small{dir = 8},/obj/item/weapon/disk/tech_disk/hud,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space_structures/delivery_shuttle) +"g" = (/obj/machinery/door/unpowered/shuttle,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space_structures/delivery_shuttle) +"h" = (/obj/structure/stool/bed/chair/schair{dir = 1},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space_structures/delivery_shuttle) +"i" = (/turf/simulated/shuttle/wall{dir = 2; icon_state = "swallc4"},/area/space_structures/delivery_shuttle) +"j" = (/turf/simulated/shuttle/wall{dir = 2; icon_state = "swallc3"},/area/space_structures/delivery_shuttle) +"k" = (/obj/structure/closet/crate/freezer/rations,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space_structures/delivery_shuttle) +"l" = (/obj/structure/closet/crate/freezer,/obj/item/pizzabox/margherita,/obj/item/pizzabox/meat,/obj/item/pizzabox/mushroom,/obj/item/pizzabox/vegetable,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space_structures/delivery_shuttle) +"m" = (/obj/structure/closet/crate/freezer,/obj/item/weapon/reagent_containers/food/snacks/sushi,/obj/item/weapon/reagent_containers/food/snacks/sushi,/obj/item/weapon/reagent_containers/food/snacks/sashimi,/obj/item/weapon/reagent_containers/food/snacks/sashimi,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space_structures/delivery_shuttle) +"n" = (/obj/machinery/light/small{dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space_structures/delivery_shuttle) +"o" = (/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space_structures/delivery_shuttle) +"p" = (/obj/machinery/light/small{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space_structures/delivery_shuttle) +"q" = (/obj/structure/shuttle/engine/heater,/turf/simulated/shuttle/wall{dir = 2; icon_state = "swall3"},/area/space_structures/delivery_shuttle) +"r" = (/obj/machinery/door/poddoor/shutters{id = "pizza"; name = "Cargo Compartment Shutters"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space_structures/delivery_shuttle) +"s" = (/obj/structure/shuttle/engine/propulsion,/turf/environment/space,/area/space_structures/delivery_shuttle) +"t" = (/obj/structure/shuttle/engine/propulsion{desc = "Looks like meteor hit the engine!"; dir = 4; icon_state = "burst_r"; name = "broken propulsion"},/turf/environment/space,/area/space_structures/delivery_shuttle) (1,1,1) = {" -a -a -a -b -e -e -q -s -"} -(2,1,1) = {" -b -e -g -i -k -n -r -a -"} -(3,1,1) = {" -c -f -h -c -l -o -r -a -"} -(4,1,1) = {" -d -e -c -j -m -p -r -a -"} -(5,1,1) = {" -a -a -a -d -e -e -q -t +abcda +aefea +aghca +bicjd +eklme +enope +qrrrq +saaat "} From 858804c3548416b76aec605ac888fbaa51463a0c Mon Sep 17 00:00:00 2001 From: KatoMarika Date: Thu, 8 Aug 2024 19:33:01 +0300 Subject: [PATCH 21/36] fix for mob remove --- .../space_structures/cloning_lab.dmm | 542 ++++++++++++++++-- .../space_structures/delivery_shuttle.dmm | 227 +++++++- 2 files changed, 690 insertions(+), 79 deletions(-) diff --git a/maps/templates/space_structures/cloning_lab.dmm b/maps/templates/space_structures/cloning_lab.dmm index e5a1a446cc6e..c6cc9f22f15c 100644 --- a/maps/templates/space_structures/cloning_lab.dmm +++ b/maps/templates/space_structures/cloning_lab.dmm @@ -1,54 +1,494 @@ -"a" = (/turf/environment/space,/area/space) -"b" = (/turf/simulated/wall/r_wall,/area/space_structures/cloning_lab) -"c" = (/obj/structure/rack,/obj/item/weapon/circuitboard/cloning,/obj/item/stack/cable_coil/random,/obj/item/weapon/shard,/turf/simulated/floor/plating,/area/space_structures/cloning_lab) -"d" = (/obj/machinery/light_construct/small{dir = 1},/obj/machinery/power/apc{dir = 1; name = "Cloning Facility APC"; pixel_y = 32},/turf/simulated/floor/plating,/area/space_structures/cloning_lab) -"e" = (/turf/simulated/floor/plating,/area/space_structures/cloning_lab) -"f" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/space_structures/cloning_lab) -"g" = (/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor/plating,/area/space_structures/cloning_lab) -"h" = (/obj/structure/reagent_dispensers/watertank,/turf/simulated/floor/plating,/area/space_structures/cloning_lab) -"i" = (/obj/structure/window/fulltile/reinforced{grilled = 1; icon_state = "gr_window_reinforced"},/turf/simulated/floor/plating,/area/space_structures/cloning_lab) -"j" = (/obj/machinery/door/airlock/maintenance,/turf/simulated/floor/plating,/area/space_structures/cloning_lab) -"k" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/regular,/obj/item/device/healthanalyzer{desc = "A prototype model of a hand-held body scanner able to distinguish vital signs of the subject."; name = "Prototype Health Analyzer"},/turf/simulated/floor{dir = 1; icon_state = "white"},/area/space_structures/cloning_lab) -"l" = (/obj/structure/table,/turf/simulated/floor{dir = 1; icon_state = "white"},/area/space_structures/cloning_lab) -"m" = (/obj/structure/table,/obj/item/weapon/storage/box/syringes,/turf/simulated/floor{dir = 1; icon_state = "white"},/area/space_structures/cloning_lab) -"n" = (/obj/structure/table,/obj/structure/bedsheetbin,/obj/machinery/light{dir = 1},/turf/simulated/floor{dir = 1; icon_state = "white"},/area/space_structures/cloning_lab) -"o" = (/turf/simulated/floor{dir = 1; icon_state = "white"},/area/space_structures/cloning_lab) -"p" = (/obj/structure/sign/nanotrasen,/turf/simulated/wall/r_wall,/area/space_structures/cloning_lab) -"q" = (/obj/random/vending/snack,/turf/simulated/floor/airless,/area/space_structures/cloning_lab) -"r" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor,/area/space_structures/cloning_lab) -"s" = (/obj/structure/sign/directions/science{dir = 8},/turf/simulated/wall/r_wall,/area/space_structures/cloning_lab) -"t" = (/obj/effect/decal/cleanable/blood,/obj/effect/decal/remains/human,/turf/simulated/floor,/area/space_structures/cloning_lab) -"u" = (/obj/machinery/iv_drip,/turf/simulated/floor,/area/space_structures/cloning_lab) -"v" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/light/small{dir = 4},/obj/item/weapon/bedsheet/purple,/obj/structure/stool/bed,/turf/simulated/floor,/area/space_structures/cloning_lab) -"w" = (/obj/effect/decal/turf_decal{dir = 8; icon_state = "warn"},/turf/simulated/floor{icon_state = "white"},/area/space_structures/cloning_lab) -"x" = (/obj/structure/sign/departments/science,/turf/simulated/wall/r_wall,/area/space_structures/cloning_lab) -"y" = (/turf/simulated/floor,/area/space_structures/cloning_lab) -"z" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/airless,/area/space_structures/cloning_lab) -"A" = (/turf/simulated/floor/plating/airless,/area/space_structures/cloning_lab) -"B" = (/obj/structure/stool/bed/chair/comfy/white{dir = 8},/turf/simulated/floor,/area/space_structures/cloning_lab) -"C" = (/obj/machinery/door/airlock/research/glass{name = "Reabilitaion Chamber"; dir = 4},/turf/simulated/floor,/area/space_structures/cloning_lab) -"D" = (/obj/structure/stool/bed/chair,/turf/simulated/floor{dir = 1; icon_state = "white"},/area/space_structures/cloning_lab) -"E" = (/obj/machinery/door/airlock/research{name = "Cloning Facility"; dir = 4},/turf/simulated/floor,/area/space_structures/cloning_lab) -"F" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/item/weapon/book/manual/wiki/medical_genetics,/obj/structure/table,/obj/item/weapon/disk/tech_disk/hud,/turf/simulated/floor,/area/space_structures/cloning_lab) -"G" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/light/small{dir = 4},/turf/simulated/floor,/area/space_structures/cloning_lab) -"H" = (/obj/machinery/clonepod,/turf/simulated/floor{dir = 1; icon_state = "white"},/area/space_structures/cloning_lab) -"I" = (/obj/structure/computerframe{anchored = 1},/obj/machinery/light,/turf/simulated/floor{dir = 1; icon_state = "white"},/area/space_structures/cloning_lab) -"J" = (/obj/machinery/dna_scannernew,/turf/simulated/floor{dir = 1; icon_state = "white"},/area/space_structures/cloning_lab) -"K" = (/obj/structure/table,/obj/item/device/flashlight/lamp,/turf/simulated/floor{dir = 1; icon_state = "white"},/area/space_structures/cloning_lab) -"L" = (/obj/structure/table,/obj/item/weapon/disk/research_points,/obj/item/weapon/paper/cloning_lab,/turf/simulated/floor{dir = 1; icon_state = "white"},/area/space_structures/cloning_lab) -"M" = (/obj/structure/filingcabinet/chestdrawer,/obj/item/weapon/paper/cloning_log,/turf/simulated/floor{dir = 1; icon_state = "white"},/area/space_structures/cloning_lab) -"O" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/airless,/area/space_structures/cloning_lab) -"Q" = (/turf/simulated/floor/airless,/area/space_structures/cloning_lab) +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/environment/space, +/area/space) +"b" = ( +/turf/simulated/wall/r_wall, +/area/space_structures/cloning_lab) +"c" = ( +/obj/structure/rack, +/obj/item/weapon/circuitboard/cloning, +/obj/item/stack/cable_coil/random, +/obj/item/weapon/shard, +/turf/simulated/floor/plating, +/area/space_structures/cloning_lab) +"d" = ( +/obj/machinery/light_construct/small{ + dir = 1 + }, +/obj/machinery/power/apc{ + dir = 1; + name = "Cloning Facility APC"; + pixel_y = 32 + }, +/turf/simulated/floor/plating, +/area/space_structures/cloning_lab) +"e" = ( +/turf/simulated/floor/plating, +/area/space_structures/cloning_lab) +"f" = ( +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plating, +/area/space_structures/cloning_lab) +"g" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/simulated/floor/plating, +/area/space_structures/cloning_lab) +"h" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/simulated/floor/plating, +/area/space_structures/cloning_lab) +"i" = ( +/obj/structure/window/fulltile/reinforced{ + grilled = 1; + icon_state = "gr_window_reinforced" + }, +/turf/simulated/floor/plating, +/area/space_structures/cloning_lab) +"j" = ( +/obj/machinery/door/airlock/maintenance, +/turf/simulated/floor/plating, +/area/space_structures/cloning_lab) +"k" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/regular, +/obj/item/device/healthanalyzer{ + desc = "A prototype model of a hand-held body scanner able to distinguish vital signs of the subject."; + name = "Prototype Health Analyzer" + }, +/turf/simulated/floor{ + dir = 1; + icon_state = "white" + }, +/area/space_structures/cloning_lab) +"l" = ( +/obj/structure/table, +/turf/simulated/floor{ + dir = 1; + icon_state = "white" + }, +/area/space_structures/cloning_lab) +"m" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/syringes, +/turf/simulated/floor{ + dir = 1; + icon_state = "white" + }, +/area/space_structures/cloning_lab) +"n" = ( +/obj/structure/table, +/obj/structure/bedsheetbin, +/obj/machinery/light{ + dir = 1 + }, +/turf/simulated/floor{ + dir = 1; + icon_state = "white" + }, +/area/space_structures/cloning_lab) +"o" = ( +/turf/simulated/floor{ + dir = 1; + icon_state = "white" + }, +/area/space_structures/cloning_lab) +"p" = ( +/obj/structure/sign/nanotrasen, +/turf/simulated/wall/r_wall, +/area/space_structures/cloning_lab) +"q" = ( +/obj/random/vending/snack, +/turf/simulated/floor/airless, +/area/space_structures/cloning_lab) +"r" = ( +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor, +/area/space_structures/cloning_lab) +"s" = ( +/obj/structure/sign/directions/science{ + dir = 8 + }, +/turf/simulated/wall/r_wall, +/area/space_structures/cloning_lab) +"t" = ( +/obj/effect/decal/cleanable/blood, +/obj/effect/decal/remains/human, +/turf/simulated/floor, +/area/space_structures/cloning_lab) +"u" = ( +/obj/machinery/iv_drip, +/turf/simulated/floor, +/area/space_structures/cloning_lab) +"v" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/item/weapon/bedsheet/purple, +/obj/structure/stool/bed, +/turf/simulated/floor, +/area/space_structures/cloning_lab) +"w" = ( +/obj/effect/decal/turf_decal{ + dir = 8; + icon_state = "warn" + }, +/turf/simulated/floor{ + icon_state = "white" + }, +/area/space_structures/cloning_lab) +"x" = ( +/obj/structure/sign/departments/science, +/turf/simulated/wall/r_wall, +/area/space_structures/cloning_lab) +"y" = ( +/turf/simulated/floor, +/area/space_structures/cloning_lab) +"z" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/airless, +/area/space_structures/cloning_lab) +"A" = ( +/turf/simulated/floor/plating/airless, +/area/space_structures/cloning_lab) +"B" = ( +/obj/structure/stool/bed/chair/comfy/white{ + dir = 8 + }, +/turf/simulated/floor, +/area/space_structures/cloning_lab) +"C" = ( +/obj/machinery/door/airlock/research/glass{ + dir = 4; + name = "Reabilitaion Chamber" + }, +/turf/simulated/floor, +/area/space_structures/cloning_lab) +"D" = ( +/obj/structure/stool/bed/chair, +/turf/simulated/floor{ + dir = 1; + icon_state = "white" + }, +/area/space_structures/cloning_lab) +"E" = ( +/obj/machinery/door/airlock/research{ + dir = 4; + name = "Cloning Facility" + }, +/turf/simulated/floor, +/area/space_structures/cloning_lab) +"F" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/item/weapon/book/manual/wiki/medical_genetics, +/obj/structure/table, +/obj/item/weapon/disk/tech_disk/hud, +/turf/simulated/floor, +/area/space_structures/cloning_lab) +"G" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/simulated/floor, +/area/space_structures/cloning_lab) +"H" = ( +/obj/machinery/clonepod, +/turf/simulated/floor{ + dir = 1; + icon_state = "white" + }, +/area/space_structures/cloning_lab) +"I" = ( +/obj/structure/computerframe{ + anchored = 1 + }, +/obj/machinery/light, +/turf/simulated/floor{ + dir = 1; + icon_state = "white" + }, +/area/space_structures/cloning_lab) +"J" = ( +/obj/machinery/dna_scannernew, +/turf/simulated/floor{ + dir = 1; + icon_state = "white" + }, +/area/space_structures/cloning_lab) +"K" = ( +/obj/structure/table, +/obj/item/device/flashlight/lamp, +/turf/simulated/floor{ + dir = 1; + icon_state = "white" + }, +/area/space_structures/cloning_lab) +"L" = ( +/obj/structure/table, +/obj/item/weapon/disk/research_points, +/obj/item/weapon/paper/cloning_lab, +/turf/simulated/floor{ + dir = 1; + icon_state = "white" + }, +/area/space_structures/cloning_lab) +"M" = ( +/obj/structure/filingcabinet/chestdrawer, +/obj/item/weapon/paper/cloning_log, +/turf/simulated/floor{ + dir = 1; + icon_state = "white" + }, +/area/space_structures/cloning_lab) +"O" = ( +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/airless, +/area/space_structures/cloning_lab) +"Q" = ( +/turf/simulated/floor/airless, +/area/space_structures/cloning_lab) (1,1,1) = {" -aaaaaaaaaabbbbbaaaaa -aaaaaaaaaabcdebaaaaa -aaaaaaaaaabfegbaaaaa -aaaaaaaaaabffhbaaaaa -aaaaaaabiibbjbbbiiba -iiibbabbklmnooopqOsb -ituvbbbwoooooooxQzAi -iBryCyCwoDooDooEOAAa -iFrGbbbwHIJKLMobAAaa -iiibbabiibbiibbbbAaa +a +a +a +a +a +i +i +i +i +i +"} +(2,1,1) = {" +a +a +a +a +a +i +t +B +F +i +"} +(3,1,1) = {" +a +a +a +a +a +i +u +r +r +i +"} +(4,1,1) = {" +a +a +a +a +a +b +v +y +G +b +"} +(5,1,1) = {" +a +a +a +a +a +b +b +C +b +b +"} +(6,1,1) = {" +a +a +a +a +a +a +b +y +b +a +"} +(7,1,1) = {" +a +a +a +a +a +b +b +C +b +b +"} +(8,1,1) = {" +a +a +a +a +b +b +w +w +w +i +"} +(9,1,1) = {" +a +a +a +a +i +k +o +o +H +i +"} +(10,1,1) = {" +a +a +a +a +i +l +o +D +I +b +"} +(11,1,1) = {" +b +b +b +b +b +m +o +o +J +b +"} +(12,1,1) = {" +b +c +f +f +b +n +o +o +K +i +"} +(13,1,1) = {" +b +d +e +f +j +o +o +D +L +i +"} +(14,1,1) = {" +b +e +g +h +b +o +o +o +M +b +"} +(15,1,1) = {" +b +b +b +b +b +o +o +o +o +b +"} +(16,1,1) = {" +a +a +a +a +b +p +x +E +b +b +"} +(17,1,1) = {" +a +a +a +a +i +q +Q +O +A +b +"} +(18,1,1) = {" +a +a +a +a +i +O +z +A +A +A +"} +(19,1,1) = {" +a +a +a +a +b +s +A +A +a +a +"} +(20,1,1) = {" +a +a +a +a +a +b +i +a +a +a "} diff --git a/maps/templates/space_structures/delivery_shuttle.dmm b/maps/templates/space_structures/delivery_shuttle.dmm index 4620100c548e..b441970cec10 100644 --- a/maps/templates/space_structures/delivery_shuttle.dmm +++ b/maps/templates/space_structures/delivery_shuttle.dmm @@ -1,31 +1,202 @@ -"a" = (/turf/environment/space,/area/space) -"b" = (/turf/environment/space,/turf/simulated/shuttle/wall{dir = 2; icon_state = "swall_s6"},/area/space_structures/delivery_shuttle) -"c" = (/obj/structure/shuttle/window,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space_structures/delivery_shuttle) -"d" = (/turf/environment/space,/turf/simulated/shuttle/wall{dir = 2; icon_state = "swall_s10"},/area/space_structures/delivery_shuttle) -"e" = (/turf/simulated/shuttle/wall{dir = 2; icon_state = "swall3"},/area/space_structures/delivery_shuttle) -"f" = (/obj/structure/computerframe{anchored = 1; dir = 2},/obj/item/weapon/shard,/obj/machinery/door_control{id = "pizza"; name = "Cargo Compartment Control"; pixel_x = 25},/obj/machinery/light/small{dir = 8},/obj/item/weapon/disk/tech_disk/hud,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space_structures/delivery_shuttle) -"g" = (/obj/machinery/door/unpowered/shuttle,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space_structures/delivery_shuttle) -"h" = (/obj/structure/stool/bed/chair/schair{dir = 1},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space_structures/delivery_shuttle) -"i" = (/turf/simulated/shuttle/wall{dir = 2; icon_state = "swallc4"},/area/space_structures/delivery_shuttle) -"j" = (/turf/simulated/shuttle/wall{dir = 2; icon_state = "swallc3"},/area/space_structures/delivery_shuttle) -"k" = (/obj/structure/closet/crate/freezer/rations,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space_structures/delivery_shuttle) -"l" = (/obj/structure/closet/crate/freezer,/obj/item/pizzabox/margherita,/obj/item/pizzabox/meat,/obj/item/pizzabox/mushroom,/obj/item/pizzabox/vegetable,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space_structures/delivery_shuttle) -"m" = (/obj/structure/closet/crate/freezer,/obj/item/weapon/reagent_containers/food/snacks/sushi,/obj/item/weapon/reagent_containers/food/snacks/sushi,/obj/item/weapon/reagent_containers/food/snacks/sashimi,/obj/item/weapon/reagent_containers/food/snacks/sashimi,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space_structures/delivery_shuttle) -"n" = (/obj/machinery/light/small{dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space_structures/delivery_shuttle) -"o" = (/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space_structures/delivery_shuttle) -"p" = (/obj/machinery/light/small{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space_structures/delivery_shuttle) -"q" = (/obj/structure/shuttle/engine/heater,/turf/simulated/shuttle/wall{dir = 2; icon_state = "swall3"},/area/space_structures/delivery_shuttle) -"r" = (/obj/machinery/door/poddoor/shutters{id = "pizza"; name = "Cargo Compartment Shutters"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space_structures/delivery_shuttle) -"s" = (/obj/structure/shuttle/engine/propulsion,/turf/environment/space,/area/space_structures/delivery_shuttle) -"t" = (/obj/structure/shuttle/engine/propulsion{desc = "Looks like meteor hit the engine!"; dir = 4; icon_state = "burst_r"; name = "broken propulsion"},/turf/environment/space,/area/space_structures/delivery_shuttle) +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/environment/space, +/area/space) +"b" = ( +/turf/environment/space, +/turf/simulated/shuttle/wall{ + dir = 2; + icon_state = "swall_s6" + }, +/area/space_structures/delivery_shuttle) +"c" = ( +/obj/structure/shuttle/window, +/turf/simulated/shuttle/floor{ + icon_state = "floor3" + }, +/area/space_structures/delivery_shuttle) +"d" = ( +/turf/environment/space, +/turf/simulated/shuttle/wall{ + dir = 2; + icon_state = "swall_s10" + }, +/area/space_structures/delivery_shuttle) +"e" = ( +/turf/simulated/shuttle/wall{ + dir = 2; + icon_state = "swall3" + }, +/area/space_structures/delivery_shuttle) +"f" = ( +/obj/structure/computerframe{ + anchored = 1; + dir = 2 + }, +/obj/item/weapon/shard, +/obj/machinery/door_control{ + id = "pizza"; + name = "Cargo Compartment Control"; + pixel_x = 25 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/item/weapon/disk/tech_disk/hud, +/turf/simulated/shuttle/floor{ + icon_state = "floor3" + }, +/area/space_structures/delivery_shuttle) +"g" = ( +/obj/machinery/door/unpowered/shuttle, +/turf/simulated/shuttle/floor{ + icon_state = "floor3" + }, +/area/space_structures/delivery_shuttle) +"h" = ( +/obj/structure/stool/bed/chair/schair{ + dir = 1 + }, +/turf/simulated/shuttle/floor{ + icon_state = "floor3" + }, +/area/space_structures/delivery_shuttle) +"i" = ( +/turf/simulated/shuttle/wall{ + dir = 2; + icon_state = "swallc4" + }, +/area/space_structures/delivery_shuttle) +"j" = ( +/turf/simulated/shuttle/wall{ + dir = 2; + icon_state = "swallc3" + }, +/area/space_structures/delivery_shuttle) +"k" = ( +/obj/structure/closet/crate/freezer/rations, +/turf/simulated/shuttle/floor{ + icon_state = "floor3" + }, +/area/space_structures/delivery_shuttle) +"l" = ( +/obj/structure/closet/crate/freezer, +/obj/item/pizzabox/margherita, +/obj/item/pizzabox/meat, +/obj/item/pizzabox/mushroom, +/obj/item/pizzabox/vegetable, +/turf/simulated/shuttle/floor{ + icon_state = "floor3" + }, +/area/space_structures/delivery_shuttle) +"m" = ( +/obj/structure/closet/crate/freezer, +/obj/item/weapon/reagent_containers/food/snacks/sushi, +/obj/item/weapon/reagent_containers/food/snacks/sushi, +/obj/item/weapon/reagent_containers/food/snacks/sashimi, +/obj/item/weapon/reagent_containers/food/snacks/sashimi, +/turf/simulated/shuttle/floor{ + icon_state = "floor3" + }, +/area/space_structures/delivery_shuttle) +"n" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/simulated/shuttle/floor{ + icon_state = "floor3" + }, +/area/space_structures/delivery_shuttle) +"o" = ( +/turf/simulated/shuttle/floor{ + icon_state = "floor3" + }, +/area/space_structures/delivery_shuttle) +"p" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/simulated/shuttle/floor{ + icon_state = "floor3" + }, +/area/space_structures/delivery_shuttle) +"q" = ( +/obj/structure/shuttle/engine/heater, +/turf/simulated/shuttle/wall{ + dir = 2; + icon_state = "swall3" + }, +/area/space_structures/delivery_shuttle) +"r" = ( +/obj/machinery/door/poddoor/shutters{ + id = "pizza"; + name = "Cargo Compartment Shutters" + }, +/turf/simulated/shuttle/floor{ + icon_state = "floor3" + }, +/area/space_structures/delivery_shuttle) +"s" = ( +/obj/structure/shuttle/engine/propulsion, +/turf/environment/space, +/area/space_structures/delivery_shuttle) +"t" = ( +/obj/structure/shuttle/engine/propulsion{ + desc = "Looks like meteor hit the engine!"; + dir = 4; + icon_state = "burst_r"; + name = "broken propulsion" + }, +/turf/environment/space, +/area/space_structures/delivery_shuttle) (1,1,1) = {" -abcda -aefea -aghca -bicjd -eklme -enope -qrrrq -saaat +a +a +a +b +e +e +q +s +"} +(2,1,1) = {" +b +e +g +i +k +n +r +a +"} +(3,1,1) = {" +c +f +h +c +l +o +r +a +"} +(4,1,1) = {" +d +e +c +j +m +p +r +a +"} +(5,1,1) = {" +a +a +a +d +e +e +q +t "} From a8ea7fe3305b36d087560aa5f57a274c3c260ec3 Mon Sep 17 00:00:00 2001 From: KatoMarika Date: Mon, 12 Aug 2024 03:27:33 +0300 Subject: [PATCH 22/36] fix conflict merge --- .../space_structures/cloning_lab.dmm | 234 ++++++++++-------- .../space_structures/delivery_shuttle.dmm | 59 +++-- 2 files changed, 166 insertions(+), 127 deletions(-) diff --git a/maps/templates/space_structures/cloning_lab.dmm b/maps/templates/space_structures/cloning_lab.dmm index c6cc9f22f15c..d4fef3ef67dc 100644 --- a/maps/templates/space_structures/cloning_lab.dmm +++ b/maps/templates/space_structures/cloning_lab.dmm @@ -57,23 +57,21 @@ name = "Prototype Health Analyzer" }, /turf/simulated/floor{ - dir = 1; - icon_state = "white" + dir = 9; + icon_state = "whitepurple" }, /area/space_structures/cloning_lab) "l" = ( /obj/structure/table, /turf/simulated/floor{ dir = 1; - icon_state = "white" + icon_state = "whitepurple" }, /area/space_structures/cloning_lab) "m" = ( -/obj/structure/table, -/obj/item/weapon/storage/box/syringes, /turf/simulated/floor{ - dir = 1; - icon_state = "white" + dir = 6; + icon_state = "whitepurple" }, /area/space_structures/cloning_lab) "n" = ( @@ -84,13 +82,13 @@ }, /turf/simulated/floor{ dir = 1; - icon_state = "white" + icon_state = "whitepurple" }, /area/space_structures/cloning_lab) "o" = ( /turf/simulated/floor{ dir = 1; - icon_state = "white" + icon_state = "whitepurple" }, /area/space_structures/cloning_lab) "p" = ( @@ -99,11 +97,16 @@ /area/space_structures/cloning_lab) "q" = ( /obj/random/vending/snack, -/turf/simulated/floor/airless, +/turf/simulated/floor{ + dir = 9; + icon_state = "brown" + }, /area/space_structures/cloning_lab) "r" = ( /obj/effect/decal/cleanable/dirt, -/turf/simulated/floor, +/turf/simulated/floor/wood{ + icon_state = "wood4" + }, /area/space_structures/cloning_lab) "s" = ( /obj/structure/sign/directions/science{ @@ -114,11 +117,15 @@ "t" = ( /obj/effect/decal/cleanable/blood, /obj/effect/decal/remains/human, -/turf/simulated/floor, +/turf/simulated/floor/wood{ + icon_state = "wood4" + }, /area/space_structures/cloning_lab) "u" = ( /obj/machinery/iv_drip, -/turf/simulated/floor, +/turf/simulated/floor/wood{ + icon_state = "wood4" + }, /area/space_structures/cloning_lab) "v" = ( /obj/effect/decal/cleanable/dirt, @@ -127,7 +134,9 @@ }, /obj/item/weapon/bedsheet/purple, /obj/structure/stool/bed, -/turf/simulated/floor, +/turf/simulated/floor/wood{ + icon_state = "wood4" + }, /area/space_structures/cloning_lab) "w" = ( /obj/effect/decal/turf_decal{ @@ -135,7 +144,8 @@ icon_state = "warn" }, /turf/simulated/floor{ - icon_state = "white" + dir = 9; + icon_state = "whitepurple" }, /area/space_structures/cloning_lab) "x" = ( @@ -143,113 +153,125 @@ /turf/simulated/wall/r_wall, /area/space_structures/cloning_lab) "y" = ( -/turf/simulated/floor, +/turf/simulated/floor/wood{ + icon_state = "wood4" + }, /area/space_structures/cloning_lab) "z" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/airless, +/turf/simulated/floor{ + dir = 4; + icon_state = "browncorner" + }, /area/space_structures/cloning_lab) "A" = ( -/turf/simulated/floor/plating/airless, +/turf/simulated/floor{ + dir = 5; + icon_state = "whitepurple" + }, /area/space_structures/cloning_lab) "B" = ( -/obj/structure/stool/bed/chair/comfy/white{ - dir = 8 +/turf/simulated/floor{ + dir = 1; + icon_state = "whitepurplecorner" }, -/turf/simulated/floor, /area/space_structures/cloning_lab) "C" = ( -/obj/machinery/door/airlock/research/glass{ - dir = 4; - name = "Reabilitaion Chamber" +/turf/simulated/floor{ + icon_state = "whitechoco" }, -/turf/simulated/floor, /area/space_structures/cloning_lab) "D" = ( -/obj/structure/stool/bed/chair, /turf/simulated/floor{ - dir = 1; - icon_state = "white" + dir = 4; + icon_state = "whitepurple" }, /area/space_structures/cloning_lab) "E" = ( -/obj/machinery/door/airlock/research{ - dir = 4; - name = "Cloning Facility" - }, -/turf/simulated/floor, +/obj/effect/decal/turf_decal/set_damaged, +/turf/simulated/floor/plating/airless, /area/space_structures/cloning_lab) "F" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/item/weapon/book/manual/wiki/medical_genetics, -/obj/structure/table, -/obj/item/weapon/disk/tech_disk/hud, -/turf/simulated/floor, +/obj/structure/stool/bed/chair/comfy/white{ + dir = 8 + }, +/turf/simulated/floor/wood{ + icon_state = "wood4" + }, /area/space_structures/cloning_lab) "G" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/small{ - dir = 4 +/obj/machinery/door/airlock/research/glass{ + dir = 4; + name = "Reabilitaion Chamber" + }, +/turf/simulated/floor/wood{ + icon_state = "wood4" }, -/turf/simulated/floor, /area/space_structures/cloning_lab) "H" = ( -/obj/machinery/clonepod, +/obj/machinery/door/airlock/research/glass{ + dir = 4; + name = "Reabilitaion Chamber" + }, /turf/simulated/floor{ - dir = 1; - icon_state = "white" + icon_state = "whitepurplefull" }, /area/space_structures/cloning_lab) "I" = ( -/obj/structure/computerframe{ - anchored = 1 +/obj/effect/decal/turf_decal{ + dir = 8; + icon_state = "warn" }, -/obj/machinery/light, /turf/simulated/floor{ - dir = 1; - icon_state = "white" + dir = 8; + icon_state = "whitepurple" }, /area/space_structures/cloning_lab) "J" = ( -/obj/machinery/dna_scannernew, +/obj/structure/stool/bed/chair, /turf/simulated/floor{ - dir = 1; - icon_state = "white" + icon_state = "whitechoco" }, /area/space_structures/cloning_lab) "K" = ( -/obj/structure/table, -/obj/item/device/flashlight/lamp, +/obj/machinery/door/airlock/research{ + dir = 4; + name = "Cloning Facility" + }, /turf/simulated/floor{ - dir = 1; - icon_state = "white" + icon_state = "whitepurplefull" }, /area/space_structures/cloning_lab) "L" = ( -/obj/structure/table, -/obj/item/weapon/disk/research_points, -/obj/item/weapon/paper/cloning_lab, +/obj/effect/decal/cleanable/dirt, /turf/simulated/floor{ - dir = 1; - icon_state = "white" + dir = 8; + icon_state = "brown" }, /area/space_structures/cloning_lab) "M" = ( -/obj/structure/filingcabinet/chestdrawer, -/obj/item/weapon/paper/cloning_log, -/turf/simulated/floor{ - dir = 1; - icon_state = "white" +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/item/weapon/book/manual/wiki/medical_genetics, +/obj/structure/table, +/obj/item/weapon/disk/tech_disk/hud, +/turf/simulated/floor/wood{ + icon_state = "wood4" }, /area/space_structures/cloning_lab) "O" = ( /obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/airless, +/turf/simulated/floor{ + dir = 5; + icon_state = "brown" + }, /area/space_structures/cloning_lab) "Q" = ( -/turf/simulated/floor/airless, +/turf/simulated/floor{ + dir = 8; + icon_state = "brown" + }, /area/space_structures/cloning_lab) (1,1,1) = {" @@ -272,8 +294,8 @@ a a i t -B F +M i "} (3,1,1) = {" @@ -297,7 +319,7 @@ a b v y -G +m b "} (5,1,1) = {" @@ -308,7 +330,7 @@ a a b b -C +G b b "} @@ -332,7 +354,7 @@ a a b b -C +H b b "} @@ -344,8 +366,8 @@ a b b w -w -w +I +m i "} (9,1,1) = {" @@ -355,9 +377,9 @@ a a i k -o -o -H +B +C +m i "} (10,1,1) = {" @@ -367,9 +389,9 @@ a a i l -o -D -I +C +J +m b "} (11,1,1) = {" @@ -379,9 +401,9 @@ b b b m -o -o -J +C +C +m b "} (12,1,1) = {" @@ -391,9 +413,9 @@ f f b n -o -o -K +C +C +m i "} (13,1,1) = {" @@ -403,9 +425,9 @@ e f j o -o -D -L +C +J +m i "} (14,1,1) = {" @@ -415,9 +437,9 @@ g h b o -o -o -M +C +C +m b "} (15,1,1) = {" @@ -426,10 +448,10 @@ b b b b -o -o -o -o +A +D +D +m b "} (16,1,1) = {" @@ -440,7 +462,7 @@ a b p x -E +K b b "} @@ -452,8 +474,8 @@ a i q Q -O -A +L +E b "} (18,1,1) = {" @@ -464,9 +486,9 @@ a i O z -A -A -A +E +E +E "} (19,1,1) = {" a @@ -475,8 +497,8 @@ a a b s -A -A +E +E a a "} diff --git a/maps/templates/space_structures/delivery_shuttle.dmm b/maps/templates/space_structures/delivery_shuttle.dmm index b441970cec10..d8e6952a6b8d 100644 --- a/maps/templates/space_structures/delivery_shuttle.dmm +++ b/maps/templates/space_structures/delivery_shuttle.dmm @@ -11,9 +11,7 @@ /area/space_structures/delivery_shuttle) "c" = ( /obj/structure/shuttle/window, -/turf/simulated/shuttle/floor{ - icon_state = "floor3" - }, +/turf/simulated/floor/plating, /area/space_structures/delivery_shuttle) "d" = ( /turf/environment/space, @@ -43,8 +41,8 @@ dir = 8 }, /obj/item/weapon/disk/tech_disk/hud, -/turf/simulated/shuttle/floor{ - icon_state = "floor3" +/turf/simulated/floor{ + icon_state = "darkgreenfull" }, /area/space_structures/delivery_shuttle) "g" = ( @@ -57,8 +55,8 @@ /obj/structure/stool/bed/chair/schair{ dir = 1 }, -/turf/simulated/shuttle/floor{ - icon_state = "floor3" +/turf/simulated/floor{ + icon_state = "darkgreenfull" }, /area/space_structures/delivery_shuttle) "i" = ( @@ -75,8 +73,11 @@ /area/space_structures/delivery_shuttle) "k" = ( /obj/structure/closet/crate/freezer/rations, -/turf/simulated/shuttle/floor{ - icon_state = "floor3" +/obj/effect/decal/turf_decal/blue{ + icon_state = "box_white" + }, +/turf/simulated/floor{ + icon_state = "darkgreenfull" }, /area/space_structures/delivery_shuttle) "l" = ( @@ -85,8 +86,11 @@ /obj/item/pizzabox/meat, /obj/item/pizzabox/mushroom, /obj/item/pizzabox/vegetable, -/turf/simulated/shuttle/floor{ - icon_state = "floor3" +/obj/effect/decal/turf_decal/blue{ + icon_state = "box_white" + }, +/turf/simulated/floor{ + icon_state = "darkgreenfull" }, /area/space_structures/delivery_shuttle) "m" = ( @@ -95,29 +99,41 @@ /obj/item/weapon/reagent_containers/food/snacks/sushi, /obj/item/weapon/reagent_containers/food/snacks/sashimi, /obj/item/weapon/reagent_containers/food/snacks/sashimi, -/turf/simulated/shuttle/floor{ - icon_state = "floor3" +/obj/effect/decal/turf_decal/blue{ + icon_state = "box_white" + }, +/turf/simulated/floor{ + icon_state = "darkgreenfull" }, /area/space_structures/delivery_shuttle) "n" = ( /obj/machinery/light/small{ dir = 8 }, -/turf/simulated/shuttle/floor{ - icon_state = "floor3" +/obj/effect/decal/turf_decal{ + icon_state = "warn" + }, +/turf/simulated/floor{ + icon_state = "darkgreenfull" }, /area/space_structures/delivery_shuttle) "o" = ( -/turf/simulated/shuttle/floor{ - icon_state = "floor3" +/obj/effect/decal/turf_decal{ + icon_state = "warn" + }, +/turf/simulated/floor{ + icon_state = "darkgreenfull" }, /area/space_structures/delivery_shuttle) "p" = ( /obj/machinery/light/small{ dir = 4 }, -/turf/simulated/shuttle/floor{ - icon_state = "floor3" +/obj/effect/decal/turf_decal{ + icon_state = "warn" + }, +/turf/simulated/floor{ + icon_state = "darkgreenfull" }, /area/space_structures/delivery_shuttle) "q" = ( @@ -129,11 +145,12 @@ /area/space_structures/delivery_shuttle) "r" = ( /obj/machinery/door/poddoor/shutters{ + dir = 4; id = "pizza"; name = "Cargo Compartment Shutters" }, -/turf/simulated/shuttle/floor{ - icon_state = "floor3" +/turf/simulated/floor{ + icon_state = "darkgreenfull" }, /area/space_structures/delivery_shuttle) "s" = ( From 986c39ba5741a7481e74dee94318fbc6f001ecff Mon Sep 17 00:00:00 2001 From: "D. Resnyanskiy" Date: Tue, 3 Sep 2024 03:49:00 +0500 Subject: [PATCH 23/36] fix conflict --- maps/templates/space_structures/cloning_lab.dmm | 1 + maps/templates/space_structures/delivery_shuttle.dmm | 1 + 2 files changed, 2 insertions(+) diff --git a/maps/templates/space_structures/cloning_lab.dmm b/maps/templates/space_structures/cloning_lab.dmm index 1deec1c1f913..2bef86dcc78d 100644 --- a/maps/templates/space_structures/cloning_lab.dmm +++ b/maps/templates/space_structures/cloning_lab.dmm @@ -208,6 +208,7 @@ /obj/effect/decal/cleanable/dirt, /obj/item/weapon/book/manual/wiki/medical_genetics, /obj/structure/table, +/obj/item/weapon/disk/tech_disk/hud, /turf/simulated/floor/wood{ icon_state = "wood4" }, diff --git a/maps/templates/space_structures/delivery_shuttle.dmm b/maps/templates/space_structures/delivery_shuttle.dmm index 5d5080c3300c..6fea0f31b4ee 100644 --- a/maps/templates/space_structures/delivery_shuttle.dmm +++ b/maps/templates/space_structures/delivery_shuttle.dmm @@ -40,6 +40,7 @@ /obj/machinery/light/small{ dir = 8 }, +/obj/item/weapon/disk/tech_disk/hud, /turf/simulated/floor{ icon_state = "darkgreenfull" }, From 675874af7e7381714e799226f42ad7119fa3e590 Mon Sep 17 00:00:00 2001 From: "D. Resnyanskiy" Date: Fri, 6 Sep 2024 05:36:37 +0500 Subject: [PATCH 24/36] Refactored mode change due to NinjaPikachushka desicion --- code/modules/clothing/glasses/glasses.dm | 52 ++++++++++++++++++++ code/modules/item_upgrades/item_upgrade.dm | 57 +++++++--------------- 2 files changed, 70 insertions(+), 39 deletions(-) diff --git a/code/modules/clothing/glasses/glasses.dm b/code/modules/clothing/glasses/glasses.dm index b377f1e4b18f..aad016f9b33f 100644 --- a/code/modules/clothing/glasses/glasses.dm +++ b/code/modules/clothing/glasses/glasses.dm @@ -445,3 +445,55 @@ return active = !active to_chat(usr, "You toggle the Noire Mode [active ? "on. Let the investigation begin." : "off."]") + +/datum/glasses_mode_type_state + +/datum/glasses_mode_type_state/proc/on(obj/item/clothing/glasses/glasses) + return + +/datum/glasses_mode_type_state/proc/off(obj/item/clothing/glasses/glasses) + return + +/datum/glasses_mode_type_state/thermal + var/sightglassesmod = "thermal" + +/datum/glasses_mode_type_state/thermal/sepia + sightglassesmod = "sepia" + +/datum/glasses_mode_type_state/thermal/on(obj/item/clothing/glasses/glasses) + glasses.lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_VISIBLE + glasses.sightglassesmod = sightglassesmod + glasses.vision_flags = SEE_MOBS + +/datum/glasses_mode_type_state/thermal/off(obj/item/clothing/glasses/glasses) + glasses.lighting_alpha = null + glasses.sightglassesmod = null + glasses.vision_flags = 0 + +/datum/glasses_mode_type_state/night + var/sightglassesmod = "night" + +/datum/glasses_mode_type_state/night/nightsight + sightglassesmod = "nightsight" + +/datum/glasses_mode_type_state/night/on(obj/item/clothing/glasses/glasses) + glasses.lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_VISIBLE + glasses.sightglassesmod = sightglassesmod + glasses.darkness_view = 7 + +/datum/glasses_mode_type_state/night/off(obj/item/clothing/glasses/glasses) + glasses.lighting_alpha = null + glasses.sightglassesmod = null + glasses.darkness_view = 0 + +/datum/glasses_mode_type_state/thermal_advanced + +/datum/glasses_mode_type_state/thermal_advanced/on(obj/item/clothing/glasses/glasses) + glasses.lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_VISIBLE + glasses.darkness_view = 7 + glasses.vision_flags = SEE_MOBS + +/datum/glasses_mode_type_state/thermal_advanced/off(obj/item/clothing/glasses/glasses) + glasses.lighting_alpha = null + glasses.darkness_view = 0 + glasses.vision_flags = 0 diff --git a/code/modules/item_upgrades/item_upgrade.dm b/code/modules/item_upgrades/item_upgrade.dm index 17c30710c1d1..37f0ddc2390e 100644 --- a/code/modules/item_upgrades/item_upgrade.dm +++ b/code/modules/item_upgrades/item_upgrade.dm @@ -14,49 +14,28 @@ item_state = "sechud" item_state_inventory = "sechud" item_state_world = "sechud_w" - body_parts_covered = 0 + body_parts_covered = EYES hud_types = list(DATA_HUD_SECURITY) item_action_types = list() var/upgrade_tier = 0 var/current_mode = null + var/static/list/glasses_states = list( + HUD_TOGGLEABLE_MODE_NIGHTVISION = new /datum/glasses_mode_type_state/night/nightsight, + HUD_TOGGLEABLE_MODE_THERMAL = new /datum/glasses_mode_type_state/thermal/sepia, + HUD_TOGGLEABLE_MODE_THERMAL_ADVANCED = new /datum/glasses_mode_type_state/thermal_advanced, + ) /obj/item/clothing/glasses/sunglasses/hud/advanced/proc/apply_effects(mode_type, enable) if(!ishuman(usr)) return - var/mob/living/carbon/human/human = usr - switch(mode_type) - if(HUD_TOGGLEABLE_MODE_NIGHTVISION) - if(enable) - lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_VISIBLE - sightglassesmod = "nightsight" - darkness_view = 7 - else - lighting_alpha = null - sightglassesmod = null - darkness_view = 0 - if(HUD_TOGGLEABLE_MODE_THERMAL) - if(enable) - lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_VISIBLE - sightglassesmod = "sepia" - vision_flags = SEE_MOBS - - else - lighting_alpha = null - sightglassesmod = null - vision_flags = 0 - - if(HUD_TOGGLEABLE_MODE_THERMAL_ADVANCED) - if(enable) - lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_VISIBLE - darkness_view = 7 - vision_flags = SEE_MOBS - else - lighting_alpha = null - darkness_view = 0 - vision_flags = 0 - + var/mob/living/carbon/glasses_user = usr + var/datum/glasses_mode_type_state/state = glasses_states[mode_type] + if (enabled) + state.on() + else + state.off() playsound(src, activation_sound, VOL_EFFECTS_MASTER, 10, FALSE) - human.update_sight() + glasses_user.update_sight() update_item_actions() @@ -70,7 +49,7 @@ apply_effects(mode_type, TRUE) current_mode = mode_type -/obj/item/clothing/glasses/sunglasses/hud/advanced/proc/upgrade_hud(obj/item/hud_upgrade/hud_upgrade) +/obj/item/clothing/glasses/sunglasses/hud/advanced/proc/upgrade_hud(obj/item/hud_upgrade/hud_upgrade, mob/living/user) switch(hud_upgrade.tier) if(HUD_UPGRADE_MEDSCAN) item_state = "mixhud" @@ -93,16 +72,16 @@ item_state_inventory = "thermalhudadv" item_state_world = "thermalhudadv_w" for(var/datum/action/item_action/hands_free/switch_hud_modes/night/night_action in item_actions) - night_action.Remove(usr) + night_action.Remove(user) item_actions.Remove(night_action) for(var/datum/action/item_action/hands_free/switch_hud_modes/thermal/thermal_action in item_actions) - thermal_action.Remove(usr) + thermal_action.Remove(user) item_actions.Remove(thermal_action) item_actions.Add(new /datum/action/item_action/hands_free/switch_hud_modes/thermal_advanced(src)) upgrade_tier = hud_upgrade.tier update_world_icon() - add_item_actions(usr) + add_item_actions(user) /obj/item/clothing/glasses/sunglasses/hud/advanced/attackby(obj/item/W, mob/living/user) if(istype(W, /obj/item/hud_upgrade)) @@ -114,7 +93,7 @@ to_chat(usr, "You have to install previous upgrades") return if(user.is_in_hands(src)) - upgrade_hud(hud_upgrade) + upgrade_hud(hud_upgrade, user) add_item_actions(user) else to_chat(usr, "You have to hold huds in hands to upgrade it") From 8a14f68b85143b5b1ff96b8f5130a836b628c32b Mon Sep 17 00:00:00 2001 From: "D. Resnyanskiy" Date: Fri, 6 Sep 2024 07:13:20 +0500 Subject: [PATCH 25/36] Added special operation tech branch --- code/game/objects/items/weapons/disks.dm | 9 +-- code/modules/item_upgrades/item_upgrade.dm | 2 +- code/modules/research/designs.dm | 66 +++++++++++++++++ code/modules/research/research.dm | 80 +++++++++++++++++++++ nano/css/shared.css | 6 +- nano/images/science.png | Bin 52065 -> 54738 bytes 6 files changed, 157 insertions(+), 6 deletions(-) diff --git a/code/game/objects/items/weapons/disks.dm b/code/game/objects/items/weapons/disks.dm index 395ce570d6a5..de750b2ace4c 100644 --- a/code/game/objects/items/weapons/disks.dm +++ b/code/game/objects/items/weapons/disks.dm @@ -147,12 +147,13 @@ /obj/item/weapon/disk/tech_disk/hud name = "HUD tech disk" - desc = "That disk contains design of basic HUD upgrade" - w_class = SIZE_TINY - m_amt = 30 - g_amt = 10 + desc = "That disk contains design of basic HUD upgrade and advanced HUD blueprint" stored_technology = new /datum/technology/tier1_hud_upgrade() +/obj/item/weapon/disk/tech_disk/spec_ops + name = "Spec Ops tech disk" + desc = "That disc contains designs and blueprints of Special Operation Forces equipment and ammunition" + stored_technology = new /datum/technology/healer_gun /obj/item/weapon/disk/tech_disk/atom_init() var/diskcolor = pick(0,1,2,3,4,5,6,7,8) diff --git a/code/modules/item_upgrades/item_upgrade.dm b/code/modules/item_upgrades/item_upgrade.dm index 37f0ddc2390e..3063b80145ab 100644 --- a/code/modules/item_upgrades/item_upgrade.dm +++ b/code/modules/item_upgrades/item_upgrade.dm @@ -30,7 +30,7 @@ return var/mob/living/carbon/glasses_user = usr var/datum/glasses_mode_type_state/state = glasses_states[mode_type] - if (enabled) + if (enable) state.on() else state.off() diff --git a/code/modules/research/designs.dm b/code/modules/research/designs.dm index 6136ef0b9407..fa573591bd31 100644 --- a/code/modules/research/designs.dm +++ b/code/modules/research/designs.dm @@ -2113,6 +2113,33 @@ other types of metals and chemistry for reagents). build_path = /obj/item/weapon/gun/energy/toxgun category = list("Weapons") +/datum/design/medigun + name = "Medigun" + desc = "Прототип лечебной пушки, которая медленно возвращает органику в прежнее состояние, исцеляя их." + id = "medigun" + build_type = PROTOLATHE + materials = list(MAT_METAL = 10000, MAT_GLASS = 5000, MAT_PHORON = 5000, MAT_GOLD = 1500, MAT_SILVER = 1500, MAT_DIAMOND = 2000) + build_path = /obj/item/weapon/gun/medbeam + category = list("Weapons") + +/datum/design/sniperrifle + name = "Sniper rifle" + desc = "Снайперская винтовка W2500-E, разработанная компанией W&J, изготовлена из легких материалов и оснащена прицелом системы SMART." + id = "sniperrifle" + build_type = PROTOLATHE + materials = list(MAT_METAL = 20000, MAT_GLASS = 7000, MAT_URANIUM = 5000, MAT_GOLD = 2500, MAT_SILVER = 2500, MAT_DIAMOND = 2000) + build_path = /obj/item/weapon/gun/energy/sniperrifle + category = list("Weapons") + +/datum/design/pulse_rifle + name = "Pulse rifle" + desc = "Сверхмощное, импульсно-энергетическое оружие, используемое военными." + id = "pulse_rifle" + build_type = PROTOLATHE + materials = list(MAT_METAL = 30000, MAT_GLASS = 15000, MAT_URANIUM = 12500, MAT_GOLD = 5000, MAT_SILVER = 5000, MAT_DIAMOND = 5000, MAT_PHORON = 20000) + build_path = /obj/item/weapon/gun/energy/pulse_rifle + category = list("Weapons") + ///////////////////////////////////////// /////////////////Mining////////////////// ///////////////////////////////////////// @@ -2888,6 +2915,14 @@ other types of metals and chemistry for reagents). materials = list(MAT_METAL = 2000, MAT_GLASS = 1000) build_path = /obj/item/rig_module/emp_shield category = list("Rig Modules") +/datum/design/rigstealth + name = "Hardsuit stealth system" + desc = "System that makes hardsuit invisible." + id = "rigstealth" + build_type = PROTOLATHE + materials = list(MAT_METAL = 10000, MAT_GLASS = 10000, MAT_SILVER = 5000, MAT_GOLD = 5000, MAT_DIAMOND = 10000, MAT_PHORON = 5000) + build_path = /obj/item/rig_module/stealth + category = list("Rig Modules") ///////////////////////////////////////// ////////////////Upgrades///////////////// @@ -2928,3 +2963,34 @@ other types of metals and chemistry for reagents). materials = list(MAT_METAL = 4000, MAT_GLASS = 2000, MAT_GOLD = 1500, MAT_URANIUM = 3000, MAT_PHORON = 3500) build_path = /obj/item/hud_upgrade/thermal_advanced category = list("Special upgrades") + +///////////////////////////////////////// +//////////////////Armor////////////////// +///////////////////////////////////////// + +/datum/design/ds_helmet + name = "Deathsquad helmet" + desc = "That's not red paint. That's real blood." + id = "ds_helmet" + build_type = PROTOLATHE + materials = list(MAT_METAL = 15000, MAT_GLASS = 8000, MAT_GOLD = 2500, MAT_URANIUM = 4500, MAT_PHORON = 5000) + build_path = /obj/item/clothing/head/helmet/space/deathsquad + category = list("Armor") + +/datum/design/ds_armor + name = "SWAT Suit" + desc = "Тяжелый бронированный костюм, защищающий от умеренного количества повреждений. Используется в специальных операциях." + id = "ds_armor" + build_type = PROTOLATHE + materials = list(MAT_METAL = 50000, MAT_GLASS = 25000, MAT_GOLD = 8000, MAT_URANIUM = 12500, MAT_PHORON = 15000) + build_path = /obj/item/clothing/suit/armor/swat + category = list("Armor") + +/datum/design/ds_boots + name = "SWAT shoes" + desc = "When you want to turn up the heat." + id = "ds_boots" + build_type = PROTOLATHE + materials = list(MAT_METAL = 10000, MAT_GOLD = 2000, MAT_PHORON = 4000) + build_path = /obj/item/clothing/suit/armor/swat + category = list("Armor") diff --git a/code/modules/research/research.dm b/code/modules/research/research.dm index b58d55156f8c..44f51440c077 100644 --- a/code/modules/research/research.dm +++ b/code/modules/research/research.dm @@ -1782,3 +1782,83 @@ The tech datums are the actual "tech trees" that you improve through researching cost = 30000 unlocks_designs = list("tier4_hud_upgrade") + +/datum/technology/healer_gun + name = "Medigun" + desc = "Medigun" + id = "medigun" + tech_type = RESEARCH_SPECIAL + + x = 0.1 + y = 0.6 + icon = "medigun" + + required_technologies = list("medigun") + required_tech_levels = list(RESEARCH_SPECIAL = 1) + cost = 0 + + unlocks_designs = list("medigun") + +/datum/technology/rigstealth + name = "RIG Stealth Module" + desc = "RIG Stealth Module" + id = "rigstealth" + tech_type = RESEARCH_SPECIAL + + x = 0.2 + y = 0.6 + icon = "rigstealth" + + required_technologies = list("medigun") + required_tech_levels = list(RESEARCH_SPECIAL = 2) + cost = 15000 + + unlocks_designs = list("rigstealth") + +/datum/technology/sniperrifle + name = "Sniper Rifle" + desc = "Sniper Rifle" + id = "sniperrifle" + tech_type = RESEARCH_SPECIAL + + x = 0.3 + y = 0.6 + icon = "sniperrifle" + + required_technologies = list("rigstealth") + required_tech_levels = list(RESEARCH_SPECIAL = 3) + cost = 15000 + + unlocks_designs = list("sniperrifle") + +/datum/technology/pulse_rifle + name = "Pulse Rifle" + desc = "Pulse Rifle" + id = "pulse_rifle" + tech_type = RESEARCH_SPECIAL + + x = 0.4 + y = 0.6 + icon = "pulserifle" + + required_technologies = list("rigstealth") + required_tech_levels = list(RESEARCH_SPECIAL = 4) + cost = 25000 + + unlocks_designs = list("pulse_rifle") + +/datum/technology/ds_armor + name = "DeathSquad Armor" + desc = "DeathSquad Armor" + id = "ds_armor" + tech_type = RESEARCH_SPECIAL + + x = 0.5 + y = 0.6 + icon = "dsarmor" + + required_technologies = list("pulse_rifle") + required_tech_levels = list(RESEARCH_SPECIAL = 5) + cost = 45000 + + unlocks_designs = list("ds_helmet", "ds_armor", "ds_boots") diff --git a/nano/css/shared.css b/nano/css/shared.css index d01fad2a45b2..b6cafee4b53e 100644 --- a/nano/css/shared.css +++ b/nano/css/shared.css @@ -776,7 +776,11 @@ th.cargo { .sciTechTreeIcon.icon-thermalhud { background-position: -224px -320px;} .sciTechTreeIcon.icon-4thtier { background-position: -32px -352px;} - +.sciTechTreeIcon.icon-medigun { background-position: -64px -352px;} +.sciTechTreeIcon.icon-rigstealth { background-position: -96px -352px;} +.sciTechTreeIcon.icon-sniperrifle { background-position: -128px -352px;} +.sciTechTreeIcon.icon-pulserifle { background-position: -160px -352px;} +.sciTechTreeIcon.icon-dsarmor { background-position: -192px -352px;} .sciMenuButton { width: 300px; diff --git a/nano/images/science.png b/nano/images/science.png index 7af41e64e9b2d793a87c675800a942cb2ba9b97c..e97ff133322c7d5900bcfadc5e5ee4a0eaf4361c 100644 GIT binary patch delta 11009 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 Y6~Tcx(yTrPAunt-<=0A;3LirL57~1ucK`qY delta 8480 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 F{|C*yc2)oY From bf206c2cec0bb4b249592a2738f6e9fc6e00189c Mon Sep 17 00:00:00 2001 From: "D. Resnyanskiy" Date: Fri, 6 Sep 2024 08:26:11 +0500 Subject: [PATCH 26/36] Added disk with tech on 2 maps --- maps/templates/space_structures/secrete_lab.dmm | 1 + maps/templates/space_structures/ships_squad.dmm | 1 + 2 files changed, 2 insertions(+) diff --git a/maps/templates/space_structures/secrete_lab.dmm b/maps/templates/space_structures/secrete_lab.dmm index e28d1dfd524f..b62c6f46b320 100644 --- a/maps/templates/space_structures/secrete_lab.dmm +++ b/maps/templates/space_structures/secrete_lab.dmm @@ -253,6 +253,7 @@ pixel_y = 6 }, /obj/item/weapon/stock_parts/manipulator/nano/pico/femto, +/obj/item/weapon/disk/tech_disk/spec_ops, /turf/simulated/floor{ icon_state = "whitechoco" }, diff --git a/maps/templates/space_structures/ships_squad.dmm b/maps/templates/space_structures/ships_squad.dmm index a0d482a48964..609760339d3d 100644 --- a/maps/templates/space_structures/ships_squad.dmm +++ b/maps/templates/space_structures/ships_squad.dmm @@ -341,6 +341,7 @@ icon_state = "weaponcrateopen"; opened = 1 }, +/obj/item/weapon/disk/tech_disk/spec_ops, /turf/simulated/floor{ icon_state = "darkyellowfull" }, From 814790c1743fd6a6befecf1898ae0ba8d0fbe920 Mon Sep 17 00:00:00 2001 From: Dmitriy Resnyanskiy <62596930+L4rever@users.noreply.github.com> Date: Mon, 9 Sep 2024 03:20:53 +0500 Subject: [PATCH 27/36] Update code/modules/item_upgrades/item_upgrade.dm Co-authored-by: KIBORG04 --- code/modules/item_upgrades/item_upgrade.dm | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/code/modules/item_upgrades/item_upgrade.dm b/code/modules/item_upgrades/item_upgrade.dm index 3063b80145ab..b0fd2d7e53a6 100644 --- a/code/modules/item_upgrades/item_upgrade.dm +++ b/code/modules/item_upgrades/item_upgrade.dm @@ -92,12 +92,11 @@ if(upgrade_tier < hud_upgrade.tier - 1) to_chat(usr, "You have to install previous upgrades") return - if(user.is_in_hands(src)) - upgrade_hud(hud_upgrade, user) - add_item_actions(user) - else + if(!user.is_in_hands(src)) to_chat(usr, "You have to hold huds in hands to upgrade it") return + upgrade_hud(hud_upgrade, user) + add_item_actions(user) qdel(hud_upgrade) if(istype(W, /obj/item/device/hud_calibrator)) var/obj/item/device/hud_calibrator = W From 9f25c98ea82e0649761f82cc1e1964a015fbb412 Mon Sep 17 00:00:00 2001 From: Dmitriy Resnyanskiy <62596930+L4rever@users.noreply.github.com> Date: Mon, 9 Sep 2024 03:24:28 +0500 Subject: [PATCH 28/36] Update code/modules/item_upgrades/item_upgrade.dm Co-authored-by: KIBORG04 --- code/modules/item_upgrades/item_upgrade.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/modules/item_upgrades/item_upgrade.dm b/code/modules/item_upgrades/item_upgrade.dm index b0fd2d7e53a6..c6f68aa5470d 100644 --- a/code/modules/item_upgrades/item_upgrade.dm +++ b/code/modules/item_upgrades/item_upgrade.dm @@ -102,6 +102,7 @@ var/obj/item/device/hud_calibrator = W to_chat(usr, "You try to recalibrate huds, but nothing happens") qdel(hud_calibrator) + return . = ..() /obj/item/hud_upgrade From 323270622a96daa3c9c914f42fee937b3539493c Mon Sep 17 00:00:00 2001 From: Dmitriy Resnyanskiy <62596930+L4rever@users.noreply.github.com> Date: Mon, 9 Sep 2024 03:24:41 +0500 Subject: [PATCH 29/36] Update code/modules/item_upgrades/item_upgrade.dm Co-authored-by: KIBORG04 --- code/modules/item_upgrades/item_upgrade.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/item_upgrades/item_upgrade.dm b/code/modules/item_upgrades/item_upgrade.dm index c6f68aa5470d..b0d8b32b844f 100644 --- a/code/modules/item_upgrades/item_upgrade.dm +++ b/code/modules/item_upgrades/item_upgrade.dm @@ -103,7 +103,7 @@ to_chat(usr, "You try to recalibrate huds, but nothing happens") qdel(hud_calibrator) return - . = ..() + return ..() /obj/item/hud_upgrade icon = 'icons/obj/item_upgrades.dmi' From fa180c63cb78f37dbf74191dce015467386b1122 Mon Sep 17 00:00:00 2001 From: Dmitriy Resnyanskiy <62596930+L4rever@users.noreply.github.com> Date: Mon, 9 Sep 2024 03:26:58 +0500 Subject: [PATCH 30/36] Update code/modules/item_upgrades/item_upgrade.dm Co-authored-by: KIBORG04 --- code/modules/item_upgrades/item_upgrade.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/item_upgrades/item_upgrade.dm b/code/modules/item_upgrades/item_upgrade.dm index b0d8b32b844f..d5f701f48571 100644 --- a/code/modules/item_upgrades/item_upgrade.dm +++ b/code/modules/item_upgrades/item_upgrade.dm @@ -98,7 +98,7 @@ upgrade_hud(hud_upgrade, user) add_item_actions(user) qdel(hud_upgrade) - if(istype(W, /obj/item/device/hud_calibrator)) + else if(istype(W, /obj/item/device/hud_calibrator)) var/obj/item/device/hud_calibrator = W to_chat(usr, "You try to recalibrate huds, but nothing happens") qdel(hud_calibrator) From b46def10cb05808dcf9ed355191d61f9f26929e5 Mon Sep 17 00:00:00 2001 From: "D. Resnyanskiy" Date: Mon, 9 Sep 2024 03:29:43 +0500 Subject: [PATCH 31/36] Review fixes --- code/modules/item_upgrades/item_upgrade.dm | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/code/modules/item_upgrades/item_upgrade.dm b/code/modules/item_upgrades/item_upgrade.dm index b0d8b32b844f..8a48076a62c3 100644 --- a/code/modules/item_upgrades/item_upgrade.dm +++ b/code/modules/item_upgrades/item_upgrade.dm @@ -87,20 +87,20 @@ if(istype(W, /obj/item/hud_upgrade)) var/obj/item/hud_upgrade/hud_upgrade = W if(upgrade_tier >= hud_upgrade.tier) - to_chat(usr, "You've already installed that upgrade") + to_chat(user, "You've already installed that upgrade") return if(upgrade_tier < hud_upgrade.tier - 1) - to_chat(usr, "You have to install previous upgrades") + to_chat(user, "You have to install previous upgrades") return if(!user.is_in_hands(src)) - to_chat(usr, "You have to hold huds in hands to upgrade it") + to_chat(user, "You have to hold huds in hands to upgrade it") return upgrade_hud(hud_upgrade, user) add_item_actions(user) qdel(hud_upgrade) if(istype(W, /obj/item/device/hud_calibrator)) var/obj/item/device/hud_calibrator = W - to_chat(usr, "You try to recalibrate huds, but nothing happens") + to_chat(user, "You try to recalibrate huds, but nothing happens") qdel(hud_calibrator) return return ..() @@ -113,25 +113,28 @@ desc = "Allows HUD to show damage on person." item_state_inventory = "medscan" item_state_world = "medscan_w" - tier = 1 + tier = HUD_UPGRADE_MEDSCAN + /obj/item/hud_upgrade/night name = "Basic Nightvision HUD upgrade" desc = "Allows HUD to turn a basic nightvision mode. Can be installed only after damage scan upgrade" item_state_inventory = "nightvision" item_state_world = "nightvision_w" - tier = 2 + tier = HUD_UPGRADE_NIGHTVISION + /obj/item/hud_upgrade/thermal name = "Thermal HUD upgrade" desc = "Allows HUD to turn a basic thermal mode, makes nightvision mode more comfortable for use. Can be installed only after basic nightvision upgrade" item_state_inventory = "thermal" item_state_world = "thermal_w" - tier = 3 + tier = HUD_UPGRADE_THERMAL + /obj/item/hud_upgrade/thermal_advanced name = "Advanced Thermal HUD upgrade" desc = "Makes thermal mode comfortable and combines it with nightvision mode. Can be installed only after thermal upgrade" item_state_inventory = "thermaladv" item_state_world = "thermaladv_w" - tier = 4 + tier = HUD_UPGRADE_THERMAL_ADVANCED /datum/action/item_action/hands_free/switch_hud_modes name = "Switch Mode" From f4f07db3d2e22918321d28b63639bc1eedd10ce1 Mon Sep 17 00:00:00 2001 From: "D. Resnyanskiy" Date: Mon, 9 Sep 2024 05:06:17 +0500 Subject: [PATCH 32/36] Makes everything beautiful --- code/modules/item_upgrades/item_upgrade.dm | 79 +++++++++++++--------- 1 file changed, 48 insertions(+), 31 deletions(-) diff --git a/code/modules/item_upgrades/item_upgrade.dm b/code/modules/item_upgrades/item_upgrade.dm index a47ae967b146..862f3a416a87 100644 --- a/code/modules/item_upgrades/item_upgrade.dm +++ b/code/modules/item_upgrades/item_upgrade.dm @@ -49,37 +49,9 @@ apply_effects(mode_type, TRUE) current_mode = mode_type -/obj/item/clothing/glasses/sunglasses/hud/advanced/proc/upgrade_hud(obj/item/hud_upgrade/hud_upgrade, mob/living/user) - switch(hud_upgrade.tier) - if(HUD_UPGRADE_MEDSCAN) - item_state = "mixhud" - item_state_inventory = "mixhud" - item_state_world = "mixhud_w" - hud_types.Add(DATA_HUD_MEDICAL_ADV) - def_hud_types.Add(DATA_HUD_MEDICAL_ADV) - if(HUD_UPGRADE_NIGHTVISION) - item_state = "nvghud" - item_state_inventory = "nvghud" - item_state_world = "nvghud_w" - item_actions.Add(new /datum/action/item_action/hands_free/switch_hud_modes/night(src)) - if(HUD_UPGRADE_THERMAL) - item_state = "thermalhud" - item_state_inventory = "thermalhud" - item_state_world = "thermalhud_w" - item_actions.Add(new /datum/action/item_action/hands_free/switch_hud_modes/thermal(src)) - if(HUD_UPGRADE_THERMAL_ADVANCED) - item_state = "thermalhudadv" - item_state_inventory = "thermalhudadv" - item_state_world = "thermalhudadv_w" - for(var/datum/action/item_action/hands_free/switch_hud_modes/night/night_action in item_actions) - night_action.Remove(user) - item_actions.Remove(night_action) - for(var/datum/action/item_action/hands_free/switch_hud_modes/thermal/thermal_action in item_actions) - thermal_action.Remove(user) - item_actions.Remove(thermal_action) - item_actions.Add(new /datum/action/item_action/hands_free/switch_hud_modes/thermal_advanced(src)) - - upgrade_tier = hud_upgrade.tier +/obj/item/clothing/glasses/sunglasses/hud/advanced/proc/upgrade_hud(obj/item/hud_upgrade/hud_upgrader, mob/living/user) + hud_upgrader.upgrade_hud(src, user) + upgrade_tier = hud_upgrader.tier update_world_icon() add_item_actions(user) @@ -108,34 +80,79 @@ /obj/item/hud_upgrade icon = 'icons/obj/item_upgrades.dmi' var/tier = 0 + +/obj/item/hud_upgrade/proc/upgrade_hud(/obj/item/clothing/glasses/sunglasses/hud/advanced/glasses, mob/living/user) + if(glasses_item_state) + glasses.item_state = glasses_item_state + if(glasses_item_state_inventory) + glasses.item_state_inventory = glasses_item_state_inventory + if(glasses_item_state_world) + glasses.item_state_world = glasses_item_state_world + /obj/item/hud_upgrade/medscan name = "Damage Scan Upgrade" desc = "Allows HUD to show damage on person." item_state_inventory = "medscan" item_state_world = "medscan_w" + glasses_item_state = "mixhud" + glasses_item_state_inventory = "mixhud" + glasses_item_state_world = "mixhud_w" tier = HUD_UPGRADE_MEDSCAN +/obj/item/hud_upgrade/medscan/upgrade_hud(/obj/item/clothing/glasses/sunglasses/hud/advanced/glasses, mob/living/user) + ..() + glasses.hud_types.Add(DATA_HUD_MEDICAL_ADV) + glasses.def_hud_types.Add(DATA_HUD_MEDICAL_ADV) + /obj/item/hud_upgrade/night name = "Basic Nightvision HUD upgrade" desc = "Allows HUD to turn a basic nightvision mode. Can be installed only after damage scan upgrade" item_state_inventory = "nightvision" item_state_world = "nightvision_w" + glasses_item_state = "nvghud" + glasses_item_state_inventory = "nvghud" + glasses_item_state_world = "nvghud_w" tier = HUD_UPGRADE_NIGHTVISION +/obj/item/hud_upgrade/night/upgrade_hud(/obj/item/clothing/glasses/sunglasses/hud/advanced/glasses, mob/living/user) + ..() + glasses.item_actions.Add(new /datum/action/item_action/hands_free/switch_hud_modes/night(src)) + /obj/item/hud_upgrade/thermal name = "Thermal HUD upgrade" desc = "Allows HUD to turn a basic thermal mode, makes nightvision mode more comfortable for use. Can be installed only after basic nightvision upgrade" item_state_inventory = "thermal" item_state_world = "thermal_w" + glasses_item_state = "thermalhud" + glasses_item_state_inventory = "thermalhud" + glasses_item_state_world = "thermalhud_w" tier = HUD_UPGRADE_THERMAL +/obj/item/hud_upgrade/thermal/upgrade_hud(/obj/item/clothing/glasses/sunglasses/hud/advanced/glasses, mob/living/user) + ..() + item_actions.Add(new /datum/action/item_action/hands_free/switch_hud_modes/thermal(src)) + /obj/item/hud_upgrade/thermal_advanced name = "Advanced Thermal HUD upgrade" desc = "Makes thermal mode comfortable and combines it with nightvision mode. Can be installed only after thermal upgrade" item_state_inventory = "thermaladv" item_state_world = "thermaladv_w" + glasses_item_state = "thermalhudadv" + glasses_item_state_inventory = "thermalhudadv" + glasses_item_state_world = "thermalhudadv_w" tier = HUD_UPGRADE_THERMAL_ADVANCED +/obj/item/hud_upgrade/thermal_advanced/upgrade_hud(/obj/item/clothing/glasses/sunglasses/hud/advanced/glasses, mob/living/user) + ..() + for(var/datum/action/item_action/hands_free/switch_hud_modes/night/night_action in glasses.item_actions) + night_action.Remove(user) + glasses.item_actions.Remove(night_action) + for(var/datum/action/item_action/hands_free/switch_hud_modes/thermal/thermal_action in glasses.item_actions) + thermal_action.Remove(user) + glasses.item_actions.Remove(thermal_action) + glasses.item_actions.Add(new /datum/action/item_action/hands_free/switch_hud_modes/thermal_advanced(src)) + + /datum/action/item_action/hands_free/switch_hud_modes name = "Switch Mode" button_overlay_icon = 'icons/obj/clothing/goggles.dmi' From 91668925e752d3a9defd803bcf3cd8248b0307ba Mon Sep 17 00:00:00 2001 From: "D. Resnyanskiy" Date: Mon, 9 Sep 2024 05:10:34 +0500 Subject: [PATCH 33/36] Beautiful fix --- code/modules/item_upgrades/item_upgrade.dm | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/code/modules/item_upgrades/item_upgrade.dm b/code/modules/item_upgrades/item_upgrade.dm index 862f3a416a87..ac4ac5566e73 100644 --- a/code/modules/item_upgrades/item_upgrade.dm +++ b/code/modules/item_upgrades/item_upgrade.dm @@ -80,8 +80,11 @@ /obj/item/hud_upgrade icon = 'icons/obj/item_upgrades.dmi' var/tier = 0 + var/glasses_item_state + var/glasses_item_state_inventory + var/glasses_item_state_world -/obj/item/hud_upgrade/proc/upgrade_hud(/obj/item/clothing/glasses/sunglasses/hud/advanced/glasses, mob/living/user) +/obj/item/hud_upgrade/proc/upgrade_hud(obj/item/clothing/glasses/sunglasses/hud/advanced/glasses, mob/living/user) if(glasses_item_state) glasses.item_state = glasses_item_state if(glasses_item_state_inventory) @@ -99,7 +102,7 @@ glasses_item_state_world = "mixhud_w" tier = HUD_UPGRADE_MEDSCAN -/obj/item/hud_upgrade/medscan/upgrade_hud(/obj/item/clothing/glasses/sunglasses/hud/advanced/glasses, mob/living/user) +/obj/item/hud_upgrade/medscan/upgrade_hud(obj/item/clothing/glasses/sunglasses/hud/advanced/glasses, mob/living/user) ..() glasses.hud_types.Add(DATA_HUD_MEDICAL_ADV) glasses.def_hud_types.Add(DATA_HUD_MEDICAL_ADV) @@ -114,7 +117,7 @@ glasses_item_state_world = "nvghud_w" tier = HUD_UPGRADE_NIGHTVISION -/obj/item/hud_upgrade/night/upgrade_hud(/obj/item/clothing/glasses/sunglasses/hud/advanced/glasses, mob/living/user) +/obj/item/hud_upgrade/night/upgrade_hud(obj/item/clothing/glasses/sunglasses/hud/advanced/glasses, mob/living/user) ..() glasses.item_actions.Add(new /datum/action/item_action/hands_free/switch_hud_modes/night(src)) @@ -128,7 +131,7 @@ glasses_item_state_world = "thermalhud_w" tier = HUD_UPGRADE_THERMAL -/obj/item/hud_upgrade/thermal/upgrade_hud(/obj/item/clothing/glasses/sunglasses/hud/advanced/glasses, mob/living/user) +/obj/item/hud_upgrade/thermal/upgrade_hud(obj/item/clothing/glasses/sunglasses/hud/advanced/glasses, mob/living/user) ..() item_actions.Add(new /datum/action/item_action/hands_free/switch_hud_modes/thermal(src)) @@ -142,7 +145,7 @@ glasses_item_state_world = "thermalhudadv_w" tier = HUD_UPGRADE_THERMAL_ADVANCED -/obj/item/hud_upgrade/thermal_advanced/upgrade_hud(/obj/item/clothing/glasses/sunglasses/hud/advanced/glasses, mob/living/user) +/obj/item/hud_upgrade/thermal_advanced/upgrade_hud(obj/item/clothing/glasses/sunglasses/hud/advanced/glasses, mob/living/user) ..() for(var/datum/action/item_action/hands_free/switch_hud_modes/night/night_action in glasses.item_actions) night_action.Remove(user) From 8ab7030a75c1bd7daff3ecd8f1f6b6e09695061c Mon Sep 17 00:00:00 2001 From: "D. Resnyanskiy" Date: Wed, 18 Sep 2024 03:53:06 +0500 Subject: [PATCH 34/36] 234 --- code/modules/item_upgrades/item_upgrade.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/item_upgrades/item_upgrade.dm b/code/modules/item_upgrades/item_upgrade.dm index ac4ac5566e73..ebf730e164d5 100644 --- a/code/modules/item_upgrades/item_upgrade.dm +++ b/code/modules/item_upgrades/item_upgrade.dm @@ -133,7 +133,7 @@ /obj/item/hud_upgrade/thermal/upgrade_hud(obj/item/clothing/glasses/sunglasses/hud/advanced/glasses, mob/living/user) ..() - item_actions.Add(new /datum/action/item_action/hands_free/switch_hud_modes/thermal(src)) + glasses.item_actions.Add(new /datum/action/item_action/hands_free/switch_hud_modes/thermal(src)) /obj/item/hud_upgrade/thermal_advanced name = "Advanced Thermal HUD upgrade" From 505e5ad713bf62999b2c68acc4e6ac6543ef5cf9 Mon Sep 17 00:00:00 2001 From: "D. Resnyanskiy" Date: Wed, 18 Sep 2024 04:56:39 +0500 Subject: [PATCH 35/36] Some fixes fixed functionality, made color filter switch reactive --- code/modules/clothing/glasses/glasses.dm | 6 +++++ code/modules/item_upgrades/item_upgrade.dm | 31 +++++++++++++++------- 2 files changed, 28 insertions(+), 9 deletions(-) diff --git a/code/modules/clothing/glasses/glasses.dm b/code/modules/clothing/glasses/glasses.dm index aad016f9b33f..107f94ea7fb0 100644 --- a/code/modules/clothing/glasses/glasses.dm +++ b/code/modules/clothing/glasses/glasses.dm @@ -448,6 +448,12 @@ /datum/glasses_mode_type_state +/datum/glasses_mode_type_state/proc/change_state(obj/item/clothing/glasses/glasses, state) + if(state) + on(glasses) + else + off(glasses) + /datum/glasses_mode_type_state/proc/on(obj/item/clothing/glasses/glasses) return diff --git a/code/modules/item_upgrades/item_upgrade.dm b/code/modules/item_upgrades/item_upgrade.dm index ebf730e164d5..1cd822dd89cf 100644 --- a/code/modules/item_upgrades/item_upgrade.dm +++ b/code/modules/item_upgrades/item_upgrade.dm @@ -25,15 +25,28 @@ HUD_TOGGLEABLE_MODE_THERMAL_ADVANCED = new /datum/glasses_mode_type_state/thermal_advanced, ) +/obj/item/clothing/glasses/sunglasses/hud/advanced/atom_init() + . = ..() + RegisterSignal(src, COMSIG_ITEM_DROPPED, PROC_REF(handle_drop)) + +/obj/item/clothing/glasses/sunglasses/hud/advanced/equipped(mob/user, slot) + . = ..() + if(slot != SLOT_GLASSES) + return + apply_effects(current_mode, TRUE) + +/obj/item/clothing/glasses/sunglasses/hud/advanced/proc/handle_drop(source, mob/living/carbon/human/user) + if(!istype(user) || user.glasses) + return + apply_effects(current_mode, FALSE) + /obj/item/clothing/glasses/sunglasses/hud/advanced/proc/apply_effects(mode_type, enable) - if(!ishuman(usr)) + if(!ishuman(glasses_user)) + return + if(mode_type == null) return - var/mob/living/carbon/glasses_user = usr var/datum/glasses_mode_type_state/state = glasses_states[mode_type] - if (enable) - state.on() - else - state.off() + state.change_state(src, enable) playsound(src, activation_sound, VOL_EFFECTS_MASTER, 10, FALSE) glasses_user.update_sight() update_item_actions() @@ -119,7 +132,7 @@ /obj/item/hud_upgrade/night/upgrade_hud(obj/item/clothing/glasses/sunglasses/hud/advanced/glasses, mob/living/user) ..() - glasses.item_actions.Add(new /datum/action/item_action/hands_free/switch_hud_modes/night(src)) + glasses.item_actions.Add(new /datum/action/item_action/hands_free/switch_hud_modes/night(glasses)) /obj/item/hud_upgrade/thermal name = "Thermal HUD upgrade" @@ -133,7 +146,7 @@ /obj/item/hud_upgrade/thermal/upgrade_hud(obj/item/clothing/glasses/sunglasses/hud/advanced/glasses, mob/living/user) ..() - glasses.item_actions.Add(new /datum/action/item_action/hands_free/switch_hud_modes/thermal(src)) + glasses.item_actions.Add(new /datum/action/item_action/hands_free/switch_hud_modes/thermal(glasses)) /obj/item/hud_upgrade/thermal_advanced name = "Advanced Thermal HUD upgrade" @@ -153,7 +166,7 @@ for(var/datum/action/item_action/hands_free/switch_hud_modes/thermal/thermal_action in glasses.item_actions) thermal_action.Remove(user) glasses.item_actions.Remove(thermal_action) - glasses.item_actions.Add(new /datum/action/item_action/hands_free/switch_hud_modes/thermal_advanced(src)) + glasses.item_actions.Add(new /datum/action/item_action/hands_free/switch_hud_modes/thermal_advanced(glasses)) /datum/action/item_action/hands_free/switch_hud_modes From ed399aace113804767df72c56a7cbb87d8185b4b Mon Sep 17 00:00:00 2001 From: "D. Resnyanskiy" Date: Sat, 28 Sep 2024 22:35:21 +0500 Subject: [PATCH 36/36] Fix boots design --- code/modules/research/designs.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/research/designs.dm b/code/modules/research/designs.dm index fa573591bd31..825e13f6ff9e 100644 --- a/code/modules/research/designs.dm +++ b/code/modules/research/designs.dm @@ -2992,5 +2992,5 @@ other types of metals and chemistry for reagents). id = "ds_boots" build_type = PROTOLATHE materials = list(MAT_METAL = 10000, MAT_GOLD = 2000, MAT_PHORON = 4000) - build_path = /obj/item/clothing/suit/armor/swat + build_path = /obj/item/clothing/shoes/boots/swat category = list("Armor")