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:
Lohikar
2018-01-20 16:34:06 -06:00
committed by Erki
parent 7086e77207
commit 90886a3076
48 changed files with 585 additions and 163 deletions
+27 -35
View File
@@ -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
+4 -4
View File
@@ -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
+141
View File
@@ -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