Resolves compile errors with the exception of map errors.

This commit is contained in:
Cameron653
2019-01-12 21:09:29 -05:00
parent fb6f5e33ca
commit 9dd973221d
140 changed files with 1223 additions and 1211 deletions

View File

@@ -18,6 +18,7 @@
feedback_add_details("admin_verb","SMITEV") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
switch(smite_choice)
/*
if(SMITE_SHADEKIN_ATTACK)
var/turf/Tt = get_turf(target) //Turf for target
@@ -34,7 +35,7 @@
if(!Ts)
return //Didn't find shadekin spawn turf
var/mob/living/simple_animal/shadekin/red/shadekin = new(Ts)
var/mob/living/simple_mob/shadekin/red/shadekin = new(Ts)
//Abuse of shadekin
shadekin.real_name = shadekin.name
shadekin.init_vore()
@@ -47,29 +48,29 @@
//Remove when done
spawn(10 SECONDS)
if(shadekin)
shadekin.death()
shadekin.death()*/ //VORESTATION AI TEMPORARY REMOVAL
/*if(SMITE_SHADEKIN_NOMF)
var/list/kin_types = list(
"Red Eyes (Dark)" = /mob/living/simple_animal/shadekin/red/dark,
"Red Eyes (Light)" = /mob/living/simple_animal/shadekin/red/white,
"Red Eyes (Brown)" = /mob/living/simple_animal/shadekin/red/brown,
"Blue Eyes (Dark)" = /mob/living/simple_animal/shadekin/blue/dark,
"Blue Eyes (Light)" = /mob/living/simple_animal/shadekin/blue/white,
"Blue Eyes (Brown)" = /mob/living/simple_animal/shadekin/blue/brown,
"Purple Eyes (Dark)" = /mob/living/simple_animal/shadekin/purple/dark,
"Purple Eyes (Light)" = /mob/living/simple_animal/shadekin/purple/white,
"Purple Eyes (Brown)" = /mob/living/simple_animal/shadekin/purple/brown,
"Yellow Eyes (Dark)" = /mob/living/simple_animal/shadekin/yellow/dark,
"Yellow Eyes (Light)" = /mob/living/simple_animal/shadekin/yellow/white,
"Yellow Eyes (Brown)" = /mob/living/simple_animal/shadekin/yellow/brown,
"Green Eyes (Dark)" = /mob/living/simple_animal/shadekin/green/dark,
"Green Eyes (Light)" = /mob/living/simple_animal/shadekin/green/white,
"Green Eyes (Brown)" = /mob/living/simple_animal/shadekin/green/brown,
"Orange Eyes (Dark)" = /mob/living/simple_animal/shadekin/orange/dark,
"Orange Eyes (Light)" = /mob/living/simple_animal/shadekin/orange/white,
"Orange Eyes (Brown)" = /mob/living/simple_animal/shadekin/orange/brown,
"Rivyr (Unique)" = /mob/living/simple_animal/shadekin/blue/rivyr)
"Red Eyes (Dark)" = /mob/living/simple_mob/shadekin/red/dark,
"Red Eyes (Light)" = /mob/living/simple_mob/shadekin/red/white,
"Red Eyes (Brown)" = /mob/living/simple_mob/shadekin/red/brown,
"Blue Eyes (Dark)" = /mob/living/simple_mob/shadekin/blue/dark,
"Blue Eyes (Light)" = /mob/living/simple_mob/shadekin/blue/white,
"Blue Eyes (Brown)" = /mob/living/simple_mob/shadekin/blue/brown,
"Purple Eyes (Dark)" = /mob/living/simple_mob/shadekin/purple/dark,
"Purple Eyes (Light)" = /mob/living/simple_mob/shadekin/purple/white,
"Purple Eyes (Brown)" = /mob/living/simple_mob/shadekin/purple/brown,
"Yellow Eyes (Dark)" = /mob/living/simple_mob/shadekin/yellow/dark,
"Yellow Eyes (Light)" = /mob/living/simple_mob/shadekin/yellow/white,
"Yellow Eyes (Brown)" = /mob/living/simple_mob/shadekin/yellow/brown,
"Green Eyes (Dark)" = /mob/living/simple_mob/shadekin/green/dark,
"Green Eyes (Light)" = /mob/living/simple_mob/shadekin/green/white,
"Green Eyes (Brown)" = /mob/living/simple_mob/shadekin/green/brown,
"Orange Eyes (Dark)" = /mob/living/simple_mob/shadekin/orange/dark,
"Orange Eyes (Light)" = /mob/living/simple_mob/shadekin/orange/white,
"Orange Eyes (Brown)" = /mob/living/simple_mob/shadekin/orange/brown,
"Rivyr (Unique)" = /mob/living/simple_mob/shadekin/blue/rivyr)
var/kin_type = input("Select the type of shadekin for [target] nomf","Shadekin Type Choice") as null|anything in kin_types
if(!kin_type || !target)
return
@@ -88,7 +89,7 @@
//Begin abuse
target.transforming = TRUE //Cheap hack to stop them from moving
var/mob/living/simple_animal/shadekin/shadekin = new kin_type(Tt)
var/mob/living/simple_mob/shadekin/shadekin = new kin_type(Tt)
shadekin.real_name = shadekin.name
shadekin.init_vore()
shadekin.can_be_drop_pred = TRUE

View File

@@ -24,12 +24,12 @@
100 - low_probability * 50;"spacesuit", \
"health", \
25 + low_probability * 75;"snacks", \
25;"alien", \
/*25;"alien", \ */ //VORESTATION AI TEMPORARY REMOVAL
"lights", \
25 - low_probability * 25;"engineering", \
25 - low_probability * 25;"coffin", \
25;"mimic", \
25;"viscerator", \
/*25;"mimic", \ //VORESTATION AI TEMPORARY REMOVAL
25;"viscerator", \ */ //VORESTATION AI TEMPORARY REMOVAL
))
if("treasure")
var/obj/structure/closet/crate/C = new(src.loc)
@@ -276,23 +276,23 @@
/obj/item/weapon/reagent_containers/food/snacks/liquidfood)
for(var/i=0,i<num,i++)
new new_type(C)
if("alien")
/*if("alien")
//ancient aliens
var/obj/structure/closet/acloset/C = new(src.loc)
if(prob(33))
if(live_cargo) // Carp! Since Facehuggers got removed.
var/num = rand(1,3)
for(var/i=0,i<num,i++)
new /mob/living/simple_animal/hostile/carp(C)
new /mob/living/simple_mob/hostile/carp(C)
else // Just a costume.
new /obj/item/clothing/suit/storage/hooded/carp_costume(C)
else if(prob(50))
if(live_cargo) // Something else very much alive and angry.
var/spawn_type = pick(/mob/living/simple_animal/hostile/alien, /mob/living/simple_animal/hostile/alien/drone, /mob/living/simple_animal/hostile/alien/sentinel)
new spawn_type(C)
/*var/spawn_type = pick(/mob/living/simple_mob/hostile/alien, /mob/living/simple_mob/hostile/alien/drone, /mob/living/simple_mob/hostile/alien/sentinel)
new spawn_type(C) */ //VORESTATION AI TEMPORARY REMOVAL
else // Just a costume.
new /obj/item/clothing/head/xenos(C)
new /obj/item/clothing/suit/xenos(C)
new /obj/item/clothing/suit/xenos(C)*/ //VORESTATION AI TEMPORARY REMOVAL
//33% chance of nothing
@@ -336,14 +336,17 @@
new /obj/effect/decal/remains/xeno(src)
if("mimic")
//a guardian of the tomb!
var/mob/living/simple_animal/hostile/mimic/crate/mimic = new(src.loc)
mimic.faction = spawned_faction
// var/mob/living/simple_mob/hostile/mimic/crate/mimic = new(src.loc)
// mimic.faction = spawned_faction
var/obj/structure/closet/crate/secure/gear/C = new(src.loc) //VORESTATION AI TEMPORARY EDIT
new /obj/item/weapon/storage/toolbox/electrical(C) //Placeholder to prevent errors. //VORESTATION AI TEMPORARY EDIT
if("viscerator")
//more tomb guardians!
var/num = rand(1,3)
var/obj/structure/closet/crate/secure/gear/C = new(src.loc)
for(var/i=0,i<num,i++)
new /mob/living/simple_animal/hostile/viscerator(C)
//var/num = rand(1,3) //VORESTATION AI TEMPORARY REMOVAL
var/obj/structure/closet/crate/secure/gear/C = new(src.loc) //VORESTATION AI TEMPORARY EDIT
new /obj/item/weapon/storage/toolbox/electrical(C) //Placeholder to prevent errors. //VORESTATION AI TEMPORARY EDIT
//for(var/i=0,i<num,i++) //VORESTATION AI TEMPORARY REMOVAL
//new /mob/living/simple_mob/hostile/viscerator(C) //VORESTATION AI TEMPORARY REMOVAL
qdel(src)

View File

@@ -3,7 +3,7 @@
////////////////
//Do not spawn
/mob/living/simple_animal/hostile/blob
/mob/living/simple_mob/hostile/blob
icon = 'icons/mob/blob.dmi'
pass_flags = PASSBLOB | PASSTABLE
faction = "blob"
@@ -23,21 +23,21 @@
var/mob/observer/blob/overmind = null
var/obj/structure/blob/factory/factory = null
/mob/living/simple_animal/hostile/blob/speech_bubble_appearance()
/mob/living/simple_mob/hostile/blob/speech_bubble_appearance()
return "slime"
/mob/living/simple_animal/hostile/blob/update_icons()
/mob/living/simple_mob/hostile/blob/update_icons()
if(overmind)
color = overmind.blob_type.complementary_color
else
color = null
/mob/living/simple_animal/hostile/blob/Destroy()
/mob/living/simple_mob/hostile/blob/Destroy()
if(overmind)
overmind.blob_mobs -= src
return ..()
/mob/living/simple_animal/hostile/blob/blob_act(obj/structure/blob/B)
/mob/living/simple_mob/hostile/blob/blob_act(obj/structure/blob/B)
if(!overmind && B.overmind)
overmind = B.overmind
update_icon()
@@ -46,12 +46,12 @@
adjustBruteLoss(-maxHealth*0.0125)
adjustFireLoss(-maxHealth*0.0125)
/mob/living/simple_animal/hostile/blob/CanPass(atom/movable/mover, turf/target)
/mob/living/simple_mob/hostile/blob/CanPass(atom/movable/mover, turf/target)
if(istype(mover, /obj/structure/blob)) // Don't block blobs from expanding onto a tile occupied by a blob mob.
return TRUE
return ..()
/mob/living/simple_animal/hostile/blob/Process_Spacemove()
/mob/living/simple_mob/hostile/blob/Process_Spacemove()
for(var/obj/structure/blob/B in range(1, src))
return TRUE
return ..()

View File

@@ -2,7 +2,7 @@
// BLOB SPORE //
////////////////
/mob/living/simple_animal/hostile/blob/spore
/mob/living/simple_mob/hostile/blob/spore
name = "blob spore"
desc = "A floating, fragile spore."
icon_state = "blobpod"
@@ -19,24 +19,24 @@
var/can_infest = FALSE
var/is_infesting = FALSE
/mob/living/simple_animal/hostile/blob/spore/infesting
/mob/living/simple_mob/hostile/blob/spore/infesting
name = "infesting blob spore"
can_infest = TRUE
/mob/living/simple_animal/hostile/blob/spore/weak
/mob/living/simple_mob/hostile/blob/spore/weak
name = "fragile blob spore"
health = 15
maxHealth = 15
melee_damage_lower = 1
melee_damage_upper = 2
/mob/living/simple_animal/hostile/blob/spore/New(var/newloc, var/obj/structure/blob/factory/my_factory)
/mob/living/simple_mob/hostile/blob/spore/New(var/newloc, var/obj/structure/blob/factory/my_factory)
if(istype(my_factory))
factory = my_factory
factory.spores += src
..(newloc)
/mob/living/simple_animal/hostile/blob/spore/Destroy()
/mob/living/simple_mob/hostile/blob/spore/Destroy()
if(factory)
factory.spores -= src
factory = null
@@ -46,13 +46,13 @@
infested = null
return ..()
/mob/living/simple_animal/hostile/blob/spore/death(gibbed, deathmessage = "bursts!")
/mob/living/simple_mob/hostile/blob/spore/death(gibbed, deathmessage = "bursts!")
if(overmind)
overmind.blob_type.on_spore_death(src)
..(gibbed, deathmessage)
qdel(src)
/mob/living/simple_animal/hostile/blob/spore/update_icons()
/mob/living/simple_mob/hostile/blob/spore/update_icons()
if(overmind)
color = overmind.blob_type.complementary_color
set_light(3, 5, color)
@@ -70,7 +70,7 @@
color = initial(color)//looks better.
overlays += blob_head_overlay
/mob/living/simple_animal/hostile/blob/spore/Life()
/mob/living/simple_mob/hostile/blob/spore/Life()
if(can_infest && !is_infesting && isturf(src.loc))
for(var/mob/living/carbon/human/H in view(src,1))
if(H.stat != DEAD) // We want zombies.
@@ -83,7 +83,7 @@
qdel(src)
..()
/mob/living/simple_animal/hostile/blob/spore/proc/infest(mob/living/carbon/human/H)
/mob/living/simple_mob/hostile/blob/spore/proc/infest(mob/living/carbon/human/H)
is_infesting = TRUE
if(H.wear_suit)
var/obj/item/clothing/suit/A = H.wear_suit
@@ -105,6 +105,6 @@
update_icons()
visible_message("<span class='warning'>The corpse of [H.name] suddenly rises!</span>")
/mob/living/simple_animal/hostile/blob/spore/GetIdCard()
/mob/living/simple_mob/hostile/blob/spore/GetIdCard()
if(infested) // If we've infested someone, use their ID.
return infested.GetIdCard()

View File

@@ -3,20 +3,20 @@
endWhen = 90 + 15 + 1
var/spawncount
var/list/possible_slimes = list(
/mob/living/simple_animal/slime/purple,
/mob/living/simple_animal/slime/orange,
/mob/living/simple_animal/slime/metal,
/mob/living/simple_animal/slime/yellow,
/mob/living/simple_animal/slime/dark_purple,
/mob/living/simple_animal/slime/silver,
/mob/living/simple_animal/slime/ruby,
/mob/living/simple_animal/slime/cerulean,
/mob/living/simple_animal/slime/red,
/mob/living/simple_animal/slime/green,
/mob/living/simple_animal/slime/pink,
/mob/living/simple_animal/slime/gold,
/mob/living/simple_animal/slime/oil,
/mob/living/simple_animal/slime/emerald,
/mob/living/simple_mob/slime/purple,
/mob/living/simple_mob/slime/orange,
/mob/living/simple_mob/slime/metal,
/mob/living/simple_mob/slime/yellow,
/mob/living/simple_mob/slime/dark_purple,
/mob/living/simple_mob/slime/silver,
/mob/living/simple_mob/slime/ruby,
/mob/living/simple_mob/slime/cerulean,
/mob/living/simple_mob/slime/red,
/mob/living/simple_mob/slime/green,
/mob/living/simple_mob/slime/pink,
/mob/living/simple_mob/slime/gold,
/mob/living/simple_mob/slime/oil,
/mob/living/simple_mob/slime/emerald,
)

View File

