Advertisement
Guest User

Untitled

a guest
Oct 23rd, 2019
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.78 KB | None | 0 0
  1. /obj/item/reagent_containers/food/snacks/lollipop
  2.     name = "lollipop"
  3.     desc = "A delicious lollipop. Makes for a great Valentine's present."
  4.     icon = 'icons/obj/lollipop.dmi'
  5.     icon_state = "lollipop_stick"
  6.     item_state = "lollipop_stick"
  7.     slot_flags = ITEM_SLOT_MASK
  8.     list_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 1, /datum/reagent/iron = 10, /datum/reagent/consumable/sugar = 5, /datum/reagent/medicine/omnizine = 2) //Honk
  9.     var/mutable_appearance/head
  10.     var/headcolor = rgb(0, 0, 0)
  11.     var/succ_dur = 180
  12.     var/succ_int = 100
  13.     var/next_succ = 0
  14.     tastes = list("candy" = 1)
  15.     foodtype = JUNKFOOD | SUGAR
  16.  
  17. /obj/item/reagent_containers/food/snacks/lollipop/Initialize()
  18.     . = ..()
  19.     head = mutable_appearance('icons/obj/lollipop.dmi', "lollipop_head")
  20.     change_head_color(rgb(rand(0, 255), rand(0, 255), rand(0, 255)))
  21.  
  22.     //makes lollipops actually wearable as masks and still edible the old fashioned way.
  23. /obj/item/reagent_containers/food/snacks/lollipop/proc/handle_reagents()
  24.     if(reagents.total_volume)
  25.         if(iscarbon(loc))
  26.             var/mob/living/carbon/C = loc
  27.             if (src == C.wear_mask) // if it's in the human/monkey mouth, transfer reagents to the mob
  28.                 var/fraction = min(REAGENTS_METABOLISM/reagents.total_volume, 1)
  29.                 reagents.reaction(C, INGEST, fraction)
  30.                 if(!reagents.trans_to(C, REAGENTS_METABOLISM))
  31.                     reagents.remove_any(REAGENTS_METABOLISM)
  32.                 return
  33.         reagents.remove_any(REAGENTS_METABOLISM)
  34.  
  35. /obj/item/reagent_containers/food/snacks/lollipop/process()
  36.     if(iscarbon(loc))
  37.         if(succ_dur < 1)
  38.             qdel(src)
  39.             return
  40.         succ_dur--
  41.         if((reagents && reagents.total_volume) && (next_succ <= world.time))
  42.             handle_reagents()
  43.             next_succ = world.time + succ_int
  44.  
  45. /obj/item/reagent_containers/food/snacks/lollipop/equipped(mob/user, slot)
  46.     . = ..()
  47.     if(slot == SLOT_WEAR_MASK)
  48.         START_PROCESSING(SSobj, src)
  49.     else
  50.         STOP_PROCESSING(SSobj, src)
  51.  
  52. /obj/item/reagent_containers/food/snacks/lollipop/Destroy()
  53.     STOP_PROCESSING(SSobj, src)
  54.     . = ..()
  55.  
  56. /obj/item/reagent_containers/food/snacks/lollipop/proc/change_head_color(C)
  57.     headcolor = C
  58.     cut_overlay(head)
  59.     head.color = C
  60.     add_overlay(head)
  61.  
  62. /obj/item/reagent_containers/food/snacks/lollipop/throw_impact(atom/hit_atom, datum/thrownthing/throwingdatum)
  63.     ..(hit_atom)
  64.     throw_speed = 1
  65.     throwforce = 0
  66.  
  67. /obj/item/reagent_containers/food/snacks/lollipop/cyborg
  68.     var/spamchecking = TRUE
  69.  
  70. /obj/item/reagent_containers/food/snacks/lollipop/cyborg/Initialize()
  71.     . = ..()
  72.     addtimer(CALLBACK(src, .proc/spamcheck), 1200)
  73.  
  74. /obj/item/reagent_containers/food/snacks/lollipop/cyborg/equipped(mob/living/user, slot)
  75.     . = ..(user, slot)
  76.     spamchecking = FALSE
  77.  
  78. /obj/item/reagent_containers/food/snacks/lollipop/cyborg/proc/spamcheck()
  79.     if(spamchecking)
  80.         qdel(src)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement