mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-28 15:47:15 +01:00
Adds scavengers for ash walkers. Udder refactoring. Minor typo fixes, etc.
This commit is contained in:
@@ -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!"
|
||||
|
||||
Reference in New Issue
Block a user