Adds kittens

This commit is contained in:
ZomgPonies
2013-12-28 12:58:54 -05:00
parent 16bb82bfcd
commit 9bd4cc07db
7 changed files with 164 additions and 73 deletions
@@ -1,45 +1,51 @@
//Cat
/mob/living/simple_animal/cat
name = "cat"
desc = "A domesticated, feline pet. Has a tendency to adopt crewmembers."
icon_state = "cat"
icon_living = "cat"
icon_dead = "cat_dead"
speak = list("Meow!","Esp!","Purr!","HSSSSS")
desc = "Kitty!!"
icon_state = "cat2"
icon_living = "cat2"
icon_dead = "cat2_dead"
gender = MALE
speak = list("Meow!", "Esp!", "Purr!", "HSSSSS")
speak_emote = list("purrs", "meows")
emote_hear = list("meows","mews")
emote_hear = list("meows", "mews")
emote_see = list("shakes its head", "shivers")
speak_chance = 1
turns_per_move = 5
see_in_dark = 6
simplespecies = /mob/living/simple_animal/cat
childtype = /mob/living/simple_animal/cat/kitten
meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat
response_help = "pets the"
response_disarm = "gently pushes aside the"
response_harm = "kicks the"
response_help = "pets"
response_disarm = "gently pushes aside"
response_harm = "kicks"
//RUNTIME IS ALIVE! SQUEEEEEEEE~
/mob/living/simple_animal/cat/Runtime
name = "Runtime"
desc = "GCAT"
icon_state = "cat"
icon_living = "cat"
icon_dead = "cat2_dead"
gender = FEMALE
var/turns_since_scan = 0
var/mob/living/simple_animal/mouse/movement_target
min_oxy = 16 //Require atleast 16kPA oxygen
minbodytemp = 223 //Below -50 Degrees Celcius
maxbodytemp = 323 //Above 50 Degrees Celcius
/mob/living/simple_animal/cat/Life()
/mob/living/simple_animal/cat/Runtime/Life()
//MICE!
if((src.loc) && isturf(src.loc))
if(!stat && !resting && !buckled)
for(var/mob/living/simple_animal/mouse/M in view(1,src))
if(!M.stat)
M.splat()
emote(pick("\red splats the [M]!","\red toys with the [M]","worries the [M]"))
emote("splats \the [M]")
movement_target = null
stop_automated_movement = 0
break
..()
for(var/mob/living/simple_animal/mouse/snack in oview(src, 3))
if(prob(15))
emote(pick("hisses and spits!","mrowls fiercely!","eyes [snack] hungrily."))
break
make_babies()
if(!stat && !resting && !buckled)
turns_since_scan++
@@ -60,9 +66,13 @@
stop_automated_movement = 1
walk_to(src,movement_target,0,3)
//RUNTIME IS ALIVE! SQUEEEEEEEE~
/mob/living/simple_animal/cat/Runtime
name = "Runtime"
desc = "Its fur has the look and feel of velvet, and it's tail quivers occasionally."
/mob/living/simple_animal/cat/Proc
name = "Proc"
/mob/living/simple_animal/cat/kitten
name = "kitten"
desc = "D'aaawwww"
icon_state = "kitten"
icon_living = "kitten"
icon_dead = "kitten_dead"
gender = NEUTER
@@ -3,6 +3,7 @@
name = "\improper corgi"
real_name = "corgi"
desc = "It's a corgi."
gender = MALE
icon_state = "corgi"
icon_living = "corgi"
icon_dead = "corgi_dead"
@@ -18,6 +19,8 @@
response_disarm = "bops the"
response_harm = "kicks the"
see_in_dark = 5
childtype = /mob/living/simple_animal/corgi/puppy
simplespecies = /mob/living/simple_animal/corgi
var/obj/item/inventory_head
var/obj/item/inventory_back
var/facehugger
@@ -449,29 +452,9 @@
/mob/living/simple_animal/corgi/Lisa/Life()
..()
make_babies()
if(!stat && !resting && !buckled)
turns_since_scan++
if(turns_since_scan > 15)
turns_since_scan = 0
var/alone = 1
var/ian = 0
for(var/mob/M in oviewers(7, src))
if(istype(M, /mob/living/simple_animal/corgi/Ian))
if(M.client)
alone = 0
break
else
ian = M
else
alone = 0
break
if(alone && ian && puppies < 4)
if(near_camera(src) || near_camera(ian))
return
new /mob/living/simple_animal/corgi/puppy(loc)
if(prob(1))
emote(pick("dances around","chases her tail"))
spawn(0)
@@ -57,6 +57,12 @@
var/speed = 0 //LETS SEE IF I CAN SET SPEEDS FOR SIMPLE MOBS WITHOUT DESTROYING EVERYTHING. Higher speed is slower, negative speed is faster
var/can_hide = 0
//Hot simple_animal baby making vars
var/childtype = null
var/scan_ready = 1
var/simplespecies //Sorry, no spider+corgi buttbabies.
/mob/living/simple_animal/New()
..()
verbs -= /mob/verb/observe
@@ -480,3 +486,27 @@
icon_state = icon_living
density = initial(density)
update_canmove()
/mob/living/simple_animal/proc/make_babies() // <3 <3 <3
if(gender != FEMALE || stat || !scan_ready || !childtype || !simplespecies)
return
scan_ready = 0
spawn(400)
scan_ready = 1
var/alone = 1
var/mob/living/simple_animal/partner
var/children = 0
for(var/mob/M in oview(7, src))
if(istype(M, childtype)) //Check for children FIRST.
children++
else if(istype(M, simplespecies))
if(M.client)
continue
else if(!istype(M, childtype) && M.gender == MALE) //Better safe than sorry ;_;
partner = M
else if(istype(M, /mob/))
alone = 0
continue
if(alone && partner && children < 3)
new childtype(loc)