Skip to content

Commit

Permalink
Species-nuking-port (#2775)
Browse files Browse the repository at this point in the history
* oh boy here we go

* more edits MORE

* The march continues

* All code applied, Debugging begins

* Removed duplicate stuff in cosmetics and moved relevent razor stuff to barber
fixed bugs forgot satyrs exist

* hoot hoot more owl

* Added jellypeople to have hair (its in s diff location now)

* Fixed skellingtons

* More bugfixes for eyes

* w

* Fixed eyes, need HEAD_EYESPRITES to have white eyes

* fuck golems

* ipcs have lips?

* it took me 8 hours to fix this spelling mistake :)

* Re added moth hair oops

* commented out facial hair offsets for now, not sure how it sets other sprite heights me eepy

* Fixed beards for everything but dwarves. I dont know why dwarf beards only work in preview.
  • Loading branch information
ThePooba authored Aug 22, 2024
1 parent 56fac5f commit a4b3c37
Show file tree
Hide file tree
Showing 71 changed files with 484 additions and 542 deletions.
44 changes: 21 additions & 23 deletions code/__DEFINES/DNA.dm
Original file line number Diff line number Diff line change
Expand Up @@ -66,39 +66,37 @@
#define CLONER_FRESH_CLONE "fresh"
#define CLONER_MATURE_CLONE "mature"



//species traits for mutantraces
#define MUTCOLORS 1
#define HAIR 2
#define FACEHAIR 3
#define EYECOLOR 4
#define LIPS 5
#define NOTRANSSTING 7
#define NOZOMBIE 8
#define NO_UNDERWEAR 9
#define NO_DNA_COPY 10
#define DRINKSBLOOD 11
#define SKINTONES 12
#define ANIME 13
#define MUTCOLORS_SECONDARY 14
#define SPECIES_FUR 15
#define NOTRANSSTING 2
#define NOZOMBIE 3
#define NO_UNDERWEAR 4
#define NO_DNA_COPY 5
#define DRINKSBLOOD 6
#define ANIME 7
#define MUTCOLORS_SECONDARY 8
#define SPECIES_FUR 9
#define SKINTONES 10

/// Use this if you want to change the race's color without the player being able to pick their own color. AKA special color shifting
#define DYNCOLORS 16
#define AGENDER 17
#define DYNCOLORS 7
#define AGENDER 8
/// Do not draw eyes or eyeless overlay
#define NOEYESPRITES 18
#define NOEYESPRITES 9
///If we have a limb-specific overlay sprite
#define HAS_MARKINGS 19
#define HAS_MARKINGS 10
/// Do not draw blood overlay
#define NOBLOODOVERLAY 20
#define NOBLOODOVERLAY 11
///No augments, for monkeys in specific because they will turn into fucking freakazoids https://cdn.discordapp.com/attachments/326831214667235328/791313258912153640/102707682-fa7cad80-4294-11eb-8f13-8c689468aeb0.png
#define NOAUGMENTS 21
#define NOAUGMENTS 12
///will be assigned a universal vampire themed last name shared by their department. this is preferenced!
#define BLOOD_CLANS 22
#define BLOOD_CLANS 13

#define REVIVESBYHEALING 23
#define NOHUSK 24
#define NOMOUTH 25
#define REVIVESBYHEALING 14
#define NOHUSK 15
#define NOMOUTH 16

//organ slots
#define ORGAN_SLOT_ADAMANTINE_RESONATOR "adamantine_resonator"
Expand Down
9 changes: 9 additions & 0 deletions code/__DEFINES/sprite_accessories.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
// ~color source defines for sprite accessories
/// Color of the sprite accessory will match the owner's mutant color, which is granted by certain species
#define MUTANT_COLOR "mutant_color"
/// Color of the sprite accessory will match the owner's hair color
#define HAIR_COLOR "hair_color"
/// Color of the sprite accessory will match the owner's facial hair color
#define FACIAL_HAIR_COLOR "facial_hair_color"
/// Color of the sprite accessory will match the owner's (left) eye color
#define EYE_COLOR "eye_color"
18 changes: 18 additions & 0 deletions code/__DEFINES/surgery.dm
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,24 @@
///Bodypart does not get replaced during set_species()
#define BP_BLOCK_CHANGE_SPECIES (1<<0)

// Flags for the head_flags var on /obj/item/bodypart/head
/// Head can have hair
#define HEAD_HAIR (1<<0)
/// Head can have facial hair
#define HEAD_FACIAL_HAIR (1<<1)
/// Head can have lips
#define HEAD_LIPS (1<<2)
/// Head can have eye sprites
#define HEAD_EYESPRITES (1<<3)
/// Head will have colored eye sprites
#define HEAD_EYECOLOR (1<<4)
/// Head can have eyeholes when missing eyes
#define HEAD_EYEHOLES (1<<5)
/// Head can have debrain overlay
#define HEAD_DEBRAIN (1<<6)
/// All head flags, default for most heads
#define HEAD_ALL_FEATURES (HEAD_HAIR|HEAD_FACIAL_HAIR|HEAD_LIPS|HEAD_EYESPRITES|HEAD_EYECOLOR|HEAD_EYEHOLES|HEAD_DEBRAIN)

