mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-07-17 10:57:19 +01:00
Branded IPCs (#3388)
This PR adds 2 subtypes of industrial and two subtypes of baseline, one for each cybernetics manufacturer. Sprites by BRAINOS. other changes: IPCs can now be flashed or flashbanged. Admin spawn paths have been added for subspecies that did not have them. IPCs are no longer slowed by being cold.
This commit is contained in:
@@ -65,9 +65,9 @@
|
||||
if (!eyes_icon)
|
||||
eyes_icon = new/icon('icons/mob/human_face/eyes.dmi', species.eyes)
|
||||
if(eyecolor)
|
||||
eyes_icon.Blend(eyecolor, ICON_ADD)
|
||||
eyes_icon.Blend(eyecolor, species.eyes_icon_blend)
|
||||
else
|
||||
eyes_icon.Blend(rgb(128,0,0), ICON_ADD)
|
||||
eyes_icon.Blend(rgb(128,0,0), species.eyes_icon_blend)
|
||||
|
||||
SSicon_cache.human_eye_cache[cache_key] = eyes_icon
|
||||
|
||||
@@ -83,22 +83,7 @@
|
||||
add_overlay(lip_icon)
|
||||
mob_icon.Blend(lip_icon, ICON_OVERLAY)
|
||||
|
||||
if (!cached_markings)
|
||||
update_marking_cache()
|
||||
|
||||
for(var/M in cached_markings)
|
||||
var/datum/sprite_accessory/marking/mark_style = cached_markings[M]["datum"]
|
||||
var/m_color = cached_markings[M]["color"]
|
||||
var/cache_key = "[mark_style.icon]-[mark_style.icon_state]-[limb_name]-[m_color]"
|
||||
|
||||
var/icon/finished_icon = SSicon_cache.markings_cache[cache_key]
|
||||
if (!finished_icon)
|
||||
finished_icon = new/icon("icon" = mark_style.icon, "icon_state" = "[mark_style.icon_state]-[limb_name]")
|
||||
finished_icon.Blend(m_color, ICON_ADD)
|
||||
SSicon_cache.markings_cache[cache_key] = finished_icon
|
||||
|
||||
add_overlay(finished_icon) //So when it's not on your body, it has icons
|
||||
mob_icon.Blend(finished_icon, ICON_OVERLAY) //So when it's on your body, it has icons
|
||||
apply_markings()
|
||||
|
||||
add_overlay(owner.generate_hair_icon())
|
||||
|
||||
@@ -106,6 +91,28 @@
|
||||
|
||||
return mob_icon
|
||||
|
||||
/obj/item/organ/external/proc/apply_markings(restrict_to_robotic = FALSE)
|
||||
if (!cached_markings)
|
||||
update_marking_cache()
|
||||
|
||||
if (LAZYLEN(cached_markings))
|
||||
for(var/M in cached_markings)
|
||||
var/datum/sprite_accessory/marking/mark_style = cached_markings[M]["datum"]
|
||||
if (restrict_to_robotic && !mark_style.is_painted)
|
||||
continue
|
||||
|
||||
var/m_color = cached_markings[M]["color"]
|
||||
var/cache_key = "[mark_style.icon]-[mark_style.icon_state]-[limb_name]-[m_color]"
|
||||
|
||||
var/icon/finished_icon = SSicon_cache.markings_cache[cache_key]
|
||||
if (!finished_icon)
|
||||
finished_icon = new/icon("icon" = mark_style.icon, "icon_state" = "[mark_style.icon_state]-[limb_name]")
|
||||
finished_icon.Blend(m_color, mark_style.icon_blend_mode)
|
||||
SSicon_cache.markings_cache[cache_key] = finished_icon
|
||||
|
||||
add_overlay(finished_icon) //So when it's not on your body, it has icons
|
||||
mob_icon.Blend(finished_icon, ICON_OVERLAY) //So when it's on your body, it has icons
|
||||
|
||||
/obj/item/organ/external/proc/get_icon(var/skeletal)
|
||||
|
||||
var/gender = "f"
|
||||
@@ -116,6 +123,7 @@
|
||||
mob_icon = new /icon(force_icon, "[icon_name][gendered_icon ? "_[gender]" : ""]")
|
||||
if(painted && skin_color)
|
||||
mob_icon.Blend(skin_color, ICON_ADD)
|
||||
apply_markings(restrict_to_robotic = TRUE)
|
||||
else
|
||||
if(!dna)
|
||||
mob_icon = new /icon('icons/mob/human_races/r_human.dmi', "[icon_name][gendered_icon ? "_[gender]" : ""]")
|
||||
@@ -150,23 +158,7 @@
|
||||
else if(skin_color)
|
||||
mob_icon.Blend(skin_color, ICON_ADD)
|
||||
|
||||
//Body markings, does not include head, duplicated (sadly) above.
|
||||
if (!cached_markings)
|
||||
update_marking_cache()
|
||||
|
||||
for(var/M in cached_markings)
|
||||
var/datum/sprite_accessory/marking/mark_style = cached_markings[M]["datum"]
|
||||
var/m_color = cached_markings[M]["color"]
|
||||
var/cache_key = "[mark_style.icon]-[mark_style.icon_state]-[limb_name]-[m_color]"
|
||||
|
||||
var/icon/finished_icon = SSicon_cache.markings_cache[cache_key]
|
||||
if (!finished_icon)
|
||||
finished_icon = new/icon("icon" = mark_style.icon, "icon_state" = "[mark_style.icon_state]-[limb_name]")
|
||||
finished_icon.Blend(m_color, ICON_ADD)
|
||||
SSicon_cache.markings_cache[cache_key] = finished_icon
|
||||
|
||||
add_overlay(finished_icon) //So when it's not on your body, it has icons
|
||||
mob_icon.Blend(finished_icon, ICON_OVERLAY) //So when it's on your body, it has icons
|
||||
apply_markings()
|
||||
|
||||
if(body_hair && hair_color)
|
||||
var/list/limb_icon_cache = SSicon_cache.body_hair_cache
|
||||
|
||||
@@ -31,22 +31,22 @@ var/global/datum/robolimb/basic_robolimb
|
||||
/datum/robolimb/bishop
|
||||
company = PROSTHETIC_BC
|
||||
desc = "This limb is coated in a brilliant silver illuminated from the inside with blue status lights."
|
||||
icon = 'icons/mob/human_races/cyberlimbs/bishop.dmi'
|
||||
icon = 'icons/mob/human_races/r_ind_bishop.dmi'
|
||||
|
||||
/datum/robolimb/hesphaistos
|
||||
company = PROSTHETIC_HI
|
||||
desc = "This limb is covered in thick plating coated with a militaristic olive drab."
|
||||
icon = 'icons/mob/human_races/cyberlimbs/hesphaistos.dmi'
|
||||
icon = 'icons/mob/human_races/r_ind_hephaestus.dmi'
|
||||
|
||||
/datum/robolimb/zenghu
|
||||
company = PROSTHETIC_ZH
|
||||
desc = "This limb has sleek white plating over a graphene-based nanofiber weave."
|
||||
icon = 'icons/mob/human_races/cyberlimbs/zenghu.dmi'
|
||||
icon = 'icons/mob/human_races/r_ind_zenghu.dmi'
|
||||
|
||||
/datum/robolimb/xion
|
||||
company = PROSTHETIC_XMG
|
||||
desc = "This limb has a minimalist black and grey casing with exposed orange wiring channels."
|
||||
icon = 'icons/mob/human_races/cyberlimbs/xion.dmi'
|
||||
icon = 'icons/mob/human_races/r_ind_xion.dmi'
|
||||
|
||||
/datum/robolimb/ipc
|
||||
company = PROSTHETIC_IPC
|
||||
|
||||
@@ -0,0 +1,141 @@
|
||||
// Heads
|
||||
/obj/item/organ/external/head/industrial/hephaestus
|
||||
robotize_type = PROSTHETIC_HI
|
||||
|
||||
/obj/item/organ/external/head/industrial/xion
|
||||
robotize_type = PROSTHETIC_XMG
|
||||
|
||||
/obj/item/organ/external/head/industrial/zenghu
|
||||
robotize_type = PROSTHETIC_ZH
|
||||
|
||||
/obj/item/organ/external/head/industrial/bishop
|
||||
robotize_type = PROSTHETIC_BC
|
||||
|
||||
// Chest
|
||||
/obj/item/organ/external/chest/industrial/hephaestus
|
||||
robotize_type = PROSTHETIC_HI
|
||||
|
||||
/obj/item/organ/external/chest/industrial/xion
|
||||
robotize_type = PROSTHETIC_XMG
|
||||
|
||||
/obj/item/organ/external/chest/industrial/zenghu
|
||||
robotize_type = PROSTHETIC_ZH
|
||||
|
||||
/obj/item/organ/external/chest/industrial/bishop
|
||||
robotize_type = PROSTHETIC_BC
|
||||
|
||||
// Groin
|
||||
/obj/item/organ/external/groin/industrial/hephaestus
|
||||
robotize_type = PROSTHETIC_HI
|
||||
|
||||
/obj/item/organ/external/groin/industrial/xion
|
||||
robotize_type = PROSTHETIC_XMG
|
||||
|
||||
/obj/item/organ/external/groin/industrial/zenghu
|
||||
robotize_type = PROSTHETIC_ZH
|
||||
|
||||
/obj/item/organ/external/groin/industrial/bishop
|
||||
robotize_type = PROSTHETIC_BC
|
||||
|
||||
// Left Arm
|
||||
/obj/item/organ/external/arm/industrial/hephaestus
|
||||
robotize_type = PROSTHETIC_HI
|
||||
|
||||
/obj/item/organ/external/arm/industrial/xion
|
||||
robotize_type = PROSTHETIC_XMG
|
||||
|
||||
/obj/item/organ/external/arm/industrial/zenghu
|
||||
robotize_type = PROSTHETIC_ZH
|
||||
|
||||
/obj/item/organ/external/arm/industrial/bishop
|
||||
robotize_type = PROSTHETIC_BC
|
||||
|
||||
// Right Arm
|
||||
/obj/item/organ/external/arm/right/industrial/hephaestus
|
||||
robotize_type = PROSTHETIC_HI
|
||||
|
||||
/obj/item/organ/external/arm/right/industrial/xion
|
||||
robotize_type = PROSTHETIC_XMG
|
||||
|
||||
/obj/item/organ/external/arm/right/industrial/zenghu
|
||||
robotize_type = PROSTHETIC_ZH
|
||||
|
||||
/obj/item/organ/external/arm/right/industrial/bishop
|
||||
robotize_type = PROSTHETIC_BC
|
||||
|
||||
// Left Leg
|
||||
/obj/item/organ/external/leg/industrial/hephaestus
|
||||
robotize_type = PROSTHETIC_HI
|
||||
|
||||
/obj/item/organ/external/leg/industrial/xion
|
||||
robotize_type = PROSTHETIC_XMG
|
||||
|
||||
/obj/item/organ/external/leg/industrial/zenghu
|
||||
robotize_type = PROSTHETIC_ZH
|
||||
|
||||
/obj/item/organ/external/leg/industrial/bishop
|
||||
robotize_type = PROSTHETIC_BC
|
||||
|
||||
// Right Leg
|
||||
/obj/item/organ/external/leg/right/industrial/hephaestus
|
||||
robotize_type = PROSTHETIC_HI
|
||||
|
||||
/obj/item/organ/external/leg/right/industrial/xion
|
||||
robotize_type = PROSTHETIC_XMG
|
||||
|
||||
/obj/item/organ/external/leg/right/industrial/zenghu
|
||||
robotize_type = PROSTHETIC_ZH
|
||||
|
||||
/obj/item/organ/external/leg/right/industrial/bishop
|
||||
robotize_type = PROSTHETIC_BC
|
||||
|
||||
// Left foot
|
||||
/obj/item/organ/external/foot/industrial/hephaestus
|
||||
robotize_type = PROSTHETIC_HI
|
||||
|
||||
/obj/item/organ/external/foot/industrial/xion
|
||||
robotize_type = PROSTHETIC_XMG
|
||||
|
||||
/obj/item/organ/external/foot/industrial/zenghu
|
||||
robotize_type = PROSTHETIC_ZH
|
||||
|
||||
/obj/item/organ/external/foot/industrial/bishop
|
||||
robotize_type = PROSTHETIC_BC
|
||||
|
||||
// Right foot
|
||||
/obj/item/organ/external/foot/right/industrial/hephaestus
|
||||
robotize_type = PROSTHETIC_HI
|
||||
|
||||
/obj/item/organ/external/foot/right/industrial/xion
|
||||
robotize_type = PROSTHETIC_XMG
|
||||
|
||||
/obj/item/organ/external/foot/right/industrial/zenghu
|
||||
robotize_type = PROSTHETIC_ZH
|
||||
|
||||
/obj/item/organ/external/foot/right/industrial/bishop
|
||||
robotize_type = PROSTHETIC_BC
|
||||
|
||||
/obj/item/organ/external/hand/industrial/hephaestus
|
||||
robotize_type = PROSTHETIC_HI
|
||||
|
||||
/obj/item/organ/external/hand/industrial/xion
|
||||
robotize_type = PROSTHETIC_XMG
|
||||
|
||||
/obj/item/organ/external/hand/industrial/zenghu
|
||||
robotize_type = PROSTHETIC_ZH
|
||||
|
||||
/obj/item/organ/external/hand/industrial/bishop
|
||||
robotize_type = PROSTHETIC_BC
|
||||
|
||||
// Right hand
|
||||
/obj/item/organ/external/hand/right/industrial/hephaestus
|
||||
robotize_type = PROSTHETIC_HI
|
||||
|
||||
/obj/item/organ/external/hand/right/industrial/xion
|
||||
robotize_type = PROSTHETIC_XMG
|
||||
|
||||
/obj/item/organ/external/hand/right/industrial/zenghu
|
||||
robotize_type = PROSTHETIC_ZH
|
||||
|
||||
/obj/item/organ/external/hand/right/industrial/bishop
|
||||
robotize_type = PROSTHETIC_BC
|
||||
Reference in New Issue
Block a user