Skip to content

Commit

Permalink
bunch of animal traits
Browse files Browse the repository at this point in the history
  • Loading branch information
carpotoxin committed Oct 20, 2024
1 parent 768513e commit 453a9b9
Show file tree
Hide file tree
Showing 8 changed files with 75 additions and 24 deletions.
3 changes: 2 additions & 1 deletion code/__DEFINES/~doppler_defines/mutant_variations.dm
Original file line number Diff line number Diff line change
Expand Up @@ -37,8 +37,8 @@ GLOBAL_LIST_INIT(mutant_variations, list(

/// This list gets read by the animalistic preference for genemod and anthros
GLOBAL_LIST_INIT(genemod_variations, list(
NO_VARIATION,
BIRD,
BUG,
BUNNY,
CAT,
DEER,
Expand All @@ -49,4 +49,5 @@ GLOBAL_LIST_INIT(genemod_variations, list(
LIZARD,
MONKEY,
MOUSE,
NO_VARIATION,
))
2 changes: 1 addition & 1 deletion code/game/machinery/dna_infuser/organ_sets/fish_organs.dm
Original file line number Diff line number Diff line change
Expand Up @@ -240,7 +240,7 @@
gills = new()
AddElement(/datum/element/noticable_organ, "%PRONOUN_Theyve a set of gills on %PRONOUN_their neck.", BODY_ZONE_PRECISE_MOUTH)
AddComponent(/datum/component/bubble_icon_override, "fish", BUBBLE_ICON_PRIORITY_ORGAN)
AddComponent(/datum/component/speechmod, replacements = strings("crustacean_replacement.json", "crustacean"))
// AddComponent(/datum/component/speechmod, replacements = strings("crustacean_replacement.json", "crustacean")) // DOPPLER EDIT REMOVAL - really funny i wish we could keep this

/obj/item/organ/internal/lungs/fish/Destroy()
QDEL_NULL(gills)
Expand Down
11 changes: 10 additions & 1 deletion modular_doppler/modular_customization/organs/internal/tongue.dm
Original file line number Diff line number Diff line change
@@ -1,3 +1,12 @@
/// Bug tongue
//
/obj/item/organ/internal/tongue/bug
name = "bug tongue"
desc = "A fleshy muscle mostly used for chittering."
icon = 'icons/obj/medical/organs/fly_organs.dmi'
say_mod = "buzzes"
say_mod = "chitters"

/// Cat tongue
//
/obj/item/organ/internal/tongue/cat/Insert(mob/living/carbon/signer, special = FALSE, movement_flags = DELETE_IF_REPLACED)
Expand Down Expand Up @@ -74,5 +83,5 @@
//
/obj/item/organ/internal/tongue/frog
name = "fish tongue"
desc = "A fleshy muscle mostly used for gnashing."
desc = "A fleshy muscle mostly used for ribbiting."
say_mod = "ribbits"
Original file line number Diff line number Diff line change
Expand Up @@ -17,24 +17,26 @@
return icon('icons/mob/simple/animal.dmi', "chicken_brown", EAST)
if(BUNNY)
return icon('icons/mob/simple/rabbit.dmi', "rabbit_white", WEST)
if(BUG)
return icon('icons/mob/simple/animal.dmi', "cockroach", EAST)
if(CAT)
return icon('icons/mob/simple/pets.dmi', "cat2", EAST)
return icon('icons/mob/simple/pets.dmi', "cat2", WEST)
if(DEER)
return icon('icons/mob/simple/animal.dmi', "deer-doe", WEST)
return icon('icons/mob/simple/animal.dmi', "deer-doe", EAST)
if(DOG)
return icon('icons/mob/simple/pets.dmi', "corgi", EAST)
return icon('icons/mob/simple/pets.dmi', "corgi", WEST)
if(FISH)
return icon('icons/mob/simple/carp.dmi', "carp", WEST)
return icon('icons/mob/simple/carp.dmi', "carp", EAST)
if(FOX)
return icon('icons/mob/simple/pets.dmi', "fox", EAST)
return icon('icons/mob/simple/pets.dmi', "fox", WEST)
if(FROG)
return icon('icons/mob/simple/animal.dmi', "frog", WEST)
return icon('icons/mob/simple/animal.dmi', "frog", EAST)
if(LIZARD)
return icon('icons/mob/simple/animal.dmi', "lizard", EAST)
return icon('icons/mob/simple/animal.dmi', "lizard", WEST)
if(MONKEY)
return icon('icons/mob/human/human.dmi', "monkey", WEST)
return icon('icons/mob/human/human.dmi', "monkey", EAST)
if(MOUSE)
return icon('icons/mob/simple/animal.dmi', "mouse_white", EAST)
return icon('icons/mob/simple/animal.dmi', "mouse_white", WEST)
else
return icon('icons/effects/crayondecal.dmi', "x")

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,14 +28,16 @@
LOCATION_HANDS = ITEM_SLOT_HANDS
)
)
// lung edits
// set lung vars
target_lungs.safe_oxygen_min = 0 //Dont need oxygen
target_lungs.safe_oxygen_max = 2 //But it is quite toxic
target_lungs.safe_nitro_min = 10 // Atleast 10 nitrogen
target_lungs.oxy_damage_type = TOX
target_lungs.oxy_breath_dam_min = 6
target_lungs.oxy_breath_dam_max = 20
//
// update lung procs
target_lungs.breathe_always = list(/datum/gas/nitrogen = "breathe_nitro")
target_lungs.breath_present += list(/datum/gas/oxygen = "too_much_oxygen")
target_lungs.breath_lost += list(/datum/gas/oxygen = "safe_oxygen")
// reflect correct lung flags
target_lungs.respiration_type = RESPIRATION_N2
48 changes: 39 additions & 9 deletions modular_doppler/modular_species/_species.dm
Original file line number Diff line number Diff line change
Expand Up @@ -60,14 +60,13 @@
if(!ishuman(target) || animal_trait == NO_VARIATION || !animal_trait)
return

// Add the organs!
//// Add the organs!
// tongue
var/obj/item/organ/tongue = text2path("/obj/item/organ/internal/tongue/[animal_trait]")
if(tongue) // text2path nulls if it can't find a matching subtype, so don't worry adding an organ for every single trait value
mutanttongue = tongue.type
/* else
switch(animal_trait)
*/

// lungs
var/obj/item/organ/lungs = text2path("/obj/item/organ/internal/lungs/[animal_trait]")
if(lungs)
mutantlungs = lungs.type
Expand All @@ -76,22 +75,53 @@
if(FROG)
mutantlungs = /obj/item/organ/internal/lungs/fish/amphibious

// liver
var/obj/item/organ/liver = text2path("/obj/item/organ/internal/liver/[animal_trait]")
if(liver)
mutantliver = liver.type
else
switch(animal_trait)
if(BUG)
mutantliver = /obj/item/organ/internal/liver/roach

// stomach
var/obj/item/organ/stomach = text2path("/obj/item/organ/internal/stomach/[animal_trait]")
if(stomach)
mutantstomach = stomach.type
/* else
else
switch(animal_trait)
*/
if(BUG)
mutantstomach = /obj/item/organ/internal/stomach/roach

// appendix
var/obj/item/organ/appendix = text2path("/obj/item/organ/internal/appendix/[animal_trait]")
if(appendix)
mutantappendix = appendix.type
else
switch(animal_trait)
if(BUG)
mutantappendix = /obj/item/organ/internal/appendix/roach

// Adding traits from here on
////
// Adding remaining traits, elements, components, and more from here on
switch(animal_trait)
if(BIRD)
target.AddComponent(/datum/component/pinata, candy = list(/obj/item/feather))
if(BUG)
inherent_biotypes = MOB_ORGANIC|MOB_HUMANOID|MOB_BUG
ADD_TRAIT(target, TRAIT_WEB_WEAVER, SPECIES_TRAIT)
ADD_TRAIT(target, TRAIT_WEB_SURFER, SPECIES_TRAIT)
ADD_TRAIT(target, TRAIT_ANTENNAE, SPECIES_TRAIT)
if(CAT)
ADD_TRAIT(target, TRAIT_CATLIKE_GRACE, SPECIES_TRAIT)
ADD_TRAIT(target, TRAIT_HATED_BY_DOGS, SPECIES_TRAIT)
ADD_TRAIT(target, TRAIT_WATER_HATER, SPECIES_TRAIT)


if(DEER)
target.AddElement(/datum/element/cliff_walking)
if(FISH)
ADD_TRAIT(target, TRAIT_WATER_ADAPTATION, SPECIES_TRAIT)
if(FROG)
ADD_TRAIT(target, TRAIT_WATER_ADAPTATION, SPECIES_TRAIT)

/// spec_revival logic
/datum/species/proc/spec_revival(mob/living/carbon/human/target)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,11 @@
preview_outfit = /datum/outfit/insect_preview
inherent_traits = list(
TRAIT_MUTANT_COLORS,
TRAIT_WEB_WEAVER,
TRAIT_WEB_SURFER,
)
body_markings = list(/datum/bodypart_overlay/simple/body_marking/lizard = "Insectoid Pattern")
inherent_biotypes = MOB_ORGANIC|MOB_HUMANOID
inherent_biotypes = MOB_ORGANIC|MOB_HUMANOID|MOB_BUG
payday_modifier = 1.0
changesource_flags = MIRROR_BADMIN | WABBAJACK | MIRROR_PRIDE | MIRROR_MAGIC | RACE_SWAP | ERT_SPAWN | SLIME_EXTRACT
exotic_blood = /datum/reagent/bug_blood
Expand All @@ -29,6 +31,10 @@
BODY_ZONE_L_LEG = /obj/item/bodypart/leg/left/digitigrade/insectoid,
BODY_ZONE_R_LEG = /obj/item/bodypart/leg/right/digitigrade/insectoid,
)
mutanttongue = /obj/item/organ/internal/tongue/bug
mutantstomach = /obj/item/organ/internal/stomach/roach
mutantliver = /obj/item/organ/internal/liver/roach
mutantappendix = /obj/item/organ/internal/appendix/roach

/datum/outfit/insect_preview
name = "Insectoid (Species Preview)"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
limb_id = SPECIES_INSECTOID
damage_overlay_color = COLOR_DARK_MODERATE_LIME_GREEN
is_dimorphic = FALSE
bodypart_traits = list(TRAIT_ANTENNAE)

/obj/item/bodypart/chest/insectoid
icon_greyscale = 'modular_doppler/modular_species/species_types/insectoid/icons/bodyparts.dmi'
Expand Down

0 comments on commit 453a9b9

Please sign in to comment.