mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-20 18:47:20 +01:00
55 lines
2.5 KiB
Plaintext
55 lines
2.5 KiB
Plaintext
/obj/effect/mob_spawn/human/demonic_friend
|
|
name = "Essence of friendship"
|
|
desc = "Oh boy! Oh boy! A friend!"
|
|
mob_name = "Demonic friend"
|
|
icon = 'icons/obj/cardboard_cutout.dmi'
|
|
icon_state = "cutout_basic"
|
|
outfit = /datum/outfit/demonic_friend
|
|
death = FALSE
|
|
roundstart = FALSE
|
|
random = TRUE
|
|
id_job = "SuperFriend"
|
|
id_access = "assistant"
|
|
var/obj/effect/proc_holder/spell/targeted/summon_friend/spell
|
|
var/datum/mind/owner
|
|
assignedrole = "SuperFriend"
|
|
|
|
/obj/effect/mob_spawn/human/demonic_friend/Initialize(mapload, datum/mind/owner_mind, obj/effect/proc_holder/spell/targeted/summon_friend/summoning_spell)
|
|
. = ..()
|
|
owner = owner_mind
|
|
description = "Be someone's loyal friend/slave. If they die, you die as well." //best I could think of in the moment, not sure how this role plays in practise, have never seen it.
|
|
flavour_text = "You have been given a reprieve from your eternity of torment, to be [owner.name]'s friend for [owner.p_their()] short mortal coil. Be aware that if you do not live up to [owner.name]'s expectations, [owner.p_they()] can send you back to hell with a single thought. [owner.name]'s death will also return you to hell."
|
|
var/area/A = get_area(src)
|
|
if(!mapload && A)
|
|
notify_ghosts("\A friendship shell has been completed in \the [A.name].", source = src, action=NOTIFY_ATTACK, flashwindow = TRUE)
|
|
objectives = "Be [owner.name]'s friend, and keep [owner.name] alive, so you don't get sent back to hell."
|
|
spell = summoning_spell
|
|
|
|
|
|
/obj/effect/mob_spawn/human/demonic_friend/special(mob/living/L)
|
|
if(!QDELETED(owner.current) && owner.current.stat != DEAD)
|
|
L.real_name = "[owner.name]'s best friend"
|
|
L.name = L.real_name
|
|
soullink(/datum/soullink/oneway/devilfriend, owner.current, L)
|
|
spell.friend = L
|
|
spell.charge_counter = spell.charge_max
|
|
L.mind.hasSoul = FALSE
|
|
var/mob/living/carbon/human/H = L
|
|
var/obj/item/worn = H.wear_id
|
|
var/obj/item/card/id/id = worn.GetID()
|
|
id.registered_name = L.real_name
|
|
id.update_label()
|
|
to_chat(owner.current, "<span class='notice'>Your friend has arrived!</span>")
|
|
else
|
|
to_chat(L, "<span class='userdanger'>Your owner is already dead! You will soon perish.</span>")
|
|
addtimer(CALLBACK(L, /mob.proc/dust), 150) //Give em a few seconds as a mercy.
|
|
|
|
/datum/outfit/demonic_friend
|
|
name = "Demonic Friend"
|
|
uniform = /obj/item/clothing/under/assistantformal
|
|
shoes = /obj/item/clothing/shoes/laceup
|
|
r_pocket = /obj/item/radio/off
|
|
back = /obj/item/storage/backpack
|
|
implants = list(/obj/item/implant/mindshield) //No revolutionaries, he's MY friend.
|
|
id = /obj/item/card/id
|