[SPEED MERGE NEEDED] removes cat (#47999)

This commit is contained in:
pireamaineach
2019-11-26 12:35:25 +00:00
committed by Rob Bailey
parent ff444890a3
commit 345d2bf607
13 changed files with 3 additions and 225 deletions

View File

@@ -155,7 +155,6 @@ SUBSYSTEM_DEF(traumas)
"the supernatural" = typecacheof(list(/datum/species/golem/runic)),
"aliens" = typecacheof(list(/datum/species/abductor, /datum/species/jelly, /datum/species/pod,
/datum/species/shadow)),
"anime" = typecacheof(list(/datum/species/human/felinid))
)
return ..()

View File

@@ -76,14 +76,6 @@
mood_change = -2
timeout = 2 MINUTES
/datum/mood_event/table/add_effects()
if(isfelinid(owner))
var/mob/living/carbon/human/H = owner
H.dna.species.start_wagging_tail(H)
addtimer(CALLBACK(H.dna.species, /datum/species.proc/stop_wagging_tail, H), 30)
description = "<span class='nicegreen'>They want to play on the table!</span>\n"
mood_change = 2
/datum/mood_event/table_headsmash
description = "<span class='warning'>My fucking head, that hurt...</span>"
mood_change = -3

View File

@@ -202,7 +202,6 @@
var/new_species = input("Set target species","Scan Mode") as null|anything in sortList(list("Human",
"Lizardperson",
"Flyperson",
"Felinid",
"Plasmaman",
"Mothmen",
"Jellyperson",
@@ -218,8 +217,6 @@
detect_species = /datum/species/lizard
if("Flyperson")
detect_species = /datum/species/fly
if("Felinid")
detect_species = /datum/species/human/felinid
if("Plasmaman")
detect_species = /datum/species/plasmaman
if("Mothmen")

View File

@@ -134,7 +134,7 @@
//catpeople
for(var/mob/living/carbon/human/H in view(1,targloc))
if(!isfelinid(H) || H.incapacitated() || H.eye_blind )
if( H.incapacitated() || H.eye_blind )
continue
if(user.mobility_flags & MOBILITY_STAND)
H.setDir(get_dir(H,targloc)) // kitty always looks at the light

View File

@@ -166,7 +166,6 @@
if(!istype(H))
return 0
H.set_species(/datum/species/human, 1)//lizards go home
purrbation_remove(H)//remove cats
H.dna.remove_all_mutations()//hulks out
return 1

View File

@@ -88,11 +88,7 @@
return
if(target.mob_size > max_occupant_weight)
if(ishuman(target))
var/mob/living/carbon/human/H = target
if(isfelinid(H))
to_chat(user, "<span class='warning'>You'd need a lot of catnip and treats, plus maybe a laser pointer, for that to work.</span>")
else
to_chat(user, "<span class='warning'>Humans, generally, do not fit into pet carriers.</span>")
to_chat(user, "<span class='warning'>Humans, generally, do not fit into pet carriers.</span>")
else
to_chat(user, "<span class='warning'>You get the feeling [target] isn't meant for a [name].</span>")
return

View File

@@ -580,20 +580,6 @@
if(!check_rights(R_ADMIN))
return
toggle_all_ctf(usr)
if("masspurrbation")
if(!check_rights(R_FUN))
return
mass_purrbation()
message_admins("[key_name_admin(usr)] has put everyone on \
purrbation!")
log_admin("[key_name(usr)] has put everyone on purrbation.")
if("massremovepurrbation")
if(!check_rights(R_FUN))
return
mass_remove_purrbation()
message_admins("[key_name_admin(usr)] has removed everyone from \
purrbation.")
log_admin("[key_name(usr)] has removed everyone from purrbation.")
if("customportal")
if(!check_rights(R_FUN))

View File

@@ -59,7 +59,7 @@
var/mob/living/carbon/human/H = user
if(H.mind?.miming)
return
if(ishumanbasic(H) || isfelinid(H))
if(ishumanbasic(H))
if(user.gender == FEMALE)
return pick('sound/voice/human/femalescream_1.ogg', 'sound/voice/human/femalescream_2.ogg', 'sound/voice/human/femalescream_3.ogg', 'sound/voice/human/femalescream_4.ogg', 'sound/voice/human/femalescream_5.ogg')
else

View File

@@ -817,7 +817,6 @@
VV_DROPDOWN_OPTION(VV_HK_MAKE_SLIME, "Make Slime")
VV_DROPDOWN_OPTION(VV_HK_MAKE_ALIEN, "Make Alien")
VV_DROPDOWN_OPTION(VV_HK_SET_SPECIES, "Set Species")
VV_DROPDOWN_OPTION(VV_HK_PURRBATION, "Toggle Purrbation")
/mob/living/carbon/human/vv_do_topic(list/href_list)
. = ..()
@@ -898,19 +897,6 @@
var/newtype = GLOB.species_list[result]
admin_ticket_log("[key_name_admin(usr)] has modified the bodyparts of [src] to [result]")
set_species(newtype)
if(href_list[VV_HK_PURRBATION])
if(!check_rights(R_SPAWN))
return
if(!ishumanbasic(src))
to_chat(usr, "This can only be done to the basic human species at the moment.")
return
var/success = purrbation_toggle(src)
if(success)
to_chat(usr, "Put [src] on purrbation.")
log_admin("[key_name(usr)] has put [key_name(src)] on purrbation.")
var/msg = "<span class='notice'>[key_name_admin(usr)] has put [key_name(src)] on purrbation.</span>"
message_admins(msg)
admin_ticket_log(src, msg)
else
to_chat(usr, "Removed [src] from purrbation.")
@@ -1072,9 +1058,6 @@
/mob/living/carbon/human/species/dullahan
race = /datum/species/dullahan
/mob/living/carbon/human/species/felinid
race = /datum/species/human/felinid
/mob/living/carbon/human/species/fly
race = /datum/species/fly

View File

@@ -1,166 +0,0 @@
//Subtype of human
/datum/species/human/felinid
name = "Felinid"
id = "felinid"
limbs_id = "human"
mutant_bodyparts = list("ears", "tail_human")
default_features = list("mcolor" = "FFF", "tail_human" = "Cat", "ears" = "Cat", "wings" = "None")
mutantears = /obj/item/organ/ears/cat
mutanttail = /obj/item/organ/tail/cat
changesource_flags = MIRROR_BADMIN | WABBAJACK | MIRROR_PRIDE | MIRROR_MAGIC | RACE_SWAP | ERT_SPAWN | SLIME_EXTRACT
var/original_felinid = TRUE //set to false for felinids created by mass-purrbation
/datum/species/human/felinid/qualifies_for_rank(rank, list/features)
return TRUE
//Curiosity killed the cat's wagging tail.
/datum/species/human/felinid/spec_death(gibbed, mob/living/carbon/human/H)
if(H)
stop_wagging_tail(H)
/datum/species/human/felinid/spec_stun(mob/living/carbon/human/H,amount)
if(H)
stop_wagging_tail(H)
. = ..()
/datum/species/human/felinid/can_wag_tail(mob/living/carbon/human/H)
return ("tail_human" in mutant_bodyparts) || ("waggingtail_human" in mutant_bodyparts)
/datum/species/human/felinid/is_wagging_tail(mob/living/carbon/human/H)
return ("waggingtail_human" in mutant_bodyparts)
/datum/species/human/felinid/start_wagging_tail(mob/living/carbon/human/H)
if("tail_human" in mutant_bodyparts)
mutant_bodyparts -= "tail_human"
mutant_bodyparts |= "waggingtail_human"
H.update_body()
/datum/species/human/felinid/stop_wagging_tail(mob/living/carbon/human/H)
if("waggingtail_human" in mutant_bodyparts)
mutant_bodyparts -= "waggingtail_human"
mutant_bodyparts |= "tail_human"
H.update_body()
/datum/species/human/felinid/on_species_gain(mob/living/carbon/C, datum/species/old_species, pref_load)
if(ishuman(C))
var/mob/living/carbon/human/H = C
if(!pref_load) //Hah! They got forcefully purrbation'd. Force default felinid parts on them if they have no mutant parts in those areas!
if(H.dna.features["tail_human"] == "None")
H.dna.features["tail_human"] = "Cat"
if(H.dna.features["ears"] == "None")
H.dna.features["ears"] = "Cat"
if(H.dna.features["ears"] == "Cat")
var/obj/item/organ/ears/cat/ears = new
ears.Insert(H, drop_if_replaced = FALSE)
else
mutantears = /obj/item/organ/ears
if(H.dna.features["tail_human"] == "Cat")
var/obj/item/organ/tail/cat/tail = new
tail.Insert(H, drop_if_replaced = FALSE)
else
mutanttail = null
return ..()
/datum/species/human/felinid/on_species_loss(mob/living/carbon/H, datum/species/new_species, pref_load)
var/obj/item/organ/ears/cat/ears = H.getorgan(/obj/item/organ/ears/cat)
var/obj/item/organ/tail/cat/tail = H.getorgan(/obj/item/organ/tail/cat)
if(ears)
var/obj/item/organ/ears/NE
if(new_species && new_species.mutantears)
// Roundstart cat ears override new_species.mutantears, reset it here.
new_species.mutantears = initial(new_species.mutantears)
if(new_species.mutantears)
NE = new new_species.mutantears
if(!NE)
// Go with default ears
NE = new /obj/item/organ/ears
NE.Insert(H, drop_if_replaced = FALSE)
if(tail)
var/obj/item/organ/tail/NT
if(new_species && new_species.mutanttail)
// Roundstart cat tail overrides new_species.mutanttail, reset it here.
new_species.mutanttail = initial(new_species.mutanttail)
if(new_species.mutanttail)
NT = new new_species.mutanttail
if(NT)
NT.Insert(H, drop_if_replaced = FALSE)
else
tail.Remove(H)
/datum/species/human/felinid/handle_chemicals(datum/reagent/chem, mob/living/carbon/human/M)
.=..()
if(chem.type == /datum/reagent/consumable/coco || chem.type == /datum/reagent/consumable/hot_coco || chem.type ==/datum/reagent/consumable/milk/chocolate_milk)
if(prob(20))
M.adjust_disgust(20)
if(prob(5))
M.visible_message("<span class='warning'>[M] [pick("dry heaves!","coughs!","splutters!")]</span>")
if(prob(10))
var/sick_message = pick("Your insides revolt at the presence of lethal chocolate!", "You feel nyauseous.", "You're nya't feeling so good.","You feel like your insides are melting.","You feel illsies.")
to_chat(M, "<span class='notice'>[sick_message]</span>")
if(prob(35))
var/obj/item/organ/guts = pick(M.internal_organs)
guts.applyOrganDamage(15)
return FALSE
/proc/mass_purrbation()
for(var/M in GLOB.mob_list)
if(ishuman(M))
purrbation_apply(M)
CHECK_TICK
/proc/mass_remove_purrbation()
for(var/M in GLOB.mob_list)
if(ishuman(M))
purrbation_remove(M)
CHECK_TICK
/proc/purrbation_toggle(mob/living/carbon/human/H, silent = FALSE)
if(!ishumanbasic(H))
return
if(!isfelinid(H))
purrbation_apply(H, silent)
. = TRUE
else
purrbation_remove(H, silent)
. = FALSE
/proc/purrbation_apply(mob/living/carbon/human/H, silent = FALSE)
if(!ishuman(H) || isfelinid(H))
return
if(ishumanbasic(H))
H.set_species(/datum/species/human/felinid)
var/datum/species/human/felinid/cat_species = H.dna.species
cat_species.original_felinid = FALSE
else
var/obj/item/organ/ears/cat/kitty_ears = new
var/obj/item/organ/tail/cat/kitty_tail = new
kitty_ears.Insert(H, TRUE, FALSE) //Gives nonhumans cat tail and ears
kitty_tail.Insert(H, TRUE, FALSE)
if(!silent)
to_chat(H, "<span class='boldnotice'>Something is nya~t right.</span>")
playsound(get_turf(H), 'sound/effects/meow1.ogg', 50, TRUE, -1)
/proc/purrbation_remove(mob/living/carbon/human/H, silent = FALSE)
if(isfelinid(H))
var/datum/species/human/felinid/cat_species = H.dna.species
if(!cat_species.original_felinid)
H.set_species(/datum/species/human)
else if(ishuman(H) && !ishumanbasic(H))
var/datum/species/target_species = H.dna.species
var/organs = H.internal_organs
for(var/obj/item/organ/current_organ in organs)
if(istype(current_organ, /obj/item/organ/tail/cat))
current_organ.Remove(H, TRUE)
if(target_species.mutanttail)
var/obj/item/organ/new_tail = new target_species.mutanttail
new_tail.Insert(H, TRUE, FALSE)
if(istype(current_organ, /obj/item/organ/ears/cat))
var/obj/item/organ/new_ears = new target_species.mutantears
new_ears.Insert(H, TRUE, FALSE)
if(!silent)
to_chat(H, "<span class='boldnotice'>You are no longer a cat.</span>")

View File

@@ -500,12 +500,6 @@
color = "#13BC5E" // rgb: 19, 188, 94
race = /datum/species/jelly/slime
/datum/reagent/mutationtoxin/felinid
name = "Felinid Mutation Toxin"
color = "#5EFF3B" //RGB: 94, 255, 59
race = /datum/species/human/felinid
taste_description = "something nyat good"
/datum/reagent/mutationtoxin/lizard
name = "Lizard Mutation Toxin"
description = "A lizarding toxin."

View File

@@ -443,7 +443,6 @@
"Ethereal" = /datum/species/ethereal,
"Pod" = /datum/species/pod,
"Fly" = /datum/species/fly,
"Felinid" = /datum/species/human/felinid,
"Jelly" = /datum/species/jelly
)

View File

@@ -2107,7 +2107,6 @@
#include "code\modules\mob\living\carbon\human\species_types\corporate.dm"
#include "code\modules\mob\living\carbon\human\species_types\dullahan.dm"
#include "code\modules\mob\living\carbon\human\species_types\ethereal.dm"
#include "code\modules\mob\living\carbon\human\species_types\felinid.dm"
#include "code\modules\mob\living\carbon\human\species_types\flypeople.dm"
#include "code\modules\mob\living\carbon\human\species_types\golems.dm"
#include "code\modules\mob\living\carbon\human\species_types\humans.dm"