/// When the surgery step fails :(
#define SURGERY_STEP_FAIL -1

Expand Down
2 changes: 2 additions & 0 deletions code/__DEFINES/traits.dm
Original file line number Diff line number Diff line change
Expand Up @@ -245,6 +245,8 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai
#define TRAIT_VIRUSIMMUNE "virus_immunity"
#define TRAIT_PIERCEIMMUNE "pierce_immunity"
#define TRAIT_NODISMEMBER "dismember_immunity"
/// This carbon doesn't show an overlay when they have no brain
#define TRAIT_NO_DEBRAIN_OVERLAY "no_debrain_overlay"
#define TRAIT_NOFIRE "nonflammable"
#define TRAIT_NOFIRE_SPREAD "no_fire_spreading"
/// Prevents plasmamen from self-igniting if only their helmet is missing
Expand Down
10 changes: 10 additions & 0 deletions code/_globalvars/bitfields.dm
Original file line number Diff line number Diff line change
Expand Up @@ -401,6 +401,16 @@ DEFINE_BITFIELD(change_exempt_flags, list(
"BP_BLOCK_CHANGE_SPECIES" = BP_BLOCK_CHANGE_SPECIES,
))

DEFINE_BITFIELD(head_flags, list(
"HEAD_HAIR" = HEAD_HAIR,
"HEAD_FACIAL_HAIR" = HEAD_FACIAL_HAIR,
"HEAD_LIPS" = HEAD_LIPS,
"HEAD_EYESPRITES" = HEAD_EYESPRITES,
"HEAD_EYECOLOR" = HEAD_EYECOLOR,
"HEAD_EYEHOLES" = HEAD_EYEHOLES,
"HEAD_DEBRAIN" = HEAD_DEBRAIN,
))

DEFINE_BITFIELD(supports_variations_flags, list(
"CLOTHING_NO_VARIATION" = CLOTHING_NO_VARIATION,
"CLOTHING_DIGITIGRADE_VARIATION" = CLOTHING_DIGITIGRADE_VARIATION,
Expand Down
1 change: 1 addition & 0 deletions code/_globalvars/traits.dm
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,7 @@ GLOBAL_LIST_INIT(traits_by_type, list(
"TRAIT_VIRUSIMMUNE" = TRAIT_VIRUSIMMUNE,
"TRAIT_PIERCEIMMUNE" = TRAIT_PIERCEIMMUNE,
"TRAIT_NODISMEMBER" = TRAIT_NODISMEMBER,
"TRAIT_NO_DEBRAIN_OVERLAY" = TRAIT_NO_DEBRAIN_OVERLAY,
"TRAIT_NOFIRE" = TRAIT_NOFIRE,
"TRAIT_NOGUNS" = TRAIT_NOGUNS,
"TRAIT_NOHUNGER" = TRAIT_NOHUNGER,
Expand Down
10 changes: 5 additions & 5 deletions code/datums/mutations/body.dm
Original file line number Diff line number Diff line change
Expand Up @@ -502,6 +502,7 @@
. = ..()
if(.)//cant add
return TRUE

var/obj/item/organ/internal/brain/brain = owner.get_organ_slot(ORGAN_SLOT_BRAIN)
if(brain)
brain.zone = BODY_ZONE_CHEST
Expand All @@ -510,19 +511,18 @@
if(head)
owner.visible_message(span_warning("[owner]'s head splatters with a sickening crunch!"), ignored_mobs = list(owner))
new /obj/effect/gibspawner/generic(get_turf(owner), owner)
head.dismember(BRUTE)
head.dismember(dam_type = BRUTE, silent = TRUE)
head.drop_organs()
qdel(head)
owner.regenerate_icons()
RegisterSignal(owner, COMSIG_ATTEMPT_CARBON_ATTACH_LIMB, PROC_REF(abortattachment))
RegisterSignal(owner, COMSIG_ATTEMPT_CARBON_ATTACH_LIMB, PROC_REF(abort_attachment))

/datum/mutation/human/headless/on_losing()
. = ..()
if(.)
return TRUE
var/obj/item/organ/internal/brain/brain = owner.get_organ_slot(ORGAN_SLOT_BRAIN)
if(brain) //so this doesn't instantly kill you. we could delete the brain, but it lets people cure brain issues they /really/ shouldn't be
brain.zone = BODY_ZONE_HEAD
brain.zone = initial(brain.zone)
UnregisterSignal(owner, COMSIG_ATTEMPT_CARBON_ATTACH_LIMB)
var/successful = owner.regenerate_limb(BODY_ZONE_HEAD)
if(!successful)
Expand All @@ -534,7 +534,7 @@
new /obj/effect/gibspawner/generic(get_turf(owner), owner)


/datum/mutation/human/headless/proc/abortattachment(datum/source, obj/item/bodypart/new_limb, special) //you aren't getting your head back
/datum/mutation/human/headless/proc/abort_attachment(datum/source, obj/item/bodypart/new_limb, special) //you aren't getting your head back
SIGNAL_HANDLER

if(istype(new_limb, /obj/item/bodypart/head))
Expand Down
Loading

0 comments on commit a4b3c37

Please sign in to comment.