mob stuff

This commit is contained in:
Poojawa
2018-04-23 02:26:53 -05:00
parent 5518efebea
commit 832f071b59
103 changed files with 264 additions and 329 deletions
@@ -3,6 +3,7 @@
icon = 'icons/mob/aibots.dmi'
layer = MOB_LAYER
gender = NEUTER
mob_biotypes = list(MOB_ROBOTIC)
light_range = 3
stop_automated_movement = 1
wander = 0
@@ -339,7 +339,7 @@
if(mode == BOT_REPAIRING && F && src.loc == F)
F.broken = 0
F.burnt = 0
F.ChangeTurf(/turf/open/floor/plasteel)
F.PlaceOnTop(/turf/open/floor/plasteel)
if(replacetiles && F.type != initial(tiletype.turf_type) && specialtiles && !isplatingturf(F))
anchored = TRUE
@@ -350,7 +350,7 @@
if(mode == BOT_REPAIRING && F && src.loc == F)
F.broken = 0
F.burnt = 0
F.ChangeTurf(initial(tiletype.turf_type))
F.PlaceOnTop(initial(tiletype.turf_type))
specialtiles -= 1
if(specialtiles == 0)
speak("Requesting refill of custom floortiles to continue replacing.")
@@ -3,6 +3,7 @@
real_name = "Construct"
desc = ""
gender = NEUTER
mob_biotypes = list(MOB_INORGANIC)
speak_emote = list("hisses")
response_help = "thinks better of touching"
response_disarm = "flails at"
@@ -18,6 +18,7 @@
pass_flags = PASSTABLE | PASSGRILLE | PASSMOB
ventcrawler = VENTCRAWLER_ALWAYS
mob_size = MOB_SIZE_TINY
mob_biotypes = list(MOB_ORGANIC, MOB_BUG)
gold_core_spawnable = FRIENDLY_SPAWN
verb_say = "flutters"
verb_ask = "flutters inquisitively"
@@ -17,6 +17,7 @@
ventcrawler = VENTCRAWLER_ALWAYS
pass_flags = PASSTABLE
mob_size = MOB_SIZE_SMALL
mob_biotypes = list(MOB_ORGANIC, MOB_BEAST)
minbodytemp = 200
maxbodytemp = 400
unsuitable_atmos_damage = 1
@@ -12,6 +12,7 @@
maxbodytemp = INFINITY
pass_flags = PASSTABLE | PASSGRILLE | PASSMOB
mob_size = MOB_SIZE_TINY
mob_biotypes = list(MOB_ORGANIC, MOB_BUG)
response_help = "pokes"
response_disarm = "shoos"
response_harm = "splats"
@@ -1,6 +1,7 @@
//Dogs.
/mob/living/simple_animal/pet/dog
mob_biotypes = list(MOB_ORGANIC, MOB_BEAST)
response_help = "pets"
response_disarm = "bops"
response_harm = "kicks"
@@ -35,6 +35,7 @@
sight = (SEE_TURFS | SEE_OBJS)
status_flags = (CANPUSH | CANSTUN | CANKNOCKDOWN)
gender = NEUTER
mob_biotypes = list(MOB_ROBOTIC)
speak_emote = list("chirps")
bubble_icon = "machine"
initial_language_holder = /datum/language_holder/drone
@@ -17,6 +17,7 @@
response_disarm = "gently pushes aside"
response_harm = "kicks"
faction = list("neutral")
mob_biotypes = list(MOB_ORGANIC, MOB_BEAST)
attack_same = 1
attacktext = "kicks"
attack_sound = 'sound/weapons/punch1.ogg'
@@ -109,6 +110,7 @@
icon_dead = "cow_dead"
icon_gib = "cow_gib"
gender = FEMALE
mob_biotypes = list(MOB_ORGANIC, MOB_BEAST)
speak = list("moo?","moo","MOOOOOO")
speak_emote = list("moos","moos hauntingly")
emote_hear = list("brays.")
@@ -183,6 +185,7 @@
icon_dead = "chick_dead"
icon_gib = "chick_gib"
gender = FEMALE
mob_biotypes = list(MOB_ORGANIC, MOB_BEAST)
speak = list("Cherp.","Cherp?","Chirrup.","Cheep!")
speak_emote = list("cheeps")
emote_hear = list("cheeps.")
@@ -226,6 +229,7 @@
name = "\improper chicken"
desc = "Hopefully the eggs are good this season."
gender = FEMALE
mob_biotypes = list(MOB_ORGANIC, MOB_BEAST)
icon_state = "chicken_brown"
icon_living = "chicken_brown"
icon_dead = "chicken_brown_dead"
@@ -18,6 +18,7 @@
density = FALSE
pass_flags = PASSTABLE | PASSMOB
mob_size = MOB_SIZE_SMALL
mob_biotypes = list(MOB_ORGANIC, MOB_BEAST, MOB_REPTILE)
gold_core_spawnable = FRIENDLY_SPAWN
obj_damage = 0
environment_smash = ENVIRONMENT_SMASH_NONE
@@ -21,6 +21,7 @@
ventcrawler = VENTCRAWLER_ALWAYS
pass_flags = PASSTABLE | PASSGRILLE | PASSMOB
mob_size = MOB_SIZE_TINY
mob_biotypes = list(MOB_ORGANIC, MOB_BEAST)
var/body_color //brown, gray and white, leave blank for random
gold_core_spawnable = FRIENDLY_SPAWN
var/chew_probability = 1
@@ -1,6 +1,7 @@
/mob/living/simple_animal/pet
icon = 'icons/mob/pets.dmi'
mob_size = MOB_SIZE_SMALL
mob_biotypes = list(MOB_ORGANIC, MOB_BEAST)
var/obj/item/clothing/neck/petcollar/pcollar
var/collar_type
var/unique_pet = FALSE
@@ -14,6 +14,7 @@
response_help = "pets"
response_disarm = "gently pushes aside"
response_harm = "kicks"
mob_biotypes = list(MOB_ORGANIC, MOB_BEAST)
gold_core_spawnable = FRIENDLY_SPAWN
melee_damage_lower = 18
melee_damage_upper = 18
@@ -30,6 +30,7 @@
density = FALSE
pass_flags = PASSTABLE | PASSMOB
mob_size = MOB_SIZE_SMALL
mob_biotypes = list(MOB_ORGANIC, MOB_BEAST, MOB_REPTILE)
gold_core_spawnable = FRIENDLY_SPAWN
obj_damage = 0
environment_smash = ENVIRONMENT_SMASH_NONE
@@ -10,6 +10,7 @@ GLOBAL_LIST_EMPTY(parasites) //all currently existing/living guardians
desc = "A mysterious being that stands by its charge, ever vigilant."
speak_emote = list("hisses")
gender = NEUTER
mob_biotypes = list(MOB_INORGANIC)
bubble_icon = "guardian"
response_help = "passes through"
response_disarm = "flails at"
@@ -84,4 +84,4 @@
/mob/living/simple_animal/hostile/guardian/dextrous/regenerate_icons()
..()
update_inv_internal_storage()
update_inv_internal_storage()
@@ -6,6 +6,7 @@
icon_living = "bear"
icon_dead = "bear_dead"
icon_gib = "bear_gib"
mob_biotypes = list(MOB_ORGANIC, MOB_BEAST)
speak = list("RAWR!","Rawr!","GRR!","Growl!")
speak_emote = list("growls", "roars")
emote_hear = list("rawrs.","grumbles.","grawls.")
@@ -37,6 +37,7 @@
pass_flags = PASSTABLE | PASSGRILLE | PASSMOB
density = FALSE
mob_size = MOB_SIZE_TINY
mob_biotypes = list(MOB_ORGANIC, MOB_BUG)
movement_type = FLYING
gold_core_spawnable = HOSTILE_SPAWN
search_objects = 1 //have to find those plant trays!
@@ -2,6 +2,7 @@
/mob/living/simple_animal/hostile/boss/paper_wizard
name = "Mjor the Creative"
desc = "A wizard with a taste for the arts."
mob_biotypes = list(MOB_INORGANIC, MOB_HUMANOID)
boss_abilities = list(/datum/action/boss/wizard_summon_minions, /datum/action/boss/wizard_mimic)
faction = list("hostile","stickman")
del_on_death = TRUE
@@ -7,6 +7,7 @@
icon_living = "carp"
icon_dead = "carp_dead"
icon_gib = "carp_gib"
mob_biotypes = list(MOB_ORGANIC, MOB_BEAST)
speak_chance = 0
turns_per_move = 5
butcher_results = list(/obj/item/reagent_containers/food/snacks/carpmeat = 2)
@@ -22,6 +22,7 @@
attacktext = "slashes at"
attack_sound = 'sound/weapons/circsawhit.ogg'
a_intent = INTENT_HARM
mob_biotypes = list(MOB_ORGANIC, MOB_HUMANOID)
loot = list(/obj/effect/mob_spawn/human/corpse/cat_butcher, /obj/item/circular_saw)
atmos_requirements = list("min_oxy" = 5, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 1, "min_co2" = 0, "max_co2" = 5, "min_n2" = 0, "max_n2" = 0)
unsuitable_atmos_damage = 15
@@ -7,6 +7,7 @@
icon_living = "eyeball"
icon_gib = ""
gender = NEUTER
mob_biotypes = list(MOB_ORGANIC)
response_help = "pets"
response_disarm = "gently pushes aside"
response_harm = "hits"
@@ -4,6 +4,7 @@
icon_state = "faithless"
icon_living = "faithless"
icon_dead = "faithless_dead"
mob_biotypes = list(MOB_ORGANIC, MOB_HUMANOID)
gender = MALE
speak_chance = 0
turns_per_move = 5
@@ -22,6 +22,7 @@
icon_state = "guard"
icon_living = "guard"
icon_dead = "guard_dead"
mob_biotypes = list(MOB_ORGANIC, MOB_BUG)
speak_emote = list("chitters")
emote_hear = list("chitters")
speak_chance = 5
@@ -9,6 +9,7 @@
icon_state = "crawling"
icon_living = "crawling"
icon_dead = "dead"
mob_biotypes = list(MOB_ORGANIC, MOB_HUMANOID)
speak_chance = 80
maxHealth = 220
health = 220
@@ -10,6 +10,7 @@
icon_living = "basic"
icon_dead = "basic"
gender = NEUTER
mob_biotypes = list(MOB_ROBOTIC)
health = 15
maxHealth = 15
healable = 0
@@ -496,4 +496,4 @@ mob/living/simple_animal/hostile/proc/DestroySurroundings() // for use with mega
if (isturf(M.loc))
. += M
else if (M.loc.type in hostile_machines)
. += M.loc
. += M.loc
@@ -6,6 +6,7 @@
icon_living = "static"
icon_dead = "null"
gender = NEUTER
mob_biotypes = list()
melee_damage_lower = 5
melee_damage_upper = 5
a_intent = INTENT_HARM
@@ -10,6 +10,7 @@
icon_state = "leaper"
icon_living = "leaper"
icon_dead = "leaper_dead"
mob_biotypes = list(MOB_ORGANIC, MOB_BEAST)
maxHealth = 300
health = 300
ranged = TRUE
@@ -7,6 +7,7 @@
icon_state = "arachnid"
icon_living = "arachnid"
icon_dead = "arachnid_dead"
mob_biotypes = list(MOB_ORGANIC, MOB_BUG)
melee_damage_lower = 30
melee_damage_upper = 30
maxHealth = 300
@@ -13,6 +13,7 @@
icon_state = "mook"
icon_living = "mook"
icon_dead = "mook_dead"
mob_biotypes = list(MOB_ORGANIC, MOB_HUMANOID)
pixel_x = -16
maxHealth = 45
health = 45
@@ -23,6 +23,7 @@
desc = "Death to Nanotrasen. This variant comes in MECHA DEATH flavour."
wanted_objects = list()
search_objects = 0
mob_biotypes = list(MOB_ORGANIC, MOB_HUMANOID)
var/spawn_mecha_type = /obj/mecha/combat/marauder/mauler/loaded
var/obj/mecha/mecha //Ref to pilot's mecha instance
@@ -28,6 +28,7 @@ Difficulty: Medium
icon_state = "miner"
icon_living = "miner"
icon = 'icons/mob/broadMobs.dmi'
mob_biotypes = list(MOB_ORGANIC, MOB_HUMANOID)
light_color = "#E4C7C5"
movement_type = GROUND
speak_emote = list("roars")
@@ -262,4 +263,3 @@ Difficulty: Medium
invisibility = 100
#undef MINER_DASH_RANGE
#undef MEDAL_PREFIX
@@ -398,5 +398,3 @@ Difficulty: Hard
if(istype(mover, /mob/living/simple_animal/hostile/megafauna/bubblegum))
return 1
return 0
#undef MEDAL_PREFIX
@@ -785,5 +785,3 @@ Difficulty: Very Hard
#undef ACTIVATE_MOB_BUMP
#undef ACTIVATE_WEAPON
#undef ACTIVATE_MAGIC
#undef MEDAL_PREFIX
@@ -390,5 +390,3 @@ Difficulty: Medium
/mob/living/simple_animal/hostile/megafauna/dragon/lesser/grant_achievement(medaltype,scoretype)
return
#undef MEDAL_PREFIX
@@ -692,5 +692,3 @@ Difficulty: Hard
gpstag = "Zealous Signal"
desc = "Heed its words."
invisibility = 100
#undef MEDAL_PREFIX
@@ -201,5 +201,3 @@ Difficulty: Medium
playsound(user, 'sound/magic/staff_change.ogg', 200, 0)
A.telegraph()
storm_cooldown = world.time + 200
#undef MEDAL_PREFIX
@@ -6,6 +6,7 @@
a_intent = INTENT_HARM
sentience_type = SENTIENCE_BOSS
environment_smash = ENVIRONMENT_SMASH_RWALLS
mob_biotypes = list(MOB_ORGANIC, MOB_EPIC)
obj_damage = 400
light_range = 3
faction = list("mining", "boss")
@@ -18,8 +19,8 @@
damage_coeff = list(BRUTE = 1, BURN = 0.5, TOX = 1, CLONE = 1, STAMINA = 0, OXY = 1)
minbodytemp = 0
maxbodytemp = INFINITY
aggro_vision_range = 18
vision_range = 5
aggro_vision_range = 18
anchored = TRUE
mob_size = MOB_SIZE_LARGE
layer = LARGE_MOB_LAYER //Looks weird with them slipping under mineral walls and cameras and shit otherwise
@@ -79,15 +80,14 @@
. = ..()
if(. && isliving(target))
var/mob/living/L = target
if(L.stat >= SOFT_CRIT)
if(L.stat != DEAD)
if(!client && ranged && ranged_cooldown <= world.time)
OpenFire()
else if(L.stat >= SOFT_CRIT)
if(vore_active == TRUE && L.devourable == TRUE)
dragon_feeding(src,L)
else if(L.stat == DEAD)
devour(L)
else
if(L.stat != DEAD)
if(!client && ranged && ranged_cooldown <= world.time)
OpenFire()
/mob/living/simple_animal/hostile/megafauna/proc/devour(mob/living/L)
if(!L)
@@ -127,4 +127,4 @@
SSmedals.UnlockMedal("[medaltype] [BOSS_KILL_MEDAL_CRUSHER]", C)
SSmedals.SetScore(BOSS_SCORE, C, 1)
SSmedals.SetScore(score_type, C, 1)
return TRUE
return TRUE
@@ -1,5 +1,3 @@
#define MEDAL_PREFIX "Swarmer Beacon"
/*
Swarmer Beacon
@@ -49,7 +47,8 @@ GLOBAL_LIST_INIT(AISwarmerCapsByType, list(/mob/living/simple_animal/hostile/swa
icon_state = "swarmer_console"
health = 750
maxHealth = 750 //""""low-ish"""" HP because it's a passive boss, and the swarm itself is the real foe
medal_type = MEDAL_PREFIX
mob_biotypes = list(MOB_ROBOTIC)
medal_type = BOSS_MEDAL_SWARMERS
score_type = SWARMER_BEACON_SCORE
faction = list("mining", "boss", "swarmer")
weather_immunities = list("lava","ash")
@@ -292,7 +291,3 @@ GLOBAL_LIST_INIT(AISwarmerCapsByType, list(/mob/living/simple_animal/hostile/swa
desc = "A catwalk-like mesh, produced by swarmers to allow them to navigate hostile terrain."
icon = 'icons/obj/smooth_structures/swarmer_catwalk.dmi'
icon_state = "swarmer_catwalk"
#undef MEDAL_PREFIX
@@ -12,6 +12,7 @@
maxHealth = 250
health = 250
gender = NEUTER
mob_biotypes = list(MOB_INORGANIC)
harm_intent_damage = 5
melee_damage_lower = 8
@@ -8,6 +8,7 @@
icon_aggro = "Basilisk_alert"
icon_dead = "Basilisk_dead"
icon_gib = "syndicate_gib"
mob_biotypes = list(MOB_ORGANIC, MOB_BEAST)
move_to_delay = 20
projectiletype = /obj/item/projectile/temp/basilisk
projectilesound = 'sound/weapons/pierce.ogg'
@@ -5,6 +5,7 @@
icon_state = "curseblob"
icon_living = "curseblob"
icon_aggro = "curseblob"
mob_biotypes = list(MOB_SPIRIT)
movement_type = FLYING
move_to_delay = 5
vision_range = 20
@@ -8,6 +8,7 @@
icon_aggro = "Goldgrub_alert"
icon_dead = "Goldgrub_dead"
icon_gib = "syndicate_gib"
mob_biotypes = list(MOB_ORGANIC, MOB_BEAST)
vision_range = 2
aggro_vision_range = 9
move_to_delay = 5
@@ -8,6 +8,7 @@
icon_aggro = "Goliath_alert"
icon_dead = "Goliath_dead"
icon_gib = "syndicate_gib"
mob_biotypes = list(MOB_ORGANIC, MOB_BEAST)
mouse_opacity = MOUSE_OPACITY_OPAQUE
move_to_delay = 40
ranged = 1
@@ -6,6 +6,7 @@
icon_state = "gutlunch"
icon_living = "gutlunch"
icon_dead = "gutlunch"
mob_biotypes = list(MOB_ORGANIC, MOB_BEAST)
speak_emote = list("warbles", "quavers")
emote_hear = list("trills.")
emote_see = list("sniffs.", "burps.")
@@ -7,6 +7,7 @@
icon_aggro = "Hivelord_alert"
icon_dead = "Hivelord_dead"
icon_gib = "syndicate_gib"
mob_biotypes = list(MOB_ORGANIC)
mouse_opacity = MOUSE_OPACITY_OPAQUE
move_to_delay = 14
ranged = 1
@@ -96,6 +97,7 @@
icon_aggro = "legion"
icon_dead = "legion"
icon_gib = "syndicate_gib"
mob_biotypes = list(MOB_ORGANIC, MOB_HUMANOID)
obj_damage = 60
melee_damage_lower = 15
melee_damage_upper = 15
@@ -39,7 +39,7 @@
for(var/F in RANGE_TURFS(1, src))
if(ismineralturf(F))
var/turf/closed/mineral/M = F
M.ChangeTurf(M.turf_type, null, CHANGETURF_IGNORE_AIR)
M.ScrapeAway(null, CHANGETURF_IGNORE_AIR)
gps = new /obj/item/device/gps/internal(src)
/mob/living/simple_animal/hostile/spawner/lavaland/Destroy()
@@ -6,6 +6,7 @@
icon_living = "nanotrasen"
icon_dead = null
icon_gib = "syndicate_gib"
mob_biotypes = list(MOB_ORGANIC, MOB_HUMANOID)
speak_chance = 12
turns_per_move = 5
response_help = "pokes"
@@ -4,6 +4,7 @@
icon_state = "otherthing"
icon_living = "otherthing"
icon_dead = "otherthing-dead"
mob_biotypes = list(MOB_INORGANIC)
health = 80
maxHealth = 80
obj_damage = 100
@@ -73,6 +74,7 @@
maxHealth = 50
spawn_time = 600 //1 minute
max_mobs = 15
mob_biotypes = list(MOB_INORGANIC)
icon = 'icons/mob/nest.dmi'
spawn_text = "crawls through"
mob_types = list(/mob/living/simple_animal/hostile/netherworld/migo, /mob/living/simple_animal/hostile/netherworld, /mob/living/simple_animal/hostile/netherworld/blankbody)
@@ -5,6 +5,7 @@
icon_state = "piratemelee"
icon_living = "piratemelee"
icon_dead = "piratemelee_dead"
mob_biotypes = list(MOB_ORGANIC, MOB_HUMANOID)
speak_chance = 0
turns_per_move = 5
response_help = "pushes"
@@ -9,6 +9,7 @@
response_help = "brushes aside"
response_disarm = "flails at"
response_harm = "hits"
mob_biotypes = list(MOB_ORGANIC, MOB_BEAST)
speak_chance = 0
maxHealth = 15
health = 15
@@ -6,6 +6,7 @@
icon_living = "clown"
icon_dead = "clown_dead"
icon_gib = "clown_gib"
mob_biotypes = list(MOB_ORGANIC, MOB_HUMANOID)
turns_per_move = 5
response_help = "pokes"
response_disarm = "gently pushes aside"
@@ -4,6 +4,7 @@
icon_state = "frog"
icon_living = "frog"
icon_dead = "frog_dead"
mob_biotypes = list(MOB_ORGANIC, MOB_BEAST)
speak = list("ribbit","croak")
emote_see = list("hops in a circle.", "shakes.")
speak_chance = 1
@@ -4,6 +4,7 @@
icon = 'icons/mob/mob.dmi'
icon_state = "ghost"
icon_living = "ghost"
mob_biotypes = list(MOB_SPIRIT)
speak_chance = 0
turns_per_move = 5
response_help = "passes through"
@@ -5,6 +5,7 @@
icon_living = "old"
icon_dead = "old_dead"
icon_gib = "clown_gib"
mob_biotypes = list(MOB_ORGANIC, MOB_HUMANOID)
gender = MALE
turns_per_move = 5
response_help = "pokes"
@@ -6,6 +6,7 @@
icon_living = "russianmelee"
icon_dead = "russianmelee_dead"
icon_gib = "syndicate_gib"
mob_biotypes = list(MOB_ORGANIC, MOB_HUMANOID)
speak_chance = 0
turns_per_move = 5
response_help = "pokes"
@@ -6,6 +6,7 @@
icon_living = "skeleton"
icon_dead = "skeleton"
gender = NEUTER
mob_biotypes = list(MOB_UNDEAD, MOB_HUMANOID)
turns_per_move = 5
speak_emote = list("rattles")
emote_see = list("rattles")
@@ -9,6 +9,7 @@
icon_dead = "human_male"
gender = NEUTER
a_intent = INTENT_HARM
mob_biotypes = list(MOB_INORGANIC, MOB_HUMANOID)
response_help = "touches"
response_disarm = "pushes"
@@ -5,6 +5,7 @@
icon_living = "stickman"
icon_dead = "stickman_dead"
icon_gib = "syndicate_gib"
mob_biotypes = list(MOB_INORGANIC, MOB_HUMANOID)
gender = MALE
speak_chance = 0
turns_per_move = 5
@@ -49,6 +50,7 @@
icon_state = "stickdog"
icon_living = "stickdog"
icon_dead = "stickdog_dead"
mob_biotypes = list(MOB_INORGANIC, MOB_BEAST)
/mob/living/simple_animal/hostile/stickman/Initialize(mapload, var/wizard_summoned)
. = ..()
@@ -22,6 +22,7 @@
icon_living = "syndicate"
icon_dead = "syndicate_dead"
icon_gib = "syndicate_gib"
mob_biotypes = list(MOB_ORGANIC, MOB_HUMANOID)
speak_chance = 0
turns_per_move = 5
response_help = "pokes"
@@ -162,6 +163,7 @@
icon_living = "viscerator_attack"
pass_flags = PASSTABLE | PASSMOB
a_intent = INTENT_HARM
mob_biotypes = list(MOB_ROBOTIC)
health = 25
maxHealth = 25
melee_damage_lower = 15
@@ -5,6 +5,7 @@
icon_state = "wizard"
icon_living = "wizard"
icon_dead = "wizard_dead"
mob_biotypes = list(MOB_ORGANIC, MOB_HUMANOID)
speak_chance = 0
turns_per_move = 3
response_help = "pokes"
@@ -8,6 +8,7 @@
icon_aggro = "Fugu0"
icon_dead = "Fugu_dead"
icon_gib = "syndicate_gib"
mob_biotypes = list(MOB_ORGANIC, MOB_BEAST)
mouse_opacity = MOUSE_OPACITY_OPAQUE
move_to_delay = 5
friendly = "floats near"
@@ -15,15 +15,15 @@
//Only a maximum of one action and one intent should be active at any given time.
//Actions
#define PARROT_PERCH 1 //Sitting/sleeping, not moving
#define PARROT_SWOOP 2 //Moving towards or away from a target
#define PARROT_WANDER 4 //Moving without a specific target in mind
#define PARROT_PERCH (1<<0) //Sitting/sleeping, not moving
#define PARROT_SWOOP (1<<1) //Moving towards or away from a target
#define PARROT_WANDER (1<<2) //Moving without a specific target in mind
//Intents
#define PARROT_STEAL 8 //Flying towards a target to steal it/from it
#define PARROT_ATTACK 16 //Flying towards a target to attack it
#define PARROT_RETURN 32 //Flying towards its perch
#define PARROT_FLEE 64 //Flying away from its attacker
#define PARROT_STEAL (1<<3) //Flying towards a target to steal it/from it
#define PARROT_ATTACK (1<<4) //Flying towards a target to attack it
#define PARROT_RETURN (1<<5) //Flying towards its perch
#define PARROT_FLEE (1<<6) //Flying away from its attacker
/mob/living/simple_animal/parrot
@@ -6,6 +6,7 @@
icon = 'icons/mob/mob.dmi'
icon_state = "shade"
icon_living = "shade"
mob_biotypes = list(MOB_SPIRIT)
maxHealth = 40
health = 40
spacewalk = TRUE
@@ -32,12 +32,5 @@
return ..(gibbed)
/mob/living/simple_animal/slime/gib()
death(1)
death(TRUE)
qdel(src)
/mob/living/simple_animal/slime/Destroy()
for(var/obj/machinery/computer/camera_advanced/xenobio/X in GLOB.machines)
if(src in X.stored_slimes)
X.stored_slimes -= src
return ..()
@@ -356,7 +356,7 @@
var/hasFound = FALSE //Have we found an extract to be added?
for(var/obj/item/slime_extract/S in P.contents)
if(S.effectmod == effectmod)
P.remove_from_storage(S, get_turf(src))
P.SendSignal(COMSIG_TRY_STORAGE_TAKE, S, get_turf(src), TRUE)
qdel(S)
applied++
hasFound = TRUE