mirror of
https://github.com/Sandstorm-Station/Sandstorm-Station-13.git
synced 2026-08-16 17:57:46 +01:00
133 lines
5.7 KiB
Plaintext
133 lines
5.7 KiB
Plaintext
//i hate these fucking goats but i can't murder them, for i know they will haunt me in my sleep if i do so. so i nerf them instead.
|
|
/obj/item/toy/plush/goatplushie
|
|
name = "strange goat plushie"
|
|
icon = 'sandcode/icons/obj/plushes.dmi'
|
|
icon_state = "goat"
|
|
desc = "Despite its cuddly appearance and plush nature, it will beat you up all the same. Goats never change."
|
|
squeak_override = list('sandcode/sound/items/goatsound.ogg'=1)
|
|
|
|
/obj/item/toy/plush/goatplushie/angry
|
|
icon = 'sandcode/icons/obj/plushes.dmi'
|
|
var/mob/living/carbon/target
|
|
throwforce = 5
|
|
var/cooldown = 0
|
|
var/cooldown_modifier = 20
|
|
|
|
/obj/item/toy/plush/goatplushie/angry/Initialize()
|
|
. = ..()
|
|
START_PROCESSING(SSprocessing, src)
|
|
|
|
/obj/item/toy/plush/goatplushie/angry/process()
|
|
if (prob(25) && !target)
|
|
var/list/targets_to_pick_from = list()
|
|
for(var/mob/living/carbon/C in view(7, src))
|
|
if(considered_alive(C.mind) && !faction_check(list("goat"), C.faction, FALSE))
|
|
targets_to_pick_from += C
|
|
if (!targets_to_pick_from.len)
|
|
return
|
|
target = pick(targets_to_pick_from)
|
|
visible_message("<span class='notice'>[src] stares at [target].</span>")
|
|
if (world.time > cooldown && target)
|
|
ram()
|
|
|
|
/obj/item/toy/plush/goatplushie/angry/proc/ram()
|
|
if(prob((obj_flags & EMAGGED) ? 98:90) && isturf(loc) && considered_alive(target.mind) && !faction_check(list("goat"), target.faction, FALSE))
|
|
throw_at(target, 10, 10)
|
|
visible_message("<span class='danger'>[src] rams [target]!</span>")
|
|
cooldown = world.time + cooldown_modifier
|
|
target = null
|
|
visible_message("<span class='notice'>[src] looks disinterested.</span>")
|
|
|
|
/obj/item/toy/plush/goatplushie/angry/emag_act(mob/user)
|
|
if (obj_flags&EMAGGED)
|
|
visible_message("<span class='notice'>[src] already looks angry enough, you shouldn't anger it more.</span>")
|
|
return
|
|
cooldown_modifier = cooldown_modifier/2 * 0.75
|
|
throwforce = 12.5
|
|
force = 10
|
|
obj_flags |= EMAGGED
|
|
visible_message("<span class='danger'>[src] stares at [user] angrily before going docile.</span>")
|
|
|
|
/obj/item/toy/plush/goatplushie/angry/Destroy()
|
|
STOP_PROCESSING(SSprocessing, src)
|
|
return ..()
|
|
|
|
/obj/item/toy/plush/goatplushie/angry/realgoat
|
|
name = "goat plushie"
|
|
icon = 'sandcode/icons/obj/plushes.dmi'
|
|
icon_state = "realgoat"
|
|
|
|
/obj/item/toy/plush/realgoat
|
|
name = "goat plushie"
|
|
icon = 'sandcode/icons/obj/plushes.dmi'
|
|
desc = "Despite its cuddly appearance and plush nature, it will beat you up all the same... or at least it would if it wasn't a normal plushie."
|
|
icon_state = "realgoat"
|
|
squeak_override = list('sandcode/sound/items/goatsound.ogg'=1)
|
|
|
|
/obj/item/toy/plush/goatplushie/angry/kinggoat
|
|
name = "King Goat Plushie"
|
|
desc = "A plushie depicting the king of all goats."
|
|
icon = 'sandcode/icons/obj/plushes.dmi'
|
|
icon_state = "kinggoat"
|
|
throwforce = 8
|
|
force = 8
|
|
attack_verb = list("chomped")
|
|
gender = MALE
|
|
|
|
/obj/item/toy/plush/goatplushie/angry/kinggoat/ascendedkinggoat
|
|
name = "Ascended King Goat Plushie"
|
|
desc = "A plushie depicting the god of all goats."
|
|
icon = 'sandcode/icons/obj/plushes.dmi'
|
|
icon_state = "ascendedkinggoat"
|
|
throwforce = 10
|
|
force = 10
|
|
var/divine = TRUE
|
|
|
|
/obj/item/toy/plush/goatplushie/angry/kinggoat/ascendedkinggoat/attackby(obj/item/I,mob/living/user,params)
|
|
if(I.get_sharpness())
|
|
user.visible_message("<span class='notice'>[user] attempts to destroy [src]!</span>", "<span class='suicide'>[I] bounces off [src]'s back before breaking into millions of pieces... [src] glares at [user]!</span>") // You fucked up now son
|
|
I.play_tool_sound(src)
|
|
qdel(I)
|
|
user.gib()
|
|
|
|
/obj/item/toy/plush/goatplushie/angry/kinggoat/attackby(obj/item/I,mob/living/user,params)
|
|
if(I.get_sharpness())
|
|
user.visible_message("<span class='notice'>[user] rips [src] to shreds!</span>", "<span class='notice'>[src]'s death has attracted the attention of the king goat plushie guards!</span>")
|
|
I.play_tool_sound(src)
|
|
qdel(src)
|
|
var/turf/location = get_turf(user)
|
|
new/obj/item/toy/plush/goatplushie/angry/guardgoat/masterguardgoat(location)
|
|
new/obj/item/toy/plush/goatplushie/angry/guardgoat/masterguardgoat(location)
|
|
new/obj/item/toy/plush/goatplushie/angry/guardgoat/masterguardgoat(location)
|
|
new/obj/item/toy/plush/goatplushie/angry/guardgoat/masterguardgoat(location)
|
|
new/obj/item/toy/plush/goatplushie/angry/guardgoat(location)
|
|
new/obj/item/toy/plush/goatplushie/angry/guardgoat(location)
|
|
new/obj/item/toy/plush/goatplushie/angry/guardgoat(location)
|
|
new/obj/item/toy/plush/goatplushie/angry/guardgoat(location)
|
|
new/obj/item/toy/plush/goatplushie/angry/guardgoat(location)
|
|
new/obj/item/toy/plush/goatplushie/angry/guardgoat(location)
|
|
new/obj/item/toy/plush/goatplushie/angry/guardgoat(location)
|
|
new/obj/item/toy/plush/goatplushie/angry/guardgoat(location)
|
|
if(istype(I, /obj/item/reagent_containers/food/snacks/grown/cabbage))
|
|
user.visible_message("<span class='notice'>[user] watches as [src] takes a bite out of the cabbage!</span>", "<span class='notice'>[src]'s fur starts glowing. It seems they have ascended!</span>")
|
|
playsound(src, 'sound/items/eatfood.ogg', 50, 1)
|
|
qdel(I)
|
|
qdel(src)
|
|
var/turf/location = get_turf(user)
|
|
new/obj/item/toy/plush/goatplushie/angry/kinggoat/ascendedkinggoat(location)
|
|
|
|
|
|
/obj/item/toy/plush/goatplushie/angry/guardgoat
|
|
name = "guard goat plushie"
|
|
desc = "A plushie depicting one of the King Goat's guards, tasked to protect the king at all costs."
|
|
icon = 'sandcode/icons/obj/plushes.dmi'
|
|
icon_state = "guardgoat"
|
|
throwforce = 6
|
|
|
|
/obj/item/toy/plush/goatplushie/angry/guardgoat/masterguardgoat
|
|
name = "royal guard goat plushie"
|
|
desc = "A plushie depicting one of the royal King Goat's guards, tasked to protecting the king at all costs and training new goat guards."
|
|
icon = 'sandcode/icons/obj/plushes.dmi'
|
|
icon_state = "royalguardgoat"
|
|
throwforce = 7
|