Adds cat helper, makes cat behaviour more consistent (#16078)

* adds cat helper, makes cat behaviour more consistent

* move trait to positive

* Update modular_skyrat/master_files/code/datums/traits/good.dm

* review

* quirk to neutral
This commit is contained in:
Tom
2022-09-13 20:55:30 +01:00
committed by GitHub
parent b4a4bb473e
commit b85dd9dc9b
9 changed files with 9 additions and 11 deletions
@@ -29,6 +29,7 @@
#define ishumanoid(A) (is_species(A,/datum/species/humanoid))
#define ismammal(A) (is_species(A,/datum/species/mammal))
#define isinsect(A) (is_species(A,/datum/species/insect))
#define isfeline(A) (isfelinid(A) || istajaran(A) || HAS_TRAIT(A, TRAIT_FELINE))
// Xen mobs
#define isxenmob(A) (istype(A, /mob/living/simple_animal/hostile/blackmesa/xen))
+2 -2
View File
@@ -107,7 +107,7 @@
RegisterSignal(user, COMSIG_MOVABLE_MOVED, .proc/checkObstacle)
playsound(user, 'sound/weapons/thudswoosh.ogg', 40, TRUE, -1)
var/leap_word = isfelinid(user) ? "pounce" : "leap" //If cat, "pounce" instead of "leap".
var/leap_word = isfeline(user) ? "pounce" : "leap" //If cat, "pounce" instead of "leap". // SKYRAT EDIT - FELINE TRAITS. Was: isfelinid(user)
if(can_see(user, A, 7))
user.visible_message(span_warning("[user] [leap_word]s at [A]!"), span_danger("You [leap_word] at [A]!"))
else
@@ -157,7 +157,7 @@
var/mob/living/carbon/target = hit
var/mob/living/carbon/human/T = target
var/mob/living/carbon/human/S = user
var/tackle_word = isfelinid(user) ? "pounce" : "tackle" //If cat, "pounce" instead of "tackle".
var/tackle_word = isfeline(user) ? "pounce" : "tackle" //If cat, "pounce" instead of "tackle". // SKYRAT EDIT - FELINE TRAITS. Was: isfelinid(user)
var/roll = rollTackle(target)
tackling = FALSE
@@ -137,8 +137,7 @@
//catpeople
for(var/mob/living/carbon/human/H in view(1,targloc))
//if(!isfelinid(H) || H.incapacitated() || H.is_blind())
if(!(isfelinid(H) || HAS_TRAIT(H, TRAIT_FELINE)) || H.incapacitated() || H.is_blind()) //SKYRAT EDIT - FELINE TRAIT
if(!isfeline(H) || H.incapacitated() || H.is_blind()) // SKYRAT EDIT - FELINE TRAITS. Was: isfelinid(H)
continue
if(user.body_position == STANDING_UP)
H.setDir(get_dir(H,targloc)) // kitty always looks at the light
+1 -2
View File
@@ -91,8 +91,7 @@
if(target.mob_size > max_occupant_weight)
if(ishuman(target))
var/mob/living/carbon/human/H = target
//if(isfelinid(H))
if(isfelinid(H) || HAS_TRAIT(H, TRAIT_FELINE)) //SKYRAT EDIT - FELINE TRAITS
if(isfeline(H)) // SKYRAT EDIT - FELINE TRAITS. Was: isfelinid(H)
to_chat(user, span_warning("You'd need a lot of catnip and treats, plus maybe a laser pointer, for that to work."))
else
to_chat(user, span_warning("Humans, generally, do not fit into pet carriers."))
@@ -223,7 +223,7 @@
if(methods & TOUCH)
exposed_mob.extinguish_mob() // extinguish removes all fire stacks
if(methods & VAPOR)
if(!isfelinid(exposed_mob) || HAS_TRAIT(exposed_mob, TRAIT_FELINE)) // SKYRAT EDIT - Feline trait :)
if(!isfeline(exposed_mob)) // SKYRAT EDIT - Feline trait :)
return
exposed_mob.incapacitate(1) // startles the felinid, canceling any do_after
exposed_mob.add_mood_event("watersprayed", /datum/mood_event/watersprayed)
@@ -171,7 +171,6 @@
gain_text = span_notice("Nya could go for some catnip right about now...")
lose_text = span_notice("You feel less attracted to lasers.")
medical_record_text = "Patient seems to possess behavior much like a feline."
value = 0
mob_trait = TRAIT_FELINE
icon = "cat"
@@ -485,7 +485,7 @@
glass_desc = "Warm milk and some catnip."
/datum/reagent/consumable/ethanol/frisky_kitty/on_mob_life(mob/living/carbon/M)
if(ismammal(M) || isfelinid(M) || istajaran(M))
if(isfeline(M))
quality = RACE_DRINK
else
quality = DRINK_GOOD
@@ -46,7 +46,7 @@
/datum/reagent/consumable/catnip_tea/on_mob_life(mob/living/carbon/M)
M.adjustStaminaLoss(min(50 - M.getStaminaLoss(), 3))
if(isfelinid(M) || istajaran(M))
if(isfeline(M))
if(prob(20))
M.emote("nya")
if(prob(20))
@@ -49,7 +49,7 @@
metabolization_rate = 1.75 * REAGENTS_METABOLISM
/datum/reagent/pax/catnip/on_mob_life(mob/living/carbon/M)
if(isfelinid(M) || istajaran(M))
if(isfeline(M))
if(prob(20))
M.emote("nya")
if(prob(20))