@@ -139,7 +139,7 @@ var/global/list/severity_to_string = list(EVENT_LEVEL_MUNDANE = "Mundane", EVENT
new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Shipping Error", /datum/event/shipping_error , 30, list(ASSIGNMENT_ANY = 2), 0),
new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Space Dust", /datum/event/dust , 60, list(ASSIGNMENT_ENGINEER = 20), 0, 0, 50),
new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Trivial News", /datum/event/trivial_news, 400),
new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Ian Storm", /datum/event/ianstorm, 50),
//new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Ian Storm", /datum/event/ianstorm, 50), //VORESTATION AI TEMPORARY REMOVAL
new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Lore News", /datum/event/lore_news, 400),
new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Vermin Infestation",/datum/event/infestation, 100, list(ASSIGNMENT_JANITOR = 100)),
new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Wallrot", /datum/event/wallrot, 0, list(ASSIGNMENT_ENGINEER = 30, ASSIGNMENT_GARDENER = 50)),

View File

@@ -74,7 +74,7 @@
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Solar Storm", /datum/event/solar_storm, 30, list(ASSIGNMENT_ENGINEER = 40, ASSIGNMENT_SECURITY = 30), 1),
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Virology Breach", /datum/event/prison_break/virology, 0, list(ASSIGNMENT_MEDICAL = 100), 1),
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Xenobiology Breach", /datum/event/prison_break/xenobiology, 0, list(ASSIGNMENT_SCIENCE = 100), 1),
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Grub Infestation", /datum/event/grub_infestation, 40, list(ASSIGNMENT_SECURITY = 50, ASSIGNMENT_ENGINEER = 50), 1),
//new /datum/event_meta(EVENT_LEVEL_MODERATE, "Grub Infestation", /datum/event/grub_infestation, 40, list(ASSIGNMENT_SECURITY = 50, ASSIGNMENT_ENGINEER = 50), 1), //VORESTATION AI TEMPORARY REMOVAL
//Evil grubs that drain station power slightly
)
add_disabled_events(list(

View File

@@ -24,7 +24,7 @@
/datum/event/grub_infestation/start()
while((spawncount >= 1) && vents.len)
var/obj/vent = pick(vents)
new /mob/living/simple_animal/solargrub_larva(get_turf(vent))
//new /mob/living/simple_mob/solargrub_larva(get_turf(vent)) //VORESTATION AI TEMPORARY REMOVAL. Event commented out until mobs are fixed.
vents -= vent
spawncount--
vents.Cut()

View File

@@ -1,4 +1,4 @@
/datum/event/ianstorm
/datum/event/ianstorm //VORESTATION AI TEMPORARY REMOVAL
announceWhen = 1
startWhen = 2
endWhen = 3
@@ -23,7 +23,7 @@
for(var/i = 0, i < 3, i++)
var/turf/target = get_step(T, pick(alldirs))
if(target && istype(target, /turf/simulated/floor))
var/mob/living/simple_animal/corgi/Ian/doge = new(target)
var/mob/living/simple_mob/corgi/Ian/doge = new(target)
doge.name = "Ian " + pick("Alpha", "Beta", "Chi", "Delta", "Epsilon", "Phi",
"Gamma", "Eta", "Iota", "Kappa", "Lambda", "Omicron", "Theta",
"Rho", "Sigma", "Tau", "Upsilon", "Omega", "Psi", "Zeta")

View File

@@ -68,7 +68,7 @@
return 1
//This is already covered by mob/say_understands()
//if (istype(other, /mob/living/simple_animal))
//if (istype(other, /mob/living/simple_mob))
// if((other.universal_speak && !speaking) || src.universal_speak || src.universal_understand)
// return 1
// return 0

View File

@@ -1,5 +1,5 @@
// Simple animal nanogoopeyness
/mob/living/simple_animal/protean_blob
/mob/living/simple_mob/protean_blob
name = "protean blob"
desc = "Some sort of big viscous pool of jelly."
tt_desc = "Animated nanogoop"
@@ -12,8 +12,9 @@
faction = "neutral"
maxHealth = 200
health = 200
say_list_type = /datum/say_list/protean_blob
ai_inactive = TRUE //Always off
// ai_inactive = TRUE //Always off //VORESTATION AI TEMPORARY REMOVAL
show_stat_health = FALSE //We will do it ourselves
response_help = "pats the"
@@ -36,11 +37,6 @@
minbodytemp = 0
maxbodytemp = 900
speak_chance = 1
speak = list("Blrb?","Sqrsh.","Glrsh!")
emote_hear = list("squishes softly","spluts quietly","makes wet noises")
emote_see = list("shifts wetly","undulates placidly")
var/mob/living/carbon/human/humanform
var/obj/item/organ/internal/nano/refactory/refactory
var/datum/modifier/healing
@@ -52,8 +48,13 @@
can_buckle = TRUE //Blobsurfing
/datum/say_list/protean_blob
speak = list("Blrb?","Sqrsh.","Glrsh!")
emote_hear = list("squishes softly","spluts quietly","makes wet noises")
emote_see = list("shifts wetly","undulates placidly")
//Constructor allows passing the human to sync damages
/mob/living/simple_animal/protean_blob/New(var/newloc, var/mob/living/carbon/human/H)
/mob/living/simple_mob/protean_blob/New(var/newloc, var/mob/living/carbon/human/H)
..()
if(H)
humanform = H
@@ -64,7 +65,7 @@
else
update_icon()
/mob/living/simple_animal/protean_blob/Destroy()
/mob/living/simple_mob/protean_blob/Destroy()
humanform = null
refactory = null
vore_organs = null
@@ -73,15 +74,15 @@
healing.expire()
return ..()
/mob/living/simple_animal/protean_blob/init_vore()
/mob/living/simple_mob/protean_blob/init_vore()
return //Don't make a random belly, don't waste your time
/mob/living/simple_animal/protean_blob/Stat()
/mob/living/simple_mob/protean_blob/Stat()
..()
if(humanform)
humanform.species.Stat(humanform)
/mob/living/simple_animal/protean_blob/update_icon()
/mob/living/simple_mob/protean_blob/update_icon()
if(humanform)
//Still have a refactory
if(istype(refactory))
@@ -97,7 +98,7 @@
..()
/mob/living/simple_animal/protean_blob/updatehealth()
/mob/living/simple_mob/protean_blob/updatehealth()
if(humanform)
//Set the max
maxHealth = humanform.getMaxHealth()*2 //HUMANS, and their 'double health', bleh.
@@ -136,19 +137,19 @@
else
..()
/mob/living/simple_animal/protean_blob/adjustBruteLoss(var/amount)
/mob/living/simple_mob/protean_blob/adjustBruteLoss(var/amount)
if(humanform)
humanform.adjustBruteLoss(amount)
else
..()
/mob/living/simple_animal/protean_blob/adjustFireLoss(var/amount)
/mob/living/simple_mob/protean_blob/adjustFireLoss(var/amount)
if(humanform)
humanform.adjustFireLoss(amount)
else
..()
/mob/living/simple_animal/protean_blob/death(gibbed, deathmessage = "dissolves away, leaving only a few spare parts!")
/mob/living/simple_mob/protean_blob/death(gibbed, deathmessage = "dissolves away, leaving only a few spare parts!")
if(humanform)
humanform.death(gibbed = gibbed)
for(var/organ in humanform.internal_organs)
@@ -168,7 +169,7 @@
..()
/mob/living/simple_animal/protean_blob/Life()
/mob/living/simple_mob/protean_blob/Life()
. = ..()
if(. && istype(refactory) && humanform)
if(!healing && health < maxHealth && refactory.get_stored_material(DEFAULT_WALL_MATERIAL) >= 100)
@@ -177,7 +178,7 @@
healing.expire()
healing = null
/mob/living/simple_animal/protean_blob/lay_down()
/mob/living/simple_mob/protean_blob/lay_down()
..()
if(resting)
animate(src,alpha = 40,time = 1 SECOND)
@@ -199,7 +200,7 @@
target.forceMove(vore_selected)
to_chat(target,"<span class='warning'>\The [src] quickly engulfs you, [vore_selected.vore_verb]ing you into their [vore_selected.name]!</span>")
/mob/living/simple_animal/protean_blob/DoPunch(var/atom/A)
/mob/living/simple_mob/protean_blob/attack_hand(var/atom/A) //VORESTATION AI TEMPORARY REMOVAL (Marking this as such even though it was an edit.)
if(refactory && istype(A,/obj/item/stack/material))
var/obj/item/stack/material/S = A
var/substance = S.material.name
@@ -214,7 +215,7 @@
else
return ..()
/mob/living/simple_animal/protean_blob/attackby(var/obj/item/O, var/mob/user)
/mob/living/simple_mob/protean_blob/attackby(var/obj/item/O, var/mob/user)
if(refactory && istype(O,/obj/item/stack/material))
var/obj/item/stack/material/S = O
var/substance = S.material.name
@@ -229,7 +230,7 @@
else
return ..()
/mob/living/simple_animal/protean_blob/MouseEntered(location,control,params)
/mob/living/simple_mob/protean_blob/MouseEntered(location,control,params)
if(resting)
return
..()
@@ -251,12 +252,12 @@
var/atom/creation_spot = drop_location()
//Create our new blob
var/mob/living/simple_animal/protean_blob/blob = new(creation_spot,src)
var/mob/living/simple_mob/protean_blob/blob = new(creation_spot,src)
//Drop all our things
var/list/things_to_drop = contents.Copy()
var/list/things_to_not_drop = list(w_uniform,nif,l_store,r_store,wear_id,l_ear,r_ear) //And whatever else we decide for balancing.
/* No for now, because insta-pepperspray or flash on unblob
if(l_hand && l_hand.w_class <= ITEMSIZE_SMALL) //Hands but only if small or smaller
things_to_not_drop += l_hand
@@ -267,7 +268,7 @@
things_to_drop -= things_to_not_drop //Crunch the lists
things_to_drop -= organs //Mah armbs
things_to_drop -= internal_organs //Mah sqeedily spooch
for(var/obj/item/I in things_to_drop) //rip hoarders
drop_from_inventory(I)
@@ -316,7 +317,7 @@
if(istype(I, /obj/item/weapon/holder))
root.remove_from_mob(I)
/mob/living/carbon/human/proc/nano_outofblob(var/mob/living/simple_animal/protean_blob/blob)
/mob/living/carbon/human/proc/nano_outofblob(var/mob/living/simple_mob/protean_blob/blob)
if(!istype(blob))
return
if(buckled)

View File

@@ -38,7 +38,7 @@
oldlimb.removed()
qdel(oldlimb)
var/mob/living/simple_animal/protean_blob/blob = nano_intoblob()
var/mob/living/simple_mob/protean_blob/blob = nano_intoblob()
active_regen = TRUE
if(do_after(blob,5 SECONDS))
var/list/limblist = species.has_limbs[choice]
@@ -128,7 +128,7 @@
to_chat(src, "<span class='danger'>Remain still while the process takes place! It will take 5 seconds.</span>")
visible_message("<B>[src]</B>'s form collapses into an amorphous blob of black ichor...")
var/mob/living/simple_animal/protean_blob/blob = nano_intoblob()
var/mob/living/simple_mob/protean_blob/blob = nano_intoblob()
active_regen = TRUE
if(do_after(blob,5 SECONDS))
synthetic = usable_manufacturers[manu_choice]
@@ -149,7 +149,7 @@
visible_message("<B>[src]</B>'s form begins to shift and ripple as if made of oil...")
active_regen = TRUE
var/mob/living/simple_animal/protean_blob/blob = nano_intoblob()
var/mob/living/simple_mob/protean_blob/blob = nano_intoblob()
if(do_after(blob, delay_length, null, 0))
if(stat != DEAD && refactory)
var/list/holder = refactory.materials
@@ -319,7 +319,7 @@
return R
return
/mob/living/simple_animal/protean_blob/nano_get_refactory()
/mob/living/simple_mob/protean_blob/nano_get_refactory()
if(refactory)
return ..(refactory)
if(humanform)
@@ -353,7 +353,7 @@
do_ability(usr)
//Blobform using it
else
var/mob/living/simple_animal/protean_blob/blob = usr
var/mob/living/simple_mob/protean_blob/blob = usr
do_ability(blob.humanform)
/obj/effect/protean_ability/proc/do_ability(var/mob/living/L)

View File

@@ -689,7 +689,7 @@
return ..(target)
/mob/living/simple_animal/can_shred(var/mob/living/carbon/human/target)
/mob/living/simple_mob/can_shred(var/mob/living/carbon/human/target)
if(!target)
var/list/choices = list()
for(var/mob/living/carbon/human/M in oviewers(1))

View File

@@ -1,6 +1,6 @@
//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:32
//TODO: Make these simple_animals
//TODO: Make these simple_mobs
/* //Commented out as reference for future reproduction methods, or addition later if needed. - Mech
var/const/MIN_IMPREGNATION_TIME = 100 //time it takes to impregnate someone
var/const/MAX_IMPREGNATION_TIME = 150

View File

@@ -142,7 +142,7 @@
if(M.mind)
user << "<span class='warning'> The slime resists!</span>"
return ..()
var/mob/living/simple_animal/slime/pet = new /mob/living/simple_animal/slime(M.loc)
var/mob/living/simple_mob/slime/pet = new /mob/living/simple_mob/slime(M.loc)
pet.icon_state = "[M.colour] [M.is_adult ? "adult" : "baby"] slime"
pet.icon_living = "[M.colour] [M.is_adult ? "adult" : "baby"] slime"
pet.icon_dead = "[M.colour] [M.is_adult ? "adult" : "baby"] slime dead"
@@ -196,7 +196,7 @@
if(M.mind)
user << "<span class='warning'> The slime resists!</span>"
return ..()
var/mob/living/simple_animal/adultslime/pet = new /mob/living/simple_animal/adultslime(M.loc)
var/mob/living/simple_mob/adultslime/pet = new /mob/living/simple_mob/adultslime(M.loc)
pet.icon_state = "[M.colour] adult slime"
pet.icon_living = "[M.colour] adult slime"
pet.icon_dead = "[M.colour] baby slime dead"

View File

@@ -21,7 +21,7 @@
return "I cannot feed on other slimes..."
if (!Adjacent(M))
return "This subject is too far away..."
if (istype(M, /mob/living/carbon) && M.getCloneLoss() >= M.getMaxHealth() * 1.5 || istype(M, /mob/living/simple_animal) && M.stat == DEAD)
if (istype(M, /mob/living/carbon) && M.getCloneLoss() >= M.getMaxHealth() * 1.5 || istype(M, /mob/living/simple_mob) && M.stat == DEAD)
return "This subject does not have an edible life energy..."
for(var/mob/living/carbon/slime/met in view())
if(met.Victim == M && met != src)
@@ -48,7 +48,7 @@
if(Victim.health <= 0)
Victim.adjustToxLoss(rand(2,4))
else if(istype(M, /mob/living/simple_animal))
else if(istype(M, /mob/living/simple_mob))
Victim.adjustBruteLoss(is_adult ? rand(7, 15) : rand(4, 12))
else

View File

@@ -129,9 +129,9 @@ default behaviour is:
forceMove(tmob.loc)
//VOREstation Edit - Begin
if (istype(tmob, /mob/living/simple_animal)) //check bumpnom chance, if it's a simplemob that's bumped
if (istype(tmob, /mob/living/simple_mob)) //check bumpnom chance, if it's a simplemob that's bumped
tmob.Bumped(src)
else if(istype(src, /mob/living/simple_animal)) //otherwise, if it's a simplemob doing the bumping. Simplemob on simplemob doesn't seem to trigger but that's fine.
else if(istype(src, /mob/living/simple_mob)) //otherwise, if it's a simplemob doing the bumping. Simplemob on simplemob doesn't seem to trigger but that's fine.
Bumped(tmob)
if (tmob.loc == src) //check if they got ate, and if so skip the forcemove
now_pushing = 0

View File

@@ -299,7 +299,7 @@
if(soaked >= round(throw_damage*0.8))
return
//Handles embedding for non-humans and simple_animals.
//Handles embedding for non-humans and simple_mobs.
embed(O)
var/turf/T = near_wall(dir,2)

View File

@@ -80,9 +80,9 @@
to_chat(user, "<span class='notice'>\The [target.name] added to cargo compartment slot: [delivery_tag].</span>")
update_patient()
return
if(istype(target, /mob/living/simple_animal/mouse)) //Edible mice, dead or alive whatever. Mostly for carcass picking you cruel bastard :v
var/mob/living/simple_animal/trashmouse = target
/* //VORESTATION AI TEMPORARY REMOVAL
if(istype(target, /mob/living/simple_mob/mouse)) //Edible mice, dead or alive whatever. Mostly for carcass picking you cruel bastard :v
var/mob/living/simple_mob/trashmouse = target
user.visible_message("<span class='warning'>[hound.name] is ingesting [trashmouse] into their [src.name].</span>", "<span class='notice'>You start ingesting [trashmouse] into your [src.name]...</span>")
if(do_after(user, 30, trashmouse) && length(contents) < max_item_count)
trashmouse.forceMove(src)
@@ -95,7 +95,7 @@
to_chat(user, "<span class='notice'>\The [trashmouse] added to cargo compartment slot: [delivery_tag].</span>")
update_patient()
return
*/
else if(ishuman(target))
var/mob/living/carbon/human/trashman = target
if(patient)

View File

@@ -1,4 +1,4 @@
/mob/living/simple_animal/hostile/alien
/mob/living/simple_mob/hostile/alien
name = "alien hunter"
desc = "Hiss!"
icon = 'icons/mob/alien.dmi'
@@ -48,7 +48,7 @@
meat_type = /obj/item/weapon/reagent_containers/food/snacks/xenomeat
/mob/living/simple_animal/hostile/alien/drone
/mob/living/simple_mob/hostile/alien/drone
name = "alien drone"
icon_state = "aliend_running"
icon_living = "aliend_running"
@@ -58,7 +58,7 @@
melee_damage_lower = 15
melee_damage_upper = 15
/mob/living/simple_animal/hostile/alien/sentinel
/mob/living/simple_mob/hostile/alien/sentinel
name = "alien sentinel"
icon_state = "aliens_running"
icon_living = "aliens_running"
@@ -71,7 +71,7 @@
projectiletype = /obj/item/projectile/energy/neurotoxin/toxic
projectilesound = 'sound/weapons/pierce.ogg'
/mob/living/simple_animal/hostile/alien/sentinel/praetorian
/mob/living/simple_mob/hostile/alien/sentinel/praetorian
name = "alien praetorian"
icon = 'icons/mob/64x64.dmi'
icon_state = "prat_s"
@@ -86,7 +86,7 @@
old_x = -16
meat_amount = 5
/mob/living/simple_animal/hostile/alien/queen
/mob/living/simple_mob/hostile/alien/queen
name = "alien queen"
icon_state = "alienq_running"
icon_living = "alienq_running"
@@ -103,7 +103,7 @@
rapid = 1
status_flags = 0
/mob/living/simple_animal/hostile/alien/queen/empress
/mob/living/simple_mob/hostile/alien/queen/empress
name = "alien empress"
icon = 'icons/mob/64x64.dmi'
icon_state = "queen_s"
@@ -119,7 +119,7 @@
pixel_x = -16
old_x = -16
/mob/living/simple_animal/hostile/alien/queen/empress/mother
/mob/living/simple_mob/hostile/alien/queen/empress/mother
name = "alien mother"
icon = 'icons/mob/96x96.dmi'
icon_state = "empress_s"
@@ -136,7 +136,7 @@
pixel_x = -32
old_x = -32
/mob/living/simple_animal/hostile/alien/death()
/mob/living/simple_mob/hostile/alien/death()
..()
visible_message("[src] lets out a waning guttural screech, green blood bubbling from its maw...")
playsound(src, 'sound/voice/hiss6.ogg', 100, 1)

View File

@@ -1,4 +1,4 @@
/mob/living/simple_animal/hostile/creature
/mob/living/simple_mob/hostile/creature
name = "creature"
desc = "A sanity-destroying otherthing."
icon = 'icons/mob/critter.dmi'
@@ -25,7 +25,7 @@
speak_emote = list("gibbers")
/mob/living/simple_animal/hostile/creature/cult
/mob/living/simple_mob/hostile/creature/cult
faction = "cult"
min_oxy = 0
@@ -40,14 +40,14 @@
supernatural = 1
/mob/living/simple_animal/hostile/creature/cult/cultify()
/mob/living/simple_mob/hostile/creature/cult/cultify()
return
/mob/living/simple_animal/hostile/creature/cult/Life()
/mob/living/simple_mob/hostile/creature/cult/Life()
..()
check_horde()
/mob/living/simple_animal/hostile/creature/strong
/mob/living/simple_mob/hostile/creature/strong
maxHealth = 160
health = 160
@@ -55,7 +55,7 @@
melee_damage_lower = 13
melee_damage_upper = 25
/mob/living/simple_animal/hostile/creature/strong/cult
/mob/living/simple_mob/hostile/creature/strong/cult
faction = "cult"
min_oxy = 0
@@ -70,9 +70,9 @@
supernatural = 1
/mob/living/simple_animal/hostile/creature/cult/cultify()
/mob/living/simple_mob/hostile/creature/cult/cultify()
return
/mob/living/simple_animal/hostile/creature/cult/Life()
/mob/living/simple_mob/hostile/creature/cult/Life()
..()
check_horde()

View File

@@ -1,6 +1,6 @@
//malfunctioning combat drones
/mob/living/simple_animal/hostile/malf_drone
/mob/living/simple_mob/hostile/malf_drone
name = "combat drone"
desc = "An automated combat drone armed with state of the art weaponry and shielding."
icon_state = "drone3"
@@ -51,7 +51,7 @@
var/exploding = 0
var/has_loot = 1
/mob/living/simple_animal/hostile/malf_drone/New()
/mob/living/simple_mob/hostile/malf_drone/New()
..()
if(prob(5))
projectiletype = /obj/item/projectile/beam/pulse/drone
@@ -60,14 +60,14 @@
ion_trail.set_up(src)
ion_trail.start()
/mob/living/simple_animal/hostile/malf_drone/Process_Spacemove(var/check_drift = 0)
/mob/living/simple_mob/hostile/malf_drone/Process_Spacemove(var/check_drift = 0)
return 1
/mob/living/simple_animal/hostile/malf_drone/isSynthetic()
/mob/living/simple_mob/hostile/malf_drone/isSynthetic()
return TRUE
//self repair systems have a chance to bring the drone back to life
/mob/living/simple_animal/hostile/malf_drone/Life()
/mob/living/simple_mob/hostile/malf_drone/Life()
//emps and lots of damage can temporarily shut us down
if(disabled > 0)
@@ -150,18 +150,18 @@
..()
//ion rifle!
/mob/living/simple_animal/hostile/malf_drone/emp_act(severity)
/mob/living/simple_mob/hostile/malf_drone/emp_act(severity)
health -= rand(3,15) * (severity + 1)
disabled = rand(150, 600)
hostile = 0
walk(src,0)
..()
/mob/living/simple_animal/hostile/malf_drone/death()
/mob/living/simple_mob/hostile/malf_drone/death()
..(null,"suddenly breaks apart.")
qdel(src)
/mob/living/simple_animal/hostile/malf_drone/Destroy()
/mob/living/simple_mob/hostile/malf_drone/Destroy()
//More advanced than the default S_A loot system, for visual effect and random tech levels.
if(has_loot)
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
@@ -280,7 +280,7 @@
// A slightly easier drone, for POIs.
// Difference is that it should not be faster than you.
/mob/living/simple_animal/hostile/malf_drone/lesser
/mob/living/simple_mob/hostile/malf_drone/lesser
desc = "An automated combat drone with an aged apperance."
returns_home = TRUE
move_to_delay = 6

View File

@@ -1,4 +1,4 @@
/mob/living/simple_animal/hostile/faithless
/mob/living/simple_mob/hostile/faithless
name = "Faithless"
desc = "The Wish Granter's faith in humanity, incarnate"
icon_state = "faithless"
@@ -37,15 +37,15 @@
speak_chance = 0
/mob/living/simple_animal/hostile/faithless/Process_Spacemove(var/check_drift = 0)
/mob/living/simple_mob/hostile/faithless/Process_Spacemove(var/check_drift = 0)
return 1
/mob/living/simple_animal/hostile/faithless/set_target()
/mob/living/simple_mob/hostile/faithless/set_target()
. = ..()
if(.)
audible_emote("wails at [target_mob]")
/mob/living/simple_animal/hostile/faithless/PunchTarget()
/mob/living/simple_mob/hostile/faithless/PunchTarget()
. = ..()
var/mob/living/L = .
if(istype(L))
@@ -53,18 +53,18 @@
L.Weaken(3)
L.visible_message("<span class='danger'>\the [src] knocks down \the [L]!</span>")
/mob/living/simple_animal/hostile/faithless/cult
/mob/living/simple_mob/hostile/faithless/cult
faction = "cult"
supernatural = 1
/mob/living/simple_animal/hostile/faithless/cult/cultify()
/mob/living/simple_mob/hostile/faithless/cult/cultify()
return
/mob/living/simple_animal/hostile/faithless/cult/Life()
/mob/living/simple_mob/hostile/faithless/cult/Life()
..()
check_horde()
/mob/living/simple_animal/hostile/faithless/strong
/mob/living/simple_mob/hostile/faithless/strong
maxHealth = 100
health = 100
@@ -72,13 +72,13 @@
melee_damage_lower = 13
melee_damage_upper = 28
/mob/living/simple_animal/hostile/faithless/strong/cult
/mob/living/simple_mob/hostile/faithless/strong/cult
faction = "cult"
supernatural = 1
/mob/living/simple_animal/hostile/faithless/cult/cultify()
/mob/living/simple_mob/hostile/faithless/cult/cultify()
return
/mob/living/simple_animal/hostile/faithless/cult/Life()
/mob/living/simple_mob/hostile/faithless/cult/Life()
..()
check_horde()

View File

@@ -3,7 +3,7 @@
#define LASERS_TO_KILL * 40
// Default hivebot is melee, and a bit more meaty, so it can meatshield for their ranged friends.
/mob/living/simple_animal/hostile/hivebot
/mob/living/simple_mob/hostile/hivebot
name = "hivebot"
desc = "A robot. It appears to be somewhat resilient, but lacks a true weapon."
icon = 'icons/mob/hivebot.dmi'
@@ -52,13 +52,13 @@
say_maybe_target = list("Possible threat detected. Investigating.", "Motion detected.", "Investigating.")
say_got_target = list("Threat detected.", "New task: Remove threat.", "Threat removal engaged.", "Engaging target.")
/mob/living/simple_animal/hostile/hivebot/isSynthetic()
/mob/living/simple_mob/hostile/hivebot/isSynthetic()
return TRUE
// Subtypes.
// Melee like the base type, but more fragile.
/mob/living/simple_animal/hostile/hivebot/swarm
/mob/living/simple_mob/hostile/hivebot/swarm
name = "swarm hivebot"
desc = "A robot. It looks fragile and weak"
maxHealth = 1 LASERS_TO_KILL
@@ -67,7 +67,7 @@
melee_damage_upper = 8
// This one has a semi-weak ranged attack.
/mob/living/simple_animal/hostile/hivebot/range
/mob/living/simple_mob/hostile/hivebot/range
name = "ranged hivebot"
desc = "A robot. It has a simple ballistic weapon."
ranged = 1
@@ -75,7 +75,7 @@
health = 2 LASERS_TO_KILL
// This one shoots a burst of three, and is considerably more dangerous.
/mob/living/simple_animal/hostile/hivebot/range/rapid
/mob/living/simple_mob/hostile/hivebot/range/rapid
name = "rapid hivebot"
desc = "A robot. It has a fast firing ballistic rifle."
icon_living = "strong"
@@ -84,7 +84,7 @@
health = 2 LASERS_TO_KILL
// Shoots EMPs, to screw over other robots.
/mob/living/simple_animal/hostile/hivebot/range/ion
/mob/living/simple_mob/hostile/hivebot/range/ion
name = "engineering hivebot"
desc = "A robot. It has a tool which emits focused electromagnetic pulses, which are deadly to synthetic adverseries."
projectiletype = /obj/item/projectile/ion/small //VOREStation Edit
@@ -95,7 +95,7 @@
health = 2 LASERS_TO_KILL
// Shoots deadly lasers.
/mob/living/simple_animal/hostile/hivebot/range/laser
/mob/living/simple_mob/hostile/hivebot/range/laser
name = "laser hivebot"
desc = "A robot. It has an energy weapon."
projectiletype = /obj/item/projectile/beam/blue
@@ -104,7 +104,7 @@
health = 2 LASERS_TO_KILL
// Beefy and ranged.
/mob/living/simple_animal/hostile/hivebot/range/strong
/mob/living/simple_mob/hostile/hivebot/range/strong
name = "strong hivebot"
desc = "A robot. This one has reinforced plating, and looks tougher."
icon_living = "strong"
@@ -114,7 +114,7 @@
melee_damage_upper = 15
// Also beefy, but tries to stay at their 'home', ideal for base defense.
/mob/living/simple_animal/hostile/hivebot/range/guard
/mob/living/simple_mob/hostile/hivebot/range/guard
name = "guard hivebot"
desc = "A robot. It seems to be guarding something."
returns_home = TRUE
@@ -122,7 +122,7 @@
health = 4 LASERS_TO_KILL
// This one is intended for players to use. Well rounded and can make other hivebots follow them with verbs.
/mob/living/simple_animal/hostile/hivebot/range/player
/mob/living/simple_mob/hostile/hivebot/range/player
name = "commander hivebot"
desc = "A robot. This one seems to direct the others, and it has a laser weapon."
icon_living = "commander"
@@ -135,7 +135,7 @@
// Procs.
/mob/living/simple_animal/hostile/hivebot/death()
/mob/living/simple_mob/hostile/hivebot/death()
..()
visible_message("<b>[src]</b> blows apart!")
new /obj/effect/decal/cleanable/blood/gibs/robot(src.loc)
@@ -144,17 +144,17 @@
s.start()
qdel(src)
/mob/living/simple_animal/hostile/hivebot/speech_bubble_appearance()
/mob/living/simple_mob/hostile/hivebot/speech_bubble_appearance()
return "synthetic_evil"
/mob/living/simple_animal/hostile/hivebot/verb/command_follow()
/mob/living/simple_mob/hostile/hivebot/verb/command_follow()
set name = "Command - Follow"
set category = "Hivebot"
set desc = "This will ask other hivebots to follow you."
say("Delegating new task: Follow.")
for(var/mob/living/simple_animal/hostile/hivebot/buddy in hearers(src))
for(var/mob/living/simple_mob/hostile/hivebot/buddy in hearers(src))
if(buddy.faction != faction)
continue
if(buddy == src)
@@ -164,14 +164,14 @@
spawn(rand(5, 10))
buddy.say( pick(buddy.say_understood) )
/mob/living/simple_animal/hostile/hivebot/verb/command_stop()
/mob/living/simple_mob/hostile/hivebot/verb/command_stop()
set name = "Command - Stop Following"
set category = "Hivebot"
set desc = "This will ask other hivebots to cease following you."
say("Delegating new task: Stop following.")
for(var/mob/living/simple_animal/hostile/hivebot/buddy in hearers(src))
for(var/mob/living/simple_mob/hostile/hivebot/buddy in hearers(src))
if(buddy.faction != faction)
continue
if(buddy == src)
@@ -180,7 +180,7 @@
spawn(rand(5, 10))
buddy.say( pick(buddy.say_understood) )
/mob/living/simple_animal/hostile/hivebot/tele//this still needs work
/mob/living/simple_mob/hostile/hivebot/tele//this still needs work
name = "Beacon"
desc = "Some odd beacon thing"
icon = 'icons/mob/hivebot.dmi'
@@ -219,11 +219,11 @@
bot_amt--
switch(bot_type)
if("norm")
new /mob/living/simple_animal/hostile/hivebot(get_turf(src))
new /mob/living/simple_mob/hostile/hivebot(get_turf(src))
if("range")
new /mob/living/simple_animal/hostile/hivebot/range(get_turf(src))
new /mob/living/simple_mob/hostile/hivebot/range(get_turf(src))
if("rapid")
new /mob/living/simple_animal/hostile/hivebot/range/rapid(get_turf(src))
new /mob/living/simple_mob/hostile/hivebot/range/rapid(get_turf(src))
spawn(100)
qdel(src)
return

View File

@@ -2,7 +2,7 @@
// Abstract Class
//
/mob/living/simple_animal/hostile/mimic
/mob/living/simple_mob/hostile/mimic
name = "crate"
desc = "A rectangular steel crate."
icon = 'icons/obj/storage.dmi'
@@ -41,16 +41,16 @@
showvoreprefs = 0 //VOREStation Edit - Hides mechanical vore prefs for mimics. You can't see their gaping maws when they're just sitting idle.
/mob/living/simple_animal/hostile/mimic/set_target()
/mob/living/simple_mob/hostile/mimic/set_target()
. = ..()
if(.)
audible_emote("growls at [.]")
/mob/living/simple_animal/hostile/mimic/death()
/mob/living/simple_mob/hostile/mimic/death()
..()
qdel(src)
/mob/living/simple_animal/hostile/mimic/will_show_tooltip()
/mob/living/simple_mob/hostile/mimic/will_show_tooltip()
return FALSE
@@ -59,7 +59,7 @@
//
// Aggro when you try to open them. Will also pickup loot when spawns and drop it when dies.
/mob/living/simple_animal/hostile/mimic/crate
/mob/living/simple_mob/hostile/mimic/crate
attacktext = list("bitten")
@@ -68,52 +68,52 @@
var/attempt_open = 0
// Pickup loot
/mob/living/simple_animal/hostile/mimic/crate/initialize()
/mob/living/simple_mob/hostile/mimic/crate/initialize()
. = ..()
for(var/obj/item/I in loc)
I.forceMove(src)
/mob/living/simple_animal/hostile/mimic/crate/DestroySurroundings()
/mob/living/simple_mob/hostile/mimic/crate/DestroySurroundings()
..()
if(prob(90))
icon_state = "[initial(icon_state)]open"
else
icon_state = initial(icon_state)
/mob/living/simple_animal/hostile/mimic/crate/ListTargets()
/mob/living/simple_mob/hostile/mimic/crate/ListTargets()
if(attempt_open)
return ..()
else
return ..(1)
/mob/living/simple_animal/hostile/mimic/crate/set_target()
/mob/living/simple_mob/hostile/mimic/crate/set_target()
. = ..()
if(.)
trigger()
/mob/living/simple_animal/hostile/mimic/crate/PunchTarget()
/mob/living/simple_mob/hostile/mimic/crate/PunchTarget()
. = ..()
if(.)
icon_state = initial(icon_state)
/mob/living/simple_animal/hostile/mimic/crate/proc/trigger()
/mob/living/simple_mob/hostile/mimic/crate/proc/trigger()
if(!attempt_open)
visible_message("<b>[src]</b> starts to move!")
attempt_open = 1
/mob/living/simple_animal/hostile/mimic/crate/adjustBruteLoss(var/damage)
/mob/living/simple_mob/hostile/mimic/crate/adjustBruteLoss(var/damage)
trigger()
..(damage)
/mob/living/simple_animal/hostile/mimic/crate/LoseTarget()
/mob/living/simple_mob/hostile/mimic/crate/LoseTarget()
..()
icon_state = initial(icon_state)
/mob/living/simple_animal/hostile/mimic/crate/LostTarget()
/mob/living/simple_mob/hostile/mimic/crate/LostTarget()
..()
icon_state = initial(icon_state)
/mob/living/simple_animal/hostile/mimic/crate/death()
/mob/living/simple_mob/hostile/mimic/crate/death()
var/obj/structure/closet/crate/C = new(get_turf(src))
// Put loot in crate
for(var/obj/O in src)
@@ -122,7 +122,7 @@
O.forceMove(C)
..()
/mob/living/simple_animal/hostile/mimic/crate/PunchTarget()
/mob/living/simple_mob/hostile/mimic/crate/PunchTarget()
. =..()
var/mob/living/L = .
if(istype(L))
@@ -136,7 +136,7 @@
var/global/list/protected_objects = list(/obj/structure/table, /obj/structure/cable, /obj/structure/window, /obj/item/projectile/animate)
/mob/living/simple_animal/hostile/mimic/copy
/mob/living/simple_mob/hostile/mimic/copy
health = 100
maxHealth = 100
@@ -144,11 +144,11 @@ var/global/list/protected_objects = list(/obj/structure/table, /obj/structure/ca
var/destroy_objects = 0
var/knockdown_people = 0
/mob/living/simple_animal/hostile/mimic/copy/New(loc, var/obj/copy, var/mob/living/creator)
/mob/living/simple_mob/hostile/mimic/copy/New(loc, var/obj/copy, var/mob/living/creator)
..(loc)
CopyObject(copy, creator)
/mob/living/simple_animal/hostile/mimic/copy/death()
/mob/living/simple_mob/hostile/mimic/copy/death()
for(var/atom/movable/M in src)
if(isbelly(M)) //VOREStation edit
@@ -156,12 +156,12 @@ var/global/list/protected_objects = list(/obj/structure/table, /obj/structure/ca
M.forceMove(get_turf(src))
..()
/mob/living/simple_animal/hostile/mimic/copy/ListTargets()
/mob/living/simple_mob/hostile/mimic/copy/ListTargets()
// Return a list of targets that isn't the creator
. = ..()
return . - creator
/mob/living/simple_animal/hostile/mimic/copy/proc/CopyObject(var/obj/O, var/mob/living/creator)
/mob/living/simple_mob/hostile/mimic/copy/proc/CopyObject(var/obj/O, var/mob/living/creator)
if((istype(O, /obj/item) || istype(O, /obj/structure)) && !is_type_in_list(O, protected_objects))
@@ -193,11 +193,11 @@ var/global/list/protected_objects = list(/obj/structure/table, /obj/structure/ca
return 1
return
/mob/living/simple_animal/hostile/mimic/copy/DestroySurroundings()
/mob/living/simple_mob/hostile/mimic/copy/DestroySurroundings()
if(destroy_objects)
..()
/mob/living/simple_animal/hostile/mimic/copy/PunchTarget()
/mob/living/simple_mob/hostile/mimic/copy/PunchTarget()
. =..()
if(knockdown_people)
var/mob/living/L = .

View File

@@ -1,4 +1,4 @@
/mob/living/simple_animal/shade
/mob/living/simple_mob/shade
name = "Shade"
real_name = "Shade"
desc = "A bound spirit"
@@ -40,17 +40,17 @@
loot_list = list(/obj/item/weapon/ectoplasm = 100)
/mob/living/simple_animal/shade/cultify()
/mob/living/simple_mob/shade/cultify()
return
/mob/living/simple_animal/shade/attackby(var/obj/item/O as obj, var/mob/user as mob)
/mob/living/simple_mob/shade/attackby(var/obj/item/O as obj, var/mob/user as mob)
if(istype(O, /obj/item/device/soulstone))
var/obj/item/device/soulstone/S = O;
S.transfer_soul("SHADE", src, user)
return
..()
/mob/living/simple_animal/shade/death()
/mob/living/simple_mob/shade/death()
..()
for(var/mob/M in viewers(src, null))
if((M.client && !( M.blinded )))

View File

@@ -2,7 +2,7 @@
//Weeping angels/SCP-173 hype
//Horrible shitcoding and stolen code adaptations below. You have been warned.
/mob/living/simple_animal/hostile/statue
/mob/living/simple_mob/hostile/statue
name = "statue" // matches the name of the statue with the flesh-to-stone spell
desc = "An incredibly lifelike marble carving. Its eyes seems to follow you..." // same as an ordinary statue with the added "eye following you" description
icon = 'icons/obj/statue.dmi'
@@ -79,21 +79,21 @@
// No movement while seen code.
/mob/living/simple_animal/hostile/statue/New(loc)
/mob/living/simple_mob/hostile/statue/New(loc)
..()
// Give spells
add_spell(new/spell/aoe_turf/flicker_lights)
add_spell(new/spell/aoe_turf/blindness)
add_spell(new/spell/aoe_turf/shatter)
/mob/living/simple_animal/hostile/statue/DestroySurroundings()
/mob/living/simple_mob/hostile/statue/DestroySurroundings()
if(can_be_seen(get_turf(loc)))
if(client)
to_chat(src, "<span class='warning'>You cannot move, there are eyes on you!</span>")
return 0
return ..()
/mob/living/simple_animal/hostile/statue/attackby(var/obj/item/O as obj, var/mob/user as mob) //banishing the statue is a risky job
/mob/living/simple_mob/hostile/statue/attackby(var/obj/item/O as obj, var/mob/user as mob) //banishing the statue is a risky job
if(istype(O, /obj/item/weapon/nullrod))
visible_message("<span class='warning'>[user] tries to banish [src] with [O]!</span>")
if(do_after(user, 15, src))
@@ -111,21 +111,21 @@
resistance = initial(resistance)
..()
/mob/living/simple_animal/hostile/statue/death()
/mob/living/simple_mob/hostile/statue/death()
var/chunks_to_spawn = rand(2,5)
for(var/I = 1 to chunks_to_spawn)
new /obj/item/stack/material/marble(get_turf(loc))
new /obj/item/cursed_marble(get_turf(loc))
..()
/mob/living/simple_animal/hostile/statue/Move(turf/NewLoc)
/mob/living/simple_mob/hostile/statue/Move(turf/NewLoc)
if(can_be_seen(NewLoc))
if(client)
to_chat(src, "<span class='warning'>You cannot move, there are eyes on you!</span>")
return 0
return ..()
/mob/living/simple_animal/hostile/statue/Life()
/mob/living/simple_mob/hostile/statue/Life()
..()
handle_target()
handleAnnoyance()
@@ -137,7 +137,7 @@
else if ((annoyance - 2) > 0)
annoyance -= 2
/mob/living/simple_animal/hostile/statue/proc/handle_target()
/mob/living/simple_mob/hostile/statue/proc/handle_target()
if(target_mob) // If we have a target and we're AI controlled
var/mob/watching = can_be_seen()
// If they're not our target
@@ -148,7 +148,7 @@
target_mob = watching
/mob/living/simple_animal/hostile/statue/proc/handleAnnoyance()
/mob/living/simple_mob/hostile/statue/proc/handleAnnoyance()
if(respond) //so it won't blind people 24/7
respond = 0
if (annoyance > 30)
@@ -163,7 +163,7 @@
respond = 1
/mob/living/simple_animal/hostile/statue/proc/AI_blind()
/mob/living/simple_mob/hostile/statue/proc/AI_blind()
for(var/mob/living/L in oviewers(12, src)) //the range is so big, because it tries to keep out of sight and can't reengage if you get too far
if (prob(70))
if(ishuman(L))
@@ -174,7 +174,7 @@
L.Blind(2)
return
/mob/living/simple_animal/hostile/statue/proc/AI_flash()
/mob/living/simple_mob/hostile/statue/proc/AI_flash()
if (prob(60))
visible_message("The statue slowly points at the light.")
for(var/obj/machinery/light/L in oview(12, src))
@@ -182,7 +182,7 @@
return
/mob/living/simple_animal/hostile/statue/proc/AI_mirrorshmash()
/mob/living/simple_mob/hostile/statue/proc/AI_mirrorshmash()
for(var/obj/structure/mirror/M in oview(4, src))
if ((!M.shattered )||(!M.glass))
visible_message("The statue slowly points at the mirror!")
@@ -192,7 +192,7 @@
/mob/living/simple_animal/hostile/statue/AttackTarget()
/mob/living/simple_mob/hostile/statue/AttackTarget()
if(can_be_seen(get_turf(loc)))
if(client)
to_chat(src, "<span class='warning'>You cannot attack, there are eyes on you!</span>")
@@ -203,7 +203,7 @@
/mob/living/simple_animal/hostile/statue/DoPunch(var/atom/A) //had to redo that, since it's supposed to target only head and upper body
/mob/living/simple_mob/hostile/statue/DoPunch(var/atom/A) //had to redo that, since it's supposed to target only head and upper body
if(!Adjacent(A)) // They could've moved in the meantime.
return FALSE
@@ -228,11 +228,11 @@
/mob/living/simple_animal/hostile/statue/face_atom()
/mob/living/simple_mob/hostile/statue/face_atom()
if(!can_be_seen(get_turf(loc)))
..()
/mob/living/simple_animal/hostile/statue/proc/can_be_seen(turf/destination)
/mob/living/simple_mob/hostile/statue/proc/can_be_seen(turf/destination)
if(!cannot_be_seen)
return null
@@ -275,18 +275,18 @@
// Cannot talk
/mob/living/simple_animal/hostile/statue/say()
/mob/living/simple_mob/hostile/statue/say()
return 0
// Turn to dust when gibbed
/mob/living/simple_animal/hostile/statue/gib()
/mob/living/simple_mob/hostile/statue/gib()
dust()
// Stop attacking clientless mobs
/mob/living/simple_animal/hostile/statue/proc/CanAttack(atom/the_target) //ignore clientless mobs
/mob/living/simple_mob/hostile/statue/proc/CanAttack(atom/the_target) //ignore clientless mobs
if(isliving(the_target))
var/mob/living/L = the_target
if(!L.client && !L.ckey)
@@ -319,7 +319,7 @@
spell_flags = 0
range = 10
/spell/aoe_turf/blindness/cast(list/targets, mob/living/simple_animal/hostile/statue/user = usr)
/spell/aoe_turf/blindness/cast(list/targets, mob/living/simple_mob/hostile/statue/user = usr)
for(var/mob/living/L in targets)
if(L == user || L == user.creator)
continue
@@ -350,7 +350,7 @@
/mob/living/simple_animal/hostile/statue/verb/toggle_darkness()
/mob/living/simple_mob/hostile/statue/verb/toggle_darkness()
set name = "Toggle Darkness"
set desc = "You ARE the darkness."
set category = "Abilities"
@@ -360,13 +360,13 @@
/mob/living/simple_animal/hostile/statue/restrained()
/mob/living/simple_mob/hostile/statue/restrained()
. = ..()
if(can_be_seen(loc))
return 1
/mob/living/simple_animal/hostile/statue/ListTargets(dist = view_range)
/mob/living/simple_mob/hostile/statue/ListTargets(dist = view_range)
var/list/L = mobs_in_xray_view(dist, src)
for(var/obj/mecha/M in mechas_list)
@@ -430,7 +430,7 @@
/obj/item/cursed_marble/proc/transfer_personality(var/mob/candidate, var/mob/user)
announce_ghost_joinleave(candidate, 0, "They are a statue now.")
src.searching = 2
var/mob/living/simple_animal/hostile/statue/S = new(get_turf(src))
var/mob/living/simple_mob/hostile/statue/S = new(get_turf(src))
S.client = candidate.client
if(user)
S.creator = user
@@ -451,7 +451,7 @@
var/choice = alert(user, "Are you sure you want to crush the marble? (this will spawn a clientless version of the statue, hostile to everyone, but you)", "Crush it?", "Yes", "No")
if(choice)
if(choice == "Yes")
var/mob/living/simple_animal/hostile/statue/S = new /mob/living/simple_animal/hostile/statue(get_turf(user))
var/mob/living/simple_mob/hostile/statue/S = new /mob/living/simple_mob/hostile/statue(get_turf(user))
visible_message("<span class='warning'>The slab suddenly takes the shape of a humanoid!</span>")
S.creator = user
qdel(src)

View File

@@ -1,4 +1,4 @@
/mob/living/simple_animal/hostile/scarybat
/mob/living/simple_mob/hostile/scarybat
name = "space bats"
desc = "A swarm of cute little blood sucking bats that looks pretty upset."
tt_desc = "N Bestia gregaria" //Nispean swarm bats, because of course Nisp has swarm bats
@@ -47,25 +47,25 @@
var/mob/living/owner
/mob/living/simple_animal/hostile/scarybat/New(loc, mob/living/L as mob)
/mob/living/simple_mob/hostile/scarybat/New(loc, mob/living/L as mob)
..()
if(istype(L))
owner = L
/mob/living/simple_animal/hostile/scarybat/Process_Spacemove(var/check_drift = 0)
/mob/living/simple_mob/hostile/scarybat/Process_Spacemove(var/check_drift = 0)
return ..()
/mob/living/simple_animal/hostile/scarybat/set_target()
/mob/living/simple_mob/hostile/scarybat/set_target()
. = ..()
if(.)
emote("flutters towards [.]")
/mob/living/simple_animal/hostile/scarybat/ListTargets()
/mob/living/simple_mob/hostile/scarybat/ListTargets()
. = ..()
if(owner)
return . - owner
/mob/living/simple_animal/hostile/scarybat/PunchTarget()
/mob/living/simple_mob/hostile/scarybat/PunchTarget()
. =..()
var/mob/living/L = .
if(istype(L))
@@ -73,13 +73,13 @@
L.Stun(1)
L.visible_message("<span class='danger'>\the [src] scares \the [L]!</span>")
/mob/living/simple_animal/hostile/scarybat/cult
/mob/living/simple_mob/hostile/scarybat/cult
faction = "cult"
supernatural = 1
/mob/living/simple_animal/hostile/scarybat/cult/cultify()
/mob/living/simple_mob/hostile/scarybat/cult/cultify()
return
/mob/living/simple_animal/hostile/scarybat/cult/Life()
/mob/living/simple_mob/hostile/scarybat/cult/Life()
..()
check_horde()

View File

@@ -1,5 +1,5 @@
//Space bears!
/mob/living/simple_animal/hostile/bear
/mob/living/simple_mob/hostile/bear
name = "space bear"
desc = "A product of Space Russia?"
tt_desc = "U Ursinae aetherius" //...bearspace? Maybe.
@@ -48,7 +48,7 @@
// var/stance_step = 0
/mob/living/simple_animal/hostile/bear/handle_stance(var/new_stance)
/mob/living/simple_mob/hostile/bear/handle_stance(var/new_stance)
// Below was a bunch of code that made this specific mob be 'alert' and will hurt you when it gets closer.
// It's commented out because it made infinite loops and the AI is going to be moved/rewritten sometime soon (famous last words)
// and it would be better if this 'alert before attacking' behaviour was on the parent instead of a specific type of mob anyways.
@@ -103,7 +103,7 @@
..()
*/
/mob/living/simple_animal/hostile/bear/update_icons()
/mob/living/simple_mob/hostile/bear/update_icons()
..()
if(!stat)
if(loc && istype(loc,/turf/space))
@@ -111,16 +111,16 @@
else
icon_state = "bearfloor"
/mob/living/simple_animal/hostile/bear/Process_Spacemove(var/check_drift = 0)
/mob/living/simple_mob/hostile/bear/Process_Spacemove(var/check_drift = 0)
return
/mob/living/simple_animal/hostile/bear/FindTarget()
/mob/living/simple_mob/hostile/bear/FindTarget()
. = ..()
if(.)
custom_emote(1,"stares alertly at [.]")
// handle_stance(STANCE_ALERT)
/mob/living/simple_animal/hostile/bear/PunchTarget()
/mob/living/simple_mob/hostile/bear/PunchTarget()
if(!Adjacent(target_mob))
return
custom_emote(1, pick( list("slashes at [target_mob]", "bites [target_mob]") ) )

View File

@@ -1,5 +1,5 @@
//Why are these a subclass of cat?
/mob/living/simple_animal/bird
/mob/living/simple_mob/bird
name = "parrot"
desc = "A domesticated bird. Tweet tweet!"
icon = 'icons/mob/birds.dmi'
@@ -18,127 +18,127 @@
holder_type = /obj/item/weapon/holder/bird
/mob/living/simple_animal/bird/kea
/mob/living/simple_mob/bird/kea
name = "Kea"
icon_state = "kea-flap"
icon_living = "kea-flap"
icon_dead = "kea-dead"
/mob/living/simple_animal/bird/eclectus
/mob/living/simple_mob/bird/eclectus
name = "Eclectus"
icon_state = "eclectus-flap"
icon_living = "eclectus-flap"
icon_dead = "eclectus-dead"
/mob/living/simple_animal/bird/eclectusf
/mob/living/simple_mob/bird/eclectusf
name = "Eclectus"
icon_state = "eclectusf-flap"
icon_living = "eclectusf-flap"
icon_dead = "eclectusf-dead"
/mob/living/simple_animal/bird/greybird
/mob/living/simple_mob/bird/greybird
name = "Grey Bird"
icon_state = "agrey-flap"
icon_living = "agrey-flap"
icon_dead = "agrey-dead"
/mob/living/simple_animal/bird/blue_caique
/mob/living/simple_mob/bird/blue_caique
name = "Blue Caique "
icon_state = "bcaique-flap"
icon_living = "bcaique-flap"
icon_dead = "bcaique-dead"
/mob/living/simple_animal/bird/white_caique
/mob/living/simple_mob/bird/white_caique
name = "White caique"
icon_state = "wcaique-flap"
icon_living = "wcaique-flap"
icon_dead = "wcaique-dead"
/mob/living/simple_animal/bird/green_budgerigar
/mob/living/simple_mob/bird/green_budgerigar
name = "Green Budgerigar"
icon_state = "gbudge-flap"
icon_living = "gbudge-flap"
icon_dead = "gbudge-dead"
/mob/living/simple_animal/bird/blue_Budgerigar
/mob/living/simple_mob/bird/blue_Budgerigar
name = "Blue Budgerigar"
icon_state = "bbudge-flap"
icon_living = "bbudge-flap"
icon_dead = "bbudge-dead"
/mob/living/simple_animal/bird/bluegreen_Budgerigar
/mob/living/simple_mob/bird/bluegreen_Budgerigar
name = "Bluegreen Budgerigar"
icon_state = "bgbudge-flap"
icon_living = "bgbudge-flap"
icon_dead = "bgbudge-dead"
/mob/living/simple_animal/bird/commonblackbird
/mob/living/simple_mob/bird/commonblackbird
name = "Black Bird"
icon_state = "commonblackbird"
icon_living = "commonblackbird"
icon_dead = "commonblackbird-dead"
/mob/living/simple_animal/bird/azuretit
/mob/living/simple_mob/bird/azuretit
name = "Azure Tit"
icon_state = "azuretit"
icon_living = "azuretit"
icon_dead = "azuretit-dead"
/mob/living/simple_animal/bird/europeanrobin
/mob/living/simple_mob/bird/europeanrobin
name = "European Robin"
icon_state = "europeanrobin"
icon_living = "europeanrobin"
icon_dead = "europeanrobin-dead"
/mob/living/simple_animal/bird/goldcrest
/mob/living/simple_mob/bird/goldcrest
name = "Goldcrest"
icon_state = "goldcrest"
icon_living = "goldcrest"
icon_dead = "goldcrest-dead"
/mob/living/simple_animal/bird/ringneckdove
/mob/living/simple_mob/bird/ringneckdove
name = "Ringneck Dove"
icon_state = "ringneckdove"
icon_living = "ringneckdove"
icon_dead = "ringneckdove-dead"
/mob/living/simple_animal/bird/cockatiel
/mob/living/simple_mob/bird/cockatiel
name = "Cockatiel"
icon_state = "tiel-flap"
icon_living = "tiel-flap"
icon_dead = "tiel-dead"
/mob/living/simple_animal/bird/white_cockatiel
/mob/living/simple_mob/bird/white_cockatiel
name = "White Cockatiel"
icon_state = "wtiel-flap"
icon_living = "wtiel-flap"
icon_dead = "wtiel-dead"
/mob/living/simple_animal/bird/yellowish_cockatiel
/mob/living/simple_mob/bird/yellowish_cockatiel
name = "Yellowish Cockatiel"
icon_state = "luttiel-flap"
icon_living = "luttiel-flap"
icon_dead = "luttiel-dead"
/mob/living/simple_animal/bird/grey_cockatiel
/mob/living/simple_mob/bird/grey_cockatiel
name = "Grey Cockatiel"
icon_state = "blutiel-flap"
icon_living = "blutiel-flap"
icon_dead = "blutiel-dead"
/mob/living/simple_animal/bird/too
/mob/living/simple_mob/bird/too
name = "Too"
icon_state = "too-flap"
icon_living = "too-flap"
icon_dead = "too-dead"
/mob/living/simple_animal/bird/hooded_too
/mob/living/simple_mob/bird/hooded_too
name = "Utoo"
icon_state = "utoo-flap"
icon_living = "utoo-flap"
icon_dead = "utoo-dead"
/mob/living/simple_animal/bird/pink_too
/mob/living/simple_mob/bird/pink_too
name = "Mtoo"
icon_state = "mtoo-flap"
icon_living = "mtoo-flap"

View File

@@ -1,4 +1,4 @@
/mob/living/simple_animal/hostile/carp
/mob/living/simple_mob/hostile/carp
name = "space carp"
desc = "A ferocious, fang-bearing creature that resembles a fish."
tt_desc = "U Cyprinus aetherius" //carpspace? maybe
@@ -38,7 +38,7 @@
meat_type = /obj/item/weapon/reagent_containers/food/snacks/carpmeat
/mob/living/simple_animal/hostile/carp/large
/mob/living/simple_mob/hostile/carp/large
name = "elder carp"
desc = "An older, more matured carp. Few survive to this age due to their aggressiveness."
icon = 'icons/mob/64x32.dmi'
@@ -56,7 +56,7 @@
maxHealth = 50
/mob/living/simple_animal/hostile/carp/large/huge
/mob/living/simple_mob/hostile/carp/large/huge
name = "great white carp"
desc = "A very rare breed of carp- and a very aggressive one."
icon = 'icons/mob/64x64.dmi'
@@ -75,15 +75,15 @@
old_y = -16
pixel_y = -16
/mob/living/simple_animal/hostile/carp/Process_Spacemove(var/check_drift = 0)
/mob/living/simple_mob/hostile/carp/Process_Spacemove(var/check_drift = 0)
return 1 //No drifting in space for space carp! //original comments do not steal
/mob/living/simple_animal/hostile/carp/set_target()
/mob/living/simple_mob/hostile/carp/set_target()
. = ..()
if(.)
custom_emote(1,"nashes at [.]")
/mob/living/simple_animal/hostile/carp/PunchTarget()
/mob/living/simple_mob/hostile/carp/PunchTarget()
. =..()
var/mob/living/L = .
if(istype(L))

View File

@@ -1,5 +1,5 @@
//Cat
/mob/living/simple_animal/cat
/mob/living/simple_mob/cat
name = "cat"
desc = "A domesticated, feline pet. Has a tendency to adopt crewmembers."
tt_desc = "E Felis silvestris catus"
@@ -44,7 +44,7 @@
var/turns_since_scan = 0
var/mob/flee_target
/mob/living/simple_animal/cat/Life()
/mob/living/simple_mob/cat/Life()
. = ..()
if(!.) return
@@ -62,7 +62,7 @@
handle_flee_target()
/mob/living/simple_animal/cat/PunchTarget()
/mob/living/simple_mob/cat/PunchTarget()
if(ismouse(target_mob))
var/mob/living/simple_mob/animal/passive/mouse/mouse = target_mob
mouse.splat()
@@ -71,11 +71,11 @@
else
..()
/mob/living/simple_animal/cat/Found(var/atom/found_atom)
/mob/living/simple_mob/cat/Found(var/atom/found_atom)
if(ismouse(found_atom) && SA_attackable(found_atom))
return found_atom
/mob/living/simple_animal/cat/proc/handle_flee_target()
/mob/living/simple_mob/cat/proc/handle_flee_target()
//see if we should stop fleeing
if (flee_target && !(flee_target in ListTargets(view_range)))
flee_target = null
@@ -88,21 +88,21 @@
stop_automated_movement = 1
walk_away(src, flee_target, 7, 2)
/mob/living/simple_animal/cat/react_to_attack(var/atom/A)
/mob/living/simple_mob/cat/react_to_attack(var/atom/A)
if(A == src) return
flee_target = A
turns_since_scan = 5
/mob/living/simple_animal/cat/ex_act()
/mob/living/simple_mob/cat/ex_act()
. = ..()
react_to_attack(src.loc)
//Basic friend AI
/mob/living/simple_animal/cat/fluff
/mob/living/simple_mob/cat/fluff
var/mob/living/carbon/human/friend
var/befriend_job = null
/mob/living/simple_animal/cat/fluff/Life()
/mob/living/simple_mob/cat/fluff/Life()
. = ..()
if(!. || ai_inactive || !friend) return
@@ -129,7 +129,7 @@
var/verb = pick("meows", "mews", "mrowls")
audible_emote("[verb] anxiously.")
/mob/living/simple_animal/cat/fluff/verb/become_friends()
/mob/living/simple_mob/cat/fluff/verb/become_friends()
set name = "Become Friends"
set category = "IC"
set src in view(1)
@@ -153,7 +153,7 @@
return
//RUNTIME IS ALIVE! SQUEEEEEEEE~
/mob/living/simple_animal/cat/fluff/Runtime
/mob/living/simple_mob/cat/fluff/Runtime
name = "Runtime"
desc = "Her fur has the look and feel of velvet, and her tail quivers occasionally."
tt_desc = "E Felis silvestris medicalis" //a hypoallergenic breed produced by NT for... medical purposes? Sure.
@@ -165,7 +165,7 @@
icon_rest = "cat_rest"
befriend_job = "Chief Medical Officer"
/mob/living/simple_animal/cat/kitten
/mob/living/simple_mob/cat/kitten
name = "kitten"
desc = "D'aaawwww"
icon_state = "kitten"
@@ -181,7 +181,7 @@
gender = MALE
icon_state = "cat3"
/mob/living/simple_animal/cat/fluff/bones
/mob/living/simple_mob/cat/fluff/bones
name = "Bones"
desc = "That's Bones the cat. He's a laid back, black cat. Meow."
gender = MALE
@@ -193,6 +193,6 @@
holder_type = /obj/item/weapon/holder/cat/fluff/bones
var/friend_name = "Erstatz Vryroxes"
/mob/living/simple_animal/cat/kitten/New()
/mob/living/simple_mob/cat/kitten/New()
gender = pick(MALE, FEMALE)
..()

View File

@@ -1,4 +1,4 @@
/mob/living/simple_animal/cat/fluff/Runtime/init_vore()
/mob/living/simple_mob/cat/fluff/Runtime/init_vore()
..()
var/obj/belly/B = vore_selected
B.name = "Stomach"
@@ -38,7 +38,7 @@
icon_state = "kitten"
w_class = ITEMSIZE_SMALL
/mob/living/simple_animal/cat/fluff/tabiranth
/mob/living/simple_mob/cat/fluff/tabiranth
name = "Spirit"
desc = "A small, inquisitive feline, who constantly seems to investigate his surroundings."
icon = 'icons/mob/custom_items_mob.dmi'
@@ -55,7 +55,7 @@
health = 50
//Emergency teleport - Until a spriter makes something better
/mob/living/simple_animal/cat/fluff/tabiranth/death(gibbed, deathmessage = "teleports away!")
/mob/living/simple_mob/cat/fluff/tabiranth/death(gibbed, deathmessage = "teleports away!")
overlays = list()
icon_state = ""
flick("kphaseout",src)

View File

@@ -1,5 +1,5 @@
//Corgi
/mob/living/simple_animal/corgi
/mob/living/simple_mob/corgi
name = "corgi"
real_name = "corgi"
desc = "It's a corgi."
@@ -33,7 +33,7 @@
var/obj/item/inventory_back
//IAN! SQUEEEEEEEEE~
/mob/living/simple_animal/corgi/Ian
/mob/living/simple_mob/corgi/Ian
name = "Ian"
real_name = "Ian" //Intended to hold the name without altering it.
gender = MALE
@@ -44,7 +44,7 @@
response_disarm = "bops"
response_harm = "kicks"
/mob/living/simple_animal/corgi/Ian/Life()
/mob/living/simple_mob/corgi/Ian/Life()
..()
//Not replacing with SA FollowTarget mechanics because Ian behaves... very... specifically.
@@ -100,7 +100,7 @@
name = "corgi meat"
desc = "Tastes like... well, you know..."
/mob/living/simple_animal/corgi/attackby(var/obj/item/O as obj, var/mob/user as mob) //Marker -Agouri
/mob/living/simple_mob/corgi/attackby(var/obj/item/O as obj, var/mob/user as mob) //Marker -Agouri
if(istype(O, /obj/item/weapon/newspaper))
if(!stat)
for(var/mob/M in viewers(user, null))
@@ -113,7 +113,7 @@
else
..()
/mob/living/simple_animal/corgi/regenerate_icons()
/mob/living/simple_mob/corgi/regenerate_icons()
overlays = list()
if(inventory_head)
@@ -137,7 +137,7 @@
return
/mob/living/simple_animal/corgi/puppy
/mob/living/simple_mob/corgi/puppy
name = "corgi puppy"
real_name = "corgi"
desc = "It's a corgi puppy."
@@ -146,7 +146,7 @@
icon_dead = "puppy_dead"
//pupplies cannot wear anything.
/mob/living/simple_animal/corgi/puppy/Topic(href, href_list)
/mob/living/simple_mob/corgi/puppy/Topic(href, href_list)
if(href_list["remove_inv"] || href_list["add_inv"])
usr << "<font color='red'>You can't fit this on [src]</font>"
return
@@ -154,7 +154,7 @@
//LISA! SQUEEEEEEEEE~
/mob/living/simple_animal/corgi/Lisa
/mob/living/simple_mob/corgi/Lisa
name = "Lisa"
real_name = "Lisa"
gender = FEMALE
@@ -169,13 +169,13 @@
var/puppies = 0
//Lisa already has a cute bow!
/mob/living/simple_animal/corgi/Lisa/Topic(href, href_list)
/mob/living/simple_mob/corgi/Lisa/Topic(href, href_list)
if(href_list["remove_inv"] || href_list["add_inv"])
to_chat(usr, "<font color='red'>[src] already has a cute bow!</font>")
return
..()
/mob/living/simple_animal/corgi/Lisa/Life()
/mob/living/simple_mob/corgi/Lisa/Life()
..()
if(!stat && !resting && !buckled)
@@ -185,7 +185,7 @@
var/alone = 1
var/ian = 0
for(var/mob/M in oviewers(7, src))
if(istype(M, /mob/living/simple_animal/corgi/Ian))
if(istype(M, /mob/living/simple_mob/corgi/Ian))
if(M.client)
alone = 0
break
@@ -197,7 +197,7 @@
if(alone && ian && puppies < 4)
if(near_camera(src) || near_camera(ian))
return
new /mob/living/simple_animal/corgi/puppy(loc)
new /mob/living/simple_mob/corgi/puppy(loc)
if(prob(1))
@@ -209,7 +209,7 @@
//Technically this should be like, its own file or something or a subset of dog but whatever. Not a coder.
/mob/living/simple_animal/corgi/tamaskan
/mob/living/simple_mob/corgi/tamaskan
name = "tamaskan"
real_name = "tamaskan"
desc = "It's a tamaskan."
@@ -219,7 +219,7 @@
retaliate = 1 //Tamaskans are bigass dogs, okay?
/mob/living/simple_animal/corgi/tamaskan/spice
/mob/living/simple_mob/corgi/tamaskan/spice
name = "Spice"
real_name = "Spice" //Intended to hold the name without altering it.
gender = FEMALE

View File

@@ -1,4 +1,4 @@
/mob/living/simple_animal/corgi/show_inv(mob/user as mob)
/mob/living/simple_mob/corgi/show_inv(mob/user as mob)
user.set_machine(src)
if(user.stat) return
@@ -16,7 +16,7 @@
onclose(user, "mob[real_name]")
return
/mob/living/simple_animal/corgi/attackby(var/obj/item/O as obj, var/mob/user as mob)
/mob/living/simple_mob/corgi/attackby(var/obj/item/O as obj, var/mob/user as mob)
if(inventory_head && inventory_back)
//helmet and armor = 100% protection
if( istype(inventory_head,/obj/item/clothing/head/helmet) && istype(inventory_back,/obj/item/clothing/suit/armor) )
@@ -33,7 +33,7 @@
return
..()
/mob/living/simple_animal/corgi/Topic(href, href_list)
/mob/living/simple_mob/corgi/Topic(href, href_list)
if(usr.stat) return
//Removing from inventory
@@ -150,7 +150,7 @@
else
..()
/mob/living/simple_animal/corgi/proc/place_on_head(obj/item/item_to_add)
/mob/living/simple_mob/corgi/proc/place_on_head(obj/item/item_to_add)
item_to_add.loc = src
src.inventory_head = item_to_add
regenerate_icons()

View File

@@ -1,5 +1,5 @@
//Look Sir, free crabs!
/mob/living/simple_animal/crab
/mob/living/simple_mob/crab
name = "crab"
desc = "A hard-shelled crustacean. Seems quite content to lounge around all the time."
tt_desc = "E Cancer bellianus"
@@ -28,7 +28,7 @@
var/obj/item/inventory_head
var/obj/item/inventory_mask
/mob/living/simple_animal/crab/Life()
/mob/living/simple_mob/crab/Life()
..()
//CRAB movement, I'm not porting this up to SA because... "sideways-only movement" var nothanks
if(!ckey && !stat)
@@ -40,7 +40,7 @@
regenerate_icons()
//COFFEE! SQUEEEEEEEEE!
/mob/living/simple_animal/crab/Coffee
/mob/living/simple_mob/crab/Coffee
name = "Coffee"
real_name = "Coffee"
desc = "It's Coffee, the other pet!"
@@ -49,7 +49,7 @@
response_harm = "stomps"
//Sif Crabs
/mob/living/simple_animal/giant_crab
/mob/living/simple_mob/giant_crab
name = "giant crab"
desc = "A large, hard-shelled crustacean. This one is mostly grey."
tt_desc = "S Cancer holligus"

View File

@@ -1,5 +1,5 @@
// Different types of fish! They are all subtypes of this tho
/mob/living/simple_animal/fish
/mob/living/simple_mob/fish
name = "fish"
desc = "Its a fishy. No touchy fishy."
icon = 'icons/mob/fish.dmi'
@@ -16,7 +16,7 @@
)
// Don't swim out of the water
/mob/living/simple_animal/fish/handle_wander_movement()
/mob/living/simple_mob/fish/handle_wander_movement()
if(isturf(src.loc) && !resting && !buckled && canmove) //Physically capable of moving?
lifes_since_move++ //Increment turns since move (turns are life() cycles)
if(lifes_since_move >= turns_per_move)
@@ -30,49 +30,49 @@
lifes_since_move = 0
// Take damage if we are not in water
/mob/living/simple_animal/fish/handle_breathing()
/mob/living/simple_mob/fish/handle_breathing()
var/turf/T = get_turf(src)
if(T && !is_type_in_list(T, suitable_turf_types))
if(prob(50))
say(pick("Blub", "Glub", "Burble"))
adjustBruteLoss(unsuitable_atoms_damage)
/mob/living/simple_animal/fish/bass
/mob/living/simple_mob/fish/bass
name = "bass"
tt_desc = "E Micropterus notius"
icon_state = "bass-swim"
icon_living = "bass-swim"
icon_dead = "bass-dead"
/mob/living/simple_animal/fish/trout
/mob/living/simple_mob/fish/trout
name = "trout"
tt_desc = "E Salmo trutta"
icon_state = "trout-swim"
icon_living = "trout-swim"
icon_dead = "trout-dead"
/mob/living/simple_animal/fish/salmon
/mob/living/simple_mob/fish/salmon
name = "salmon"
tt_desc = "E Oncorhynchus nerka"
icon_state = "salmon-swim"
icon_living = "salmon-swim"
icon_dead = "salmon-dead"
/mob/living/simple_animal/fish/perch
/mob/living/simple_mob/fish/perch
name = "perch"
tt_desc = "E Perca flavescens"
icon_state = "perch-swim"
icon_living = "perch-swim"
icon_dead = "perch-dead"
/mob/living/simple_animal/fish/pike
/mob/living/simple_mob/fish/pike
name = "pike"
tt_desc = "E Esox aquitanicus"
icon_state = "pike-swim"
icon_living = "pike-swim"
icon_dead = "pike-dead"
/mob/living/simple_animal/fish/koi
/mob/living/simple_mob/fish/koi
name = "koi"
tt_desc = "E Cyprinus rubrofuscus"
icon_state = "koi-swim"

View File

@@ -1,21 +1,21 @@
/mob/living/simple_animal/fish/koi/poisonous
/mob/living/simple_mob/fish/koi/poisonous
desc = "A genetic marvel, combining the docility and aesthetics of the koi with some of the resiliency and cunning of the noble space carp."
health = 50
maxHealth = 50
/mob/living/simple_animal/fish/koi/poisonous/New()
/mob/living/simple_mob/fish/koi/poisonous/New()
..()
create_reagents(60)
reagents.add_reagent("toxin", 45)
reagents.add_reagent("impedrezene", 15)
/mob/living/simple_animal/fish/koi/poisonous/Life()
/mob/living/simple_mob/fish/koi/poisonous/Life()
..()
if(isbelly(loc) && prob(10))
var/obj/belly/B = loc
sting(B.owner)
/mob/living/simple_animal/fish/koi/poisonous/react_to_attack(var/atom/A)
/mob/living/simple_mob/fish/koi/poisonous/react_to_attack(var/atom/A)
if(isliving(A) && Adjacent(A))
var/mob/living/M = A
visible_message("<span class='warning'>\The [src][is_dead()?"'s corpse":""] flails at [M]!</span>")
@@ -33,7 +33,7 @@
break
sleep(3)
/mob/living/simple_animal/fish/koi/poisonous/proc/sting(var/mob/living/M)
/mob/living/simple_mob/fish/koi/poisonous/proc/sting(var/mob/living/M)
if(!M.reagents)
return 0
M.reagents.add_reagent("toxin", 2)

View File

@@ -1,4 +1,4 @@
/mob/living/simple_animal/fluffy
/mob/living/simple_mob/fluffy
name = "Fluffy"
desc = "It's a pink Diyaab! It seems to be very tame and quiet."
icon = 'icons/mob/animal_vr.dmi'
@@ -28,7 +28,7 @@
meat_amount = 1
meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat
/mob/living/simple_animal/fluffy/Life()
/mob/living/simple_mob/fluffy/Life()
. = ..()
if(!. || ai_inactive) return

View File

@@ -1,4 +1,4 @@
/mob/living/simple_animal/fox
/mob/living/simple_mob/fox
name = "fox"
desc = "It's a fox. I wonder what it says?"
tt_desc = "Vulpes vulpes"
@@ -39,7 +39,7 @@
var/turns_since_scan = 0
var/mob/flee_target
/mob/living/simple_animal/fox/init_vore()
/mob/living/simple_mob/fox/init_vore()
..()
var/obj/belly/B = vore_selected
B.name = "Stomach"
@@ -62,25 +62,25 @@
"With a loud glorp, the stomach spills more acids onto you.")
// All them complicated fox procedures.
/mob/living/simple_animal/fox/Life()
/mob/living/simple_mob/fox/Life()
. = ..()
if(!.) return
handle_flee_target()
/mob/living/simple_animal/fox/PunchTarget()
if(istype(target_mob,/mob/living/simple_animal/mouse))
var/mob/living/simple_animal/mouse/mouse = target_mob
/mob/living/simple_mob/fox/PunchTarget()
if(istype(target_mob,/mob/living/simple_mob/mouse))
var/mob/living/simple_mob/mouse/mouse = target_mob
mouse.splat()
visible_emote(pick("bites \the [mouse]!","pounces on \the [mouse]!","chomps on \the [mouse]!"))
else
..()
/mob/living/simple_animal/fox/Found(var/atom/found_atom)
if(istype(found_atom,/mob/living/simple_animal/mouse))
/mob/living/simple_mob/fox/Found(var/atom/found_atom)
if(istype(found_atom,/mob/living/simple_mob/mouse))
return found_atom
/mob/living/simple_animal/fox/proc/handle_flee_target()
/mob/living/simple_mob/fox/proc/handle_flee_target()
//see if we should stop fleeing
if (flee_target && !(flee_target in ListTargets(view_range)))
flee_target = null
@@ -93,16 +93,16 @@
stop_automated_movement = 1
walk_away(src, flee_target, 7, 2)
/mob/living/simple_animal/fox/react_to_attack(var/atom/A)
/mob/living/simple_mob/fox/react_to_attack(var/atom/A)
if(A == src) return
flee_target = A
turns_since_scan = 5
/mob/living/simple_animal/fox/ex_act()
/mob/living/simple_mob/fox/ex_act()
. = ..()
react_to_attack(src.loc)
/mob/living/simple_animal/fox/MouseDrop(atom/over_object)
/mob/living/simple_mob/fox/MouseDrop(atom/over_object)
var/mob/living/carbon/H = over_object
if(!istype(H) || !Adjacent(H)) return ..()
@@ -112,17 +112,17 @@
else
return ..()
/mob/living/simple_animal/fox/get_scooped(var/mob/living/carbon/grabber)
/mob/living/simple_mob/fox/get_scooped(var/mob/living/carbon/grabber)
if (stat >= DEAD)
return //since the holder icon looks like a living cat
..()
//Basic friend AI
/mob/living/simple_animal/fox/fluff
/mob/living/simple_mob/fox/fluff
var/mob/living/carbon/human/friend
var/befriend_job = null
/mob/living/simple_animal/fox/fluff/Life()
/mob/living/simple_mob/fox/fluff/Life()
. = ..()
if(!. || ai_inactive || !friend) return
@@ -149,7 +149,7 @@
var/verb = pick("yaps", "howls", "whines")
audible_emote("[verb] anxiously.")
/mob/living/simple_animal/fox/fluff/verb/friend()
/mob/living/simple_mob/fox/fluff/verb/friend()
set name = "Become Friends"
set category = "IC"
set src in view(1)
@@ -173,13 +173,13 @@
desc = "The fox doesn't say a goddamn thing, now."
//Captain fox
/mob/living/simple_animal/fox/fluff/Renault
/mob/living/simple_mob/fox/fluff/Renault
name = "Renault"
desc = "Renault, the Colony Director's trustworthy fox. I wonder what it says?"
tt_desc = "Vulpes nobilis"
befriend_job = "Colony Director"
/mob/living/simple_animal/fox/fluff/Renault/init_vore()
/mob/living/simple_mob/fox/fluff/Renault/init_vore()
..()
var/obj/belly/B = vore_selected
B.name = "Stomach"
@@ -201,7 +201,7 @@
"A thick glob of acids drip down from above, adding to the pool of caustic fluids in Renault's belly.",
"There's a loud gurgle as the stomach declares the intent to make you a part of Renault.")
/mob/living/simple_animal/fox/syndicate
/mob/living/simple_mob/fox/syndicate
name = "syndi-fox"
desc = "It's a DASTARDLY fox! The horror! Call the shuttle!"
tt_desc = "Vulpes malus"

View File

@@ -5,7 +5,7 @@
#define SPINNING_COCOON 4
//basic spider mob, these generally guard nests
/mob/living/simple_animal/hostile/giant_spider
/mob/living/simple_mob/hostile/giant_spider
name = "giant spider"
desc = "Furry and brown, it makes you shudder to look at it. This one has deep red eyes."
tt_desc = "X Brachypelma phorus"
@@ -51,14 +51,14 @@
low_priority = TRUE //VOREStation Edit
/mob/living/simple_animal/hostile/giant_spider/proc/add_eyes()
/mob/living/simple_mob/hostile/giant_spider/proc/add_eyes()
if(!eye_layer)
eye_layer = image(icon, "[icon_state]-eyes")
eye_layer.plane = PLANE_LIGHTING_ABOVE
overlays += eye_layer
/mob/living/simple_animal/hostile/giant_spider/proc/remove_eyes()
/mob/living/simple_mob/hostile/giant_spider/proc/remove_eyes()
overlays -= eye_layer
/*
@@ -66,7 +66,7 @@ Nurse Family
*/
//nursemaids - these create webs and eggs
/mob/living/simple_animal/hostile/giant_spider/nurse
/mob/living/simple_mob/hostile/giant_spider/nurse
desc = "Furry and beige, it makes you shudder to look at it. This one has brilliant green eyes."
tt_desc = "X Brachypelma phorus laetus"
icon_state = "nurse"
@@ -85,7 +85,7 @@ Nurse Family
var/atom/cocoon_target
var/egg_inject_chance = 5
/mob/living/simple_animal/hostile/giant_spider/nurse/hat
/mob/living/simple_mob/hostile/giant_spider/nurse/hat
desc = "Furry and beige, it makes you shudder to look at it. This one has brilliant green eyes and a tiny nurse hat."
icon_state = "nursemed"
icon_living = "nursemed"
@@ -101,7 +101,7 @@ Nurse Family
poison_chance = 15
// VOREStation Edit End
/mob/living/simple_animal/hostile/giant_spider/nurse/queen
/mob/living/simple_mob/hostile/giant_spider/nurse/queen
desc = "Absolutely gigantic, this creature is horror itself."
tt_desc = "X Brachypelma phorus tyrannus"
icon = 'icons/mob/64x64.dmi'
@@ -124,7 +124,7 @@ Nurse Family
old_x = -16
old_y = -16
/mob/living/simple_animal/hostile/giant_spider/webslinger
/mob/living/simple_mob/hostile/giant_spider/webslinger
desc = "Furry and green, it makes you shudder to look at it. This one has brilliant green eyes, and a cloak of web."
tt_desc = "X Brachypelma phorus balisticus"
icon_state = "webslinger"
@@ -150,7 +150,7 @@ Nurse Family
spattack_min_range = 0
spattack_max_range = 5
/mob/living/simple_animal/hostile/giant_spider/webslinger/AttackTarget() //One day.
/mob/living/simple_mob/hostile/giant_spider/webslinger/AttackTarget() //One day.
var/mob/living/carbon/human/victim = null //Webslinger needs to know if its target is human later.
if(ishuman(target_mob))
victim = target_mob
@@ -165,7 +165,7 @@ Nurse Family
shoot_range = 5
return ..()
/mob/living/simple_animal/hostile/giant_spider/carrier
/mob/living/simple_mob/hostile/giant_spider/carrier
desc = "Furry, beige, and red, it makes you shudder to look at it. This one has luminous green eyes."
tt_desc = "X Brachypelma phorus gerulus"
icon_state = "carrier"
@@ -183,20 +183,20 @@ Nurse Family
var/spiderling_count = 0
var/spiderling_type = /obj/effect/spider/spiderling
var/swarmling_type = /mob/living/simple_animal/hostile/giant_spider/hunter
var/swarmling_type = /mob/living/simple_mob/hostile/giant_spider/hunter
var/swarmling_faction = "spiders"
/mob/living/simple_animal/hostile/giant_spider/carrier/New()
/mob/living/simple_mob/hostile/giant_spider/carrier/New()
spiderling_count = rand(5,10)
adjust_scale(1.2)
..()
/mob/living/simple_animal/hostile/giant_spider/carrier/death()
/mob/living/simple_mob/hostile/giant_spider/carrier/death()
visible_message("<span class='notice'>\The [src]'s abdomen splits as it rolls over, spiderlings crawling from the wound.</span>")
spawn(1)
for(var/I = 1 to spiderling_count)
if(prob(10) && src)
var/mob/living/simple_animal/hostile/giant_spider/swarmling = new swarmling_type(src.loc)
var/mob/living/simple_mob/hostile/giant_spider/swarmling = new swarmling_type(src.loc)
var/swarm_health = Floor(swarmling.maxHealth * 0.4)
var/swarm_dam_lower = Floor(melee_damage_lower * 0.4)
var/swarm_dam_upper = Floor(melee_damage_upper * 0.4)
@@ -214,10 +214,10 @@ Nurse Family
break
return ..()
/mob/living/simple_animal/hostile/giant_spider/carrier/recursive
/mob/living/simple_mob/hostile/giant_spider/carrier/recursive
desc = "Furry, beige, and red, it makes you shudder to look at it. This one has luminous green eyes. You have a distinctly <font face='comic sans ms'>bad</font> feeling about this."
swarmling_type = /mob/living/simple_animal/hostile/giant_spider/carrier/recursive
swarmling_type = /mob/living/simple_mob/hostile/giant_spider/carrier/recursive
/*
Hunter Family
@@ -225,7 +225,7 @@ Hunter Family
//hunters have the most poison and move the fastest, so they can find prey
/mob/living/simple_animal/hostile/giant_spider/hunter
/mob/living/simple_mob/hostile/giant_spider/hunter
desc = "Furry and black, it makes you shudder to look at it. This one has sparkling purple eyes."
tt_desc = "X Brachypelma phorus venandi"
icon_state = "hunter"
@@ -238,7 +238,7 @@ Hunter Family
poison_per_bite = 5
/mob/living/simple_animal/hostile/giant_spider/lurker
/mob/living/simple_mob/hostile/giant_spider/lurker
desc = "Translucent and white, it makes you shudder to look at it. This one has incandescent red eyes."
tt_desc = "X Brachypelma phorus insidator"
icon_state = "lurker"
@@ -258,11 +258,11 @@ Hunter Family
poison_type = "cryptobiolin"
poison_per_bite = 2
/mob/living/simple_animal/hostile/giant_spider/lurker/death()
/mob/living/simple_mob/hostile/giant_spider/lurker/death()
alpha = 255
return ..()
/mob/living/simple_animal/hostile/giant_spider/tunneler
/mob/living/simple_mob/hostile/giant_spider/tunneler
desc = "Sandy and brown, it makes you shudder to look at it. This one has glittering yellow eyes."
tt_desc = "X Brachypelma phorus cannalis"
icon_state = "tunneler"
@@ -280,7 +280,7 @@ Hunter Family
poison_per_bite = 3
poison_type = "serotrotium_v"
/mob/living/simple_animal/hostile/giant_spider/tunneler/death()
/mob/living/simple_mob/hostile/giant_spider/tunneler/death()
spawn(1)
for(var/I = 1 to rand(3,6))
if(src)
@@ -293,7 +293,7 @@ Hunter Family
Guard Family
*/
/mob/living/simple_animal/hostile/giant_spider/pepper
/mob/living/simple_mob/hostile/giant_spider/pepper
desc = "Red and brown, it makes you shudder to look at it. This one has glinting red eyes."
tt_desc = "X Brachypelma phorus ignis"
icon_state = "pepper"
@@ -310,11 +310,11 @@ Guard Family
poison_per_bite = 5
poison_type = "condensedcapsaicin_v"
/mob/living/simple_animal/hostile/giant_spider/pepper/New()
/mob/living/simple_mob/hostile/giant_spider/pepper/New()
adjust_scale(1.1)
..()
/mob/living/simple_animal/hostile/giant_spider/thermic
/mob/living/simple_mob/hostile/giant_spider/thermic
desc = "Mirage-cloaked and orange, it makes you shudder to look at it. This one has simmering orange eyes."
tt_desc = "X Brachypelma phorus incaendium"
icon_state = "pit"
@@ -331,7 +331,7 @@ Guard Family
poison_per_bite = 1
poison_type = "thermite_v"
/mob/living/simple_animal/hostile/giant_spider/electric
/mob/living/simple_mob/hostile/giant_spider/electric
desc = "Spined and yellow, it makes you shudder to look at it. This one has flickering gold eyes."
tt_desc = "X Brachypelma phorus aromatitis"
icon_state = "spark"
@@ -355,7 +355,7 @@ Guard Family
poison_per_bite = 3
poison_type = "stimm"
/mob/living/simple_animal/hostile/giant_spider/phorogenic
/mob/living/simple_mob/hostile/giant_spider/phorogenic
desc = "Crystalline and purple, it makes you shudder to look at it. This one has haunting purple eyes."
tt_desc = "X Brachypelma phorus phorus"
icon_state = "phoron"
@@ -376,11 +376,11 @@ Guard Family
var/exploded = 0
/mob/living/simple_animal/hostile/giant_spider/phorogenic/New()
/mob/living/simple_mob/hostile/giant_spider/phorogenic/New()
adjust_scale(1.25)
return ..()
/mob/living/simple_animal/hostile/giant_spider/phorogenic/death()
/mob/living/simple_mob/hostile/giant_spider/phorogenic/death()
visible_message("<span class='danger'>\The [src]'s body begins to rupture!</span>")
spawn(rand(1,5))
if(src && !exploded)
@@ -389,7 +389,7 @@ Guard Family
explosion(src.loc, 1, 2, 4, 6)
return ..()
/mob/living/simple_animal/hostile/giant_spider/frost
/mob/living/simple_mob/hostile/giant_spider/frost
desc = "Icy and blue, it makes you shudder to look at it. This one has brilliant blue eyes."
tt_desc = "X Brachypelma phorus pruinae"
icon_state = "frost"
@@ -406,16 +406,16 @@ Guard Family
Spider Procs
*/
/mob/living/simple_animal/hostile/giant_spider/New(var/location, var/atom/parent)
/mob/living/simple_mob/hostile/giant_spider/New(var/location, var/atom/parent)
get_light_and_color(parent)
add_eyes()
..()
/mob/living/simple_animal/hostile/giant_spider/death()
/mob/living/simple_mob/hostile/giant_spider/death()
remove_eyes()
..()
/mob/living/simple_animal/hostile/giant_spider/DoPunch(var/atom/A)
/mob/living/simple_mob/hostile/giant_spider/DoPunch(var/atom/A)
. = ..()
if(.) // If we succeeded in hitting.
if(isliving(A))
@@ -428,7 +428,7 @@ Spider Procs
to_chat(L, "<span class='warning'>You feel a tiny prick.</span>")
L.reagents.add_reagent(poison_type, poison_per_bite)
/mob/living/simple_animal/hostile/giant_spider/nurse/DoPunch(var/atom/A)
/mob/living/simple_mob/hostile/giant_spider/nurse/DoPunch(var/atom/A)
. = ..()
if(.) // If we succeeded in hitting.
if(ishuman(A))
@@ -446,7 +446,7 @@ Spider Procs
O.implants += eggs
to_chat(H, "<font size='3'><span class='warning'>\The [src] injects something into your [O.name]!</span></font>")
/mob/living/simple_animal/hostile/giant_spider/webslinger/DoPunch(var/atom/A)
/mob/living/simple_mob/hostile/giant_spider/webslinger/DoPunch(var/atom/A)
. = ..()
if(.) // If we succeeded in hitting.
if(isliving(A))
@@ -456,7 +456,7 @@ Spider Procs
visible_message("<span class='danger'>\The [src] throws a layer of web at \the [L]!</span>")
new /obj/effect/spider/stickyweb(L.loc)
/mob/living/simple_animal/hostile/giant_spider/handle_stance()
/mob/living/simple_mob/hostile/giant_spider/handle_stance()
. = ..()
if(ai_inactive) return
@@ -473,7 +473,7 @@ Spider Procs
stop_automated_movement = 0
walk(src,0)
/mob/living/simple_animal/hostile/giant_spider/nurse/proc/GiveUp(var/C)
/mob/living/simple_mob/hostile/giant_spider/nurse/proc/GiveUp(var/C)
spawn(10 SECONDS)
if(busy == MOVING_TO_TARGET)
if(cocoon_target == C && get_dist(src,cocoon_target) > 1)
@@ -481,7 +481,7 @@ Spider Procs
busy = 0
stop_automated_movement = 0
/mob/living/simple_animal/hostile/giant_spider/nurse/Life()
/mob/living/simple_mob/hostile/giant_spider/nurse/Life()
. = ..()
if(!. || ai_inactive) return
@@ -554,7 +554,7 @@ Spider Procs
C.pixel_x = cocoon_target.pixel_x
C.pixel_y = cocoon_target.pixel_y
for(var/mob/living/M in C.loc)
if(istype(M, /mob/living/simple_animal/hostile/giant_spider))
if(istype(M, /mob/living/simple_mob/hostile/giant_spider))
continue
large_cocoon = 1
fed++

View File

@@ -1,5 +1,5 @@
// Slightly placeholder, mostly to replace ion hivebots on V4
/mob/living/simple_animal/hostile/giant_spider/ion
/mob/living/simple_mob/hostile/giant_spider/ion
desc = "Furry and green, it makes you shudder to look at it. This one has brilliant green eyes and a hint of static discharge."
tt_desc = "X Brachypelma phorus ionus"
icon_state = "webslinger"

View File

@@ -1,4 +1,4 @@
/mob/living/simple_animal/hostile/goose //hey are these even in the game
/mob/living/simple_mob/hostile/goose //hey are these even in the game
name = "goose"
desc = "It looks pretty angry!"
tt_desc = "E Branta canadensis" //that iconstate is just a regular goose
@@ -51,10 +51,10 @@
meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat
/mob/living/simple_animal/hostile/goose/set_target()
/mob/living/simple_mob/hostile/goose/set_target()
. = ..()
if(.)
custom_emote(1,"flaps and honks at [.]!")
/mob/living/simple_animal/hostile/goose/Process_Spacemove(var/check_drift = 0)
/mob/living/simple_mob/hostile/goose/Process_Spacemove(var/check_drift = 0)
return 1 // VOREStation Edit No drifting in space!

View File

@@ -1,4 +1,4 @@
/mob/living/simple_animal/lizard
/mob/living/simple_mob/lizard
name = "Lizard"
desc = "A cute tiny lizard."
tt_desc = "E Anolis cuvieri"

View File

@@ -1,4 +1,4 @@
/mob/living/simple_animal/yithian
/mob/living/simple_mob/yithian
name = "yithian"
desc = "A friendly creature vaguely resembling an oversized snail without a shell."
tt_desc = "J Escargot escargot" // a product of Jade, which is a planet that totally exists
@@ -9,7 +9,7 @@
faction = "yithian"
/mob/living/simple_animal/tindalos
/mob/living/simple_mob/tindalos
name = "tindalos"
desc = "It looks like a large, flightless grasshopper."
tt_desc = "J Locusta bruchus"

View File

@@ -1,4 +1,4 @@
/mob/living/simple_animal/mouse
/mob/living/simple_mob/mouse
name = "mouse"
real_name = "mouse"
desc = "It's a small rodent."
@@ -43,7 +43,7 @@
var/body_color //brown, gray and white, leave blank for random
/mob/living/simple_animal/mouse/Life()
/mob/living/simple_mob/mouse/Life()
. = ..()
if(!. || ai_inactive) return
@@ -63,7 +63,7 @@
else if(prob(1))
audible_emote("snuffles.")
/mob/living/simple_animal/mouse/New()
/mob/living/simple_mob/mouse/New()
..()
verbs += /mob/living/proc/ventcrawl
@@ -82,7 +82,7 @@
icon_rest = "mouse_[body_color]_sleep"
desc = "A small [body_color] rodent, often seen hiding in maintenance areas and making a nuisance of itself."
/mob/living/simple_animal/mouse/proc/splat()
/mob/living/simple_mob/mouse/proc/splat()
src.health = 0
src.stat = DEAD
src.icon_dead = "mouse_[body_color]_splat"
@@ -92,7 +92,7 @@
client.time_died_as_mouse = world.time
/mob/living/simple_animal/mouse/Crossed(AM as mob|obj)
/mob/living/simple_mob/mouse/Crossed(AM as mob|obj)
if( ishuman(AM) )
if(!stat)
var/mob/M = AM
@@ -100,7 +100,7 @@
M << 'sound/effects/mouse_squeak.ogg'
..()
/mob/living/simple_animal/mouse/death()
/mob/living/simple_mob/mouse/death()
layer = MOB_LAYER
playsound(src, 'sound/effects/mouse_squeak_loud.ogg', 35, 1)
if(client)
@@ -111,27 +111,27 @@
* Mouse types
*/
/mob/living/simple_animal/mouse/white
/mob/living/simple_mob/mouse/white
body_color = "white"
icon_state = "mouse_white"
/mob/living/simple_animal/mouse/gray
/mob/living/simple_mob/mouse/gray
body_color = "gray"
icon_state = "mouse_gray"
/mob/living/simple_animal/mouse/brown
/mob/living/simple_mob/mouse/brown
body_color = "brown"
icon_state = "mouse_brown"
//TOM IS ALIVE! SQUEEEEEEEE~K :)
/mob/living/simple_animal/mouse/brown/Tom
/mob/living/simple_mob/mouse/brown/Tom
name = "Tom"
desc = "Jerry the cat is not amused."
/mob/living/simple_animal/mouse/brown/Tom/New()
/mob/living/simple_mob/mouse/brown/Tom/New()
..()
// Change my name back, don't want to be named Tom (666)
name = initial(name)
/mob/living/simple_animal/mouse/cannot_use_vents()
/mob/living/simple_mob/mouse/cannot_use_vents()
return

View File

@@ -1,8 +1,8 @@
/mob/living/simple_animal/mouse
/mob/living/simple_mob/mouse
no_vore = 1 //Mice can't eat others due to the amount of bugs caused by it.
/mob/living/simple_animal/mouse/attack_hand(mob/living/hander)
/mob/living/simple_mob/mouse/attack_hand(mob/living/hander)
src.get_scooped(hander) //For one-click mouse scooping under any conditions. They knew what they were getting into!

View File

@@ -13,7 +13,7 @@
*/
//Parrot is too snowflake for me to rewrite right now, someone should make it use the new
//simple_animal movement stuff. -Aro
//simple_mob movement stuff. -Aro
//Only a maximum of one action and one intent should be active at any given time.
//Actions
@@ -28,7 +28,7 @@
#define PARROT_FLEE 64 //Flying away from its attacker
/mob/living/simple_animal/parrot
/mob/living/simple_mob/parrot
name = "parrot"
desc = "The parrot squawks, \"It's a parrot! BAWWK!\""
tt_desc = "E Ara macao"
@@ -94,7 +94,7 @@
var/obj/item/held_item = null
/mob/living/simple_animal/parrot/New()
/mob/living/simple_mob/parrot/New()
..()
if(!ears)
var/headset = pick(/obj/item/device/radio/headset/headset_sec, \
@@ -106,27 +106,27 @@
parrot_sleep_dur = parrot_sleep_max //In case someone decides to change the max without changing the duration var
verbs.Add(/mob/living/simple_animal/parrot/proc/steal_from_ground, \
/mob/living/simple_animal/parrot/proc/steal_from_mob, \
/mob/living/simple_animal/parrot/verb/drop_held_item_player, \
/mob/living/simple_animal/parrot/proc/perch_player)
verbs.Add(/mob/living/simple_mob/parrot/proc/steal_from_ground, \
/mob/living/simple_mob/parrot/proc/steal_from_mob, \
/mob/living/simple_mob/parrot/verb/drop_held_item_player, \
/mob/living/simple_mob/parrot/proc/perch_player)
/mob/living/simple_animal/parrot/death()
/mob/living/simple_mob/parrot/death()
if(held_item)
held_item.forceMove(src.loc)
held_item = null
walk(src,0)
..()
/mob/living/simple_animal/parrot/Stat()
/mob/living/simple_mob/parrot/Stat()
..()
stat("Held Item", held_item)
/*
* Inventory
*/
/mob/living/simple_animal/parrot/show_inv(mob/user as mob)
/mob/living/simple_mob/parrot/show_inv(mob/user as mob)
user.set_machine(src)
if(user.stat) return
@@ -140,7 +140,7 @@
onclose(user, "mob[real_name]")
return
/mob/living/simple_animal/parrot/Topic(href, href_list)
/mob/living/simple_mob/parrot/Topic(href, href_list)
//Can the usr physically do this?
if(!usr.canmove || usr.stat || usr.restrained() || !in_range(loc, usr))
@@ -223,7 +223,7 @@
* Attack responces
*/
//Humans, monkeys, aliens
/mob/living/simple_animal/parrot/attack_hand(mob/living/carbon/M as mob)
/mob/living/simple_mob/parrot/attack_hand(mob/living/carbon/M as mob)
..()
if(client) return
if(!stat && M.a_intent == I_HURT)
@@ -244,7 +244,7 @@
return
//Mobs with objects
/mob/living/simple_animal/parrot/attackby(var/obj/item/O as obj, var/mob/user as mob)
/mob/living/simple_mob/parrot/attackby(var/obj/item/O as obj, var/mob/user as mob)
..()
if(!stat && !client && !istype(O, /obj/item/stack/medical))
if(O.force)
@@ -258,7 +258,7 @@
return
//Bullets
/mob/living/simple_animal/parrot/bullet_act(var/obj/item/projectile/Proj)
/mob/living/simple_mob/parrot/bullet_act(var/obj/item/projectile/Proj)
..()
if(!stat && !client)
if(parrot_state == PARROT_PERCH)
@@ -275,7 +275,7 @@
/*
* AI - Not really intelligent, but I'm calling it AI anyway.
*/
/mob/living/simple_animal/parrot/Life()
/mob/living/simple_mob/parrot/Life()
..()
//Sprite and AI update for when a parrot gets pulled
@@ -513,12 +513,12 @@
* Procs
*/
/mob/living/simple_animal/parrot/movement_delay()
/mob/living/simple_mob/parrot/movement_delay()
if(client && stat == CONSCIOUS && parrot_state != "parrot_fly")
icon_state = "parrot_fly"
..()
/mob/living/simple_animal/parrot/proc/search_for_item()
/mob/living/simple_mob/parrot/proc/search_for_item()
for(var/atom/movable/AM in view(src))
//Skip items we already stole or are wearing or are too big
if(parrot_perch && AM.loc == parrot_perch.loc || AM.loc == src)
@@ -535,7 +535,7 @@
return C
return null
/mob/living/simple_animal/parrot/proc/search_for_perch()
/mob/living/simple_mob/parrot/proc/search_for_perch()
for(var/obj/O in view(src))
for(var/path in desired_perches)
if(istype(O, path))
@@ -543,7 +543,7 @@
return null
//This proc was made to save on doing two 'in view' loops seperatly
/mob/living/simple_animal/parrot/proc/search_for_perch_and_item()
/mob/living/simple_mob/parrot/proc/search_for_perch_and_item()
for(var/atom/movable/AM in view(src))
for(var/perch_path in desired_perches)
if(istype(AM, perch_path))
@@ -568,7 +568,7 @@
/*
* Verbs - These are actually procs, but can be used as verbs by player-controlled parrots.
*/
/mob/living/simple_animal/parrot/proc/steal_from_ground()
/mob/living/simple_mob/parrot/proc/steal_from_ground()
set name = "Steal from ground"
set category = "Parrot"
set desc = "Grabs a nearby item."
@@ -596,7 +596,7 @@
to_chat(src, "<font color='red'>There is nothing of interest to take.</font>")
return 0
/mob/living/simple_animal/parrot/proc/steal_from_mob()
/mob/living/simple_mob/parrot/proc/steal_from_mob()
set name = "Steal from mob"
set category = "Parrot"
set desc = "Steals an item right out of a person's hand!"
@@ -627,7 +627,7 @@
to_chat(src, "<font color='red'>There is nothing of interest to take.</font>")
return 0
/mob/living/simple_animal/parrot/verb/drop_held_item_player()
/mob/living/simple_mob/parrot/verb/drop_held_item_player()
set name = "Drop held item"
set category = "Parrot"
set desc = "Drop the item you're holding."
@@ -639,7 +639,7 @@
return
/mob/living/simple_animal/parrot/proc/drop_held_item(var/drop_gently = 1)
/mob/living/simple_mob/parrot/proc/drop_held_item(var/drop_gently = 1)
set name = "Drop held item"
set category = "Parrot"
set desc = "Drop the item you're holding."
@@ -666,7 +666,7 @@
held_item = null
return 1
/mob/living/simple_animal/parrot/proc/perch_player()
/mob/living/simple_mob/parrot/proc/perch_player()
set name = "Sit"
set category = "Parrot"
set desc = "Sit on a nice comfy perch."
@@ -687,17 +687,17 @@
/*
* Sub-types
*/
/mob/living/simple_animal/parrot/Poly
/mob/living/simple_mob/parrot/Poly
name = "Poly"
desc = "Poly the Parrot. An expert on quantum cracker theory."
speak = list("Poly wanna cracker!", ":e Check the singlo, you chucklefucks!",":e Wire the solars, you lazy bums!",":e WHO TOOK THE DAMN HARDSUITS?",":e OH GOD ITS FREE CALL THE SHUTTLE")
/mob/living/simple_animal/parrot/Poly/New()
/mob/living/simple_mob/parrot/Poly/New()
ears = new /obj/item/device/radio/headset/headset_eng(src)
available_channels = list(":e")
..()
/mob/living/simple_animal/parrot/say(var/message)
/mob/living/simple_mob/parrot/say(var/message)
if(stat)
return
@@ -731,25 +731,25 @@
..(message)
/mob/living/simple_animal/parrot/hear_say(var/message, var/verb = "says", var/datum/language/language = null, var/alt_name = "",var/italics = 0, var/mob/speaker = null)
/mob/living/simple_mob/parrot/hear_say(var/message, var/verb = "says", var/datum/language/language = null, var/alt_name = "",var/italics = 0, var/mob/speaker = null)
if(prob(50))
parrot_hear(message)
..(message,verb,language,alt_name,italics,speaker)
/mob/living/simple_animal/parrot/hear_radio(var/message, var/verb="says", var/datum/language/language=null, var/part_a, var/part_b, var/part_c, var/mob/speaker = null, var/hard_to_hear = 0)
/mob/living/simple_mob/parrot/hear_radio(var/message, var/verb="says", var/datum/language/language=null, var/part_a, var/part_b, var/part_c, var/mob/speaker = null, var/hard_to_hear = 0)
if(prob(50))
parrot_hear("[pick(available_channels)] [message]")
..(message,verb,language,part_a,part_b,speaker,hard_to_hear)
/mob/living/simple_animal/parrot/proc/parrot_hear(var/message="")
/mob/living/simple_mob/parrot/proc/parrot_hear(var/message="")
if(!message || stat)
return
speech_buffer.Add(message)
/mob/living/simple_animal/parrot/attack_generic(var/mob/user, var/damage, var/attack_message)
/mob/living/simple_mob/parrot/attack_generic(var/mob/user, var/damage, var/attack_message)
var/success = ..()

View File

@@ -1,4 +1,4 @@
/mob/living/simple_animal/penguin
/mob/living/simple_mob/penguin
name = "space penguin"
desc = "An ungainly, waddling, cute, and VERY well-dressed bird."
tt_desc = "E Aptenodytes forsteri"

View File

@@ -1,4 +1,4 @@
/mob/living/simple_animal/hostile/carp/pike
/mob/living/simple_mob/hostile/carp/pike
name = "space pike"
desc = "A bigger, angrier cousin of the space carp."
icon = 'icons/mob/spaceshark.dmi'
@@ -25,10 +25,10 @@
vore_icons = 0 //No custom icons yet
/mob/living/simple_animal/hostile/carp/pike/weak
/mob/living/simple_mob/hostile/carp/pike/weak
maxHealth = 75
health = 75
/mob/living/simple_animal/hostile/carp/strong
/mob/living/simple_mob/hostile/carp/strong
maxHealth = 50
health = 50

View File

@@ -1,4 +1,4 @@
/mob/living/simple_animal/old_slime
/mob/living/simple_mob/old_slime
name = "pet slime"
desc = "A lovable, domesticated slime."
tt_desc = "Amorphidae proteus"
@@ -20,19 +20,19 @@
var/colour = "grey"
/mob/living/simple_animal/old_slime/science
/mob/living/simple_mob/old_slime/science
name = "Kendrick"
colour = "rainbow"
icon_state = "rainbow baby slime"
icon_living = "rainbow baby slime"
icon_dead = "rainbow baby slime dead"
/mob/living/simple_animal/old_slime/science/initialize()
/mob/living/simple_mob/old_slime/science/initialize()
. = ..()
overlays.Cut()
overlays += "aslime-:33"
/mob/living/simple_animal/adultslime
/mob/living/simple_mob/adultslime
name = "pet slime"
desc = "A lovable, domesticated slime."
icon = 'icons/mob/slimes.dmi'
@@ -52,17 +52,17 @@
var/colour = "grey"
/mob/living/simple_animal/adultslime/New()
/mob/living/simple_mob/adultslime/New()
..()
overlays += "aslime-:33"
/mob/living/simple_animal/adultslime/death()
var/mob/living/simple_animal/old_slime/S1 = new /mob/living/simple_animal/old_slime (src.loc)
/mob/living/simple_mob/adultslime/death()
var/mob/living/simple_mob/old_slime/S1 = new /mob/living/simple_mob/old_slime (src.loc)
S1.icon_state = "[src.colour] baby slime"
S1.icon_living = "[src.colour] baby slime"
S1.icon_dead = "[src.colour] baby slime dead"
S1.colour = "[src.colour]"
var/mob/living/simple_animal/old_slime/S2 = new /mob/living/simple_animal/old_slime (src.loc)
var/mob/living/simple_mob/old_slime/S2 = new /mob/living/simple_mob/old_slime (src.loc)
S2.icon_state = "[src.colour] baby slime"
S2.icon_living = "[src.colour] baby slime"
S2.icon_dead = "[src.colour] baby slime dead"

View File

@@ -1,4 +1,4 @@
/mob/living/simple_animal/snake
/mob/living/simple_mob/snake
name = "snake"
desc = "A big thick snake."
icon = 'icons/mob/snake_vr.dmi'
@@ -23,13 +23,13 @@
speak_emote = list("hisses")
//NOODLE IS HERE! SQUEEEEEEEE~
/mob/living/simple_animal/snake/Noodle
/mob/living/simple_mob/snake/Noodle
name = "Noodle"
desc = "This snake is particularly chubby and demands nothing but the finest of treats."
var/turns_since_scan = 0
var/obj/movement_target
/mob/living/simple_animal/snake/Noodle/Life() //stolen from Ian in corgi.dm
/mob/living/simple_mob/snake/Noodle/Life() //stolen from Ian in corgi.dm
if(!..())
return 0
@@ -61,7 +61,7 @@
else if(ishuman(movement_target.loc) && prob(20))
visible_emote("stares at the [movement_target] that [movement_target.loc] has with an unknowable reptilian gaze.")
/mob/living/simple_animal/snake/Noodle/attackby(var/obj/item/O, var/mob/user)
/mob/living/simple_mob/snake/Noodle/attackby(var/obj/item/O, var/mob/user)
if(istype(O, /obj/item/weapon/reagent_containers/food/snacks/snakesnack))
visible_message("<span class='notice'>[user] feeds \the [O] to [src].</span>")
qdel(O)

View File

@@ -1,4 +1,4 @@
/mob/living/simple_animal/spiderbot
/mob/living/simple_mob/spiderbot
name = "spider-bot"
desc = "A skittering robotic friend!"
tt_desc = "Maintenance Robot"
@@ -53,14 +53,14 @@
var/emagged = 0
var/obj/item/held_item = null //Storage for single item they can hold.
/mob/living/simple_animal/spiderbot/New()
/mob/living/simple_mob/spiderbot/New()
..()
add_language(LANGUAGE_GALCOM)
default_language = all_languages[LANGUAGE_GALCOM]
verbs |= /mob/living/proc/ventcrawl
verbs |= /mob/living/proc/hide
/mob/living/simple_animal/spiderbot/attackby(var/obj/item/O as obj, var/mob/user as mob)
/mob/living/simple_mob/spiderbot/attackby(var/obj/item/O as obj, var/mob/user as mob)
if(istype(O, /obj/item/device/mmi))
var/obj/item/device/mmi/B = O
@@ -144,7 +144,7 @@
else
O.attack(src, user, user.zone_sel.selecting)
/mob/living/simple_animal/spiderbot/emag_act(var/remaining_charges, var/mob/user)
/mob/living/simple_mob/spiderbot/emag_act(var/remaining_charges, var/mob/user)
if (emagged)
user << "<span class='warning'>[src] is already overloaded - better run.</span>"
return 0
@@ -154,7 +154,7 @@
spawn(200) src << "<span class='danger'>Internal heat sensors are spiking! Something is badly wrong with your cell!</span>"
spawn(300) src.explode()
/mob/living/simple_animal/spiderbot/proc/transfer_personality(var/obj/item/device/mmi/M as obj)
/mob/living/simple_mob/spiderbot/proc/transfer_personality(var/obj/item/device/mmi/M as obj)
src.mind = M.brainmob.mind
src.mind.key = M.brainmob.key
@@ -162,13 +162,13 @@
src.name = "spider-bot ([M.brainmob.name])"
src.languages = M.brainmob.languages
/mob/living/simple_animal/spiderbot/proc/explode() //When emagged.
/mob/living/simple_mob/spiderbot/proc/explode() //When emagged.
src.visible_message("<span class='danger'>\The [src] makes an odd warbling noise, fizzles, and explodes!</span>")
explosion(get_turf(loc), -1, -1, 3, 5)
eject_brain()
death()
/mob/living/simple_animal/spiderbot/update_icon()
/mob/living/simple_mob/spiderbot/update_icon()
if(mmi)
if(positronic)
icon_state = "spiderbot-chassis-posi"
@@ -180,7 +180,7 @@
icon_state = "spiderbot-chassis"
icon_living = "spiderbot-chassis"
/mob/living/simple_animal/spiderbot/proc/eject_brain()
/mob/living/simple_mob/spiderbot/proc/eject_brain()
if(mmi)
var/turf/T = get_turf(loc)
if(T)
@@ -193,11 +193,11 @@
remove_language("Robot Talk")
positronic = null
/mob/living/simple_animal/spiderbot/Destroy()
/mob/living/simple_mob/spiderbot/Destroy()
eject_brain()
..()
/mob/living/simple_animal/spiderbot/New()
/mob/living/simple_mob/spiderbot/New()
radio = new /obj/item/device/radio/borg(src)
camera = new /obj/machinery/camera(src)
@@ -206,7 +206,7 @@
..()
/mob/living/simple_animal/spiderbot/death()
/mob/living/simple_mob/spiderbot/death()
living_mob_list -= src
dead_mob_list += src
@@ -222,7 +222,7 @@
return
//Cannibalized from the parrot mob. ~Zuhayr
/mob/living/simple_animal/spiderbot/verb/drop_held_item()
/mob/living/simple_mob/spiderbot/verb/drop_held_item()
set name = "Drop held item"
set category = "Spiderbot"
set desc = "Drop the item you're holding."
@@ -254,7 +254,7 @@
return
/mob/living/simple_animal/spiderbot/verb/get_item()
/mob/living/simple_mob/spiderbot/verb/get_item()
set name = "Pick up item"
set category = "Spiderbot"
set desc = "Allows you to take a nearby small item."
@@ -288,13 +288,13 @@
src << "<span class='warning'>There is nothing of interest to take.</span>"
return 0
/mob/living/simple_animal/spiderbot/examine(mob/user)
/mob/living/simple_mob/spiderbot/examine(mob/user)
..(user)
if(src.held_item)
user << "It is carrying \icon[src.held_item] \a [src.held_item]."
/mob/living/simple_animal/spiderbot/cannot_use_vents()
/mob/living/simple_mob/spiderbot/cannot_use_vents()
return
/mob/living/simple_animal/spiderbot/binarycheck()
/mob/living/simple_mob/spiderbot/binarycheck()
return positronic

View File

@@ -1,4 +1,4 @@
/mob/living/simple_animal/hostile/tomato
/mob/living/simple_mob/hostile/tomato
name = "tomato"
desc = "It's a horrifyingly enormous beef tomato, and it's packing extra beef!"
tt_desc = "X Solanum abominable"

View File

@@ -1,4 +1,4 @@
/mob/living/simple_animal/hostile/tree
/mob/living/simple_mob/hostile/tree
name = "pine tree"
desc = "A pissed off tree-like alien. It seems annoyed with the festivities..."
tt_desc = "X Festivus tyrannus"
@@ -40,12 +40,12 @@
pixel_x = -16
/mob/living/simple_animal/hostile/tree/FindTarget()
/mob/living/simple_mob/hostile/tree/FindTarget()
. = ..()
if(.)
audible_emote("growls at [.]")
/mob/living/simple_animal/hostile/tree/PunchTarget()
/mob/living/simple_mob/hostile/tree/PunchTarget()
. =..()
var/mob/living/L = .
if(istype(L))
@@ -53,7 +53,7 @@
L.Weaken(3)
L.visible_message("<span class='danger'>\the [src] knocks down \the [L]!</span>")
/mob/living/simple_animal/hostile/tree/death()
/mob/living/simple_mob/hostile/tree/death()
..(null,"is hacked into pieces!")
playsound(loc, 'sound/effects/woodcutting.ogg', 100, 1)
new /obj/item/stack/material/wood(loc)

View File

@@ -1,4 +1,4 @@
/mob/living/simple_animal/space_worm
/mob/living/simple_mob/space_worm
name = "space worm segment"
desc = "A part of a space worm."
icon = 'icons/mob/animal.dmi'
@@ -35,8 +35,8 @@
speak_emote = list("transmits") //not supposed to be used under AI control
emote_hear = list("transmits") //I'm just adding it so it doesn't runtime if controlled by player who speaks
var/mob/living/simple_animal/space_worm/previous //next/previous segments, correspondingly
var/mob/living/simple_animal/space_worm/next //head is the nextest segment
var/mob/living/simple_mob/space_worm/previous //next/previous segments, correspondingly
var/mob/living/simple_mob/space_worm/next //head is the nextest segment
var/stomachProcessProbability = 50
var/digestionProbability = 20
@@ -63,10 +63,10 @@
New(var/location, var/segments = 6)
..()
var/mob/living/simple_animal/space_worm/current = src
var/mob/living/simple_mob/space_worm/current = src
for(var/i = 1 to segments)
var/mob/living/simple_animal/space_worm/newSegment = new /mob/living/simple_animal/space_worm(loc)
var/mob/living/simple_mob/space_worm/newSegment = new /mob/living/simple_mob/space_worm(loc)
current.Attach(newSegment)
current = newSegment
@@ -148,7 +148,7 @@
return 0
proc/Attach(var/mob/living/simple_animal/space_worm/attachement)
proc/Attach(var/mob/living/simple_mob/space_worm/attachement)
if(!attachement)
return
@@ -158,8 +158,8 @@
return
proc/Detach(die = 0)
var/mob/living/simple_animal/space_worm/newHead = new /mob/living/simple_animal/space_worm/head(loc,0)
var/mob/living/simple_animal/space_worm/newHeadPrevious = previous
var/mob/living/simple_mob/space_worm/newHead = new /mob/living/simple_mob/space_worm/head(loc,0)
var/mob/living/simple_mob/space_worm/newHeadPrevious = previous
previous = null //so that no extra heads are spawned

View File

@@ -1,4 +1,4 @@
/mob/living/simple_animal/hostile/clown
/mob/living/simple_mob/hostile/clown
name = "clown"
desc = "A denizen of clown planet"
tt_desc = "E Homo sapiens corydon" //this is an actual clown, as opposed to someone dressed up as one

View File

@@ -1,4 +1,4 @@
/mob/living/simple_animal/hostile/mecha
/mob/living/simple_mob/hostile/mecha
name = "mercenary gygax"
desc = "Well that's forboding."
icon = 'icons/mecha/mecha.dmi'
@@ -66,38 +66,38 @@
var/datum/effect/effect/system/spark_spread/sparks
var/wreckage = /obj/effect/decal/mecha_wreckage/gygax/dark
/mob/living/simple_animal/hostile/mecha/New()
/mob/living/simple_mob/hostile/mecha/New()
..()
sparks = new (src)
sparks.set_up(3, 1, src)
/mob/living/simple_animal/hostile/mecha/Destroy()
/mob/living/simple_mob/hostile/mecha/Destroy()
qdel(sparks)
..()
/mob/living/simple_animal/hostile/mecha/Life()
/mob/living/simple_mob/hostile/mecha/Life()
. = ..()
if(!.) return
if((health < getMaxHealth()*0.3) && prob(10))
sparks.start()
/mob/living/simple_animal/hostile/mecha/bullet_act()
/mob/living/simple_mob/hostile/mecha/bullet_act()
..()
sparks.start()
/mob/living/simple_animal/hostile/mecha/death()
/mob/living/simple_mob/hostile/mecha/death()
..(0,"explodes!")
sparks.start()
explosion(get_turf(src), 0, 0, 1, 3)
qdel(src)
new /obj/effect/decal/mecha_wreckage/gygax/dark(get_turf(src))
/mob/living/simple_animal/hostile/mecha/Move()
/mob/living/simple_mob/hostile/mecha/Move()
..()
playsound(src,'sound/mecha/mechstep.ogg',40,1)
// This is a PoI mob, not the normal, floaty drones that hang out around windows
/mob/living/simple_animal/hostile/mecha/malf_drone
/mob/living/simple_mob/hostile/mecha/malf_drone
name = "autonomous mechanized drone"
desc = "It appears to be an exosuit, piloted by a drone intelligence. It looks scary."
intelligence_level = SA_ROBOTIC
@@ -116,8 +116,8 @@
say_got_target = list("Threat detected.", "New task: Remove threat.", "Threat removal engaged.", "Engaging target.")
returns_home = TRUE
/mob/living/simple_animal/hostile/mecha/malf_drone/isSynthetic()
/mob/living/simple_mob/hostile/mecha/malf_drone/isSynthetic()
return TRUE
/mob/living/simple_animal/hostile/mecha/malf_drone/speech_bubble_appearance()
/mob/living/simple_mob/hostile/mecha/malf_drone/speech_bubble_appearance()
return "synthetic_evil"

View File

@@ -1,4 +1,4 @@
/mob/living/simple_animal/hostile/pirate
/mob/living/simple_mob/hostile/pirate
name = "Pirate"
desc = "Does what he wants cause a pirate is free."
tt_desc = "E Homo sapiens"
@@ -50,7 +50,7 @@
var/corpse = /obj/effect/landmark/mobcorpse/pirate
/mob/living/simple_animal/hostile/pirate/ranged
/mob/living/simple_mob/hostile/pirate/ranged
name = "Pirate Gunner"
icon_state = "pirateranged"
icon_living = "pirateranged"
@@ -64,7 +64,7 @@
corpse = /obj/effect/landmark/mobcorpse/pirate/ranged
/mob/living/simple_animal/hostile/pirate/death()
/mob/living/simple_mob/hostile/pirate/death()
..()
if(corpse)
new corpse (src.loc)

View File

@@ -1,4 +1,4 @@
/mob/living/simple_animal/hostile/russian
/mob/living/simple_mob/hostile/russian
name = "russian"
desc = "For the Motherland!"
tt_desc = "E Homo sapiens"
@@ -47,7 +47,7 @@
var/corpse = /obj/effect/landmark/mobcorpse/russian
/mob/living/simple_animal/hostile/russian/ranged
/mob/living/simple_mob/hostile/russian/ranged
icon_state = "russianranged"
icon_living = "russianranged"
@@ -60,7 +60,7 @@
corpse = /obj/effect/landmark/mobcorpse/russian/ranged
/mob/living/simple_animal/hostile/russian/death()
/mob/living/simple_mob/hostile/russian/death()
..()
if(corpse)
new corpse (src.loc)

View File

@@ -1,4 +1,4 @@
/mob/living/simple_animal/hostile/syndicate
/mob/living/simple_mob/hostile/syndicate
name = "mercenary"
desc = "Death to the Company."
tt_desc = "E Homo sapiens"
@@ -65,7 +65,7 @@
var/corpse = /obj/effect/landmark/mobcorpse/syndicatesoldier
/mob/living/simple_animal/hostile/syndicate/death()
/mob/living/simple_mob/hostile/syndicate/death()
if(corpse)
..()
new corpse (src.loc)
@@ -78,7 +78,7 @@
///////////////Sword and shield////////////
/mob/living/simple_animal/hostile/syndicate/melee
/mob/living/simple_mob/hostile/syndicate/melee
icon_state = "syndicatemelee"
icon_living = "syndicatemelee"
@@ -93,7 +93,7 @@
loot_list = list(/obj/item/weapon/melee/energy/sword/red = 100, /obj/item/weapon/shield/energy = 100)
/mob/living/simple_animal/hostile/syndicate/melee/attackby(var/obj/item/O as obj, var/mob/user as mob)
/mob/living/simple_mob/hostile/syndicate/melee/attackby(var/obj/item/O as obj, var/mob/user as mob)
if(O.force)
if(prob(20))
visible_message("<span class='danger'>\The [src] blocks \the [O] with its shield!</span>")
@@ -106,7 +106,7 @@
usr << "<span class='warning'>This weapon is ineffective, it does no damage.</span>"
visible_message("<span class='warning'>\The [user] gently taps [src] with \the [O].</span>")
/mob/living/simple_animal/hostile/syndicate/melee/bullet_act(var/obj/item/projectile/Proj)
/mob/living/simple_mob/hostile/syndicate/melee/bullet_act(var/obj/item/projectile/Proj)
if(!Proj) return
if(prob(35))
visible_message("<font color='red'><B>[src] blocks [Proj] with its shield!</B></font>")
@@ -116,7 +116,7 @@
else
..()
/mob/living/simple_animal/hostile/syndicate/melee/space
/mob/living/simple_mob/hostile/syndicate/melee/space
name = "syndicate commando"
icon_state = "syndicatemeleespace"
icon_living = "syndicatemeleespace"
@@ -137,10 +137,10 @@
corpse = /obj/effect/landmark/mobcorpse/syndicatecommando
/mob/living/simple_animal/hostile/syndicate/melee/space/Process_Spacemove(var/check_drift = 0)
/mob/living/simple_mob/hostile/syndicate/melee/space/Process_Spacemove(var/check_drift = 0)
return
/mob/living/simple_animal/hostile/syndicate/ranged
/mob/living/simple_mob/hostile/syndicate/ranged
icon_state = "syndicateranged"
icon_living = "syndicateranged"
@@ -152,7 +152,7 @@
loot_list = list(/obj/item/weapon/gun/projectile/automatic/c20r = 100)
/mob/living/simple_animal/hostile/syndicate/ranged/laser
/mob/living/simple_mob/hostile/syndicate/ranged/laser
icon_state = "syndicateranged_laser"
icon_living = "syndicateranged_laser"
rapid = 0
@@ -161,7 +161,7 @@
loot_list = list(/obj/item/weapon/gun/energy/laser = 100)
/mob/living/simple_animal/hostile/syndicate/ranged/ionrifle
/mob/living/simple_mob/hostile/syndicate/ranged/ionrifle
icon_state = "syndicateranged_ionrifle"
icon_living = "syndicateranged_ionrifle"
rapid = 0
@@ -170,7 +170,7 @@
loot_list = list(/obj/item/weapon/gun/energy/ionrifle = 100)
/mob/living/simple_animal/hostile/syndicate/ranged/space
/mob/living/simple_mob/hostile/syndicate/ranged/space
name = "space mercenary" //VOREStation Edit
icon_state = "syndicaterangedpsace"
icon_living = "syndicaterangedpsace"
@@ -190,7 +190,7 @@
corpse = /obj/effect/landmark/mobcorpse/syndicatecommando
/mob/living/simple_animal/hostile/syndicate/ranged/space/Process_Spacemove(var/check_drift = 0)
/mob/living/simple_mob/hostile/syndicate/ranged/space/Process_Spacemove(var/check_drift = 0)
return
///////////////////////////////////////////////
@@ -198,38 +198,38 @@
// Don't leave corpses, to help balance loot.
///////////////////////////////////////////////
/mob/living/simple_animal/hostile/syndicate/poi
/mob/living/simple_mob/hostile/syndicate/poi
loot_list = list()
corpse = null
/mob/living/simple_animal/hostile/syndicate/melee/poi
/mob/living/simple_mob/hostile/syndicate/melee/poi
loot_list = list()
corpse = null
/mob/living/simple_animal/hostile/syndicate/melee/space/poi
/mob/living/simple_mob/hostile/syndicate/melee/space/poi
loot_list = list()
corpse = null
/mob/living/simple_animal/hostile/syndicate/ranged/poi
/mob/living/simple_mob/hostile/syndicate/ranged/poi
loot_list = list()
corpse = null
/mob/living/simple_animal/hostile/syndicate/ranged/laser/poi
/mob/living/simple_mob/hostile/syndicate/ranged/laser/poi
loot_list = list()
corpse = null
/mob/living/simple_animal/hostile/syndicate/ranged/ionrifle/poi
/mob/living/simple_mob/hostile/syndicate/ranged/ionrifle/poi
loot_list = list()
corpse = null
/mob/living/simple_animal/hostile/syndicate/ranged/space/poi
/mob/living/simple_mob/hostile/syndicate/ranged/space/poi
loot_list = list()
corpse = null
//Viscerators
/mob/living/simple_animal/hostile/viscerator
/mob/living/simple_mob/hostile/viscerator
name = "viscerator"
desc = "A small, twin-bladed machine capable of inflicting very deadly lacerations."
icon = 'icons/mob/critter.dmi'
@@ -261,6 +261,6 @@
max_n2 = 0
minbodytemp = 0
/mob/living/simple_animal/hostile/viscerator/death()
/mob/living/simple_mob/hostile/viscerator/death()
..(null,"is smashed into pieces!")
qdel(src)

View File

@@ -3,14 +3,14 @@
//Talky things
#define try_say_list(L) if(L.len) say(pick(L))
/mob/living/simple_animal
/mob/living/simple_mob
name = "animal"
desc = ""
icon = 'icons/mob/animal.dmi'
health = 20
maxHealth = 20
mob_bump_flag = SIMPLE_ANIMAL
mob_bump_flag = simple_mob
mob_swap_flags = MONKEY|SLIME|HUMAN
mob_push_flags = MONKEY|SLIME|HUMAN
@@ -169,7 +169,7 @@
var/mob/living/target_mob // Who I'm trying to attack
var/mob/living/follow_mob // Who I'm recruited by
var/mob/living/list/friends = list() // People who are immune to my wrath, for now
var/mob/living/simple_animal/list/faction_friends = list() // Other simple mobs I am friends with
var/mob/living/simple_mob/list/faction_friends = list() // Other simple mobs I am friends with
var/turf/list/walk_list = list()// List of turfs to walk through to get somewhere
var/astarpathing = 0 // Am I currently pathing to somewhere?
var/stance_changed = 0 // When our stance last changed (world.time)
@@ -181,7 +181,7 @@
////// ////// //////
var/life_disabled = 0 //VOREStation Edit -- For performance reasons
/mob/living/simple_animal/New()
/mob/living/simple_mob/New()
..()
verbs -= /mob/verb/observe
home_turf = get_turf(src)
@@ -195,8 +195,8 @@
default_language = languages[1]
if(cooperative)
var/mob/living/simple_animal/first_friend
for(var/mob/living/simple_animal/M in living_mob_list)
var/mob/living/simple_mob/first_friend
for(var/mob/living/simple_mob/M in living_mob_list)
if(M.faction == src.faction)
first_friend = M
break
@@ -206,7 +206,7 @@
else
faction_friends |= src
/mob/living/simple_animal/Destroy()
/mob/living/simple_mob/Destroy()
home_turf = null
path_overlay = null
default_language = null
@@ -225,7 +225,7 @@
return ..()
//Client attached
/mob/living/simple_animal/Login()
/mob/living/simple_mob/Login()
. = ..()
ai_inactive = 1
handle_stance(STANCE_IDLE)
@@ -233,19 +233,19 @@
to_chat(src,"<span class='notice'>Mob AI disabled while you are controlling the mob.</span><br><b>You are \the [src]. [player_msg]</b>")
//Client detatched
/mob/living/simple_animal/Logout()
/mob/living/simple_mob/Logout()
spawn(15 SECONDS) //15 seconds to get back into the mob before it goes wild
if(src && !src.client)
ai_inactive = initial(ai_inactive) //So if they never have an AI, they stay that way.
..()
//For debug purposes!
/mob/living/simple_animal/proc/ai_log_output(var/msg = "missing message", var/ver = 1)
/mob/living/simple_mob/proc/ai_log_output(var/msg = "missing message", var/ver = 1)
if(ver <= debug_ai)
log_debug("SA-AI: ([src]:[x],[y],[z])(@[world.time]): [msg] ")
//Should we be dead?
/mob/living/simple_animal/updatehealth()
/mob/living/simple_mob/updatehealth()
health = getMaxHealth() - getToxLoss() - getFireLoss() - getBruteLoss()
//Alive, becoming dead
@@ -293,7 +293,7 @@
if(0 to 25)
nutrition_icon.icon_state = "nutrition4"
/mob/living/simple_animal/update_icon()
/mob/living/simple_mob/update_icon()
. = ..()
var/mutable_appearance/ma = new(src)
ma.layer = layer
@@ -332,7 +332,7 @@
appearance = ma
// If your simple mob's update_icon() call calls overlays.Cut(), this needs to be called after this, or manually apply modifier_overly to overlays.
/mob/living/simple_animal/update_modifier_visuals()
/mob/living/simple_mob/update_modifier_visuals()
var/image/effects = null
if(modifier_overlay)
overlays -= modifier_overlay
@@ -351,7 +351,7 @@
overlays += modifier_overlay
/mob/living/simple_animal/Life()
/mob/living/simple_mob/Life()
//VOREStation Edit
if(life_disabled)
@@ -402,11 +402,11 @@
// Resists out of things.
// Sometimes there are times you want SAs to be buckled to something, so override this for when that is needed.
/mob/living/simple_animal/proc/handle_resist()
/mob/living/simple_mob/proc/handle_resist()
resist()
// Peforms the random walk wandering
/mob/living/simple_animal/proc/handle_wander_movement()
/mob/living/simple_mob/proc/handle_wander_movement()
if(isturf(src.loc) && !resting && !buckled && canmove) //Physically capable of moving?
lifes_since_move++ //Increment turns since move (turns are life() cycles)
if(lifes_since_move >= turns_per_move)
@@ -421,7 +421,7 @@
lifes_since_move = 0
// Checks to see if mob doesn't like this kind of turf
/mob/living/simple_animal/proc/avoid_turf(var/turf/turf)
/mob/living/simple_mob/proc/avoid_turf(var/turf/turf)
if(!turf)
return TRUE //Avoid the nothing, yes
@@ -431,7 +431,7 @@
return FALSE //Override it on stuff to adjust
// Handles random chatter, called from Life() when stance = STANCE_IDLE
/mob/living/simple_animal/proc/handle_idle_speaking()
/mob/living/simple_mob/proc/handle_idle_speaking()
if(rand(0,200) < speak_chance)
if(speak && speak.len)
if((emote_hear && emote_hear.len) || (emote_see && emote_see.len))
@@ -466,7 +466,7 @@
// Handle interacting with and taking damage from atmos
// TODO - Refactor this to use handle_environment() like a good /mob/living
/mob/living/simple_animal/proc/handle_atmos()
/mob/living/simple_mob/proc/handle_atmos()
var/atmos_unsuitable = 0
var/atom/A = src.loc
@@ -531,13 +531,13 @@
oxygen.icon_state = "oxy0"
// For setting the stance WITHOUT processing it
/mob/living/simple_animal/proc/set_stance(var/new_stance)
/mob/living/simple_mob/proc/set_stance(var/new_stance)
stance = new_stance
stance_changed = world.time
ai_log("set_stance() changing to [new_stance]",2)
// For proccessing the current stance, or setting and processing a new one
/mob/living/simple_animal/proc/handle_stance(var/new_stance)
/mob/living/simple_mob/proc/handle_stance(var/new_stance)
if(ai_inactive)
stance = STANCE_IDLE
return
@@ -580,18 +580,18 @@
annoyed = 50
AttackTarget()
/mob/living/simple_animal/proc/handle_supernatural()
/mob/living/simple_mob/proc/handle_supernatural()
if(purge)
purge -= 1
/mob/living/simple_animal/gib()
/mob/living/simple_mob/gib()
..(icon_gib,1,icon) // we need to specify where the gib animation is stored
/mob/living/simple_animal/emote(var/act, var/type, var/desc)
/mob/living/simple_mob/emote(var/act, var/type, var/desc)
if(act)
..(act, type, desc)
/mob/living/simple_animal/bullet_act(var/obj/item/projectile/Proj)
/mob/living/simple_mob/bullet_act(var/obj/item/projectile/Proj)
ai_log("bullet_act() I was shot by: [Proj.firer]",2)
/* VOREStation Edit - Ace doesn't like bonus SA damage.
@@ -606,7 +606,7 @@
react_to_attack(Proj.firer)
// When someone clicks us with an empty hand
/mob/living/simple_animal/attack_hand(mob/living/carbon/human/M as mob)
/mob/living/simple_mob/attack_hand(mob/living/carbon/human/M as mob)
..()
switch(M.a_intent)
@@ -653,7 +653,7 @@
return
// When somoene clicks us with an item in hand
/mob/living/simple_animal/attackby(var/obj/item/O, var/mob/user)
/mob/living/simple_mob/attackby(var/obj/item/O, var/mob/user)
if(istype(O, /obj/item/stack/medical))
if(stat != DEAD)
var/obj/item/stack/medical/MED = O
@@ -679,7 +679,7 @@
return ..()
/mob/living/simple_animal/hit_with_weapon(obj/item/O, mob/living/user, var/effective_force, var/hit_zone)
/mob/living/simple_mob/hit_with_weapon(obj/item/O, mob/living/user, var/effective_force, var/hit_zone)
//Animals can't be stunned(?)
if(O.damtype == HALLOSS)
@@ -697,18 +697,18 @@
. = ..()
// When someone throws something at us
/mob/living/simple_animal/hitby(atom/movable/AM)
/mob/living/simple_mob/hitby(atom/movable/AM)
..()
if(AM.thrower)
react_to_attack(AM.thrower)
//SA vs SA basically
/mob/living/simple_animal/attack_generic(var/mob/attacker)
/mob/living/simple_mob/attack_generic(var/mob/attacker)
if(attacker)
react_to_attack(attacker)
return ..()
/mob/living/simple_animal/movement_delay()
/mob/living/simple_mob/movement_delay()
var/tally = 0 //Incase I need to add stuff other than "speed" later
tally = speed
@@ -732,13 +732,13 @@
return tally+config.animal_delay
/mob/living/simple_animal/Stat()
/mob/living/simple_mob/Stat()
..()
if(statpanel("Status") && show_stat_health)
stat(null, "Health: [round((health / getMaxHealth()) * 100)]%")
/mob/living/simple_animal/lay_down()
/mob/living/simple_mob/lay_down()
..()
if(resting && icon_rest)
icon_state = icon_rest
@@ -746,7 +746,7 @@
icon_state = icon_living
update_icon()
/mob/living/simple_animal/death(gibbed, deathmessage = "dies!")
/mob/living/simple_mob/death(gibbed, deathmessage = "dies!")
density = 0 //We don't block even if we did before
walk(src, 0) //We stop any background-processing walks
resting = 0 //We can rest in peace later.
@@ -764,7 +764,7 @@
return ..(gibbed,deathmessage)
/mob/living/simple_animal/ex_act(severity)
/mob/living/simple_mob/ex_act(severity)
if(!blinded)
flash_eyes()
var/armor = run_armor_check(def_zone = null, attack_flag = "bomb")
@@ -783,7 +783,7 @@
gib()
// Check target_mob if worthy of attack (i.e. check if they are dead or empty mecha)
/mob/living/simple_animal/proc/SA_attackable(target_mob)
/mob/living/simple_mob/proc/SA_attackable(target_mob)
ai_log("SA_attackable([target_mob])",3)
if (isliving(target_mob))
var/mob/living/L = target_mob
@@ -796,7 +796,7 @@
ai_log("SA_attackable([target_mob]): no",3)
return 0
/mob/living/simple_animal/say(var/message,var/datum/language/language)
/mob/living/simple_mob/say(var/message,var/datum/language/language)
var/verb = "says"
if(speak_emote.len)
verb = pick(speak_emote)
@@ -805,10 +805,10 @@
..(message, null, verb)
/mob/living/simple_animal/get_speech_ending(verb, var/ending)
/mob/living/simple_mob/get_speech_ending(verb, var/ending)
return verb
/mob/living/simple_animal/put_in_hands(var/obj/item/W) // No hands.
/mob/living/simple_mob/put_in_hands(var/obj/item/W) // No hands.
if(has_hands)
put_in_active_hand(W)
return 1
@@ -816,7 +816,7 @@
return 1
// Harvest an animal's delicious byproducts
/mob/living/simple_animal/proc/harvest(var/mob/user)
/mob/living/simple_mob/proc/harvest(var/mob/user)
var/actual_meat_amount = max(1,(meat_amount/2))
if(meat_type && actual_meat_amount>0 && (stat == DEAD))
for(var/i=0;i<actual_meat_amount;i++)
@@ -830,17 +830,17 @@
user.visible_message("<span class='danger'>[user] butchers \the [src] messily!</span>")
gib()
/mob/living/simple_animal/handle_fire()
/mob/living/simple_mob/handle_fire()
return
/mob/living/simple_animal/update_fire()
/mob/living/simple_mob/update_fire()
return
/mob/living/simple_animal/IgniteMob()
/mob/living/simple_mob/IgniteMob()
return
/mob/living/simple_animal/ExtinguishMob()
/mob/living/simple_mob/ExtinguishMob()
return
//We got hit! Consider hitting them back!
/mob/living/simple_animal/proc/react_to_attack(var/mob/living/M)
/mob/living/simple_mob/proc/react_to_attack(var/mob/living/M)
if(ai_inactive || stat || M == target_mob) return //Not if we're dead or already hitting them
if(M in friends || M.faction == faction) return //I'll overlook it THIS time...
ai_log("react_to_attack([M])",1)
@@ -850,7 +850,7 @@
return 0
/mob/living/simple_animal/proc/set_target(var/mob/M, forced = 0)
/mob/living/simple_mob/proc/set_target(var/mob/M, forced = 0)
ai_log("SetTarget([M])",2)
if(!M || (world.time - last_target_time < 5 SECONDS) && target_mob)
ai_log("SetTarget() can't set it again so soon",3)
@@ -876,7 +876,7 @@
return 0
// Set a follow target, with optional time for how long to follow them.
/mob/living/simple_animal/proc/set_follow(var/mob/M, var/follow_for = 0)
/mob/living/simple_mob/proc/set_follow(var/mob/M, var/follow_for = 0)
ai_log("SetFollow([M]) for=[follow_for]",2)
if(!M || (world.time - last_target_time < 4 SECONDS) && follow_mob)
ai_log("SetFollow() can't set it again so soon",3)
@@ -888,7 +888,7 @@
return 1
//Scan surroundings for a valid target
/mob/living/simple_animal/proc/FindTarget()
/mob/living/simple_mob/proc/FindTarget()
var/atom/T = null
for(var/atom/A in ListTargets(view_range))
@@ -937,21 +937,21 @@
return T
//Used for special targeting or reactions
/mob/living/simple_animal/proc/Found(var/atom/A)
/mob/living/simple_mob/proc/Found(var/atom/A)
return
// Used for somewhat special targeting, but not to the extent of using Found()
/mob/living/simple_animal/proc/special_target_check(var/atom/A)
/mob/living/simple_mob/proc/special_target_check(var/atom/A)
return TRUE
//Requesting help from like-minded individuals
/mob/living/simple_animal/proc/RequestHelp()
/mob/living/simple_mob/proc/RequestHelp()
if(!cooperative || ((world.time - last_helpask_time) < 10 SECONDS))
return
ai_log("RequestHelp() to [faction_friends.len] friends",2)
last_helpask_time = world.time
for(var/mob/living/simple_animal/F in faction_friends)
for(var/mob/living/simple_mob/F in faction_friends)
if(F == src) continue
if(get_dist(src,F) <= F.assist_distance)
spawn(0)
@@ -960,7 +960,7 @@
F.HelpRequested(src)
//Someone wants help?
/mob/living/simple_animal/proc/HelpRequested(var/mob/living/simple_animal/F)
/mob/living/simple_mob/proc/HelpRequested(var/mob/living/simple_mob/F)
if(target_mob || stat)
ai_log("HelpRequested() by [F] but we're busy/dead",2)
return
@@ -979,11 +979,11 @@
// Can be used to conditionally do a ranged or melee attack.
// Note that the SA must be able to do an attack at the specified range or else it may get trapped in a loop of switching
// between STANCE_ATTACK and STANCE_ATTACKING, due to being told by MoveToTarget() that they're in range but being told by AttackTarget() that they're not.
/mob/living/simple_animal/proc/ClosestDistance()
/mob/living/simple_mob/proc/ClosestDistance()
return ranged ? shoot_range - 1 : 1 // Shoot range -1 just because we don't want to constantly get kited
//Move to a target (or near if we're ranged)
/mob/living/simple_animal/proc/MoveToTarget()
/mob/living/simple_mob/proc/MoveToTarget()
if(incapacitated(INCAPACITATION_DISABLED))
ai_log("MoveToTarget() Bailing because we're disabled",2)
return
@@ -1058,7 +1058,7 @@
LoseTarget() //Just forget it.
//Follow a target (and don't attempt to murder it horribly)
/mob/living/simple_animal/proc/FollowTarget()
/mob/living/simple_mob/proc/FollowTarget()
ai_log("FollowTarget() [follow_mob]",1)
stop_automated_movement = 1
//If we were chasing someone and we can't anymore, give up.
@@ -1103,7 +1103,7 @@
LoseFollow()
//Just try one time to go look at something. Don't really focus much on it.
/mob/living/simple_animal/proc/WanderTowards(var/turf/T)
/mob/living/simple_mob/proc/WanderTowards(var/turf/T)
if(!T) return
ai_log("WanderTowards() [T.x],[T.y]",1)
@@ -1120,7 +1120,7 @@
WalkPath(target_thing = T, target_dist = 1)
//A* now, try to a path to a target
/mob/living/simple_animal/proc/GetPath(var/turf/target,var/get_to = 1,var/max_distance = world.view*6)
/mob/living/simple_mob/proc/GetPath(var/turf/target,var/get_to = 1,var/max_distance = world.view*6)
ai_log("GetPath([target],[get_to],[max_distance])",2)
ForgetPath()
var/list/new_path = AStar(get_turf(loc), target, astar_adjacent_proc, /turf/proc/Distance, min_target_dist = get_to, max_node_depth = max_distance, id = myid, exclude = obstacles)
@@ -1136,7 +1136,7 @@
return walk_list.len
//Walk along our A* path, target_thing allows us to stop early if we're nearby
/mob/living/simple_animal/proc/WalkPath(var/atom/target_thing, var/target_dist = 1, var/proc/steps_callback = null, var/every_steps = 4)
/mob/living/simple_mob/proc/WalkPath(var/atom/target_thing, var/target_dist = 1, var/proc/steps_callback = null, var/every_steps = 4)
ai_log("WalkPath() (steps:[walk_list.len])",2)
if(!walk_list || !walk_list.len)
return
@@ -1183,7 +1183,7 @@
sleep(move_to_delay)
//Take one step along a path
/mob/living/simple_animal/proc/MoveOnce()
/mob/living/simple_mob/proc/MoveOnce()
if(!walk_list.len)
return
@@ -1201,7 +1201,7 @@
return 1
//Forget the path entirely
/mob/living/simple_animal/proc/ForgetPath()
/mob/living/simple_mob/proc/ForgetPath()
ai_log("ForgetPath()",2)
if(path_display)
for(var/turf/T in walk_list)
@@ -1210,14 +1210,14 @@
walk_list.Cut()
//Giving up on moving
/mob/living/simple_animal/proc/GiveUpMoving()
/mob/living/simple_mob/proc/GiveUpMoving()
ai_log("GiveUpMoving()",1)
ForgetPath()
walk(src, 0)
stop_automated_movement = 0
//Return home, all-in-one proc (though does target scan and drop out if they see one)
/mob/living/simple_animal/proc/GoHome()
/mob/living/simple_mob/proc/GoHome()
if(!home_turf) return
if(astarpathing) ForgetPath()
ai_log("GoHome()",1)
@@ -1231,7 +1231,7 @@
GiveUpMoving() //Go back to wandering
//Get into attack mode on a target
/mob/living/simple_animal/proc/AttackTarget()
/mob/living/simple_mob/proc/AttackTarget()
stop_automated_movement = 1
if(incapacitated(INCAPACITATION_DISABLED))
ai_log("AttackTarget() Bailing because we're disabled",2)
@@ -1271,7 +1271,7 @@
return 0
//Attack the target in melee
/mob/living/simple_animal/proc/PunchTarget()
/mob/living/simple_mob/proc/PunchTarget()
if(!Adjacent(target_mob))
return
if(!canClick())
@@ -1296,7 +1296,7 @@
return M
// This is the actual act of 'punching'. Override for special behaviour.
/mob/living/simple_animal/proc/DoPunch(var/atom/A)
/mob/living/simple_mob/proc/DoPunch(var/atom/A)
if(!Adjacent(A) && !istype(A, /obj/structure/window) && !istype(A, /obj/machinery/door/window)) // They could've moved in the meantime. But a Window probably wouldn't have. This allows player simple-mobs to attack windows.
return FALSE
@@ -1318,7 +1318,7 @@
return TRUE
//The actual top-level ranged attack proc
/mob/living/simple_animal/proc/ShootTarget()
/mob/living/simple_mob/proc/ShootTarget()
if(!canClick())
return FALSE
@@ -1354,7 +1354,7 @@
return TRUE
//Check firing lines for faction_friends (if we're not cooperative, we don't care)
/mob/living/simple_animal/proc/CheckFiringLine(var/turf/tturf)
/mob/living/simple_mob/proc/CheckFiringLine(var/turf/tturf)
if(!tturf) return
var/turf/list/crosses = list()
@@ -1375,11 +1375,11 @@
return 1
//Special attacks, like grenades or blinding spit or whatever
/mob/living/simple_animal/proc/SpecialAtkTarget()
/mob/living/simple_mob/proc/SpecialAtkTarget()
return 0
//Shoot a bullet at someone
/mob/living/simple_animal/proc/Shoot(var/target, var/start, var/user, var/bullet = 0)
/mob/living/simple_mob/proc/Shoot(var/target, var/start, var/user, var/bullet = 0)
if(target == start)
return
@@ -1396,19 +1396,19 @@
return
//We can't see the target
/mob/living/simple_animal/proc/LoseTarget()
/mob/living/simple_mob/proc/LoseTarget()
ai_log("LoseTarget() [target_mob]",2)
target_mob = null
handle_stance(STANCE_IDLE)
GiveUpMoving()
//Target is no longer valid (?)
/mob/living/simple_animal/proc/LostTarget()
/mob/living/simple_mob/proc/LostTarget()
handle_stance(STANCE_IDLE)
GiveUpMoving()
//Forget a follow mode
/mob/living/simple_animal/proc/LoseFollow()
/mob/living/simple_mob/proc/LoseFollow()
ai_log("LoseFollow() [target_mob]",2)
stop_automated_movement = 0
follow_mob = null
@@ -1416,44 +1416,44 @@
GiveUpMoving()
// Makes the simple mob stop everything. Useful for when it get stunned.
/mob/living/simple_animal/proc/Disable()
/mob/living/simple_mob/proc/Disable()
ai_log("Disable() [target_mob]",2)
spawn(0)
LoseTarget()
LoseFollow()
/mob/living/simple_animal/Stun(amount)
/mob/living/simple_mob/Stun(amount)
if(amount > 0)
Disable()
..(amount)
/mob/living/simple_animal/AdjustStunned(amount)
/mob/living/simple_mob/AdjustStunned(amount)
if(amount > 0)
Disable()
..(amount)
/mob/living/simple_animal/Weaken(amount)
/mob/living/simple_mob/Weaken(amount)
if(amount > 0)
Disable()
..(amount)
/mob/living/simple_animal/AdjustWeakened(amount)
/mob/living/simple_mob/AdjustWeakened(amount)
if(amount > 0)
Disable()
..(amount)
/mob/living/simple_animal/Paralyse(amount)
/mob/living/simple_mob/Paralyse(amount)
if(amount > 0)
Disable()
..(amount)
/mob/living/simple_animal/AdjustParalysis(amount)
/mob/living/simple_mob/AdjustParalysis(amount)
if(amount > 0)
Disable()
..(amount)
//Find me some targets
/mob/living/simple_animal/proc/ListTargets(var/dist = view_range)
/mob/living/simple_mob/proc/ListTargets(var/dist = view_range)
var/list/L = hearers(src, dist)
for(var/obj/mecha/M in mechas_list)
@@ -1463,7 +1463,7 @@
return L
//Break through windows/other things
/mob/living/simple_animal/proc/DestroySurroundings(var/direction)
/mob/living/simple_mob/proc/DestroySurroundings(var/direction)
if(!direction)
direction = pick(cardinal) //FLAIL WILDLY
@@ -1499,7 +1499,7 @@
return
//Check for shuttle bumrush
/mob/living/simple_animal/proc/check_horde()
/mob/living/simple_mob/proc/check_horde()
return 0
if(emergency_shuttle.shuttle.location)
if(!enroute && !target_mob) //The shuttle docked, all monsters rush for the escape hallway
@@ -1516,7 +1516,7 @@
stop_automated_movement = 0
//Shuttle bumrush
/mob/living/simple_animal/proc/horde()
/mob/living/simple_mob/proc/horde()
var/turf/T = get_step_to(src, shuttletarget)
for(var/atom/A in T)
if(istype(A,/obj/machinery/door/airlock))
@@ -1538,7 +1538,7 @@
horde()
//Touches a wire, etc
/mob/living/simple_animal/electrocute_act(var/shock_damage, var/obj/source, var/siemens_coeff = 1.0, var/def_zone = null)
/mob/living/simple_mob/electrocute_act(var/shock_damage, var/obj/source, var/siemens_coeff = 1.0, var/def_zone = null)
shock_damage *= max(siemens_coeff - shock_resistance, 0)
if (shock_damage < 1)
return 0
@@ -1551,7 +1551,7 @@
s.start()
//Shot with taser/stunvolver
/mob/living/simple_animal/stun_effect_act(var/stun_amount, var/agony_amount, var/def_zone, var/used_weapon=null)
/mob/living/simple_mob/stun_effect_act(var/stun_amount, var/agony_amount, var/def_zone, var/used_weapon=null)
if(taser_kill)
var/stunDam = 0
var/agonyDam = 0
@@ -1565,7 +1565,7 @@
agonyDam += agony_amount * 0.5
apply_damage(damage = agonyDam, damagetype = BURN, def_zone = null, blocked = armor, blocked = resistance, used_weapon = used_weapon, sharp = FALSE, edge = FALSE)
/mob/living/simple_animal/emp_act(severity)
/mob/living/simple_mob/emp_act(severity)
if(!isSynthetic())
return
switch(severity)
@@ -1578,7 +1578,7 @@
if(4)
adjustFireLoss(rand(1, 6))
/mob/living/simple_animal/getarmor(def_zone, attack_flag)
/mob/living/simple_mob/getarmor(def_zone, attack_flag)
var/armorval = armor[attack_flag]
if(!armorval)
return 0
@@ -1586,16 +1586,16 @@
return armorval
/*
// Force it to target something
/mob/living/simple_animal/proc/taunt(var/mob/living/new_target, var/forced = FALSE)
/mob/living/simple_mob/proc/taunt(var/mob/living/new_target, var/forced = FALSE)
if(intelligence_level == SA_HUMANOID && !forced)
return
set_target(new_target)
*/
/mob/living/simple_animal/is_sentient()
/mob/living/simple_mob/is_sentient()
return intelligence_level != SA_PLANT && intelligence_level != SA_ROBOTIC
// Hand procs for player-controlled SA's
/mob/living/simple_animal/swap_hand()
/mob/living/simple_mob/swap_hand()
src.hand = !( src.hand )
if(hud_used.l_hand_hud_object && hud_used.r_hand_hud_object)
if(hand) //This being 1 means the left hand is in use
@@ -1606,17 +1606,17 @@
hud_used.r_hand_hud_object.icon_state = "r_hand_active"
return
/*
/mob/living/simple_animal/put_in_active_hand(var/obj/item/I)
/mob/living/simple_mob/put_in_active_hand(var/obj/item/I)
if(!has_hands || !istype(I))
return
*/
//Puts the item into our active hand if possible. returns 1 on success.
/mob/living/simple_animal/put_in_active_hand(var/obj/item/W)
/mob/living/simple_mob/put_in_active_hand(var/obj/item/W)
if(!has_hands)
return FALSE
return (hand ? put_in_l_hand(W) : put_in_r_hand(W))
/mob/living/simple_animal/put_in_l_hand(var/obj/item/W)
/mob/living/simple_mob/put_in_l_hand(var/obj/item/W)
if(!..() || l_hand)
return 0
W.forceMove(src)
@@ -1626,7 +1626,7 @@
update_inv_l_hand()
return TRUE
/mob/living/simple_animal/put_in_r_hand(var/obj/item/W)
/mob/living/simple_mob/put_in_r_hand(var/obj/item/W)
if(!..() || r_hand)
return 0
W.forceMove(src)
@@ -1636,7 +1636,7 @@
update_inv_r_hand()
return TRUE
/mob/living/simple_animal/update_inv_r_hand()
/mob/living/simple_mob/update_inv_r_hand()
if(QDESTROYING(src))
return
@@ -1673,7 +1673,7 @@
update_icon()
/mob/living/simple_animal/update_inv_l_hand()
/mob/living/simple_mob/update_inv_l_hand()
if(QDESTROYING(src))
return
@@ -1711,14 +1711,14 @@
update_icon()
//Can insert extra huds into the hud holder here.
/mob/living/simple_animal/proc/extra_huds(var/datum/hud/hud,var/icon/ui_style,var/list/hud_elements)
/mob/living/simple_mob/proc/extra_huds(var/datum/hud/hud,var/icon/ui_style,var/list/hud_elements)
return
//If they can or cannot use tools/machines/etc
/mob/living/simple_animal/IsAdvancedToolUser()
/mob/living/simple_mob/IsAdvancedToolUser()
return has_hands
/mob/living/simple_animal/proc/IsHumanoidToolUser(var/atom/tool)
/mob/living/simple_mob/proc/IsHumanoidToolUser(var/atom/tool)
if(!humanoid_hands)
var/display_name = null
if(tool)
@@ -1728,7 +1728,7 @@
to_chat(src, "<span class='danger'>Your [hand_form] are not fit for use of \the [display_name].</span>")
return humanoid_hands
/mob/living/simple_animal/drop_from_inventory(var/obj/item/W, var/atom/target = null)
/mob/living/simple_mob/drop_from_inventory(var/obj/item/W, var/atom/target = null)
. = ..(W, target)
if(!target)
target = src.loc
@@ -1736,7 +1736,7 @@
W.forceMove(src.loc)
//Commands, reactions, etc
/mob/living/simple_animal/hear_say(var/message, var/verb = "says", var/datum/language/language = null, var/alt_name = "", var/italics = 0, var/mob/speaker = null, var/sound/speech_sound, var/sound_vol)
/mob/living/simple_mob/hear_say(var/message, var/verb = "says", var/datum/language/language = null, var/alt_name = "", var/italics = 0, var/mob/speaker = null, var/sound/speech_sound, var/sound_vol)
..()
if(!ai_inactive && reacts && speaker && (message in reactions) && (!hostile || isliving(speaker)) && say_understands(speaker,language))
var/mob/living/L = speaker
@@ -1746,16 +1746,16 @@
say(reactions[message])
//Just some subpaths for easy searching
/mob/living/simple_animal/hostile
/mob/living/simple_mob/hostile
faction = "not yours"
hostile = 1
retaliate = 1
stop_when_pulled = 0
destroy_surroundings = 1
/mob/living/simple_animal/retaliate
/mob/living/simple_mob/retaliate
retaliate = 1
destroy_surroundings = 1
/mob/living/simple_animal/get_nametag_desc(mob/user)
/mob/living/simple_mob/get_nametag_desc(mob/user)
return "<i>[tt_desc]</i>"

View File

@@ -3,7 +3,7 @@
#define SA_ICON_DEAD 0x02
#define SA_ICON_REST 0x03
/mob/living/simple_animal
/mob/living/simple_mob
var/vore_active = 0 // If vore behavior is enabled for this mob
var/vore_capacity = 1 // The capacity (in people) this person can hold
@@ -31,20 +31,21 @@
var/vore_fullness = 0 // How "full" the belly is (controls icons)
var/vore_icons = 0 // Bitfield for which fields we have vore icons for.
var/life_disabled = 0 // For performance reasons
// Release belly contents before being gc'd!
/mob/living/simple_animal/Destroy()
/mob/living/simple_mob/Destroy()
release_vore_contents()
prey_excludes.Cut()
. = ..()
//For all those ID-having mobs
/mob/living/simple_animal/GetIdCard()
/mob/living/simple_mob/GetIdCard()
if(myid)
return myid
// Update fullness based on size & quantity of belly contents
/mob/living/simple_animal/proc/update_fullness()
/mob/living/simple_mob/proc/update_fullness()
var/new_fullness = 0
for(var/belly in vore_organs)
var/obj/belly/B = belly
@@ -53,7 +54,7 @@
new_fullness = round(new_fullness, 1) // Because intervals of 0.25 are going to make sprite artists cry.
vore_fullness = min(vore_capacity, new_fullness)
/mob/living/simple_animal/proc/update_vore_icon()
/mob/living/simple_mob/proc/update_vore_icon()
if(!vore_active)
return 0
update_fullness()
@@ -66,34 +67,34 @@
else if(((stat == UNCONSCIOUS) || resting || incapacitated(INCAPACITATION_DISABLED) ) && icon_rest && (vore_icons & SA_ICON_REST))
return "[icon_rest]-[vore_fullness]"
/mob/living/simple_animal/proc/will_eat(var/mob/living/M)
/mob/living/simple_mob/proc/will_eat(var/mob/living/M)
if(client) //You do this yourself, dick!
ai_log("vr/wont eat [M] because we're player-controlled", 3)
//ai_log("vr/wont eat [M] because we're player-controlled", 3) //VORESTATION AI TEMPORARY REMOVAL
return 0
if(!istype(M)) //Can't eat 'em if they ain't /mob/living
ai_log("vr/wont eat [M] because they are not /mob/living", 3)
//ai_log("vr/wont eat [M] because they are not /mob/living", 3) //VORESTATION AI TEMPORARY REMOVAL
return 0
if(src == M) //Don't eat YOURSELF dork
ai_log("vr/won't eat [M] because it's me!", 3)
//ai_log("vr/won't eat [M] because it's me!", 3) //VORESTATION AI TEMPORARY REMOVAL
return 0
if(vore_ignores_undigestable && !M.digestable) //Don't eat people with nogurgle prefs
ai_log("vr/wont eat [M] because I am picky", 3)
//ai_log("vr/wont eat [M] because I am picky", 3) //VORESTATION AI TEMPORARY REMOVAL
return 0
if(!M.allowmobvore) // Don't eat people who don't want to be ate by mobs
ai_log("vr/wont eat [M] because they don't allow mob vore", 3)
//ai_log("vr/wont eat [M] because they don't allow mob vore", 3) //VORESTATION AI TEMPORARY REMOVAL
return 0
if(M in prey_excludes) // They're excluded
ai_log("vr/wont eat [M] because they are excluded", 3)
//ai_log("vr/wont eat [M] because they are excluded", 3) //VORESTATION AI TEMPORARY REMOVAL
return 0
if(M.size_multiplier < vore_min_size || M.size_multiplier > vore_max_size)
ai_log("vr/wont eat [M] because they too small or too big", 3)
//ai_log("vr/wont eat [M] because they too small or too big", 3) //VORESTATION AI TEMPORARY REMOVAL
return 0
if(vore_capacity != 0 && (vore_fullness >= vore_capacity)) // We're too full to fit them
ai_log("vr/wont eat [M] because I am too full", 3)
//ai_log("vr/wont eat [M] because I am too full", 3) //VORESTATION AI TEMPORARY REMOVAL
return 0
return 1
/mob/living/simple_animal/PunchTarget()
/*
/mob/living/simple_mob/PunchTarget()
ai_log("vr/PunchTarget() [target_mob]", 3)
// If we're not hungry, call the sideways "parent" to do normal punching
@@ -110,8 +111,9 @@
return EatTarget()
else
return ..()
/mob/living/simple_animal/proc/CanPounceTarget() //returns either FALSE or a %chance of success
*/ //VORESTATION AI TEMPORARY REMOVAL
/*
/mob/living/simple_mob/proc/CanPounceTarget() //returns either FALSE or a %chance of success
if(!target_mob.canmove || issilicon(target_mob) || world.time < vore_pounce_cooldown) //eliminate situations where pouncing CANNOT happen
return FALSE
if(!prob(vore_pounce_chance)) //mob doesn't want to pounce
@@ -123,9 +125,9 @@
return FALSE
else
return max(0,(vore_pounce_successrate - (vore_pounce_falloff * TargetHealthPercent)))
/mob/living/simple_animal/proc/PounceTarget(var/successrate = 100)
*/ //VORESTATION AI TEMPORARY REMOVAL
/*
/mob/living/simple_mob/proc/PounceTarget(var/successrate = 100)
vore_pounce_cooldown = world.time + 20 SECONDS // don't attempt another pounce for a while
if(prob(successrate)) // pounce success!
target_mob.Weaken(5)
@@ -138,40 +140,40 @@
return EatTarget()
else
return //just leave them
*/ //VORESTATION AI TEMPORARY REMOVAL
// Attempt to eat target
// TODO - Review this. Could be some issues here
/mob/living/simple_animal/proc/EatTarget()
ai_log("vr/EatTarget() [target_mob]",2)
stop_automated_movement = 1
var/old_target = target_mob
handle_stance(STANCE_BUSY)
. = animal_nom(target_mob)
/mob/living/simple_mob/proc/EatTarget(atom/A)
//ai_log("vr/EatTarget() [target_mob]",2) //VORESTATION AI TEMPORARY REMOVAL
//stop_automated_movement = 1 //VORESTATION AI TEMPORARY REMOVAL
var/old_target = A
set_AI_busy(1) //VORESTATION AI TEMPORARY EDIT
. = animal_nom(A)
playsound(src, swallowsound, 50, 1)
update_icon()
if(.)
// If we succesfully ate them, lose the target
LoseTarget()
set_AI_busy(0) // lose_target(A) //Unsure what to put here. Replaced with set_AI_busy(1) //VORESTATION AI TEMPORARY EDIT
return old_target
else if(old_target == target_mob)
else if(old_target == A)
// If we didn't but they are still our target, go back to attack.
// but don't run the handler immediately, wait until next tick
// Otherwise we'll be in a possibly infinate loop
set_stance(STANCE_ATTACK)
stop_automated_movement = 0
set_AI_busy(0) //VORESTATION AI TEMPORARY EDIT
//stop_automated_movement = 0 //VORESTATION AI TEMPORARY EDIT
/mob/living/simple_animal/death()
/mob/living/simple_mob/death()
release_vore_contents()
. = ..()
// Make sure you don't call ..() on this one, otherwise you duplicate work.
/mob/living/simple_animal/init_vore()
/mob/living/simple_mob/init_vore()
if(!vore_active || no_vore)
return
if(!IsAdvancedToolUser())
verbs |= /mob/living/simple_animal/proc/animal_nom
verbs |= /mob/living/simple_mob/proc/animal_nom
verbs |= /mob/living/proc/shred_limb
if(LAZYLEN(vore_organs))
@@ -213,30 +215,30 @@
"The churning walls slowly pulverize you into meaty nutrients.",
"The stomach glorps and gurgles as it tries to work you into slop.")
/mob/living/simple_animal/Bumped(var/atom/movable/AM, yes)
/mob/living/simple_mob/Bumped(var/atom/movable/AM, yes)
if(ismob(AM))
var/mob/tmob = AM
if(will_eat(tmob) && !istype(tmob, type) && prob(vore_bump_chance) && !ckey) //check if they decide to eat. Includes sanity check to prevent cannibalism.
if(tmob.canmove && prob(vore_pounce_chance)) //if they'd pounce for other noms, pounce for these too, otherwise still try and eat them if they hold still
tmob.Weaken(5)
tmob.visible_message("<span class='danger'>\the [src] [vore_bump_emote] \the [tmob]!</span>!")
stop_automated_movement = 1
//stop_automated_movement = 1 //VORESTATION AI TEMPORARY REMOVAL
animal_nom(tmob)
update_icon()
stop_automated_movement = 0
//stop_automated_movement = 0 //VORESTATION AI TEMPORARY REMOVAL
..()
/* //Was replaced with suitable_turf_type, but that can be done later. //VORESTATION AI TEMPORARY REMOVAL
// Checks to see if mob doesn't like this kind of turf
/mob/living/simple_animal/avoid_turf(var/turf/turf)
/mob/living/simple_mob/avoid_turf(var/turf/turf)
//So we only check if the parent didn't find anything terrible
if((. = ..(turf)))
return .
if(istype(turf,/turf/unsimulated/floor/sky))
return TRUE //Mobs aren't that stupid, probably
*/
//Grab = Nomf
/mob/living/simple_animal/UnarmedAttack(var/atom/A, var/proximity)
/mob/living/simple_mob/UnarmedAttack(var/atom/A, var/proximity)
. = ..()
if(a_intent == I_GRAB && isliving(A) && !has_hands)

View File

@@ -1,4 +1,4 @@
/mob/living/simple_animal/instantiate_hud(var/datum/hud/hud)
/mob/living/simple_mob/instantiate_hud(var/datum/hud/hud)
if(!client)
return //Why bother.

View File

@@ -1,4 +1,4 @@
/mob/living/simple_animal/retaliate/bee
/mob/living/simple_mob/retaliate/bee
name = "space bumble bee"
desc = "Buzz buzz."
icon = 'icons/mob/vore.dmi'
@@ -36,10 +36,10 @@
faction = "bee"
/mob/living/simple_animal/retaliate/bee/Process_Spacemove(var/check_drift = 0)
/mob/living/simple_mob/retaliate/bee/Process_Spacemove(var/check_drift = 0)
return 1 //No drifting in space for space bee!
// Activate Noms!
/mob/living/simple_animal/retaliate/bee
/mob/living/simple_mob/retaliate/bee
vore_active = 1
vore_icons = SA_ICON_LIVING

View File

@@ -1,4 +1,4 @@
/mob/living/simple_animal/catgirl
/mob/living/simple_mob/catgirl
name = "catgirl"
desc = "Her hobbies are catnaps, knocking things over, and headpats."
tt_desc = "Homo felinus"
@@ -44,7 +44,7 @@
"catgirlbrown"
)
/mob/living/simple_animal/catgirl/New()
/mob/living/simple_mob/catgirl/New()
..()
if(random_skin)
icon_living = pick(skins)
@@ -53,7 +53,7 @@
update_icon()
// Activate Noms!
/mob/living/simple_animal/catgirl
/mob/living/simple_mob/catgirl
vore_active = 1
vore_bump_chance = 5
vore_pounce_chance = 50
@@ -63,5 +63,5 @@
vore_digest_chance = 25 // But squirming might make them gurgle...
vore_icons = SA_ICON_LIVING | SA_ICON_REST
/mob/living/simple_animal/catgirl/retaliate
/mob/living/simple_mob/catgirl/retaliate
retaliate = 1

View File

@@ -1,4 +1,4 @@
/mob/living/simple_animal/cookiegirl
/mob/living/simple_mob/cookiegirl
name = "cookiegirl"
desc = "A woman made with a combination of, well... Whatever you put in a cookie. What were the chefs thinking?"
icon = 'icons/mob/vore.dmi'
@@ -31,7 +31,7 @@
attacktext = list("smacked")
// Activate Noms!
/mob/living/simple_animal/cookiegirl
/mob/living/simple_mob/cookiegirl
vore_active = 1
vore_bump_chance = 2
vore_pounce_chance = 25
@@ -41,5 +41,5 @@
vore_digest_chance = 10 // Gonna become as sweet as sugar, soon.
vore_icons = SA_ICON_LIVING | SA_ICON_REST
/mob/living/simple_animal/cookiegirl/retaliate
/mob/living/simple_mob/cookiegirl/retaliate
retaliate = 1

View File

@@ -1,4 +1,4 @@
/mob/living/simple_animal/hostile/corrupthound
/mob/living/simple_mob/hostile/corrupthound
name = "corrupt hound"
desc = "Good boy machine broke. This is definitely no good news for the organic lifeforms in vicinity."
icon = 'icons/mob/vore64x32.dmi'
@@ -61,7 +61,7 @@
loot_list = list(/obj/item/borg/upgrade/syndicate = 6, /obj/item/borg/upgrade/vtec = 6, /obj/item/weapon/material/knife/ritual = 6, /obj/item/weapon/disk/nifsoft/compliance = 6)
/mob/living/simple_animal/hostile/corrupthound/prettyboi
/mob/living/simple_mob/hostile/corrupthound/prettyboi
name = "corrupt corrupt hound"
desc = "Bad boy machine broke as well. Seems an attempt was made to achieve a less threatening look, and this one is definitely having some conflicting feelings about it."
icon_state = "prettyboi"
@@ -80,36 +80,36 @@
say_got_target = list("HERE COMES BIG MEAN HUG MACHINE!", "I'LL BE GENTLE!", "FUEL ME FRIEND!", "I*M SO SORRY!", "YUMMY TREAT DETECTED!", "LOVE ME!", "Not again. NOT AGAIN!")
/mob/living/simple_animal/hostile/corrupthound/isSynthetic()
/mob/living/simple_mob/hostile/corrupthound/isSynthetic()
return TRUE
/mob/living/simple_animal/hostile/corrupthound/speech_bubble_appearance()
/mob/living/simple_mob/hostile/corrupthound/speech_bubble_appearance()
return "synthetic_evil"
/mob/living/simple_animal/hostile/corrupthound/PunchTarget()
if(istype(target_mob,/mob/living/simple_animal/mouse))
/mob/living/simple_mob/hostile/corrupthound/PunchTarget()
if(istype(target_mob,/mob/living/simple_mob/mouse))
return EatTarget()
else ..()
/mob/living/simple_animal/hostile/corrupthound/proc/add_eyes()
/mob/living/simple_mob/hostile/corrupthound/proc/add_eyes()
if(!eye_layer)
eye_layer = image(icon, "badboi-eyes")
eye_layer.plane = PLANE_LIGHTING_ABOVE
add_overlay(eye_layer)
/mob/living/simple_animal/hostile/corrupthound/proc/remove_eyes()
/mob/living/simple_mob/hostile/corrupthound/proc/remove_eyes()
cut_overlay(eye_layer)
/mob/living/simple_animal/hostile/corrupthound/New()
/mob/living/simple_mob/hostile/corrupthound/New()
add_eyes()
..()
/mob/living/simple_animal/hostile/corrupthound/death(gibbed, deathmessage = "shudders and collapses!")
/mob/living/simple_mob/hostile/corrupthound/death(gibbed, deathmessage = "shudders and collapses!")
.=..()
resting = 0
icon_state = icon_dead
/mob/living/simple_animal/hostile/corrupthound/update_icon()
/mob/living/simple_mob/hostile/corrupthound/update_icon()
. = ..()
remove_eyes()
if(stat == CONSCIOUS && !resting)

View File

@@ -1,4 +1,4 @@
/mob/living/simple_animal/hostile/deathclaw
/mob/living/simple_mob/hostile/deathclaw
name = "deathclaw"
desc = "Big! Big! The size of three men! Claws as long as my forearm! Ripped apart! Ripped apart!"
icon = 'icons/mob/vore64x64.dmi'
@@ -23,7 +23,7 @@
pixel_y = 0
// Activate Noms!
/mob/living/simple_animal/hostile/deathclaw
/mob/living/simple_mob/hostile/deathclaw
vore_active = 1
vore_capacity = 2
vore_max_size = RESIZE_HUGE

View File

@@ -1,4 +1,4 @@
/mob/living/simple_animal/hostile/dino
/mob/living/simple_mob/hostile/dino
name = "voracious lizard"
desc = "These gluttonous little bastards used to be regular lizards that were mutated by long-term exposure to phoron!"
icon = 'icons/mob/vore.dmi'
@@ -33,10 +33,10 @@
max_n2 = 0
// Activate Noms!
/mob/living/simple_animal/hostile/dino
/mob/living/simple_mob/hostile/dino
vore_active = 1
swallowTime = 1 SECOND // Hungry little bastards.
vore_icons = SA_ICON_LIVING
/mob/living/simple_animal/hostile/dino/virgo3b
/mob/living/simple_mob/hostile/dino/virgo3b
faction = "virgo3b"

View File

@@ -1,4 +1,4 @@
/mob/living/simple_animal/hostile/dragon
/mob/living/simple_mob/hostile/dragon
name = "red dragon"
desc = "Here to pillage stations and kidnap princesses, and there probably aren't any princesses."
icon = 'icons/mob/vore64x64.dmi'
@@ -30,22 +30,22 @@
pixel_x = -16
pixel_y = 0
/mob/living/simple_animal/hostile/dragon/Process_Spacemove(var/check_drift = 0)
/mob/living/simple_mob/hostile/dragon/Process_Spacemove(var/check_drift = 0)
return 1 //No drifting in space for space dragons!
/mob/living/simple_animal/hostile/dragon/FindTarget()
/mob/living/simple_mob/hostile/dragon/FindTarget()
. = ..()
if(.)
custom_emote(1,"snaps at [.]")
// Activate Noms!
/mob/living/simple_animal/hostile/dragon
/mob/living/simple_mob/hostile/dragon
vore_active = 1
vore_capacity = 2
vore_pounce_chance = 0 // Beat them into crit before eating.
vore_icons = SA_ICON_LIVING
/mob/living/simple_animal/hostile/dragon/virgo3b
/mob/living/simple_mob/hostile/dragon/virgo3b
maxHealth = 200
health = 200
faction = "virgo3b"

View File

@@ -1,4 +1,4 @@
/mob/living/simple_animal/fennec
/mob/living/simple_mob/fennec
name = "fennec"
desc = "It's a dusty big-eared sandfox! Adorable!"
tt_desc = "Vulpes zerda"
@@ -29,7 +29,7 @@
emote_see = list("earflicks","sniffs at the ground")
// Activate Noms!
/mob/living/simple_animal/fennec
/mob/living/simple_mob/fennec
vore_active = 1
vore_bump_chance = 10
vore_bump_emote = "playfully lunges at"

View File

@@ -1,4 +1,4 @@
/mob/living/simple_animal/retaliate/fennix
/mob/living/simple_mob/retaliate/fennix
name = "Fennix"
desc = "A feral fennix, Warm to the touch"
tt_desc = "Incaendium Faeles Vulpes"

View File

@@ -1,4 +1,4 @@
/mob/living/simple_animal/hostile/frog
/mob/living/simple_mob/hostile/frog
name = "giant frog"
desc = "You've heard of having a frog in your throat, now get ready for the reverse."
tt_desc = "Anura gigantus"
@@ -14,19 +14,19 @@
melee_damage_upper = 25
// Pepe is love, not hate.
/mob/living/simple_animal/hostile/frog/New()
/mob/living/simple_mob/hostile/frog/New()
if(rand(1,1000000) == 1)
name = "rare Pepe"
desc = "You found a rare Pepe. Screenshot for good luck."
..()
// Activate Noms!
/mob/living/simple_animal/hostile/frog
/mob/living/simple_mob/hostile/frog
vore_active = 1
vore_pounce_chance = 50
vore_icons = SA_ICON_LIVING
/mob/living/simple_animal/hostile/frog/space
/mob/living/simple_mob/hostile/frog/space
name = "space frog"
//Space frog can hold its breath or whatever

View File

@@ -10,7 +10,7 @@ kills them.
TODO: Make them light up and heat the air when exposed to oxygen.
*/
/mob/living/simple_animal/retaliate/gaslamp
/mob/living/simple_mob/retaliate/gaslamp
name = "gaslamp"
desc = "Some sort of floaty alien with a warm glow. This creature is endemic to Virgo-3B."
tt_desc = "Semaeostomeae virginus"
@@ -51,7 +51,7 @@ TODO: Make them light up and heat the air when exposed to oxygen.
max_n2 = 0
// Activate Noms!
/mob/living/simple_animal/retaliate/gaslamp
/mob/living/simple_mob/retaliate/gaslamp
vore_active = 1
vore_capacity = 2
vore_bump_chance = 90 //they're frickin' jellyfish anenome filterfeeders, get tentacled

View File

@@ -1,4 +1,4 @@
/mob/living/simple_animal/retaliate/hippo
/mob/living/simple_mob/retaliate/hippo
name = "hippo"
desc = "Mostly know for the spectacular hit of the live action movie Hungry Hungry Hippos."
tt_desc = "Hippopotamus amphibius"
@@ -50,12 +50,12 @@
meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat
// Activate Noms!
/mob/living/simple_animal/retaliate/hippo //I don't know why it's in a seperate line but everyone does it so i do it
/mob/living/simple_mob/retaliate/hippo //I don't know why it's in a seperate line but everyone does it so i do it
vore_active = 1
vore_capacity = 1
vore_bump_chance = 15
vore_bump_emote = "lazily wraps its tentacles around"
vore_standing_too = 1
vore_standing_too = 1
vore_ignores_undigestable = 0
vore_default_mode = DM_HOLD
vore_digest_chance = 10

View File

@@ -1,4 +1,4 @@
/mob/living/simple_animal/horse
/mob/living/simple_mob/horse
name = "horse"
desc = "Don't look it in the mouth."
tt_desc = "Equus ferus caballus"
@@ -32,6 +32,6 @@
meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat
// Activate Noms!
/mob/living/simple_animal/horse
/mob/living/simple_mob/horse
vore_active = 1
vore_icons = SA_ICON_LIVING

View File

@@ -1,4 +1,4 @@
/mob/living/simple_animal/hostile/jelly
/mob/living/simple_mob/hostile/jelly
name = "jelly blob"
desc = "Some sort of undulating blob of slime!"
icon = 'icons/mob/vore.dmi'
@@ -18,7 +18,7 @@
emote_see = list("undulates quietly")
// Activate Noms!
/mob/living/simple_animal/hostile/jelly
/mob/living/simple_mob/hostile/jelly
vore_active = 1
vore_pounce_chance = 0
vore_icons = SA_ICON_LIVING

View File

@@ -3,7 +3,7 @@
// Probably easier to troubleshoot when we ain't breaking the server by spawning a buttload of heavily extra feature coded snowflake mobs to the wilderness as mass cannonfodder.
// Also ToDo: An actual "simple" mob for that purpose if necessary :v
/mob/living/simple_animal/otie //Spawn this one only if you're looking for a bad time. Not friendly.
/mob/living/simple_mob/otie //Spawn this one only if you're looking for a bad time. Not friendly.
name = "otie"
desc = "The classic bioengineered longdog."
tt_desc = "Otus robustus"
@@ -55,13 +55,13 @@
// Activate Noms!
/mob/living/simple_animal/otie
/mob/living/simple_mob/otie
vore_active = 1
vore_capacity = 1
vore_pounce_chance = 20
vore_icons = SA_ICON_LIVING | SA_ICON_REST
/mob/living/simple_animal/otie/feral //gets the pet2tame feature. starts out hostile tho so get gamblin'
/mob/living/simple_mob/otie/feral //gets the pet2tame feature. starts out hostile tho so get gamblin'
name = "mutated feral otie"
desc = "The classic bioengineered longdog. No pets. Only bite. This one has mutated from too much time out on the surface of Virgo-3B."
tt_desc = "Otus phoronis"
@@ -85,7 +85,7 @@
glowyeyes = TRUE
eyetype = "photie"
/mob/living/simple_animal/otie/red
/mob/living/simple_mob/otie/red
name = "feral red otie"
desc = "Seems this ominous looking longdog has been infused with wicked infernal forces."
tt_desc = "Otus infernalis"
@@ -109,19 +109,19 @@
glowyeyes = TRUE
eyetype = "hotie"
/mob/living/simple_animal/otie/red/friendly //gets the pet2tame feature and doesn't kill you right away
/mob/living/simple_mob/otie/red/friendly //gets the pet2tame feature and doesn't kill you right away
name = "red otie"
desc = "Seems this ominous looking longdog has been infused with wicked infernal forces. This one seems rather peaceful though."
faction = "neutral"
tamed = 1
/mob/living/simple_animal/otie/friendly //gets the pet2tame feature and doesn't kill you right away
/mob/living/simple_mob/otie/friendly //gets the pet2tame feature and doesn't kill you right away
name = "otie"
desc = "The classic bioengineered longdog. This one might even tolerate you!"
faction = "neutral"
tamed = 1
/mob/living/simple_animal/otie/cotie //same as above but has a little collar :v
/mob/living/simple_mob/otie/cotie //same as above but has a little collar :v
name = "tamed otie"
desc = "The classic bioengineered longdog. This one has a nice little collar on its neck. However a proper domesticated otie is an oxymoron and the collar is likely just a decoration."
icon_state = "cotie"
@@ -130,7 +130,7 @@
faction = "neutral"
tamed = 1
/mob/living/simple_animal/otie/cotie/phoron //friendly phoron pup with collar
/mob/living/simple_mob/otie/cotie/phoron //friendly phoron pup with collar
name = "mutated otie"
desc = "Looks like someone did manage to domesticate one of those wild phoron mutants. What a badass."
tt_desc = "Otus phoronis"
@@ -149,7 +149,7 @@
glowyeyes = TRUE
eyetype = "photie"
/mob/living/simple_animal/otie/security //tame by default unless you're a marked crimester. can be befriended to follow with pets tho.
/mob/living/simple_mob/otie/security //tame by default unless you're a marked crimester. can be befriended to follow with pets tho.
name = "guard otie"
desc = "The VARMAcorp bioengineering division flagship product on trained optimal snowflake guard dogs."
icon_state = "sotie"
@@ -168,7 +168,7 @@
var/check_records = 0 // If true, arrests people without a record.
var/check_arrest = 1 // If true, arrests people who are set to arrest.
/mob/living/simple_animal/otie/security/phoron
/mob/living/simple_mob/otie/security/phoron
name = "mutated guard otie"
desc = "An extra rare phoron resistant version of the VARMAcorp trained snowflake guard dogs."
tt_desc = "Otus phoronis"
@@ -189,15 +189,15 @@
glowyeyes = TRUE
eyetype = "sotie"
/mob/living/simple_animal/otie/PunchTarget()
if(istype(target_mob,/mob/living/simple_animal/mouse))
/mob/living/simple_mob/otie/PunchTarget()
if(istype(target_mob,/mob/living/simple_mob/mouse))
return EatTarget()
else ..()
/mob/living/simple_animal/otie/Found(var/atom/found_atom)
/mob/living/simple_mob/otie/Found(var/atom/found_atom)
if(!SA_attackable(found_atom))
return null
if(istype(found_atom,/mob/living/simple_animal/mouse))
if(istype(found_atom,/mob/living/simple_mob/mouse))
return found_atom
else if(ismob(found_atom))
var/mob/found_mob = found_atom
@@ -216,20 +216,20 @@
else
return null
/mob/living/simple_animal/otie/security/Found(var/atom/found_atom)
/mob/living/simple_mob/otie/security/Found(var/atom/found_atom)
if(check_threat(found_atom) >= 4)
if(resting)
lay_down()
return found_atom
..()
/mob/living/simple_animal/otie/attackby(var/obj/item/O, var/mob/user) // Trade donuts for bellybrig victims.
/mob/living/simple_mob/otie/attackby(var/obj/item/O, var/mob/user) // Trade donuts for bellybrig victims.
if(istype(O, /obj/item/weapon/reagent_containers/food))
qdel(O)
playsound(src.loc,'sound/items/eatfood.ogg', rand(10,50), 1)
if(ai_inactive)//No autobarf on player control.
return
if(istype(O, /obj/item/weapon/reagent_containers/food/snacks/donut) && istype(src, /mob/living/simple_animal/otie/security))
if(istype(O, /obj/item/weapon/reagent_containers/food/snacks/donut) && istype(src, /mob/living/simple_mob/otie/security))
to_chat(user,"<span class='notice'>The guard pup accepts your offer for their catch.</span>")
release_vore_contents()
else if(prob(2)) //Small chance to get prey out from non-sec oties.
@@ -238,21 +238,21 @@
return
. = ..()
/mob/living/simple_animal/otie/security/feed_grabbed_to_self(var/mob/living/user, var/mob/living/prey) // Make the gut start out safe for bellybrigging.
/mob/living/simple_mob/otie/security/feed_grabbed_to_self(var/mob/living/user, var/mob/living/prey) // Make the gut start out safe for bellybrigging.
if(ishuman(prey))
vore_selected.digest_mode = DM_HOLD
if(check_threat(prey) >= 4)
global_announcer.autosay("[src] has detained suspect <b>[target_name(prey)]</b> in <b>[get_area(src)]</b>.", "SmartCollar oversight", "Security")
if(istype(prey,/mob/living/simple_animal/mouse))
if(istype(prey,/mob/living/simple_mob/mouse))
vore_selected.digest_mode = DM_DIGEST
. = ..()
/mob/living/simple_animal/otie/security/proc/check_threat(var/mob/living/M)
/mob/living/simple_mob/otie/security/proc/check_threat(var/mob/living/M)
if(!M || !ishuman(M) || M.stat == DEAD || src == M)
return 0
return M.assess_perp(0, 0, 0, check_records, check_arrest)
/mob/living/simple_animal/otie/security/set_target(var/mob/M)
/mob/living/simple_mob/otie/security/set_target(var/mob/M)
ai_log("SetTarget([M])",2)
if(!M || (world.time - last_target_time < 5 SECONDS) && target_mob)
ai_log("SetTarget() can't set it again so soon",3)
@@ -280,7 +280,7 @@
return 0
/mob/living/simple_animal/otie/security/proc/target_name(mob/living/T)
/mob/living/simple_mob/otie/security/proc/target_name(mob/living/T)
if(ishuman(T))
var/mob/living/carbon/human/H = T
return H.get_id_name("unidentified person")
@@ -288,7 +288,7 @@
//Basic friend AI
/mob/living/simple_animal/otie/Life()
/mob/living/simple_mob/otie/Life()
. = ..()
if(!. || ai_inactive) return
@@ -328,7 +328,7 @@
//Pet 4 friendly
/mob/living/simple_animal/otie/attack_hand(mob/living/carbon/human/M as mob)
/mob/living/simple_mob/otie/attack_hand(mob/living/carbon/human/M as mob)
switch(M.a_intent)
if(I_HELP)
@@ -359,27 +359,27 @@
else
..()
/mob/living/simple_animal/otie/proc/add_eyes()
/mob/living/simple_mob/otie/proc/add_eyes()
if(!eye_layer)
eye_layer = image(icon, "[eyetype]-eyes")
eye_layer.plane = PLANE_LIGHTING_ABOVE
add_overlay(eye_layer)
/mob/living/simple_animal/otie/proc/remove_eyes()
/mob/living/simple_mob/otie/proc/remove_eyes()
cut_overlay(eye_layer)
/mob/living/simple_animal/otie/New()
/mob/living/simple_mob/otie/New()
if(glowyeyes)
add_eyes()
..()
/mob/living/simple_animal/otie/update_icon()
/mob/living/simple_mob/otie/update_icon()
. = ..()
remove_eyes()
if(glowyeyes && stat == CONSCIOUS && !resting)
add_eyes()
/mob/living/simple_animal/otie/death(gibbed, deathmessage = "dies!")
/mob/living/simple_mob/otie/death(gibbed, deathmessage = "dies!")
.=..()
resting = 0
icon_state = icon_dead

View File

@@ -1,4 +1,4 @@
/mob/living/simple_animal/hostile/panther
/mob/living/simple_mob/hostile/panther
name = "panther"
desc = "Runtime's larger, less cuddly cousin."
tt_desc = "Panthera pardus"
@@ -28,7 +28,7 @@
pixel_y = 0
// Activate Noms!
/mob/living/simple_animal/hostile/panther
/mob/living/simple_mob/hostile/panther
vore_active = 1
vore_capacity = 2
vore_pounce_chance = 10

View File

@@ -1,4 +1,4 @@
/mob/living/simple_animal/hostile/rat
/mob/living/simple_mob/hostile/rat
name = "giant rat"
desc = "In what passes for a hierarchy among verminous rodents, this one is king."
tt_desc = "Mus muscular"
@@ -43,14 +43,14 @@
var/life_since_foodscan = 0
/mob/living/simple_animal/hostile/rat/passive
/mob/living/simple_mob/hostile/rat/passive
name = "curious giant rat"
desc = "In what passes for a hierarchy among verminous rodents, this one is king. It seems to be more interested on scavenging."
follow_dist = 1
var/mob/living/carbon/human/food
var/hunger = 0
/mob/living/simple_animal/hostile/rat/passive/Life()
/mob/living/simple_mob/hostile/rat/passive/Life()
. = ..()
if(!. || ai_inactive)
return
@@ -121,7 +121,7 @@
hunger = 0
food = null
/mob/living/simple_animal/hostile/rat/passive/attackby(var/obj/item/O, var/mob/user) // Feed the rat your food to satisfy it.
/mob/living/simple_mob/hostile/rat/passive/attackby(var/obj/item/O, var/mob/user) // Feed the rat your food to satisfy it.
if(istype(O, /obj/item/weapon/reagent_containers/food/snacks))
qdel(O)
playsound(src.loc,'sound/items/eatfood.ogg', rand(10,50), 1)
@@ -130,7 +130,7 @@
return
. = ..()
/mob/living/simple_animal/hostile/rat/passive/Found(var/atom/found_atom)
/mob/living/simple_mob/hostile/rat/passive/Found(var/atom/found_atom)
if(!SA_attackable(found_atom))
return null
else if(ishuman(found_atom) && will_eat(found_atom))
@@ -145,7 +145,7 @@
break
return null
/mob/living/simple_animal/hostile/rat/passive/FindTarget()
/mob/living/simple_mob/hostile/rat/passive/FindTarget()
var/atom/T = null
for(var/atom/A in ListTargets(view_range))
if(A == src)
@@ -156,6 +156,6 @@
break
return T
/mob/living/simple_animal/hostile/rat/death()
/mob/living/simple_mob/hostile/rat/death()
playsound(src, 'sound/effects/mouse_squeak_loud.ogg', 50, 1)
..()

View File

@@ -1,4 +1,4 @@
/mob/living/simple_animal/redpanda
/mob/living/simple_mob/redpanda
name = "red panda"
desc = "It's a wah! Beware of doom pounce!"
tt_desc = "Ailurus fulgens"
@@ -29,7 +29,7 @@
emote_see = list("trundles around","rears up onto their hind legs and pounces a bug")
// Activate Noms!
/mob/living/simple_animal/redpanda
/mob/living/simple_mob/redpanda
vore_active = 1
vore_bump_chance = 10
vore_bump_emote = "playfully lunges at"
@@ -37,7 +37,7 @@
vore_default_mode = DM_HOLD // above will only matter if someone toggles it anyway
vore_icons = SA_ICON_LIVING
/mob/living/simple_animal/redpanda/fae
/mob/living/simple_mob/redpanda/fae
name = "dark wah"
desc = "Ominous, but still cute!"
tt_desc = "Ailurus brattus"

View File

@@ -4,7 +4,7 @@
icon = 'icons/mob/screen_spells.dmi'
var/ability_name = "FIX ME"
var/cost = 50
var/mob/living/simple_animal/shadekin/my_kin
var/mob/living/simple_mob/shadekin/my_kin
var/shift_mode = NOT_WHILE_SHIFTED
var/ab_sound
@@ -130,7 +130,7 @@
on_created_text = "<span class='notice'>You drag part of The Dark into realspace, enveloping yourself.</span>"
on_expired_text = "<span class='warning'>You lose your grasp on The Dark and realspace reasserts itself.</span>"
stacks = MODIFIER_STACK_EXTEND
var/mob/living/simple_animal/shadekin/my_kin
var/mob/living/simple_mob/shadekin/my_kin
/datum/modifier/shadekin/create_shade/tick()
if(my_kin.ability_flags & AB_PHASE_SHIFTED)

View File

@@ -1,5 +1,5 @@
// Phase shifting procs (and related procs)
/mob/living/simple_animal/shadekin/proc/phase_shift()
/mob/living/simple_mob/shadekin/proc/phase_shift()
var/turf/T = get_turf(src)
if(!T.CanPass(null,T) || loc != T)
to_chat(src,"<span class='warning'>You can't use that here!</span>")
@@ -91,19 +91,19 @@
density = FALSE
force_max_speed = TRUE
/mob/living/simple_animal/shadekin/UnarmedAttack()
/mob/living/simple_mob/shadekin/UnarmedAttack()
if(ability_flags & AB_PHASE_SHIFTED)
return FALSE //Nope.
. = ..()
/mob/living/simple_animal/shadekin/can_fall()
/mob/living/simple_mob/shadekin/can_fall()
if(ability_flags & AB_PHASE_SHIFTED)
return FALSE //Nope!
return ..()
/mob/living/simple_animal/shadekin/zMove(direction)
/mob/living/simple_mob/shadekin/zMove(direction)
if(ability_flags & AB_PHASE_SHIFTED)
var/turf/destination = (direction == UP) ? GetAbove(src) : GetBelow(src)
if(destination)
@@ -113,7 +113,7 @@
return ..()
// Healing others
/mob/living/simple_animal/shadekin/proc/mend_other()
/mob/living/simple_mob/shadekin/proc/mend_other()
//I hate to crunch a view() but I only want ones I can see
var/list/viewed = oview(1)
var/list/targets = list()

View File

@@ -1,4 +1,4 @@
/mob/living/simple_animal/shadekin //Spawning the prototype spawns a random one, see initialize()
/mob/living/simple_mob/shadekin //Spawning the prototype spawns a random one, see initialize()
name = "shadekin"
desc = "Some sort of fluffer. Big ears, long tail."
icon = 'icons/mob/vore_shadekin.dmi'
@@ -85,16 +85,16 @@
var/list/shadekin_abilities
/mob/living/simple_animal/shadekin/initialize()
/mob/living/simple_mob/shadekin/initialize()
//You spawned the prototype, and want a totally random one.
if(type == /mob/living/simple_animal/shadekin)
if(type == /mob/living/simple_mob/shadekin)
//I'm told by VerySoft these are the liklihood values
var/list/sk_types = list(
/mob/living/simple_animal/shadekin/red = 20, //Actively seek people out to nom, so fairly common to see (relatively speaking),
/mob/living/simple_animal/shadekin/blue = 15, //Explorers that like to interact with people, so still fairly common,
/mob/living/simple_animal/shadekin/purple = 15, //Also explorers that may or may not homf people,
/mob/living/simple_animal/shadekin/yellow = 1 //Very rare, usually never leaves their home
/mob/living/simple_mob/shadekin/red = 20, //Actively seek people out to nom, so fairly common to see (relatively speaking),
/mob/living/simple_mob/shadekin/blue = 15, //Explorers that like to interact with people, so still fairly common,
/mob/living/simple_mob/shadekin/purple = 15, //Also explorers that may or may not homf people,
/mob/living/simple_mob/shadekin/yellow = 1 //Very rare, usually never leaves their home
)
var/new_type = pickweight(sk_types)
@@ -138,11 +138,11 @@
return ..()
/mob/living/simple_animal/shadekin/Destroy()
/mob/living/simple_mob/shadekin/Destroy()
QDEL_NULL_LIST(shadekin_abilities)
. = ..()
/mob/living/simple_animal/shadekin/init_vore()
/mob/living/simple_mob/shadekin/init_vore()
if(LAZYLEN(vore_organs))
return
@@ -197,7 +197,7 @@
"The chaos of being digested fades as you're snuffed out by a harsh clench! You're steadily broken down into a thick paste, processed and absorbed by the predator!"
)
/mob/living/simple_animal/shadekin/Life()
/mob/living/simple_mob/shadekin/Life()
. = ..()
if(ability_flags & AB_PHASE_SHIFTED)
density = FALSE
@@ -207,7 +207,7 @@
nutrition = max(0, nutrition-5)
energy = min(100,energy+1)
/mob/living/simple_animal/shadekin/update_icon()
/mob/living/simple_mob/shadekin/update_icon()
. = ..()
cut_overlay(tailimage)
@@ -217,18 +217,18 @@
add_overlay(tailimage)
add_overlay(eye_icon_state)
/mob/living/simple_animal/shadekin/Stat()
/mob/living/simple_mob/shadekin/Stat()
. = ..()
if(statpanel("Shadekin"))
abilities_stat()
/mob/living/simple_animal/shadekin/proc/abilities_stat()
/mob/living/simple_mob/shadekin/proc/abilities_stat()
for(var/A in shadekin_abilities)
var/obj/effect/shadekin_ability/ability = A
stat("[ability.ability_name]",ability.atom_button_text())
//They phase back to the dark when killed
/mob/living/simple_animal/shadekin/death(gibbed, deathmessage = "phases to somewhere far away!")
/mob/living/simple_mob/shadekin/death(gibbed, deathmessage = "phases to somewhere far away!")
overlays = list()
icon_state = ""
flick("tp_out",src)
@@ -238,7 +238,7 @@
. = ..(FALSE, deathmessage)
//Blue-eyes want to nom people to heal them
/mob/living/simple_animal/shadekin/Found(var/atom/A)
/mob/living/simple_mob/shadekin/Found(var/atom/A)
if(specific_targets && isliving(A)) //Healing!
var/mob/living/L = A
var/health_percent = (L.health/L.maxHealth)*100
@@ -247,11 +247,11 @@
. = ..()
//They reach nutritional equilibrium (important for blue-eyes healbelly)
/mob/living/simple_animal/shadekin/Life()
/mob/living/simple_mob/shadekin/Life()
if((. = ..()))
handle_shade()
/mob/living/simple_animal/shadekin/proc/handle_shade()
/mob/living/simple_mob/shadekin/proc/handle_shade()
//Shifted kin don't gain/lose energy (and save time if we're at the cap)
var/darkness = 1
@@ -330,7 +330,7 @@
energyhud.icon_state = "energy4"
//Friendly ones wander towards people, maybe shy-ly if they are set to shy
/mob/living/simple_animal/shadekin/handle_wander_movement()
/mob/living/simple_mob/shadekin/handle_wander_movement()
if(isturf(src.loc) && !resting && !buckled && canmove)
lifes_since_move++
if(lifes_since_move >= turns_per_move)
@@ -384,10 +384,10 @@
Move(T)
lifes_since_move = 0
/mob/living/simple_animal/shadekin/speech_bubble_appearance()
/mob/living/simple_mob/shadekin/speech_bubble_appearance()
return "ghost"
/mob/living/simple_animal/shadekin/DoPunch(var/atom/A)
/mob/living/simple_mob/shadekin/DoPunch(var/atom/A)
. = ..(A)
if(isliving(A)) //We punched something!
var/mob/living/L = A
@@ -410,7 +410,7 @@
energy += gains
//Special hud elements for darkness and energy gains
/mob/living/simple_animal/shadekin/extra_huds(var/datum/hud/hud,var/icon/ui_style,var/list/hud_elements)
/mob/living/simple_mob/shadekin/extra_huds(var/datum/hud/hud,var/icon/ui_style,var/list/hud_elements)
//Darkness hud
darkhud = new /obj/screen()
darkhud.icon = ui_style
@@ -430,7 +430,7 @@
hud_elements |= energyhud
// When someone clicks us with an empty hand
/mob/living/simple_animal/shadekin/attack_hand(mob/living/carbon/human/M as mob)
/mob/living/simple_mob/shadekin/attack_hand(mob/living/carbon/human/M as mob)
. = ..()
if(M.a_intent == I_HELP)
shy_approach = FALSE //ACCLIMATED

View File

@@ -1,5 +1,5 @@
/////////////////////////////////////////////////////////////////
/mob/living/simple_animal/shadekin/red
/mob/living/simple_mob/shadekin/red
name = "red-eyed shadekin"
eye_state = RED_EYES
hostile = TRUE
@@ -28,15 +28,15 @@
a brawl, but you barely generate any of your own energy. You can stand in a dark spot to gather scraps \
of energy in a pinch, but otherwise need to take it, by force if necessary."
/mob/living/simple_animal/shadekin/red/white
/mob/living/simple_mob/shadekin/red/white
icon_state = "white"
/mob/living/simple_animal/shadekin/red/dark
/mob/living/simple_mob/shadekin/red/dark
icon_state = "dark"
/mob/living/simple_animal/shadekin/red/brown
/mob/living/simple_mob/shadekin/red/brown
icon_state = "brown"
/////////////////////////////////////////////////////////////////
/mob/living/simple_animal/shadekin/blue
/mob/living/simple_mob/shadekin/blue
name = "blue-eyed shadekin"
eye_state = BLUE_EYES
health = 100
@@ -75,15 +75,15 @@
without doing so, albeit slowly. Dark and light are irrelevant to you, they are just different places to explore and \
discover new things and new people."
/mob/living/simple_animal/shadekin/blue/white
/mob/living/simple_mob/shadekin/blue/white
icon_state = "white"
/mob/living/simple_animal/shadekin/blue/dark
/mob/living/simple_mob/shadekin/blue/dark
icon_state = "dark"
/mob/living/simple_animal/shadekin/blue/brown
/mob/living/simple_mob/shadekin/blue/brown
icon_state = "brown"
/////////////////////////////////////////////////////////////////
/mob/living/simple_animal/shadekin/purple
/mob/living/simple_mob/shadekin/purple
name = "purple-eyed shadekin"
eye_state = PURPLE_EYES
health = 150
@@ -117,15 +117,15 @@
areas is taxing on your energy. You can harvest energy from others in a fight, but since you don't need to, you may \
just choose to simply not fight."
/mob/living/simple_animal/shadekin/purple/white
/mob/living/simple_mob/shadekin/purple/white
icon_state = "white"
/mob/living/simple_animal/shadekin/purple/dark
/mob/living/simple_mob/shadekin/purple/dark
icon_state = "dark"
/mob/living/simple_animal/shadekin/purple/brown
/mob/living/simple_mob/shadekin/purple/brown
icon_state = "brown"
/////////////////////////////////////////////////////////////////
/mob/living/simple_animal/shadekin/yellow
/mob/living/simple_mob/shadekin/yellow
name = "yellow-eyed shadekin"
eye_state = YELLOW_EYES
health = 100
@@ -157,15 +157,15 @@
area is very taxing on you, but you gain energy extremely fast in any very dark area. You're weaker than other \
shadekin, but your fast energy generation in the dark allows you to phase shift more often."
/mob/living/simple_animal/shadekin/yellow/white
/mob/living/simple_mob/shadekin/yellow/white
icon_state = "white"
/mob/living/simple_animal/shadekin/yellow/dark
/mob/living/simple_mob/shadekin/yellow/dark
icon_state = "dark"
/mob/living/simple_animal/shadekin/yellow/brown
/mob/living/simple_mob/shadekin/yellow/brown
icon_state = "brown"
/////////////////////////////////////////////////////////////////
/mob/living/simple_animal/shadekin/green
/mob/living/simple_mob/shadekin/green
name = "green-eyed shadekin"
eye_state = GREEN_EYES
health = 125
@@ -197,15 +197,15 @@
have more experience than your yellow-eyed cousins. You gain energy decently fast in any very dark area. You're weaker than other \
shadekin, but your slight energy generation constnatly, and especially in the dark allows for a good mix of uses."
/mob/living/simple_animal/shadekin/green/white
/mob/living/simple_mob/shadekin/green/white
icon_state = "white"
/mob/living/simple_animal/shadekin/green/dark
/mob/living/simple_mob/shadekin/green/dark
icon_state = "dark"
/mob/living/simple_animal/shadekin/green/brown
/mob/living/simple_mob/shadekin/green/brown
icon_state = "brown"
/////////////////////////////////////////////////////////////////
/mob/living/simple_animal/shadekin/orange
/mob/living/simple_mob/shadekin/orange
name = "orange-eyed shadekin"
eye_state = ORANGE_EYES
health = 175
@@ -234,16 +234,16 @@
You're stronger than most shadekin, faster, and more capable in a brawl, but you don't generate much of your own energy. \
You can stand in a dark spot to gather some energy, but otherwise need to take it, by force if necessary."
/mob/living/simple_animal/shadekin/orange/white
/mob/living/simple_mob/shadekin/orange/white
icon_state = "white"
/mob/living/simple_animal/shadekin/orange/dark
/mob/living/simple_mob/shadekin/orange/dark
icon_state = "dark"
/mob/living/simple_animal/shadekin/orange/brown
/mob/living/simple_mob/shadekin/orange/brown
icon_state = "brown"
/////////////////////////////////////////////////////////////////
//Fluffy specific fluffer
/mob/living/simple_animal/shadekin/blue/rivyr
/mob/living/simple_mob/shadekin/blue/rivyr
name = "Rivyr"
desc = "She appears to be a fluffer of some sort. Deep blue eyes and curious attitude."
icon_state = "rivyr"

View File

@@ -1,4 +1,4 @@
/mob/living/simple_animal/hostile/giant_snake
/mob/living/simple_mob/hostile/giant_snake
name = "giant snake"
desc = "Snakes. Why did it have to be snakes?"
icon = 'icons/mob/vore64x64.dmi'
@@ -21,7 +21,7 @@
pixel_y = -16
// Activate Noms!
/mob/living/simple_animal/hostile/giant_snake
/mob/living/simple_mob/hostile/giant_snake
vore_active = 1
vore_pounce_chance = 25
vore_icons = SA_ICON_LIVING

View File

@@ -10,7 +10,7 @@ List of things solar grubs should be able to do:
#define SINK_POWER 1
/mob/living/simple_animal/retaliate/solargrub
/mob/living/simple_mob/retaliate/solargrub
name = "juvenile solargrub"
desc = "A young sparkling solargrub"
icon = 'icons/mob/vore.dmi' //all of these are placeholders
@@ -54,13 +54,13 @@ List of things solar grubs should be able to do:
var/obj/structure/cable/attached // the attached cable
var/emp_chance = 20 // Beware synths
/mob/living/simple_animal/retaliate/solargrub/PunchTarget()
/mob/living/simple_mob/retaliate/solargrub/PunchTarget()
if(target_mob&& prob(emp_chance))
target_mob.emp_act(4) //The weakest strength of EMP
visible_message("<span class='danger'>The grub releases a powerful shock!</span>")
..()
/mob/living/simple_animal/retaliate/solargrub/Life()
/mob/living/simple_mob/retaliate/solargrub/Life()
. = ..()
if(!. || ai_inactive) return
@@ -90,7 +90,7 @@ List of things solar grubs should be able to do:
anchored = 0
PN = null
/mob/living/simple_animal/retaliate/solargrub //active noms
/mob/living/simple_mob/retaliate/solargrub //active noms
vore_bump_chance = 50
vore_bump_emote = "applies minimal effort to try and slurp up"
vore_active = 1
@@ -98,7 +98,7 @@ List of things solar grubs should be able to do:
vore_pounce_chance = 0 //grubs only eat incapacitated targets
vore_default_mode = DM_DIGEST
/mob/living/simple_animal/retaliate/solargrub/PunchTarget()
/mob/living/simple_mob/retaliate/solargrub/PunchTarget()
. = ..()
if(isliving(.))
var/mob/living/L = .
@@ -107,12 +107,12 @@ List of things solar grubs should be able to do:
L << "<span class='warning'>You feel a shock rushing through your veins.</span>"
L.reagents.add_reagent(poison_type, poison_per_bite)
/mob/living/simple_animal/retaliate/solargrub/death()
/mob/living/simple_mob/retaliate/solargrub/death()
src.anchored = 0
set_light(0)
..()
/mob/living/simple_animal/retaliate/solargrub/handle_light()
/mob/living/simple_mob/retaliate/solargrub/handle_light()
. = ..()
if(. == 0 && !is_dead())
set_light(2.5, 1, COLOR_YELLOW)

View File

@@ -1,6 +1,6 @@
var/global/list/grub_machine_overlays = list()
/mob/living/simple_animal/solargrub_larva
/mob/living/simple_mob/solargrub_larva
name = "solargrub larva"
desc = "A tiny wormy thing that can grow to massive sizes under the right conditions."
icon = 'icons/mob/vore.dmi'
@@ -10,7 +10,7 @@ var/global/list/grub_machine_overlays = list()
health = 5
maxHealth = 5
meat_amount = 2
meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat/grubmeat
@@ -43,7 +43,7 @@ var/global/list/grub_machine_overlays = list()
var/power_drained = 0
var/forced_out = 0
/mob/living/simple_animal/solargrub_larva/New()
/mob/living/simple_mob/solargrub_larva/New()
..()
powermachine = new(src)
sparks = new(src)
@@ -51,19 +51,19 @@ var/global/list/grub_machine_overlays = list()
sparks.attach(src)
verbs += /mob/living/proc/ventcrawl
/mob/living/simple_animal/solargrub_larva/death()
/mob/living/simple_mob/solargrub_larva/death()
powermachine.draining = 0
set_light(0)
return ..()
/mob/living/simple_animal/solargrub_larva/Destroy()
/mob/living/simple_mob/solargrub_larva/Destroy()
QDEL_NULL(powermachine)
QDEL_NULL(sparks)
QDEL_NULL(machine_effect)
target_vent = null
return ..()
/mob/living/simple_animal/solargrub_larva/Life()
/mob/living/simple_mob/solargrub_larva/Life()
. = ..()
if(machine_effect && !istype(loc, /obj/machinery))
@@ -129,7 +129,7 @@ var/global/list/grub_machine_overlays = list()
WanderTowards(get_turf(picked))
return
/mob/living/simple_animal/solargrub_larva/proc/enter_machine(var/obj/machinery/M)
/mob/living/simple_mob/solargrub_larva/proc/enter_machine(var/obj/machinery/M)
if(!istype(M))
return
forceMove(M)
@@ -141,13 +141,13 @@ var/global/list/grub_machine_overlays = list()
for(var/mob/L in player_list) //because nearly every machine updates its icon by removing all overlays first
L << machine_effect
/mob/living/simple_animal/solargrub_larva/proc/generate_machine_effect(var/obj/machinery/M)
/mob/living/simple_mob/solargrub_larva/proc/generate_machine_effect(var/obj/machinery/M)
var/icon/I = new /icon(M.icon, M.icon_state)
I.Blend(new /icon('icons/effects/blood.dmi', rgb(255,255,255)),ICON_ADD)
I.Blend(new /icon('icons/effects/alert.dmi', "_red"),ICON_MULTIPLY)
grub_machine_overlays[M.type] = I
/mob/living/simple_animal/solargrub_larva/proc/eject_from_machine(var/obj/machinery/M)
/mob/living/simple_mob/solargrub_larva/proc/eject_from_machine(var/obj/machinery/M)
if(!M)
if(istype(loc, /obj/machinery))
M = loc
@@ -160,7 +160,7 @@ var/global/list/grub_machine_overlays = list()
forced_out += rand(5,15)
powermachine.draining = 1
/mob/living/simple_animal/solargrub_larva/proc/do_ventcrawl(var/obj/machinery/atmospherics/unary/vent_pump/vent)
/mob/living/simple_mob/solargrub_larva/proc/do_ventcrawl(var/obj/machinery/atmospherics/unary/vent_pump/vent)
if(!vent)
return
var/obj/machinery/atmospherics/unary/vent_pump/end_vent = get_safe_ventcrawl_target(vent)
@@ -184,15 +184,15 @@ var/global/list/grub_machine_overlays = list()
playsound(end_vent, 'sound/machines/ventcrawl.ogg', 50, 1, -3)
forceMove(get_turf(end_vent))
/mob/living/simple_animal/solargrub_larva/proc/expand_grub()
/mob/living/simple_mob/solargrub_larva/proc/expand_grub()
eject_from_machine()
visible_message("<span class='warning'>\The [src] suddenly balloons in size!</span>")
new /mob/living/simple_animal/retaliate/solargrub(get_turf(src))
// var/mob/living/simple_animal/retaliate/solargrub/grub = new(get_turf(src))
new /mob/living/simple_mob/retaliate/solargrub(get_turf(src))
// var/mob/living/simple_mob/retaliate/solargrub/grub = new(get_turf(src))
// grub.power_drained = power_drained //TODO
qdel(src)
/mob/living/simple_animal/solargrub_larva/handle_light()
/mob/living/simple_mob/solargrub_larva/handle_light()
. = ..()
if(. == 0 && !is_dead())
set_light(1.5, 1, COLOR_YELLOW)
@@ -205,7 +205,7 @@ var/global/list/grub_machine_overlays = list()
var/total_idle_power_usage = 3 KILOWATTS
var/list/idle_power_usages = list(1 KILOWATTS, 1 KILOWATTS, 1 KILOWATTS)
var/draining = 1
var/mob/living/simple_animal/solargrub_larva/grub
var/mob/living/simple_mob/solargrub_larva/grub
/obj/machinery/abstract_grub_machine/New()
..()
@@ -248,7 +248,7 @@ var/global/list/grub_machine_overlays = list()
/obj/item/device/multitool/afterattack(obj/O, mob/user, proximity)
if(proximity)
if(istype(O, /obj/machinery))
var/mob/living/simple_animal/solargrub_larva/grub = locate() in O
var/mob/living/simple_mob/solargrub_larva/grub = locate() in O
if(grub)
grub.eject_from_machine(O)
to_chat(user, "<span class='warning'>You disturb a grub nesting in \the [O]!</span>")

View File

@@ -1,4 +1,4 @@
/mob/living/simple_animal/hostile/wolf
/mob/living/simple_mob/hostile/wolf
name = "grey wolf"
desc = "My, what big jaws it has!"
tt_desc = "Canis lupus"
@@ -22,6 +22,6 @@
minbodytemp = 200
// Activate Noms!
/mob/living/simple_animal/hostile/wolf
/mob/living/simple_mob/hostile/wolf
vore_active = 1
vore_icons = SA_ICON_LIVING

View File

@@ -1,4 +1,4 @@
/mob/living/simple_animal/retaliate/wolfgirl
/mob/living/simple_mob/retaliate/wolfgirl
name = "wolfgirl"
desc = "AwooOOOOoooo!"
tt_desc = "Homo lupus"
@@ -48,7 +48,7 @@
var/loopstop = 0 //To prevent circular awoooos.
/mob/living/simple_animal/retaliate/wolfgirl/hear_say()
/mob/living/simple_mob/retaliate/wolfgirl/hear_say()
if(world.time - loopstop < 5 SECONDS)
return
else
@@ -56,7 +56,7 @@
..()
// Activate Noms!
/mob/living/simple_animal/retaliate/wolfgirl
/mob/living/simple_mob/retaliate/wolfgirl
vore_active = 1
vore_pounce_chance = 40
vore_icons = SA_ICON_LIVING

View File

@@ -3,12 +3,12 @@
//
/*
## For anything that previously inhertited from: /mob/living/simple_animal/hostile/vore ##
## For anything that previously inhertited from: /mob/living/simple_mob/hostile/vore ##
vore_active = 1
icon = 'icons/mob/vore.dmi'
## For anything that previously inhertied from: /mob/living/simple_animal/hostile/vore/large ##
## For anything that previously inhertied from: /mob/living/simple_mob/hostile/vore/large ##
vore_active = 1
icon = 'icons/mob/vore64x64.dmi'
@@ -23,7 +23,7 @@
// Okay! Here we go!
//
/mob/living/simple_animal/hostile/alien
/mob/living/simple_mob/hostile/alien
vore_active = 1
icon = 'icons/mob/vore.dmi'
icon_state = "xenohunter"
@@ -32,7 +32,7 @@
icon_gib = "gibbed-a"
vore_icons = SA_ICON_LIVING
/mob/living/simple_animal/hostile/alien/drone
/mob/living/simple_mob/hostile/alien/drone
vore_active = 1
icon = 'icons/mob/vore.dmi'
icon_state = "xenodrone"
@@ -41,7 +41,7 @@
icon_gib = "gibbed-a"
vore_icons = SA_ICON_LIVING
/mob/living/simple_animal/hostile/alien/sentinel
/mob/living/simple_mob/hostile/alien/sentinel
vore_active = 1
icon = 'icons/mob/vore.dmi'
icon_state = "xenosentinel"
@@ -50,7 +50,7 @@
icon_gib = "gibbed-a"
vore_icons = SA_ICON_LIVING
/mob/living/simple_animal/hostile/alien/queen
/mob/living/simple_mob/hostile/alien/queen
vore_active = 1
icon = 'icons/mob/vore.dmi'
icon_state = "xenoqueen"
@@ -59,7 +59,7 @@
icon_gib = "gibbed-a"
vore_icons = SA_ICON_LIVING
/mob/living/simple_animal/hostile/alien/queen/empress
/mob/living/simple_mob/hostile/alien/queen/empress
vore_active = 1
icon = 'icons/mob/vore64x64.dmi'
icon_state = "queen_s"
@@ -75,14 +75,14 @@
vore_capacity = 3
vore_pounce_chance = 75
/mob/living/simple_animal/hostile/alien/sentinel/praetorian
/mob/living/simple_mob/hostile/alien/sentinel/praetorian
icon = 'icons/mob/vore64x64.dmi'
vore_icons = SA_ICON_LIVING | SA_ICON_REST
/mob/living/simple_animal/hostile/alien/queen/empress/mother
/mob/living/simple_mob/hostile/alien/queen/empress/mother
vore_icons = 0 // NO VORE SPRITES
/mob/living/simple_animal/hostile/bear
/mob/living/simple_mob/hostile/bear
vore_active = 1
icon = 'icons/mob/vore.dmi'
icon_state = "spacebear"
@@ -91,10 +91,10 @@
icon_gib = "bear-gib"
vore_icons = SA_ICON_LIVING
/mob/living/simple_animal/hostile/bear/hudson
/mob/living/simple_mob/hostile/bear/hudson
name = "Hudson"
/mob/living/simple_animal/hostile/bear/brown
/mob/living/simple_mob/hostile/bear/brown
vore_active = 1
icon = 'icons/mob/vore.dmi'
name = "brown bear"
@@ -104,12 +104,12 @@
icon_gib = "bear-gib"
vore_icons = SA_ICON_LIVING
/mob/living/simple_animal/hostile/carp
/mob/living/simple_mob/hostile/carp
icon = 'icons/mob/vore.dmi'
vore_active = 1
vore_icons = SA_ICON_LIVING
/mob/living/simple_animal/hostile/creature/vore
/mob/living/simple_mob/hostile/creature/vore
vore_active = 1
// NO VORE SPRITES
vore_capacity = 0
@@ -120,7 +120,7 @@
health = 80 // Increase health to compensate
maxHealth = 80
/mob/living/simple_animal/hostile/mimic
/mob/living/simple_mob/hostile/mimic
vore_active = 1
// NO VORE SPRITES
vore_capacity = 0
@@ -129,42 +129,42 @@
maxHealth = 60
health = 60
/mob/living/simple_animal/cat
/mob/living/simple_mob/cat
vore_active = 1
// NO VORE SPRITES
specific_targets = 0 // Targeting UNLOCKED
vore_max_size = RESIZE_TINY
/mob/living/simple_animal/cat/PunchTarget()
if(istype(target_mob,/mob/living/simple_animal/mouse))
/mob/living/simple_mob/cat/PunchTarget()
if(istype(target_mob,/mob/living/simple_mob/mouse))
visible_message("<span class='warning'>\The [src] pounces on \the [target_mob]!]</span>")
target_mob.Stun(5)
return EatTarget()
else ..()
/mob/living/simple_animal/cat/Found(var/atom/found_atom)
/mob/living/simple_mob/cat/Found(var/atom/found_atom)
if(!SA_attackable(found_atom))
return null
if(istype(found_atom,/mob/living/simple_animal/mouse))
if(istype(found_atom,/mob/living/simple_mob/mouse))
return found_atom
if(found_atom in friends)
return null
if(will_eat(found_atom))
return found_atom
/mob/living/simple_animal/cat/fluff/Found(var/atom/found_atom)
/mob/living/simple_mob/cat/fluff/Found(var/atom/found_atom)
if (friend == found_atom)
return null
return ..()
/mob/living/simple_animal/cat/fluff
/mob/living/simple_mob/cat/fluff
vore_ignores_undigestable = 0
vore_pounce_chance = 100
vore_digest_chance = 0 // just use the toggle
vore_default_mode = DM_HOLD //can use the toggle if you wanna be catfood
vore_standing_too = TRUE //gonna get pounced
/mob/living/simple_animal/cat/fluff/EatTarget()
/mob/living/simple_mob/cat/fluff/EatTarget()
var/mob/living/TM = target_mob
prey_excludes += TM //so they won't immediately re-eat someone who struggles out (or gets newspapered out) as soon as they're ate
spawn(3600) // but if they hang around and get comfortable, they might get ate again
@@ -172,39 +172,39 @@
prey_excludes -= TM
..() // will_eat check is carried out before EatTarget is called, so prey on the prey_excludes list isn't a problem.
/mob/living/simple_animal/fox
/mob/living/simple_mob/fox
vore_active = 1
// NO VORE SPRITES
vore_max_size = RESIZE_TINY
/mob/living/simple_animal/fox/PunchTarget()
if(istype(target_mob,/mob/living/simple_animal/mouse))
/mob/living/simple_mob/fox/PunchTarget()
if(istype(target_mob,/mob/living/simple_mob/mouse))
return EatTarget()
else ..()
/mob/living/simple_animal/fox/Found(var/atom/found_atom)
/mob/living/simple_mob/fox/Found(var/atom/found_atom)
if(!SA_attackable(found_atom))
return null
if(istype(found_atom,/mob/living/simple_animal/mouse))
if(istype(found_atom,/mob/living/simple_mob/mouse))
return found_atom
if(found_atom in friends)
return null
if(will_eat(found_atom))
return found_atom
/mob/living/simple_animal/fox/fluff/Found(var/atom/found_atom)
/mob/living/simple_mob/fox/fluff/Found(var/atom/found_atom)
if (friend == found_atom)
return null
return ..()
/mob/living/simple_animal/fox/fluff
/mob/living/simple_mob/fox/fluff
vore_ignores_undigestable = 0
vore_pounce_chance = 100
vore_digest_chance = 0 // just use the toggle
vore_default_mode = DM_HOLD //can use the toggle if you wanna be foxfood
vore_standing_too = TRUE // gonna get pounced
/mob/living/simple_animal/fox/fluff/EatTarget()
/mob/living/simple_mob/fox/fluff/EatTarget()
var/mob/living/TM = target_mob
prey_excludes += TM //so they won't immediately re-eat someone who struggles out (or gets newspapered out) as soon as they're ate
spawn(3600) // but if they hang around and get comfortable, they might get ate again
@@ -212,39 +212,39 @@
prey_excludes -= TM
..() // will_eat check is carried out before EatTarget is called, so prey on the prey_excludes list isn't a problem.
/mob/living/simple_animal/hostile/goose
/mob/living/simple_mob/hostile/goose
vore_active = 1
// NO VORE SPRITES
vore_max_size = RESIZE_SMALL
/mob/living/simple_animal/penguin
/mob/living/simple_mob/penguin
vore_active = 1
// NO VORE SPRITES
vore_max_size = RESIZE_SMALL
/mob/living/simple_animal/hostile/carp/pike
/mob/living/simple_mob/hostile/carp/pike
vore_active = 1
// NO VORE SPRITES
/mob/living/simple_animal/hostile/carp/holodeck
/mob/living/simple_mob/hostile/carp/holodeck
vore_icons = 0 // NO VORE SPRITES
vore_digest_chance = 0
vore_absorb_chance = 0
// Override stuff for holodeck carp to make them not digest when set to safe!
/mob/living/simple_animal/hostile/carp/holodeck/init_vore()
/mob/living/simple_mob/hostile/carp/holodeck/init_vore()
. = ..()
var/safe = (faction == "neutral")
for(var/belly in vore_organs)
var/obj/belly/B = belly
B.digest_mode = safe ? DM_HOLD : vore_default_mode
/mob/living/simple_animal/hostile/carp/holodeck/set_safety(var/safe)
/mob/living/simple_mob/hostile/carp/holodeck/set_safety(var/safe)
. = ..()
for(var/belly in vore_organs)
var/obj/belly/B = belly
B.digest_mode = safe ? DM_HOLD : vore_default_mode
/mob/living/simple_animal/mouse
/mob/living/simple_mob/mouse
faction = "mouse" //Giving mice a faction so certain mobs can get along with them.

View File

@@ -23,7 +23,7 @@
var/fed = 0 // Counter for how many egg laying 'charges' the spider has.
var/egg_inject_chance = 25 // One in four chance to get eggs.
var/egg_type = /obj/effect/spider/eggcluster/small
egg_type = /obj/effect/spider/eggcluster/small //VORESTATION AI TEMPORARY EDIT
var/web_type = /obj/effect/spider/stickyweb/dark

View File

@@ -298,7 +298,7 @@
return 0 //Sanity, this should never happen.
/*
if(ispath(MP, /mob/living/simple_animal/space_worm))
if(ispath(MP, /mob/living/simple_mob/space_worm))
return 0 //Unfinished. Very buggy, they seem to just spawn additional space worms everywhere and eating your own tail results in new worms spawning.
*/

View File

@@ -13,5 +13,5 @@
/obj/item/projectile/animate/Bump(var/atom/change)
if((istype(change, /obj/item) || istype(change, /obj/structure)) && !is_type_in_list(change, protected_objects))
var/obj/O = change
new /mob/living/simple_animal/hostile/mimic/copy(O.loc, O, firer)
new /mob/living/simple_mob/hostile/mimic/copy(O.loc, O, firer)
..()

View File

@@ -309,7 +309,7 @@
/* //VORESTATION AI TEMPORARY REMOVAL
/datum/chemical_reaction/slimevore
name = "Slime Vore" // Hostile vore mobs only
id = "m_tele"
@@ -317,11 +317,11 @@
required_reagents = list("phoron" = 20, "nutriment" = 20, "sugar" = 20, "mutationtoxin" = 20) //Can't do slime jelly as it'll conflict with another, but mutation toxin will do.
result_amount = 1
on_reaction(var/datum/reagents/holder)
var/mob_path = /mob/living/simple_animal
var/mob_path = /mob/living/simple_mob
var/blocked = list(
/mob/living/simple_animal/hostile/mimic,
/mob/living/simple_animal/hostile/alien/queen,
/mob/living/simple_animal/shadekin
/mob/living/simple_mob/hostile/mimic,
/mob/living/simple_mob/hostile/alien/queen,
/mob/living/simple_mob/shadekin
)//exclusion list for things you don't want the reaction to create.
var/list/voremobs = typesof(mob_path) - mob_path - blocked // list of possible hostile mobs
@@ -334,9 +334,10 @@
var/spawn_count = rand(1,3)
for(var/i = 1, i <= spawn_count, i++)
var/chosen = pick(voremobs)
var/mob/living/simple_animal/hostile/C = new chosen
var/mob/living/simple_mob/hostile/C = new chosen
C.faction = "slimesummon"
C.loc = get_turf(holder.my_atom)
if(prob(50))
for(var/j = 1, j <= rand(1, 3), j++)
step(C, pick(NORTH,SOUTH,EAST,WEST))
*/

View File

@@ -113,7 +113,7 @@
New()
..()
spot_add(2,2,/obj/random/cargopod) //EXTRA loot!
spot_add(2,2,/mob/living/simple_animal/hostile/alien) //GRRR
//spot_add(2,2,/mob/living/simple_mob/hostile/alien) //GRRR //VORESTATION AI TEMPORARY REMOVAL
//Longer cargo container for higher difficulties
/datum/rogue/asteroid/predef/cargo_large
@@ -146,5 +146,5 @@
spot_add(3,3,/obj/random/cargopod) //Mid loot
spot_add(4,3,/obj/random/cargopod) //Right loot
if(prob(30))
spot_add(3,3,/mob/living/simple_animal/hostile/alien) //And maybe a friend.
//if(prob(30))
//spot_add(3,3,/mob/living/simple_mob/hostile/alien) //And maybe a friend. //VORESTATION AI TEMPORARY REMOVAL

View File

@@ -54,22 +54,22 @@ var/datum/controller/rogue/rm_controller = new()
)
///// Monster Lists /////
var/mobs = list(
"tier1" = list(/mob/living/simple_animal/hostile/carp, /mob/living/simple_animal/hostile/goose),
var/mobs = list(/*
"tier1" = list(/mob/living/simple_mob/hostile/carp, /mob/living/simple_mob/hostile/goose),
"tier2" = list(/mob/living/simple_animal/hostile/carp, /mob/living/simple_animal/hostile/goose),
"tier2" = list(/mob/living/simple_mob/hostile/carp, /mob/living/simple_mob/hostile/goose),
"tier3" = list(/mob/living/simple_animal/hostile/carp, /mob/living/simple_animal/hostile/goose,
/mob/living/simple_animal/hostile/bear, /mob/living/simple_animal/hostile/carp/strong),
"tier3" = list(/mob/living/simple_mob/hostile/carp, /mob/living/simple_mob/hostile/goose,
/mob/living/simple_mob/hostile/bear, /mob/living/simple_mob/hostile/carp/strong),
"tier4" = list(/mob/living/simple_animal/hostile/carp, /mob/living/simple_animal/hostile/goose, /mob/living/simple_animal/hostile/bear,
/mob/living/simple_animal/hostile/carp/strong, /mob/living/simple_animal/hostile/carp/pike/weak),
"tier4" = list(/mob/living/simple_mob/hostile/carp, /mob/living/simple_mob/hostile/goose, /mob/living/simple_mob/hostile/bear,
/mob/living/simple_mob/hostile/carp/strong, /mob/living/simple_mob/hostile/carp/pike/weak),
"tier5" = list(/mob/living/simple_animal/hostile/carp, /mob/living/simple_animal/hostile/bear, /mob/living/simple_animal/hostile/carp/pike/weak,
/mob/living/simple_animal/hostile/carp/strong, /mob/living/simple_animal/hostile/carp/pike),
"tier5" = list(/mob/living/simple_mob/hostile/carp, /mob/living/simple_mob/hostile/bear, /mob/living/simple_mob/hostile/carp/pike/weak,
/mob/living/simple_mob/hostile/carp/strong, /mob/living/simple_mob/hostile/carp/pike),
"tier6" = list(/mob/living/simple_animal/hostile/bear, /mob/living/simple_animal/hostile/carp/strong,
/mob/living/simple_animal/hostile/carp/pike, /mob/living/simple_animal/hostile/carp/pike/weak)
"tier6" = list(/mob/living/simple_mob/hostile/bear, /mob/living/simple_mob/hostile/carp/strong,
/mob/living/simple_mob/hostile/carp/pike, /mob/living/simple_mob/hostile/carp/pike/weak)*/ //VORESTATION AI TEMPORARY REMOVAL
)
/datum/controller/rogue/New()

View File

@@ -3,10 +3,10 @@
//////////////////////////////////////////////////////////////////
/datum/surgery_step/slime
is_valid_target(mob/living/simple_animal/slime/target)
return istype(target, /mob/living/simple_animal/slime/)
is_valid_target(mob/living/simple_mob/slime/target)
return istype(target, /mob/living/simple_mob/slime/)
/datum/surgery_step/slime/can_use(mob/living/user, mob/living/simple_animal/slime/target, target_zone, obj/item/tool)
/datum/surgery_step/slime/can_use(mob/living/user, mob/living/simple_mob/slime/target, target_zone, obj/item/tool)
return target.stat == 2
@@ -21,19 +21,19 @@
min_duration = 30
max_duration = 50
/datum/surgery_step/slime/cut_flesh/can_use(mob/living/user, mob/living/simple_animal/slime/target, target_zone, obj/item/tool)
/datum/surgery_step/slime/cut_flesh/can_use(mob/living/user, mob/living/simple_mob/slime/target, target_zone, obj/item/tool)
return ..() && istype(target) && target.core_removal_stage == 0
/datum/surgery_step/slime/cut_flesh/begin_step(mob/user, mob/living/simple_animal/slime/target, target_zone, obj/item/tool)
/datum/surgery_step/slime/cut_flesh/begin_step(mob/user, mob/living/simple_mob/slime/target, target_zone, obj/item/tool)
user.visible_message("[user] starts cutting through [target]'s flesh with \the [tool].", \
"You start cutting through [target]'s flesh with \the [tool].")
/datum/surgery_step/slime/cut_flesh/end_step(mob/living/user, mob/living/simple_animal/slime/target, target_zone, obj/item/tool)
/datum/surgery_step/slime/cut_flesh/end_step(mob/living/user, mob/living/simple_mob/slime/target, target_zone, obj/item/tool)
user.visible_message("<font color='blue'>[user] cuts through [target]'s flesh with \the [tool].</font>", \
"<font color='blue'>You cut through [target]'s flesh with \the [tool], revealing its silky innards.</font>")
target.core_removal_stage = 1
/datum/surgery_step/slime/cut_flesh/fail_step(mob/living/user, mob/living/simple_animal/slime/target, target_zone, obj/item/tool)
/datum/surgery_step/slime/cut_flesh/fail_step(mob/living/user, mob/living/simple_mob/slime/target, target_zone, obj/item/tool)
user.visible_message("<font color='red'>[user]'s hand slips, tearing [target]'s flesh with \the [tool]!</font>", \
"<font color='red'>Your hand slips, tearing [target]'s flesh with \the [tool]!</font>")
@@ -49,19 +49,19 @@
min_duration = 30
max_duration = 50
/datum/surgery_step/slime/cut_innards/can_use(mob/living/user, mob/living/simple_animal/slime/target, target_zone, obj/item/tool)
/datum/surgery_step/slime/cut_innards/can_use(mob/living/user, mob/living/simple_mob/slime/target, target_zone, obj/item/tool)
return ..() && istype(target) && target.core_removal_stage == 1
/datum/surgery_step/slime/cut_innards/begin_step(mob/user, mob/living/simple_animal/slime/target, target_zone, obj/item/tool)
/datum/surgery_step/slime/cut_innards/begin_step(mob/user, mob/living/simple_mob/slime/target, target_zone, obj/item/tool)
user.visible_message("[user] starts cutting [target]'s silky innards apart with \the [tool].", \
"You start cutting [target]'s silky innards apart with \the [tool].")
/datum/surgery_step/slime/cut_innards/end_step(mob/living/user, mob/living/simple_animal/slime/target, target_zone, obj/item/tool)
/datum/surgery_step/slime/cut_innards/end_step(mob/living/user, mob/living/simple_mob/slime/target, target_zone, obj/item/tool)
user.visible_message("<font color='blue'>[user] cuts [target]'s innards apart with \the [tool], exposing the cores.</font>", \
"<font color='blue'>You cut [target]'s innards apart with \the [tool], exposing the cores.</font>")
target.core_removal_stage = 2
/datum/surgery_step/slime/cut_innards/fail_step(mob/living/user, mob/living/simple_animal/slime/target, target_zone, obj/item/tool)
/datum/surgery_step/slime/cut_innards/fail_step(mob/living/user, mob/living/simple_mob/slime/target, target_zone, obj/item/tool)
user.visible_message("<font color='red'>[user]'s hand slips, tearing [target]'s innards with \the [tool]!</font>", \
"<font color='red'>Your hand slips, tearing [target]'s innards with \the [tool]!</font>")
@@ -76,14 +76,14 @@
min_duration = 50
max_duration = 70
/datum/surgery_step/slime/saw_core/can_use(mob/living/user, mob/living/simple_animal/slime/target, target_zone, obj/item/tool)
/datum/surgery_step/slime/saw_core/can_use(mob/living/user, mob/living/simple_mob/slime/target, target_zone, obj/item/tool)
return ..() && (istype(target) && target.core_removal_stage == 2 && target.cores > 0) //This is being passed a human as target, unsure why.
/datum/surgery_step/slime/saw_core/begin_step(mob/user, mob/living/simple_animal/slime/target, target_zone, obj/item/tool)
/datum/surgery_step/slime/saw_core/begin_step(mob/user, mob/living/simple_mob/slime/target, target_zone, obj/item/tool)
user.visible_message("[user] starts cutting out one of [target]'s cores with \the [tool].", \
"You start cutting out one of [target]'s cores with \the [tool].")
/datum/surgery_step/slime/saw_core/end_step(mob/living/user, mob/living/simple_animal/slime/target, target_zone, obj/item/tool)
/datum/surgery_step/slime/saw_core/end_step(mob/living/user, mob/living/simple_mob/slime/target, target_zone, obj/item/tool)
target.cores--
user.visible_message("<font color='blue'>[user] cuts out one of [target]'s cores with \the [tool].</font>",, \
"<font color='blue'>You cut out one of [target]'s cores with \the [tool]. [target.cores] cores left.</font>")
@@ -94,7 +94,7 @@
target.icon_state = "slime extracted"
/datum/surgery_step/slime/saw_core/fail_step(mob/living/user, mob/living/simple_animal/slime/target, target_zone, obj/item/tool)
/datum/surgery_step/slime/saw_core/fail_step(mob/living/user, mob/living/simple_mob/slime/target, target_zone, obj/item/tool)
var/datum/gender/T = gender_datums[user.get_visible_gender()]
user.visible_message("<font color='red'>[user]'s hand slips, causing [T.him] to miss the core!</font>", \
"<font color='red'>Your hand slips, causing you to miss the core!</font>")

View File

@@ -151,12 +151,12 @@
sparks()
if(telepad)
var/L = get_turf(telepad)
var/blocked = list(/mob/living/simple_animal/hostile)
var/list/hostiles = typesof(/mob/living/simple_animal/hostile) - blocked
var/blocked = list(/mob/living/simple_mob/hostile)
var/list/hostiles = typesof(/mob/living/simple_mob/hostile) - blocked
playsound(L, 'sound/effects/phasein.ogg', 100, 1, extrarange = 3, falloff = 5)
for(var/i in 1 to rand(1,4))
var/chosen = pick(hostiles)
var/mob/living/simple_animal/hostile/H = new chosen
var/mob/living/simple_mob/hostile/H = new chosen
H.forceMove(L)
return
if(99)

Some files were not shown because too many files have changed in this diff Show More