mirror of
https://github.com/KabKebab/GS13.git
synced 2026-07-13 17:08:53 +01:00
Merge branch 'master' into sizecode
This commit is contained in:
@@ -0,0 +1,11 @@
|
||||
/datum/crafting_recipe/milking_machine
|
||||
name = "Milking Machine"
|
||||
reqs = list(/obj/item/stack/cable_coil = 5, /obj/item/stack/rods = 2, /obj/item/stack/sheet/cardboard = 1, /obj/item/reagent_containers/glass/beaker = 2, /obj/item/stock_parts/manipulator = 1)
|
||||
result = /obj/item/milking_machine
|
||||
tools = list(TOOL_WELDER, TOOL_SCREWDRIVER, TOOL_WIRECUTTER)
|
||||
category = CAT_MISC
|
||||
|
||||
/datum/crafting_recipe/milking_machine/penis
|
||||
name = "Penis Milking Machine"
|
||||
reqs = list(/obj/item/stack/cable_coil = 5, /obj/item/stack/rods = 1, /obj/item/stack/sheet/cardboard = 1, /obj/item/reagent_containers/glass/beaker/large = 1, /obj/item/stock_parts/manipulator = 1)
|
||||
result = /obj/item/milking_machine/penis
|
||||
@@ -0,0 +1,24 @@
|
||||
/obj/item/clothing/gloves/latexsleeves
|
||||
name = "latex sleeves"
|
||||
desc = "A pair of shiny latex sleeves that covers ones arms."
|
||||
icon_state = "latex"
|
||||
item_state = "latex"
|
||||
icon = 'hyperstation/icons/obj/clothing/gloves.dmi'
|
||||
alternate_worn_icon = 'hyperstation/icons/mobs/gloves.dmi'
|
||||
mutantrace_variation = NO_MUTANTRACE_VARIATION
|
||||
|
||||
/obj/item/clothing/head/dominatrixcap
|
||||
name = "dominatrix cap"
|
||||
desc = "A sign of authority, over the body."
|
||||
icon_state = "dominatrix"
|
||||
item_state = "dominatrix"
|
||||
icon = 'hyperstation/icons/obj/clothing/head.dmi'
|
||||
alternate_worn_icon = 'hyperstation/icons/mobs/head.dmi'
|
||||
mutantrace_variation = NO_MUTANTRACE_VARIATION
|
||||
|
||||
/obj/item/clothing/shoes/highheels
|
||||
name = "high heels"
|
||||
desc = "They make the wearer appear taller, and noisey!"
|
||||
icon_state = "highheels"
|
||||
item_state = "highheels"
|
||||
icon = 'hyperstation/icons/obj/clothing/shoes.dmi'
|
||||
@@ -0,0 +1,83 @@
|
||||
/obj/item/milking_machine
|
||||
icon = 'hyperstation/icons/obj/milking_machine.dmi'
|
||||
name = "milking machine"
|
||||
icon_state = "Off"
|
||||
item_state = "Off"
|
||||
desc = "A pocket sized pump and tubing assembly designed to collect and store products from mammary glands."
|
||||
|
||||
slot_flags = ITEM_SLOT_BELT | ITEM_SLOT_POCKET
|
||||
|
||||
var/on = FALSE
|
||||
var/obj/item/reagent_containers/glass/inserted_item = null
|
||||
|
||||
var/transfer_rate = 0.25 // How much we transfer every 2 seconds
|
||||
var/target_organ = "breasts" // What organ we are transfering from
|
||||
|
||||
/obj/item/milking_machine/examine(mob/user)
|
||||
. = ..()
|
||||
to_chat(user, "<span class='notice'>[src] is currently [on ? "on" : "off"].</span>")
|
||||
if (inserted_item)
|
||||
to_chat(user, "<span class='notice'>[inserted_item] contains [inserted_item.reagents.total_volume]/[inserted_item.reagents.maximum_volume] units</span>")
|
||||
|
||||
/obj/item/milking_machine/attackby(obj/item/W, mob/user, params)
|
||||
add_fingerprint(user)
|
||||
if(istype(W, /obj/item/reagent_containers/glass) && !inserted_item)
|
||||
if(!user.transferItemToLoc(W, src))
|
||||
return ..()
|
||||
inserted_item = W
|
||||
UpdateIcon()
|
||||
else
|
||||
return ..()
|
||||
|
||||
/obj/item/milking_machine/interact(mob/user)
|
||||
if(!isAI(user) && inserted_item)
|
||||
add_fingerprint(user)
|
||||
on = !on
|
||||
if (on)
|
||||
to_chat(user, "<span class='notice'>You turn [src] on.</span>")
|
||||
START_PROCESSING(SSobj, src)
|
||||
else
|
||||
to_chat(user, "<span class='notice'>You turn [src] off.</span>")
|
||||
STOP_PROCESSING(SSobj, src)
|
||||
UpdateIcon()
|
||||
else
|
||||
..()
|
||||
|
||||
/obj/item/milking_machine/proc/UpdateIcon()
|
||||
icon_state = "[on ? "On" : "Off"][inserted_item ? "Beaker" : ""]"
|
||||
item_state = icon_state
|
||||
|
||||
|
||||
/obj/item/milking_machine/AltClick(mob/living/user)
|
||||
add_fingerprint(user)
|
||||
user.put_in_hands(inserted_item)
|
||||
inserted_item = null
|
||||
on = FALSE
|
||||
STOP_PROCESSING(SSobj, src)
|
||||
UpdateIcon()
|
||||
|
||||
/obj/item/milking_machine/process()
|
||||
var/mob/living/carbon/W = loc
|
||||
if (W)
|
||||
var/obj/item/organ/genital/breasts/O = W.getorganslot(target_organ)
|
||||
if (O)
|
||||
if (O.reagents.total_volume >= transfer_rate * 2)
|
||||
if (inserted_item.reagents.total_volume < inserted_item.reagents.maximum_volume)
|
||||
O.reagents.trans_to(inserted_item.reagents, amount = transfer_rate)
|
||||
else
|
||||
to_chat(W, "<span class='notice'>[src] stops pumping. [inserted_item] is full.</span>")
|
||||
on = FALSE
|
||||
STOP_PROCESSING(SSobj, src)
|
||||
UpdateIcon()
|
||||
|
||||
/obj/item/milking_machine/penis
|
||||
name = "penis milking machine"
|
||||
icon_state = "PenisOff"
|
||||
item_state = "PenisOff"
|
||||
desc = "A pocket sized pump and tubing assembly designed to collect and store products from the penis."
|
||||
|
||||
target_organ = "testicles" // Since semen is stored in the balls
|
||||
|
||||
/obj/item/milking_machine/penis/UpdateIcon()
|
||||
icon_state = "Penis[on ? "On" : "Off"][inserted_item ? "Beaker" : ""]"
|
||||
item_state = icon_state
|
||||
@@ -6,4 +6,12 @@
|
||||
|
||||
/obj/item/pen/bluemarker/attack_self(mob/user)
|
||||
user.emote("sniff")
|
||||
to_chat(user, "<span class='notice'>Ahh~ blueberries!</span>")
|
||||
to_chat(user, "<span class='notice'>Ahh~ blueberries!</span>")
|
||||
|
||||
/obj/item/clothing/suit/napoleonic
|
||||
name = "napoleonic uniform"
|
||||
desc = "An heirloom passed down from the Gruber family dynasty."
|
||||
icon_state = "napoleonic"
|
||||
item_state = "napoleonic"
|
||||
body_parts_covered = CHEST|GROIN|ARMS
|
||||
cold_protection = CHEST|GROIN|ARMS
|
||||
|
||||
Reference in New Issue
Block a user