puts dsi prosthetics back to normal in favor of dsi - adaptive skipping icon

This commit is contained in:
Seris02
2023-02-11 11:48:26 +08:00
parent ef41901455
commit 9490a5b69c
6 changed files with 41 additions and 23 deletions

View File

@@ -1140,6 +1140,7 @@ Note that amputating the affected organ does in fact remove the infection from t
brute_mod *= R.robo_brute_mod
burn_mod *= R.robo_burn_mod
skip_robo_icon = R.no_icon //CHOMPStation edit
digi_prosthetic = R.can_be_digitigrade //CHOMPStation edit
if(R.lifelike)
robotic = ORGAN_LIFELIKE
name = "[initial(name)]"

View File

@@ -4,7 +4,7 @@ GLOBAL_LIST_INIT(dsi_to_species, list(SPECIES_TAJARAN = "DSI - Tajaran", SPECIES
/datum/robolimb
var/no_icon = FALSE //specifically for DSI things, makes it so it doesn't override the species icons
//var/has_digitigrade_icon = FALSE //make this a thing
var/can_be_digitigrade = FALSE //used for skipping the icon if it can be digitigrade - maybe turn this into more of a 'use this icon/iconstate' instead later, when actual prosthetic digi icons get made
/datum/robolimb/valehoundhead
company = "VALE Hound- Head"
@@ -14,34 +14,31 @@ GLOBAL_LIST_INIT(dsi_to_species, list(SPECIES_TAJARAN = "DSI - Tajaran", SPECIES
parts = list(BP_HEAD)
/datum/robolimb/dsi_tajaran
no_icon = TRUE
can_be_digitigrade = TRUE
/datum/robolimb/dsi_lizard
no_icon = TRUE
can_be_digitigrade = TRUE
/datum/robolimb/dsi_sergal
no_icon = TRUE
can_be_digitigrade = TRUE
/datum/robolimb/dsi_nevrean
no_icon = TRUE
can_be_digitigrade = TRUE
/datum/robolimb/dsi_vulpkanin
no_icon = TRUE
can_be_digitigrade = TRUE
/datum/robolimb/dsi_akula
no_icon = TRUE
can_be_digitigrade = TRUE
/datum/robolimb/dsi_spider
no_icon = TRUE
can_be_digitigrade = TRUE
/datum/robolimb/dsi_zorren
no_icon = TRUE
can_be_digitigrade = TRUE
/datum/robolimb/dsi_fennec
no_icon = TRUE
/datum/robolimb/dsi_teshari
no_icon = TRUE
can_be_digitigrade = TRUE
/datum/robolimb/dsi_teshari/New()
. = ..()
@@ -49,7 +46,7 @@ GLOBAL_LIST_INIT(dsi_to_species, list(SPECIES_TAJARAN = "DSI - Tajaran", SPECIES
/datum/robolimb/dsi_other
company = "DSI - Synthetic"
company = "DSI - Adaptive"
desc = "This limb has a realistic design and squish. By Darkside Incorperated."
blood_color = "#ffe2ff"
lifelike = 1

View File

@@ -136,7 +136,16 @@
// Destroy/cyborgize organs and limbs.
if (convert_to_prosthetics) //should only really be run for proteans
for(var/name in BP_ALL)
var/list/organs_to_edit = list()
for (var/name in list(BP_TORSO, BP_HEAD, BP_GROIN, BP_L_ARM, BP_R_ARM, BP_L_HAND, BP_R_HAND, BP_L_LEG, BP_R_LEG, BP_L_FOOT, BP_R_FOOT))
var/obj/item/organ/external/O = character.organs_by_name[name]
if (O)
var/x = organs_to_edit.Find(O.parent_organ)
if (x == 0)
organs_to_edit += name
else
organs_to_edit.Insert(x+(O.robotic == ORGAN_NANOFORM ? 1 : 0), name)
for(var/name in organs_to_edit)
var/status = organ_data[name]
var/obj/item/organ/external/O = character.organs_by_name[name]
if(O)
@@ -153,7 +162,7 @@
bodytype = selected_species.get_bodytype()
var/dsi_company = GLOB.dsi_to_species[bodytype]
if (!dsi_company)
dsi_company = "DSI - Synthetic"
dsi_company = "DSI - Adaptive"
O.robotize(dsi_company)
for(var/N in character.organs_by_name)

View File

@@ -84,7 +84,16 @@
var/bodytype = character.species?.get_bodytype()
if (convert_to_prosthetics) //should only really be run for proteans
for(var/name in BP_ALL)
var/list/organs_to_edit = list()
for (var/name in list(BP_TORSO, BP_HEAD, BP_GROIN, BP_L_ARM, BP_R_ARM, BP_L_HAND, BP_R_HAND, BP_L_LEG, BP_R_LEG, BP_L_FOOT, BP_R_FOOT))
var/obj/item/organ/external/O = character.organs_by_name[name]
if (O)
var/x = organs_to_edit.Find(O.parent_organ)
if (x == 0)
organs_to_edit += name
else
organs_to_edit.Insert(x+(O.robotic == ORGAN_NANOFORM ? 1 : 0), name)
for(var/name in organs_to_edit)
var/obj/item/organ/external/I = character.organs_by_name[name]
var/obj/item/organ/external/O = organs_by_name[name]
if(O)
@@ -93,7 +102,7 @@
else
var/dsi_company = GLOB.dsi_to_species[bodytype]
if (!dsi_company)
dsi_company = "DSI - Synthetic"
dsi_company = "DSI - Adaptive"
O.robotize(dsi_company)
for(var/N in character.organs_by_name)

View File

@@ -1,5 +1,6 @@
/obj/item/organ/external
var/skip_robo_icon = FALSE //CHOMPStation edit - to force it to use the normal species icon
var/digi_prosthetic = FALSE //is it a prosthetic that can be digitigrade
//new function to check for markings
/obj/item/organ/external/proc/is_hidden_by_markings()

View File

@@ -10,6 +10,7 @@
digitigrade = dna.digitigrade && (istype(src,/obj/item/organ/external/leg) || istype(src,/obj/item/organ/external/foot))
var/gender = "m"
var/skip_forced_icon = skip_robo_icon || (digi_prosthetic && digitigrade)
if(owner && owner.gender == FEMALE)
gender = "f"
@@ -18,7 +19,7 @@
else
icon_cache_key = "[icon_name]_[force_icon_key]"
if(force_icon && !skip_robo_icon)
if(force_icon && !skip_forced_icon)
mob_icon = new /icon(force_icon, "[icon_name][gendered_icon ? "_[gender]" : ""]")
else
if(!dna)
@@ -35,7 +36,7 @@
if(skeletal)
mob_icon = new /icon('icons/mob/human_races/r_skeleton.dmi', "[icon_name][gender ? "_[gender]" : ""]")
else if (robotic >= ORGAN_ROBOT && !skip_robo_icon)
else if (robotic >= ORGAN_ROBOT && !skip_forced_icon)
mob_icon = new /icon('icons/mob/human_races/robotic.dmi', "[icon_name][gender ? "_[gender]" : ""]")
apply_colouration(mob_icon)
else
@@ -46,13 +47,13 @@
mob_icon = new /icon(digitigrade ? species.icodigi : species.get_icobase(owner, (status & ORGAN_MUTATED)), "[icon_name][gender ? "_[gender]" : ""]")
apply_colouration(mob_icon)
if (model && !skip_robo_icon)
if (model && !skip_forced_icon)
icon_cache_key += "_model_[model]"
apply_colouration(mob_icon)
//Code here is copied from organ_icon.dm line 118 at time of writing (9/20/21), VOREStation edits are left in intentionally, because I think it's worth keeping track of the fact that the code is from Virgo's edits.
//Body markings, actually does not include head this time. Done separately above.
if((!istype(src,/obj/item/organ/external/head) && !(force_icon && !skip_robo_icon)) || (model && owner && owner.synth_markings))
if((!istype(src,/obj/item/organ/external/head) && !(force_icon && !skip_forced_icon)) || (model && owner && owner.synth_markings))
for(var/M in markings)
var/datum/sprite_accessory/marking/mark_style = markings[M]["datum"]
var/isdigitype = istype(mark_style,/datum/sprite_accessory/marking/digi)
@@ -71,7 +72,7 @@
mob_icon.Blend(limb_icon_cache[cache_key], ICON_OVERLAY)
// VOREStation edit start
if(nail_polish && !(force_icon && !skip_robo_icon))
if(nail_polish && !(force_icon && !skip_forced_icon))
var/icon/I = new(nail_polish.icon, nail_polish.icon_state)
I.Blend(nail_polish.color, ICON_MULTIPLY)
add_overlay(I)