diff --git a/code/__DEFINES/is_helpers.dm b/code/__DEFINES/is_helpers.dm index 9538cf91fa..0609b9dabe 100644 --- a/code/__DEFINES/is_helpers.dm +++ b/code/__DEFINES/is_helpers.dm @@ -79,7 +79,7 @@ GLOBAL_LIST_INIT(turfs_without_ground, typecacheof(list( #define isangel(A) (is_species(A, /datum/species/angel)) #define ismush(A) (is_species(A, /datum/species/mush)) #define isshadow(A) (is_species(A, /datum/species/shadow)) -#define isrobotic(A) (is_species(A, /datum/species/ipc) || is_species(A, /datum/species/synthliz)) +#define isrobotic(A) (is_species(A, /datum/species/ipc) || is_species(A, /datum/species/synthliz) || is_species(A, /datum/species/mammal/synthetic)) #define isdwarf(A) (is_species(A, /datum/species/dwarf)) // Citadel specific species diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index 785a515438..5a2a632af2 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -147,6 +147,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) var/list/blacklisted_quirks = list() // Quirks that will be removed upon gaining this species, to be defined by species var/list/removed_quirks = list() // Quirks that got removed due to being blacklisted, and will be restored when on_species_loss() is called + var/balance_point_values = FALSE //If true, will balance point values on species gain after removing blacklisted quirks. Use this for roundstart species with blacklisted quirks that people may attempt to use to powergame trait points. ///Punch-specific attack verb. var/attack_verb = "punch" @@ -575,11 +576,14 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) /datum/species/proc/remove_blacklisted_quirks(mob/living/carbon/C) var/mob/living/L = C.mind?.current if(istype(L)) - for(var/q in L.roundstart_quirks) - var/datum/quirk/Q = q - if(Q.type in blacklisted_quirks) - qdel(Q) - removed_quirks += Q.type + if(!balance_point_values) + for(var/q in L.roundstart_quirks) + var/datum/quirk/Q = q + if(Q.type in blacklisted_quirks) + qdel(Q) + removed_quirks += Q.type + else + removed_quirks += SSquirks.filter_quirks(L.roundstart_quirks, blacklisted_quirks) // restore any quirks that we removed /datum/species/proc/restore_quirks(mob/living/carbon/C) diff --git a/code/modules/mob/living/carbon/human/species_types/anthropomorph.dm b/code/modules/mob/living/carbon/human/species_types/anthropomorph.dm index 9ddd3e68bf..6303a474c9 100644 --- a/code/modules/mob/living/carbon/human/species_types/anthropomorph.dm +++ b/code/modules/mob/living/carbon/human/species_types/anthropomorph.dm @@ -32,6 +32,8 @@ coldmod = 0.5 heatmod = 1.2 + blacklisted_quirks = list(/datum/quirk/coldblooded) + balance_point_values = TRUE //Just robo looking parts. mutant_heart = /obj/item/organ/heart/ipc @@ -51,5 +53,7 @@ attack_sound = 'sound/weapons/slash.ogg' miss_sound = 'sound/weapons/slashmiss.ogg' + exotic_bloodtype = "S" + exotic_blood_color = BLOOD_COLOR_OIL allowed_limb_ids = list("mammal","aquatic","avian", "human") - species_category = "robot" + species_category = SPECIES_CATEGORY_ROBOT diff --git a/code/modules/mob/living/carbon/human/species_types/ipc.dm b/code/modules/mob/living/carbon/human/species_types/ipc.dm index 943381b3d6..f3e245bb5d 100644 --- a/code/modules/mob/living/carbon/human/species_types/ipc.dm +++ b/code/modules/mob/living/carbon/human/species_types/ipc.dm @@ -15,6 +15,8 @@ coldmod = 0.5 heatmod = 1.2 + blacklisted_quirks = list(/datum/quirk/coldblooded) + balance_point_values = TRUE //Just robo looking parts. mutant_heart = /obj/item/organ/heart/ipc @@ -29,7 +31,7 @@ //special cybernetic organ for getting power from apcs mutant_organs = list(/obj/item/organ/cyberimp/arm/power_cord) - exotic_bloodtype = "HF" + exotic_bloodtype = "S" exotic_blood_color = BLOOD_COLOR_OIL species_category = SPECIES_CATEGORY_ROBOT diff --git a/code/modules/mob/living/carbon/human/species_types/synthliz.dm b/code/modules/mob/living/carbon/human/species_types/synthliz.dm index a8abf3015e..d3752dee15 100644 --- a/code/modules/mob/living/carbon/human/species_types/synthliz.dm +++ b/code/modules/mob/living/carbon/human/species_types/synthliz.dm @@ -12,6 +12,8 @@ coldmod = 0.5 heatmod = 1.2 + blacklisted_quirks = list(/datum/quirk/coldblooded) + balance_point_values = TRUE //Just robo looking parts. mutant_heart = /obj/item/organ/heart/ipc