mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-22 11:37:40 +01:00
Fixes animal milking runtime
Also simplifies the way milk is generated, since the old way was hacky and runtiming
This commit is contained in:
@@ -23,11 +23,9 @@
|
||||
health = 40
|
||||
melee_damage_lower = 1
|
||||
melee_damage_upper = 5
|
||||
var/datum/reagents/udder = null
|
||||
var/milk_content = 0
|
||||
|
||||
/mob/living/simple_animal/hostile/retaliate/goat/New()
|
||||
udder = new(50)
|
||||
udder.my_atom = src
|
||||
..()
|
||||
|
||||
/mob/living/simple_animal/hostile/retaliate/goat/Life()
|
||||
@@ -42,9 +40,8 @@
|
||||
LoseTarget()
|
||||
src.visible_message("\blue [src] calms down.")
|
||||
|
||||
if(stat == CONSCIOUS)
|
||||
if(udder && prob(5))
|
||||
udder.add_reagent("milk", rand(5, 10))
|
||||
if(stat == CONSCIOUS && prob(5))
|
||||
milk_content = min(50, milk_content+rand(5, 10))
|
||||
|
||||
if(locate(/obj/effect/plant) in loc)
|
||||
var/obj/effect/plant/SV = locate(/obj/effect/plant) in loc
|
||||
@@ -75,12 +72,15 @@
|
||||
/mob/living/simple_animal/hostile/retaliate/goat/attackby(var/obj/item/O as obj, var/mob/user as mob, params)
|
||||
if(stat == CONSCIOUS && istype(O, /obj/item/weapon/reagent_containers/glass))
|
||||
user.changeNext_move(CLICK_CD_MELEE)
|
||||
user.visible_message("<span class='notice'>[user] milks [src] using \the [O].</span>")
|
||||
var/obj/item/weapon/reagent_containers/glass/G = O
|
||||
var/transfered = udder.trans_id_to(G, "milk", rand(5,10))
|
||||
if(G.reagents.total_volume >= G.volume)
|
||||
user << "\red The [O] is full."
|
||||
if(!transfered)
|
||||
var/transfered = min(milk_content, rand(5,10), (G.volume - G.reagents.total_volume))
|
||||
if(transfered > 0)
|
||||
user.visible_message("<span class='notice'>[user] milks [src] using \the [O].</span>")
|
||||
G.reagents.add_reagent("milk", transfered)
|
||||
milk_content -= transfered
|
||||
else if(G.reagents.total_volume >= G.volume)
|
||||
user << "\red \The [O] is full."
|
||||
else
|
||||
user << "\red The udder is dry. Wait a bit longer..."
|
||||
else
|
||||
..()
|
||||
@@ -106,30 +106,31 @@
|
||||
response_harm = "kicks the"
|
||||
attacktext = "kicks"
|
||||
health = 50
|
||||
var/datum/reagents/udder = null
|
||||
var/milk_content = 0
|
||||
|
||||
/mob/living/simple_animal/cow/New()
|
||||
udder = new(50)
|
||||
udder.my_atom = src
|
||||
..()
|
||||
|
||||
/mob/living/simple_animal/cow/attackby(var/obj/item/O as obj, var/mob/user as mob, params, params)
|
||||
if(stat == CONSCIOUS && istype(O, /obj/item/weapon/reagent_containers/glass))
|
||||
user.visible_message("<span class='notice'>[user] milks [src] using \the [O].</span>")
|
||||
user.changeNext_move(CLICK_CD_MELEE)
|
||||
var/obj/item/weapon/reagent_containers/glass/G = O
|
||||
var/transfered = udder.trans_id_to(G, "milk", rand(5,10))
|
||||
if(G.reagents.total_volume >= G.volume)
|
||||
user << "\red The [O] is full."
|
||||
if(!transfered)
|
||||
var/transfered = min(milk_content, rand(5,10), (G.volume - G.reagents.total_volume))
|
||||
if(transfered > 0)
|
||||
user.visible_message("<span class='notice'>[user] milks [src] using \the [O].</span>")
|
||||
G.reagents.add_reagent("milk", transfered)
|
||||
milk_content -= transfered
|
||||
else if(G.reagents.total_volume >= G.volume)
|
||||
user << "\red \The [O] is full."
|
||||
else
|
||||
user << "\red The udder is dry. Wait a bit longer..."
|
||||
else
|
||||
..()
|
||||
|
||||
/mob/living/simple_animal/cow/Life()
|
||||
. = ..()
|
||||
if(stat == CONSCIOUS)
|
||||
if(udder && prob(5))
|
||||
udder.add_reagent("milk", rand(5, 10))
|
||||
if(stat == CONSCIOUS && prob(5))
|
||||
milk_content = min(50, milk_content+rand(5, 10))
|
||||
|
||||
/mob/living/simple_animal/cow/attack_hand(mob/living/carbon/M as mob)
|
||||
if(!stat && M.a_intent == "disarm" && icon_state != icon_dead)
|
||||
|
||||
Reference in New Issue
Block a user