Adds scavengers for ash walkers. Udder refactoring. Minor typo fixes, etc.

This commit is contained in:
Cheridan
2016-04-26 13:42:51 -05:00
parent 48ec49969e
commit 8351f0a2fa
4 changed files with 96 additions and 10 deletions
@@ -174,7 +174,7 @@
/mob/living/simple_animal/bot/cleanbot/proc/clean(obj/effect/decal/cleanable/target)
anchored = 1
icon_state = "cleanbot-c"
visible_message("<span class='notice'>[src] begins to clean up [target]</span>")
visible_message("<span class='notice'>[src] begins to clean up [target].</span>")
mode = BOT_CLEANING
spawn(50)
if(mode == BOT_CLEANING)
@@ -25,7 +25,7 @@
melee_damage_upper = 2
environment_smash = 0
stop_automated_movement_when_pulled = 1
var/obj/udder/udder = null
var/obj/item/udder/udder = null
/mob/living/simple_animal/hostile/retaliate/goat/New()
udder = new()
@@ -97,7 +97,7 @@
attacktext = "kicks"
attack_sound = 'sound/weapons/punch1.ogg'
health = 50
var/obj/udder/udder = null
var/obj/item/udder/udder = null
gold_core_spawnable = 2
/mob/living/simple_animal/cow/New()
@@ -272,28 +272,44 @@ var/global/chicken_count = 0
else
SSobj.processing.Remove(src)
/obj/udder
/obj/udder/New()
/obj/item/udder
name = "udder"
/obj/item/udder/New()
reagents = new(50)
reagents.my_atom = src
reagents.add_reagent("milk", 20)
/obj/udder/proc/generateMilk()
/obj/item/udder/proc/generateMilk()
if(prob(5))
reagents.add_reagent("milk", rand(5, 10))
/obj/udder/proc/milkAnimal(obj/O, mob/user)
/obj/item/udder/proc/milkAnimal(obj/O, mob/user)
var/obj/item/weapon/reagent_containers/glass/G = O
if(G.reagents.total_volume >= G.volume)
user << "<span class='danger'>[O] is full.</span>"
return
var/transfered = reagents.trans_id_to(G, "milk", rand(5,10))
var/transfered = reagents.trans_to(O, rand(5,10))
if(transfered)
user.visible_message("[user] milks [src] using \the [O].", "<span class='notice'>You milk [src] using \the [O].</span>")
else
user << "<span class='danger'>The udder is dry. Wait a bit longer...</span>"
/obj/udder/Destroy()
/obj/item/udder/Destroy()
qdel(reagents)
return ..()
/obj/item/udder/scavenger
name = "milksac"
/obj/item/udder/scavenger/New()
reagents = new(50)
reagents.my_atom = src
/obj/item/udder/scavenger/generateMilk()
if(prob(15))
reagents.add_reagent("cream", rand(5, 10))
if(prob(10))
reagents.add_reagent("salglu_solution", rand(5,10))
@@ -733,6 +733,76 @@
icon = 'icons/obj/surgery.dmi'
icon_state = "demon_heart"
//Gutlunches
/mob/living/simple_animal/hostile/asteroid/scavenger/
name = "gutlunch"
desc = "A scavenger that eats raw meat, often found alongside ash walkers. Produces a thick, nutritious milk."
icon_state = "crab"
icon_living = "crab"
icon_dead = "crab_dead"
speak_emote = list("clicks")
emote_hear = list("clicks.")
emote_see = list("clacks.")
density = 0
speak_chance = 1
turns_per_move = 8
environment_smash = 0
move_to_delay = 15
butcher_results = list(/obj/item/weapon/reagent_containers/food/snacks/meat/slab = 1)
response_help = "pets"
response_disarm = "gently pushes aside"
response_harm = "squishes"
friendly = "pinches"
a_intent = "help"
ventcrawler = 2
gold_core_spawnable = 2
stat_attack = 1
gender = MALE
stop_automated_movement = FALSE
stat_exclusive = TRUE
robust_searching = TRUE
search_objects = TRUE
del_on_death = TRUE
loot = list(/obj/effect/decal/cleanable/blood/gibs)
wanted_objects = list(/obj/effect/decal/cleanable/xenoblood/, /obj/effect/decal/cleanable/xenoblood/xgibs, /obj/effect/decal/cleanable/blood/,
/obj/effect/decal/cleanable/blood/gibs/, /obj/effect/decal/cleanable/blood/drip/,/obj/effect/decal/cleanable/trail_holder)
var/obj/item/udder/scavenger/udder = null
/mob/living/simple_animal/hostile/asteroid/scavenger/New()
udder = new()
deathmessage = "[src] is pulped into bugmash."
..()
/mob/living/simple_animal/hostile/asteroid/scavenger/Destroy()
qdel(udder)
udder = null
return ..()
/mob/living/simple_animal/hostile/asteroid/scavenger/attackby(obj/item/O, mob/user, params)
if(stat == CONSCIOUS && istype(O, /obj/item/weapon/reagent_containers/glass))
udder.milkAnimal(O, user)
else
..()
/mob/living/simple_animal/hostile/asteroid/scavenger/AttackingTarget()
if(is_type_in_list(target,wanted_objects)) //we eats
udder.generateMilk()
visible_message("<span class='notice'>[src] slurps up [target].</span>")
qdel(target)
HandleProcreation()
LoseTarget()
..()
/mob/living/simple_animal/hostile/asteroid/scavenger/proc/HandleProcreation()
if(udder.reagents.total_volume == udder.reagents.maximum_volume)
new /mob/living/simple_animal/hostile/asteroid/scavenger/(get_turf(src))
/mob/living/simple_animal/hostile/asteroid/scavenger/female
gender = FEMALE
//Nests
/mob/living/simple_animal/hostile/spawner/lavaland
@@ -168,4 +168,4 @@
/mob/living/simple_animal/hostile/viscerator/New()
..()
deathmessage = "<b>[src]</b> is smashed into pieces!"
deathmessage = "[src] is smashed into pieces!"