diff --git a/code/datums/status_effects/neutral.dm b/code/datums/status_effects/neutral.dm index 257f69ab80d..065acb9a81a 100644 --- a/code/datums/status_effects/neutral.dm +++ b/code/datums/status_effects/neutral.dm @@ -49,13 +49,23 @@ duration = -1 status_type = STATUS_EFFECT_UNIQUE alert_type = /atom/movable/screen/alert/status_effect/in_love - var/mob/living/date + var/hearts -/datum/status_effect/in_love/on_creation(mob/living/new_owner, mob/living/love_interest) +/datum/status_effect/in_love/on_creation(mob/living/new_owner, mob/living/date) . = ..() - if(.) - date = love_interest - linked_alert.desc = "You're in love with [date.real_name]! How lovely." + if(!.) + return + + linked_alert.desc = "You're in love with [date.real_name]! How lovely." + hearts = WEAKREF(date.add_alt_appearance( + /datum/atom_hud/alternate_appearance/basic/one_person, + "in_love", + image(icon = 'icons/effects/effects.dmi', icon_state = "love_hearts", loc = date), + new_owner, + )) + +/datum/status_effect/in_love/on_remove() + QDEL_NULL(hearts) /datum/status_effect/throat_soothed id = "throat_soothed" diff --git a/code/game/objects/effects/temporary_visuals/miscellaneous.dm b/code/game/objects/effects/temporary_visuals/miscellaneous.dm index 8505730cd56..852868a9991 100644 --- a/code/game/objects/effects/temporary_visuals/miscellaneous.dm +++ b/code/game/objects/effects/temporary_visuals/miscellaneous.dm @@ -403,29 +403,6 @@ pixel_y = rand(8,12) animate(src, pixel_y = pixel_y + 16, alpha = 0, time = duration) -/obj/effect/temp_visual/love_heart - name = "love heart" - icon = 'icons/effects/effects.dmi' - icon_state = "heart" - duration = 25 - -/obj/effect/temp_visual/love_heart/Initialize(mapload) - . = ..() - pixel_x = rand(-10,10) - pixel_y = rand(-10,10) - animate(src, pixel_y = pixel_y + 32, alpha = 0, time = duration) - -/obj/effect/temp_visual/love_heart/invisible - icon_state = null - -/obj/effect/temp_visual/love_heart/invisible/Initialize(mapload, mob/seer) - . = ..() - var/image/I = image(icon = 'icons/effects/effects.dmi', icon_state = "heart", layer = ABOVE_MOB_LAYER, loc = src) - add_alt_appearance(/datum/atom_hud/alternate_appearance/basic/one_person, "heart", I, seer) - I.alpha = 255 - I.appearance_flags = RESET_ALPHA - animate(I, alpha = 0, time = duration) - /obj/effect/temp_visual/bleed name = "bleed" icon = 'icons/effects/bleed.dmi' diff --git a/icons/effects/effects.dmi b/icons/effects/effects.dmi index 9a5874954af..7bdbe698795 100644 Binary files a/icons/effects/effects.dmi and b/icons/effects/effects.dmi differ