// Valentine's Day events // // why are you playing spessmens on valentine's day you wizard // // valentine / candy heart distribution // /datum/round_event_control/valentines name = "Valentines!" holidayID = VALENTINES typepath = /datum/round_event/valentines weight = -1 //forces it to be called, regardless of weight max_occurrences = 1 earliest_start = 0 MINUTES /datum/round_event/valentines/start() ..() for(var/mob/living/carbon/human/H in GLOB.alive_mob_list) H.put_in_hands(new /obj/item/valentine) var/obj/item/storage/backpack/B = locate() in H.contents if(B) new /obj/item/reagent_containers/food/snacks/candyheart(B) new /obj/item/storage/fancy/heart_box(B) var/list/valentines = list() for(var/mob/living/M in GLOB.player_list) if(!M.stat && M.client && M.mind && !HAS_TRAIT(M, TRAIT_NO_MIDROUND_ANTAG)) valentines |= M while(valentines.len) var/mob/living/L = pick_n_take(valentines) if(valentines.len) var/mob/living/date = pick_n_take(valentines) forge_valentines_objective(L, date) forge_valentines_objective(date, L) if(valentines.len && prob(4)) var/mob/living/notgoodenough = pick_n_take(valentines) forge_valentines_objective(notgoodenough, date) else L.mind.add_antag_datum(/datum/antagonist/heartbreaker) /proc/forge_valentines_objective(mob/living/lover,mob/living/date,var/chemLove = FALSE) lover.mind.special_role = "valentine" if (chemLove == TRUE) var/datum/antagonist/valentine/chem/V = new //Changes text and EOG check basically. V.date = date.mind lover.mind.add_antag_datum(V) else var/datum/antagonist/valentine/V = new V.date = date.mind lover.mind.add_antag_datum(V) //These really should be teams but i can't be assed to incorporate third wheels right now /datum/round_event/valentines/announce(fake) priority_announce("It's Valentine's Day! Give a valentine to that special someone!") /obj/item/valentine name = "valentine" desc = "A Valentine's card! Wonder what it says..." icon = 'icons/obj/toy.dmi' icon_state = "sc_Ace of Hearts_syndicate" // shut up var/message = "A generic message of love or whatever." resistance_flags = FLAMMABLE w_class = WEIGHT_CLASS_TINY /obj/item/valentine/Initialize(mapload) message = pick(GLOB.flirts) return ..() /obj/item/valentine/attackby(obj/item/W, mob/user, params) ..() if(istype(W, /obj/item/pen) || istype(W, /obj/item/toy/crayon)) if(!user.is_literate()) to_chat(user, "You scribble illegibly on [src]!") return var/recipient = stripped_input(user, "Who is receiving this valentine?", "To:", null , 20) var/sender = stripped_input(user, "Who is sending this valentine?", "From:", null , 20) if(!user.canUseTopic(src, BE_CLOSE)) return if(recipient && sender) name = "valentine - To: [recipient] From: [sender]" /obj/item/valentine/examine(mob/user) . = ..() if(in_range(user, src) || isobserver(user)) if( !(ishuman(user) || isobserver(user) || hasSiliconAccessInArea(user)) ) user << browse("