Skip to content

Commit

Permalink
Genemod DLC: Of Rabbits and Wolves (#3083)
Browse files Browse the repository at this point in the history
<!-- Write **BELOW** The Headers and **ABOVE** The comments else it may
not be viewable. -->
<!-- You can view Contributing.MD for a detailed description of the pull
request process. -->

## About The Pull Request

Adds four new ear and two new tail options to human genemods, themed
after dogs and rabbits respectively!
(ᵗʰᶦˢ ᵖʳ ᵃˡˢᵒ ⁿᵉʳᶠˢ ᶠᵒˣ ᵉᵃʳˢ ᵇʸ ᵐᵃᵏᶦⁿᵍ ᵗʰᵉᵐ ᵗᵃᵏᵉ ᵐᵒʳᵉ ᵈᵃᵐᵃᵍᵉ ʲᵘˢᵗ ˡᶦᵏᵉ
ᶜᵃᵗ ᵒʳ ᵉˡᶠ ᵉᵃʳˢ ᵈᵒ)
<details>
<summary>But who cares about that, check out these radicool new
genemods!!!</summary>


![dog](https://github.com/shiptest-ss13/Shiptest/assets/86762641/605aa57f-4a8d-494a-8d9a-0327c66b050f)

![rabbit](https://github.com/shiptest-ss13/Shiptest/assets/86762641/4f1b4530-269e-4ada-bf5e-d3dde40b9bb1)
![bent
rabbit](https://github.com/shiptest-ss13/Shiptest/assets/86762641/9dd90434-b94e-495e-8ce2-4ec49f6f3049)
![floppy
rabbit](https://github.com/shiptest-ss13/Shiptest/assets/86762641/50619b51-1c85-4103-8c01-19ea15e769a6)


</details>
Sprites by k3licia on discord, and tweaked by Imaginos. Give them both
some love!!!
<!-- Describe The Pull Request. Please be sure every change is
documented or this can delay review and even discourage maintainers from
merging your PR! -->

## Why It's Good For The Game
More character customization options are good, and the yaoi potential
between a dog and a rabbit is too ripe to pass up.
<!-- Please add a short description of why you think these changes would
benefit the game. If you can't justify it in words, it might not be
worth adding. -->

## Changelog

:cl:
add: several new SUNS-produced genemods have hit the public market! Head
to your local gene-clinic and ask about their new dog and rabbit options
for more details
balance: fox ears have been tweaked to be just as susceptible to sound
as cat ears
/:cl:

<!-- Both :cl:'s are required for the changelog to work! You can put
your name to the right of the first :cl: if you want to overwrite your
GitHub username as author ingame. -->
<!-- You can use multiple of the same prefix (they're only used for the
icon ingame) and delete the unneeded ones. Despite some of the tags,
changelogs should generally represent how a player might be affected by
the changes rather than a summary of the PR's contents. -->

---------

Signed-off-by: Skies-Of-Blue <[email protected]>
Co-authored-by: meem <[email protected]>
  • Loading branch information
Skies-Of-Blue and meemofcourse authored Jun 8, 2024
1 parent e242a9a commit bc90be0
Show file tree
Hide file tree
Showing 11 changed files with 211 additions and 29 deletions.
51 changes: 40 additions & 11 deletions code/modules/mob/dead/new_player/sprite_accessories/ears.dm
Original file line number Diff line number Diff line change
Expand Up @@ -3,33 +3,62 @@
/datum/sprite_accessory/ears
icon = 'icons/mob/mutant_bodyparts.dmi'

/datum/sprite_accessory/ears/none
/datum/sprite_accessory/ears/human/none
name = "None"
icon_state = "none"

/datum/sprite_accessory/ears/cat
icon = 'icons/mob/species/misc/cat.dmi'
/datum/sprite_accessory/ears/human/elf
icon = 'icons/mob/species/human/elf.dmi'
name = "Elf"
icon_state = "elf"
secondary_color = FALSE
color_src = SKINCOLORS

/datum/sprite_accessory/ears/human/cat
icon = 'icons/mob/species/human/cat.dmi'
name = "Cat"
icon_state = "cat"
secondary_color = TRUE
color_src = HAIR

/datum/sprite_accessory/ears/cat/slime
/datum/sprite_accessory/ears/human/cat/slime
name = "Slimecat"
icon_state = "cat"
secondary_color = FALSE
color_src = HAIR
image_alpha = 150

/datum/sprite_accessory/ears/fox
icon = 'icons/mob/species/misc/fox.dmi'
/datum/sprite_accessory/ears/human/dog
icon = 'icons/mob/species/human/dog.dmi'
name = "Dog"
icon_state = "dog"
secondary_color = FALSE
color_src = HAIR

/datum/sprite_accessory/ears/human/fox
icon = 'icons/mob/species/human/fox.dmi'
name = "Fox"
icon_state = "fox"
secondary_color = TRUE
color_src = HAIR

/datum/sprite_accessory/ears/elf
name = "Elf"
icon_state = "elf"
secondary_color = FALSE
color_src = SKINCOLORS
/datum/sprite_accessory/ears/human/rabbit
icon = 'icons/mob/species/human/rabbit.dmi'
name = "Rabbit"
icon_state = "bunny"
secondary_color = TRUE
color_src = HAIR

/datum/sprite_accessory/ears/human/rabbit/bent
icon = 'icons/mob/species/human/rabbit.dmi'
name = "Bent Rabbit"
icon_state = "bunny_bent"
secondary_color = TRUE
color_src = HAIR

/datum/sprite_accessory/ears/human/rabbit/floppy
icon = 'icons/mob/species/human/rabbit.dmi'
name = "Floppy Rabbit"
icon_state = "bunny_floppy"
secondary_color = TRUE
color_src = HAIR
30 changes: 24 additions & 6 deletions code/modules/mob/dead/new_player/sprite_accessories/tails.dm
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,13 @@
icon_state = "none"

/datum/sprite_accessory/tails/human/cat
icon = 'icons/mob/species/misc/cat.dmi'
icon = 'icons/mob/species/human/cat.dmi'
name = "Cat"
icon_state = "cat"
color_src = HAIR

/datum/sprite_accessory/tails_animated/human/cat
icon = 'icons/mob/species/misc/cat.dmi'
icon = 'icons/mob/species/human/cat.dmi'
name = "Cat"
icon_state = "cat"
color_src = HAIR
Expand All @@ -32,26 +32,44 @@
color_src = HAIR
image_alpha = 150

/datum/sprite_accessory/tails/human/dog
icon = 'icons/mob/species/human/dog.dmi'
name = "Dog"
icon_state = "dog"
color_src = HAIR

/datum/sprite_accessory/tails_animated/human/dog
icon = 'icons/mob/species/human/dog.dmi'
name = "Dog"
icon_state = "dog"
color_src = HAIR

/datum/sprite_accessory/tails/human/fox
icon = 'icons/mob/species/misc/fox.dmi'
icon = 'icons/mob/species/human/fox.dmi'
name = "Fox"
icon_state = "fox"
color_src = HAIR

/datum/sprite_accessory/tails_animated/human/fox
icon = 'icons/mob/species/misc/fox.dmi'
icon = 'icons/mob/species/human/fox.dmi'
name = "Fox"
icon_state = "fox"
color_src = HAIR

/datum/sprite_accessory/tails/human/fox/alt
icon = 'icons/mob/species/misc/fox.dmi'
icon = 'icons/mob/species/human/fox.dmi'
name = "Fox 2"
icon_state = "fox2"
color_src = HAIR

/datum/sprite_accessory/tails_animated/human/fox/alt
icon = 'icons/mob/species/misc/fox.dmi'
icon = 'icons/mob/species/human/fox.dmi'
name = "Fox 2"
icon_state = "fox2"
color_src = HAIR

/datum/sprite_accessory/tails/human/rabbit
icon = 'icons/mob/species/human/rabbit.dmi'
name = "Rabbit"
icon_state = "bunny"
color_src = HAIR
37 changes: 27 additions & 10 deletions code/modules/mob/living/carbon/human/species_types/humans.dm
Original file line number Diff line number Diff line change
Expand Up @@ -13,16 +13,33 @@
loreblurb = "Mostly hairless mammalians. Their home system, Sol, lies in a sort of \"bluespace dead-zone\" that blocks anything from entering or exiting Sol's dead-zone through bluespace without a relay. While it leaves Sol extremely well-defended, it meant that they went unnoticed and uncontacted until they were themselves able to breach it."

/datum/species/human/on_species_gain(mob/living/carbon/C, datum/species/old_species, pref_load)
if(C.dna.features["ears"] == "Cat")
mutantears = /obj/item/organ/ears/cat
if(C.dna.features["ears"] == "Fox")
mutantears = /obj/item/organ/ears/fox
if(C.dna.features["tail_human"] == "Cat")
mutant_organs |= /obj/item/organ/tail/cat
if(C.dna.features["tail_human"] == "Fox")
mutant_organs |= /obj/item/organ/tail/fox
if(C.dna.features["ears"] == "Elf")
mutantears = /obj/item/organ/ears/elf
switch(C.dna.features["ears"])
if("Elf")
mutantears = /obj/item/organ/ears/elf
if("Cat")
mutantears = /obj/item/organ/ears/cat
if("Dog")
mutantears = /obj/item/organ/ears/dog
if("Fox")
mutantears = /obj/item/organ/ears/fox
if("Rabbit")
mutantears = /obj/item/organ/ears/rabbit
if("Bent Rabbit")
mutantears = /obj/item/organ/ears/rabbit/bent
if("Floppy Rabbit")
mutantears = /obj/item/organ/ears/rabbit/floppy
switch(C.dna.features["tail_human"])
if("Cat")
mutant_organs |= /obj/item/organ/tail/cat
if("Dog")
mutant_organs |= /obj/item/organ/tail/dog
if("Fox")
mutant_organs |= /obj/item/organ/tail/fox
if("Fox 2")
mutant_organs |= /obj/item/organ/tail/fox/alt
if("Rabbit")
mutant_organs |= /obj/item/organ/tail/rabbit

return ..()

/datum/species/human/spec_death(gibbed, mob/living/carbon/human/H)
Expand Down
76 changes: 76 additions & 0 deletions code/modules/surgery/organs/ears.dm
Original file line number Diff line number Diff line change
Expand Up @@ -150,6 +150,10 @@
ear_owner.dna.species.mutant_bodyparts -= "ears"
ear_owner.update_body()

/obj/item/organ/ears/fox
name = "fox ears"
damage_multiplier = 2

/obj/item/organ/ears/fox/Insert(mob/living/carbon/human/ear_owner, special = 0, drop_if_replaced = TRUE)
..()
if(istype(ear_owner))
Expand All @@ -166,6 +170,78 @@
ear_owner.dna.species.mutant_bodyparts -= "ears"
ear_owner.update_body()

/obj/item/organ/ears/rabbit
name = "rabbit ears"
damage_multiplier = 2

/obj/item/organ/ears/rabbit/Insert(mob/living/carbon/human/ear_owner, special = 0, drop_if_replaced = TRUE)
..()
if(istype(ear_owner))
color = ear_owner.hair_color
ear_owner.dna.species.mutant_bodyparts |= "ears"
ear_owner.dna.features["ears"] = "Rabbit"
ear_owner.update_body()

/obj/item/organ/ears/rabbit/Remove(mob/living/carbon/human/ear_owner, special = 0)
..()
if(istype(ear_owner))
color = ear_owner.hair_color
ear_owner.dna.features["ears"] = "None"
ear_owner.dna.species.mutant_bodyparts -= "ears"
ear_owner.update_body()

/obj/item/organ/ears/rabbit/bent/Insert(mob/living/carbon/human/ear_owner, special = 0, drop_if_replaced = TRUE)
..()
if(istype(ear_owner))
color = ear_owner.hair_color
ear_owner.dna.species.mutant_bodyparts |= "ears"
ear_owner.dna.features["ears"] = "Bent Rabbit"
ear_owner.update_body()

/obj/item/organ/ears/rabbit/bent/Remove(mob/living/carbon/human/ear_owner, special = 0)
..()
if(istype(ear_owner))
color = ear_owner.hair_color
ear_owner.dna.features["ears"] = "None"
ear_owner.dna.species.mutant_bodyparts -= "ears"
ear_owner.update_body()

/obj/item/organ/ears/rabbit/floppy/Insert(mob/living/carbon/human/ear_owner, special = 0, drop_if_replaced = TRUE)
..()
if(istype(ear_owner))
color = ear_owner.hair_color
ear_owner.dna.species.mutant_bodyparts |= "ears"
ear_owner.dna.features["ears"] = "Floppy Rabbit"
ear_owner.update_body()

/obj/item/organ/ears/floppy/Remove(mob/living/carbon/human/ear_owner, special = 0)
..()
if(istype(ear_owner))
color = ear_owner.hair_color
ear_owner.dna.features["ears"] = "None"
ear_owner.dna.species.mutant_bodyparts -= "ears"
ear_owner.update_body()

/obj/item/organ/ears/dog
name = "dog ears"
damage_multiplier = 2

/obj/item/organ/ears/dog/Insert(mob/living/carbon/human/ear_owner, special = 0, drop_if_replaced = TRUE)
..()
if(istype(ear_owner))
color = ear_owner.hair_color
ear_owner.dna.species.mutant_bodyparts |= "ears"
ear_owner.dna.features["ears"] = "Dog"
ear_owner.update_body()

/obj/item/organ/ears/dog/Remove(mob/living/carbon/human/ear_owner, special = 0)
..()
if(istype(ear_owner))
color = ear_owner.hair_color
ear_owner.dna.features["ears"] = "None"
ear_owner.dna.species.mutant_bodyparts -= "ears"
ear_owner.update_body()

/obj/item/organ/ears/elf
name = "elf ears"
damage_multiplier = 1.5
Expand Down
46 changes: 44 additions & 2 deletions code/modules/surgery/organs/tails.dm
Original file line number Diff line number Diff line change
Expand Up @@ -137,15 +137,57 @@
desc = "A severed fox tail. Sad."
tail_type = "Fox 2"

/obj/item/organ/tail/cat/Insert(mob/living/carbon/human/H, special = 0, drop_if_replaced = TRUE)
/obj/item/organ/tail/fox/alt/Insert(mob/living/carbon/human/H, special = 0, drop_if_replaced = TRUE)
..()
if(istype(H))
if(!("tail_human" in H.dna.species.mutant_bodyparts))
H.dna.species.mutant_bodyparts |= "tail_human"
H.dna.features["tail_human"] = tail_type
H.update_body()

/obj/item/organ/tail/cat/Remove(mob/living/carbon/human/H, special = 0)
/obj/item/organ/tail/fox/alt/Remove(mob/living/carbon/human/H, special = 0)
..()
if(istype(H))
H.dna.features["tail_human"] = "None"
H.dna.species.mutant_bodyparts -= "tail_human"
color = H.hair_color
H.update_body()

/obj/item/organ/tail/rabbit
name = "rabbit tail"
desc = "A severed rabbit tail."
tail_type = "Rabbit"

/obj/item/organ/tail/rabbit/Insert(mob/living/carbon/human/H, special = 0, drop_if_replaced = TRUE)
..()
if(istype(H))
if(!("tail_human" in H.dna.species.mutant_bodyparts))
H.dna.species.mutant_bodyparts |= "tail_human"
H.dna.features["tail_human"] = tail_type
H.update_body()

/obj/item/organ/tail/rabbit/Remove(mob/living/carbon/human/H, special = 0)
..()
if(istype(H))
H.dna.features["tail_human"] = "None"
H.dna.species.mutant_bodyparts -= "tail_human"
color = H.hair_color
H.update_body()

/obj/item/organ/tail/dog
name = "dog tail"
desc = "A severed dog tail."
tail_type = "Dog"

/obj/item/organ/tail/dog/Insert(mob/living/carbon/human/H, special = 0, drop_if_replaced = TRUE)
..()
if(istype(H))
if(!("tail_human" in H.dna.species.mutant_bodyparts))
H.dna.species.mutant_bodyparts |= "tail_human"
H.dna.features["tail_human"] = tail_type
H.update_body()

/obj/item/organ/tail/dog/Remove(mob/living/carbon/human/H, special = 0)
..()
if(istype(H))
H.dna.features["tail_human"] = "None"
Expand Down
Binary file modified icons/mob/mutant_bodyparts.dmi
Binary file not shown.
File renamed without changes.
Binary file added icons/mob/species/human/dog.dmi
Binary file not shown.
Binary file added icons/mob/species/human/elf.dmi
Binary file not shown.
File renamed without changes.
Binary file added icons/mob/species/human/rabbit.dmi
Binary file not shown.

0 comments on commit bc90be0

Please sign in to comment.