here we go again (#2456)

This commit is contained in:
LetterJay
2017-08-24 21:24:25 -05:00
committed by kevinz000
parent c7ed043fd5
commit 188193eb61
1107 changed files with 25420 additions and 25417 deletions
+1 -1
View File
@@ -57,7 +57,7 @@ GLOBAL_LIST_EMPTY(cock_shapes_icons) //Associated list for names->icon_states fo
GLOBAL_LIST_EMPTY(breasts_size_list)
GLOBAL_LIST_EMPTY(breasts_shapes_list)
GLOBAL_LIST_EMPTY(vagina_shapes_list)
GLOBAL_LIST_INIT(cum_into_containers_list, list(/obj/item/weapon/reagent_containers/food/snacks/pie)) //Yer fuggin snowflake name list jfc
GLOBAL_LIST_INIT(cum_into_containers_list, list(/obj/item/reagent_containers/food/snacks/pie)) //Yer fuggin snowflake name list jfc
GLOBAL_LIST_INIT(dick_nouns, list("dick","cock","member","shaft"))
GLOBAL_LIST_INIT(cum_id_list,"semen")
GLOBAL_LIST_INIT(milk_id_list,"milk")
+5 -5
View File
@@ -287,7 +287,7 @@
setArousalLoss(min_arousal)
/mob/living/carbon/human/proc/mob_fill_container(obj/item/organ/genital/G, obj/item/weapon/reagent_containers/container, mb_time = 30) //For beaker-filling, beware the bartender
/mob/living/carbon/human/proc/mob_fill_container(obj/item/organ/genital/G, obj/item/reagent_containers/container, mb_time = 30) //For beaker-filling, beware the bartender
var/total_fluids = 0
var/datum/reagents/fluid_source = null
@@ -368,11 +368,11 @@
return input(src, "With whom?", "Sexual partner", null) in partners //pick one, default to null
/mob/living/carbon/human/proc/pick_climax_container()
var/obj/item/weapon/reagent_containers/SC = null
var/obj/item/reagent_containers/SC = null
var/list/containers_list = list()
for(var/obj/item/weapon/reagent_containers/container in held_items)
if(container.is_open_container() || istype(container, /obj/item/weapon/reagent_containers/food/snacks))
for(var/obj/item/reagent_containers/container in held_items)
if(container.is_open_container() || istype(container, /obj/item/reagent_containers/food/snacks))
containers_list += container
if(containers_list.len)
@@ -530,7 +530,7 @@
picked_organ = pick_climax_genitals() //Gotta be climaxable, not just masturbation, to fill with fluids.
if(picked_organ)
//Good, got an organ, time to pick a container
var/obj/item/weapon/reagent_containers/fluid_container = pick_climax_container()
var/obj/item/reagent_containers/fluid_container = pick_climax_container()
if(fluid_container)
mob_fill_container(picked_organ, fluid_container)
return
+2 -2
View File
@@ -1,6 +1,6 @@
//Will include consumable gene mods in the future.
/obj/item/weapon/genemod
/obj/item/genemod
name = "genetic modifier"
desc = "Microbodies which can grow, morph, or otherwise change an organism into something else."
icon = 'icons/obj/items.dmi'
@@ -18,5 +18,5 @@
var/used = 0
/obj/item/weapon/genemod/proc/use(mob/living/carbon/human/target)
/obj/item/genemod/proc/use(mob/living/carbon/human/target)
return
+5 -5
View File
@@ -1,4 +1,4 @@
/obj/item/weapon/gun/energy/laser/carbine
/obj/item/gun/energy/laser/carbine
name = "laser carbine"
desc = "A ruggedized laser carbine featuring much higher capacity and improved handling when compared to a normal laser gun."
icon = 'icons/obj/guns/cit_guns.dmi'
@@ -8,13 +8,13 @@
force = 10
throwforce = 10
ammo_type = list(/obj/item/ammo_casing/energy/lasergun)
cell_type = /obj/item/weapon/stock_parts/cell/lascarbine
cell_type = /obj/item/stock_parts/cell/lascarbine
resistance_flags = FIRE_PROOF | ACID_PROOF
/obj/item/weapon/gun/energy/laser/carbine/nopin
/obj/item/gun/energy/laser/carbine/nopin
pin = null
/obj/item/weapon/stock_parts/cell/lascarbine
/obj/item/stock_parts/cell/lascarbine
name = "laser carbine power supply"
maxcharge = 2500
@@ -25,5 +25,5 @@
req_tech = list("combat" = 5, "magnets" = 5, "powerstorage" = 4)
build_type = PROTOLATHE
materials = list(MAT_GOLD = 2500, MAT_METAL = 5000, MAT_GLASS = 5000)
build_path = /obj/item/weapon/gun/energy/laser/carbine/nopin
build_path = /obj/item/gun/energy/laser/carbine/nopin
category = list("Weapons")
+11 -11
View File
@@ -13,15 +13,15 @@
/obj/item/clothing/under/maid = 5,
/obj/item/clothing/under/stripper_pink = 5,
/obj/item/clothing/under/stripper_green = 5,
/obj/item/weapon/dildo/custom = 5
/obj/item/dildo/custom = 5
)
contraband = list(/obj/item/weapon/restraints/handcuffs/fake/kinky = 5,
contraband = list(/obj/item/restraints/handcuffs/fake/kinky = 5,
/obj/item/clothing/neck/petcollar = 5,
/obj/item/clothing/under/mankini = 1,
/obj/item/weapon/dildo/flared/huge = 1
/obj/item/dildo/flared/huge = 1
)
premium = list()
refill_canister = /obj/item/weapon/vending_refill/kink
refill_canister = /obj/item/vending_refill/kink
/obj/machinery/vending/nazivend
name = "Nazivend"
@@ -42,11 +42,11 @@
/obj/item/clothing/suit/officercoat = 10,
/obj/item/clothing/under/officeruniform = 10,
/obj/item/clothing/suit/space/hardsuit/nazi = 3,
/obj/item/weapon/gun/energy/plasma/MP40k = 4
/obj/item/gun/energy/plasma/MP40k = 4
)
premium = list()
refill_canister = /obj/item/weapon/vending_refill/nazi
refill_canister = /obj/item/vending_refill/nazi
/obj/machinery/vending/sovietvend
name = "KomradeVendtink"
@@ -70,11 +70,11 @@
/obj/item/clothing/suit/russofurcoat = 4,
/obj/item/clothing/head/russofurhat = 4,
/obj/item/clothing/suit/space/hardsuit/soviet = 3,
/obj/item/weapon/gun/energy/laser/LaserAK = 4
/obj/item/gun/energy/laser/LaserAK = 4
)
premium = list()
refill_canister = /obj/item/weapon/vending_refill/soviet
refill_canister = /obj/item/vending_refill/soviet
#undef STANDARD_CHARGE
@@ -82,19 +82,19 @@
#undef COIN_CHARGE
/obj/item/weapon/vending_refill/kink
/obj/item/vending_refill/kink
machine_name = "KinkMate"
icon_state = "refill_kink"
charges = list(8, 5, 0)// of 20 standard, 12 contraband, 0 premium
init_charges = list(8, 5, 0)
/obj/item/weapon/vending_refill/nazi
/obj/item/vending_refill/nazi
machine_name = "nazivend"
icon_state = "refill_nazi"
charges = list(33, 13, 0)
init_charges = list(33, 13, 0)
/obj/item/weapon/vending_refill/soviet
/obj/item/vending_refill/soviet
machine_name = "sovietvend"
icon_state = "refill_soviet"
charges = list(47, 7, 0)
+34 -34
View File
@@ -1,42 +1,42 @@
/obj/item/weapon/robot_module/loader
/obj/item/robot_module/loader
name = "loader robot module"
/obj/item/weapon/robot_module/loader/New()
/obj/item/robot_module/loader/New()
..()
emag = new /obj/item/borg/stun(src)
modules += new /obj/item/weapon/extinguisher(src)
modules += new /obj/item/weapon/weldingtool/largetank/cyborg(src)
modules += new /obj/item/weapon/screwdriver(src)
modules += new /obj/item/weapon/wrench(src)
modules += new /obj/item/weapon/crowbar(src)
modules += new /obj/item/weapon/wirecutters(src)
modules += new /obj/item/extinguisher(src)
modules += new /obj/item/weldingtool/largetank/cyborg(src)
modules += new /obj/item/screwdriver(src)
modules += new /obj/item/wrench(src)
modules += new /obj/item/crowbar(src)
modules += new /obj/item/wirecutters(src)
modules += new /obj/item/device/multitool(src)
modules += new /obj/item/device/t_scanner(src)
modules += new /obj/item/device/analyzer(src)
modules += new /obj/item/device/assembly/signaler
modules += new /obj/item/weapon/soap/nanotrasen(src)
modules += new /obj/item/soap/nanotrasen(src)
fix_modules()
/obj/item/weapon/robot_module/k9
/obj/item/robot_module/k9
name = "Security K-9 Unit module"
/obj/item/weapon/robot_module/k9/New()
/obj/item/robot_module/k9/New()
..()
modules += new /obj/item/weapon/restraints/handcuffs/cable/zipties/cyborg/dog(src)
modules += new /obj/item/weapon/dogborg/jaws/big(src)
modules += new /obj/item/weapon/dogborg/pounce(src)
modules += new /obj/item/restraints/handcuffs/cable/zipties/cyborg/dog(src)
modules += new /obj/item/dogborg/jaws/big(src)
modules += new /obj/item/dogborg/pounce(src)
modules += new /obj/item/clothing/mask/gas/sechailer/cyborg(src)
modules += new /obj/item/weapon/soap/tongue(src)
modules += new /obj/item/soap/tongue(src)
modules += new /obj/item/device/analyzer/nose(src)
modules += new /obj/item/weapon/storage/bag/borgdelivery(src)
modules += new /obj/item/storage/bag/borgdelivery(src)
//modules += new /obj/item/device/assembly/signaler(src)
//modules += new /obj/item/device/detective_scanner(src)
modules += new /obj/item/weapon/gun/energy/disabler/cyborg(src)
emag = new /obj/item/weapon/gun/energy/laser/cyborg(src)
modules += new /obj/item/gun/energy/disabler/cyborg(src)
emag = new /obj/item/gun/energy/laser/cyborg(src)
fix_modules()
/obj/item/weapon/robot_module/security/respawn_consumable(mob/living/silicon/robot/R, coeff = 1)
/obj/item/robot_module/security/respawn_consumable(mob/living/silicon/robot/R, coeff = 1)
..()
var/obj/item/weapon/gun/energy/gun/advtaser/cyborg/T = locate(/obj/item/weapon/gun/energy/gun/advtaser/cyborg) in get_usable_modules()
var/obj/item/gun/energy/gun/advtaser/cyborg/T = locate(/obj/item/gun/energy/gun/advtaser/cyborg) in get_usable_modules()
if(T)
if(T.power_supply.charge < T.power_supply.maxcharge)
var/obj/item/ammo_casing/energy/S = T.ammo_type[T.select]
@@ -46,31 +46,31 @@
T.charge_tick = 0
fix_modules()
/obj/item/weapon/robot_module/borgi
/obj/item/robot_module/borgi
name = "Borgi module"
/obj/item/weapon/robot_module/borgi/New()
/obj/item/robot_module/borgi/New()
..()
modules += new /obj/item/weapon/dogborg/jaws/small(src)
modules += new /obj/item/weapon/storage/bag/borgdelivery(src)
modules += new /obj/item/weapon/soap/tongue(src)
modules += new /obj/item/dogborg/jaws/small(src)
modules += new /obj/item/storage/bag/borgdelivery(src)
modules += new /obj/item/soap/tongue(src)
modules += new /obj/item/device/healthanalyzer(src)
modules += new /obj/item/device/analyzer/nose(src)
emag = new /obj/item/weapon/dogborg/pounce(src)
emag = new /obj/item/dogborg/pounce(src)
fix_modules()
/obj/item/weapon/robot_module/medihound
/obj/item/robot_module/medihound
name = "MediHound module"
/obj/item/weapon/robot_module/medihound/New()
/obj/item/robot_module/medihound/New()
..()
modules += new /obj/item/weapon/dogborg/jaws/small(src)
modules += new /obj/item/weapon/storage/bag/borgdelivery(src)
modules += new /obj/item/dogborg/jaws/small(src)
modules += new /obj/item/storage/bag/borgdelivery(src)
modules += new /obj/item/device/analyzer/nose(src)
modules += new /obj/item/weapon/soap/tongue(src)
modules += new /obj/item/soap/tongue(src)
modules += new /obj/item/device/healthanalyzer(src)
modules += new /obj/item/weapon/dogborg/sleeper(src)
modules += new /obj/item/weapon/twohanded/shockpaddles/hound(src)
modules += new /obj/item/dogborg/sleeper(src)
modules += new /obj/item/twohanded/shockpaddles/hound(src)
modules += new /obj/item/device/sensor_device(src)
emag = new /obj/item/weapon/dogborg/pounce(src)
emag = new /obj/item/dogborg/pounce(src)
fix_modules()
+30 -30
View File
@@ -1,4 +1,4 @@
/obj/item/weapon/dogborg/jaws/big
/obj/item/dogborg/jaws/big
name = "combat jaws"
icon = 'icons/mob/dogborg.dmi'
icon_state = "jaws"
@@ -11,7 +11,7 @@
w_class = 3
sharpness = IS_SHARP
/obj/item/weapon/dogborg/jaws/small
/obj/item/dogborg/jaws/small
name = "puppy jaws"
icon = 'icons/mob/dogborg.dmi'
icon_state = "smalljaws"
@@ -25,11 +25,11 @@
sharpness = IS_SHARP
var/emagged = 0
/obj/item/weapon/dogborg/jaws/attack(atom/A, mob/living/silicon/robot/user)
/obj/item/dogborg/jaws/attack(atom/A, mob/living/silicon/robot/user)
..()
user.do_attack_animation(A, ATTACK_EFFECT_BITE)
/obj/item/weapon/dogborg/jaws/small/attack_self(mob/user)
/obj/item/dogborg/jaws/small/attack_self(mob/user)
var/mob/living/silicon/robot.R = user
if(R.emagged)
emagged = !emagged
@@ -62,14 +62,14 @@
//Cuffs
/obj/item/weapon/restraints/handcuffs/cable/zipties/cyborg/dog/attack(mob/living/carbon/C, mob/user)
/obj/item/restraints/handcuffs/cable/zipties/cyborg/dog/attack(mob/living/carbon/C, mob/user)
if(!C.handcuffed)
playsound(loc, 'sound/weapons/cablecuff.ogg', 30, 1, -2)
C.visible_message("<span class='danger'>[user] is trying to put zipties on [C]!</span>", \
"<span class='userdanger'>[user] is trying to put zipties on [C]!</span>")
if(do_mob(user, C, 30))
if(!C.handcuffed)
C.handcuffed = new /obj/item/weapon/restraints/handcuffs/cable/zipties/used(C)
C.handcuffed = new /obj/item/restraints/handcuffs/cable/zipties/used(C)
C.update_inv_handcuffed(0)
to_chat(user,"<span class='notice'>You handcuff [C].</span>")
playsound(loc, pick('sound/voice/bgod.ogg', 'sound/voice/biamthelaw.ogg', 'sound/voice/bsecureday.ogg', 'sound/voice/bradio.ogg', 'sound/voice/binsult.ogg', 'sound/voice/bcreep.ogg'), 50, 0)
@@ -149,7 +149,7 @@
//Delivery
/obj/item/weapon/storage/bag/borgdelivery
/obj/item/storage/bag/borgdelivery
name = "fetching storage"
desc = "Fetch the thing!"
icon = 'icons/mob/dogborg.dmi'
@@ -161,12 +161,12 @@
storage_slots = 1
collection_mode = 0
can_hold = list() // any
cant_hold = list(/obj/item/weapon/disk/nuclear)
cant_hold = list(/obj/item/disk/nuclear)
//Tongue stuff
/obj/item/weapon/soap/tongue
/obj/item/soap/tongue
name = "synthetic tongue"
desc = "Useful for slurping mess off the floor before affectionally licking the crew members in the face."
icon = 'icons/mob/dogborg.dmi'
@@ -175,7 +175,7 @@
cleanspeed = 80
var/emagged = 0
/obj/item/weapon/soap/tongue/New()
/obj/item/soap/tongue/New()
..()
flags_1 |= NOBLUDGEON_1 //No more attack messages
@@ -185,7 +185,7 @@
icon = 'icons/mob/dogborg.dmi'
icon_state= "kibble"
/obj/item/weapon/soap/tongue/attack_self(mob/user)
/obj/item/soap/tongue/attack_self(mob/user)
var/mob/living/silicon/robot.R = user
if(R.emagged)
emagged = !emagged
@@ -203,7 +203,7 @@
cleanspeed = 80
update_icon()
/obj/item/weapon/soap/tongue/afterattack(atom/target, mob/user, proximity)
/obj/item/soap/tongue/afterattack(atom/target, mob/user, proximity)
if(!proximity || !check_allowed_items(target))
return
if(user.client && (target in user.client.screen))
@@ -228,14 +228,14 @@
var/mob/living/silicon/robot.R = user
R.cell.give(250)
return
if(istype(target,/obj/item/weapon/stock_parts/cell))
if(istype(target,/obj/item/stock_parts/cell))
user.visible_message("[user] begins cramming \the [target.name] down its throat.", "<span class='warning'>You begin cramming \the [target.name] down your throat...</span>")
if(do_after(user, 50, target = target))
if(!in_range(src, target)) //Proximity is probably old news by now, do a new check.
return //If they moved away, you can't eat them.
to_chat(user, "<span class='notice'>You finish off \the [target.name].</span>")
var/mob/living/silicon/robot.R = user
var/obj/item/weapon/stock_parts/cell.C = target
var/obj/item/stock_parts/cell.C = target
R.cell.charge = R.cell.charge + (C.charge / 3) //Instant full cell upgrades op idgaf
qdel(target)
return
@@ -298,7 +298,7 @@
//Defibs
/obj/item/weapon/twohanded/shockpaddles/hound
/obj/item/twohanded/shockpaddles/hound
name = "defibrillator paws"
desc = "MediHound specific shock paws."
icon = 'icons/mob/dogborg.dmi'
@@ -307,7 +307,7 @@
req_defib = 0
wielded = 1
/obj/item/weapon/twohanded/shockpaddles/hound/attack(mob/M, mob/user)
/obj/item/twohanded/shockpaddles/hound/attack(mob/M, mob/user)
var/mob/living/silicon/robot.R = user
if(R.cell.charge < 1000)
user.visible_message("<span class='warning'>You don't have enough charge for this operation!</span class>")
@@ -336,17 +336,17 @@
var/eject_port = "ingestion"
var/list/items_preserved = list()
var/list/important_items = list(
/obj/item/weapon/hand_tele,
/obj/item/weapon/card/id/captains_spare,
/obj/item/hand_tele,
/obj/item/card/id/captains_spare,
/obj/item/device/aicard,
/obj/item/device/paicard,
/obj/item/weapon/gun,
/obj/item/weapon/pinpointer,
/obj/item/gun,
/obj/item/pinpointer,
/obj/item/clothing/shoes/magboots,
/obj/item/clothing/head/helmet/space,
/obj/item/clothing/suit/space,
/obj/item/weapon/reagent_containers/hypospray/CMO,
/obj/item/weapon/tank/jetpack/oxygen/captain,
/obj/item/reagent_containers/hypospray/CMO,
/obj/item/tank/jetpack/oxygen/captain,
/obj/item/clothing/accessory/medal/gold/captain,
/obj/item/clothing/suit/armor,
/obj/item/documents,
@@ -354,7 +354,7 @@
/obj/item/nuke_core_container,
/obj/item/areaeditor/blueprints,
/obj/item/documents/syndicate,
/obj/item/weapon/disk/nuclear)
/obj/item/disk/nuclear)
/obj/item/device/dogborg/sleeper/New()
..()
@@ -734,8 +734,8 @@
qdel(T)
//Special case for IDs to make them digested
//else if (istype(T, /obj/item/weapon/card/id))
//var/obj/item/weapon/card/id/ID = T
//else if (istype(T, /obj/item/card/id))
//var/obj/item/card/id/ID = T
//ID.digest() //Need the digest proc, first.
//Anything not perserved, PDA, or ID
@@ -760,7 +760,7 @@
min_health = -100
injection_chems = null //So they don't have all the same chems as the medihound!
/obj/item/weapon/storage/attackby(obj/item/device/dogborg/sleeper/K9, mob/user, proximity)
/obj/item/storage/attackby(obj/item/device/dogborg/sleeper/K9, mob/user, proximity)
K9.afterattack(src, user ,1)
/obj/item/device/dogborg/sleeper/K9/afterattack(var/atom/movable/target, mob/living/silicon/user, proximity)
@@ -806,7 +806,7 @@
injection_chems = null //So they don't have all the same chems as the medihound!
var/max_item_count = 32
/obj/item/weapon/storage/attackby(obj/item/device/dogborg/sleeper/compactor, mob/user, proximity) //GIT CIRCUMVENTED YO!
/obj/item/storage/attackby(obj/item/device/dogborg/sleeper/compactor, mob/user, proximity) //GIT CIRCUMVENTED YO!
compactor.afterattack(src, user ,1)
/obj/item/device/dogborg/sleeper/compactor/afterattack(var/atom/movable/target, mob/living/silicon/user, proximity)//GARBO NOMS
@@ -868,7 +868,7 @@
// Pounce stuff for K-9
/obj/item/weapon/dogborg/pounce
/obj/item/dogborg/pounce
name = "pounce"
icon = 'icons/mob/dogborg.dmi'
icon_state = "pounce"
@@ -876,7 +876,7 @@
force = 0
throwforce = 0
/obj/item/weapon/dogborg/pounce/New()
/obj/item/dogborg/pounce/New()
..()
flags_1 |= NOBLUDGEON_1
@@ -892,7 +892,7 @@
#define MAX_K9_LEAP_DIST 4 //because something's definitely borked the pounce functioning from a distance.
/obj/item/weapon/dogborg/pounce/afterattack(atom/A, mob/user)
/obj/item/dogborg/pounce/afterattack(atom/A, mob/user)
var/mob/living/silicon/robot.R = user
R.leap_at(A)
+2 -2
View File
@@ -90,7 +90,7 @@
icon = 'icons/mob/pokemon.dmi'
var/pokeball
pixel_x = -16
butcher_results = list(/obj/item/weapon/reagent_containers/food/snacks/meat/slab = 5)
butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/slab = 5)
ventcrawler = 2
health = 100
maxHealth = 100
@@ -132,7 +132,7 @@
/mob/living/simple_animal/pokemon/leg
icon = 'icons/mob/legendary.dmi'
pixel_x = -32
butcher_results = list(/obj/item/weapon/reagent_containers/food/snacks/meat/slab = 12)
butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/slab = 12)
health = 200
maxHealth = 200
+13 -13
View File
@@ -1,7 +1,7 @@
//////////
//DILDOS//
//////////
obj/item/weapon/dildo
obj/item/dildo
name = "dildo"
desc = "Floppy!"
icon = 'code/citadel/icons/dildo.dmi'
@@ -19,7 +19,7 @@ obj/item/weapon/dildo
var/random_shape = FALSE
//Lists moved to _cit_helpers.dm as globals so they're not instanced individually
obj/item/weapon/dildo/proc/update_appearance()
obj/item/dildo/proc/update_appearance()
icon_state = "[dildo_type]_[dildo_shape]_[dildo_size]"
var/sizeword = ""
switch(dildo_size)
@@ -34,7 +34,7 @@ obj/item/weapon/dildo/proc/update_appearance()
name = "[sizeword][dildo_shape] [can_customize ? "custom " : ""][dildo_type]"
obj/item/weapon/dildo/AltClick(mob/living/user)
obj/item/dildo/AltClick(mob/living/user)
if(QDELETED(src))
return
if(!isliving(user))
@@ -45,7 +45,7 @@ obj/item/weapon/dildo/AltClick(mob/living/user)
return
customize(user)
obj/item/weapon/dildo/proc/customize(mob/living/user)
obj/item/dildo/proc/customize(mob/living/user)
if(!can_customize)
return FALSE
if(src && !user.incapacitated() && in_range(user,src))
@@ -74,7 +74,7 @@ obj/item/weapon/dildo/proc/customize(mob/living/user)
update_appearance()
return TRUE
obj/item/weapon/dildo/Initialize()
obj/item/dildo/Initialize()
. = ..()
if(random_color == TRUE)
var/randcolor = pick(GLOB.dildo_colors)
@@ -90,40 +90,40 @@ obj/item/weapon/dildo/Initialize()
pixel_y = rand(-7,7)
pixel_x = rand(-7,7)
obj/item/weapon/dildo/examine(mob/user)
obj/item/dildo/examine(mob/user)
..()
if(can_customize)
user << "<span class='notice'>Alt-Click \the [src.name] to customize it.</span>"
obj/item/weapon/dildo/random//totally random
obj/item/dildo/random//totally random
name = "random dildo"//this name will show up in vendors and shit so you know what you're vending(or don't, i guess :^))
random_color = TRUE
random_shape = TRUE
random_size = TRUE
obj/item/weapon/dildo/knotted
obj/item/dildo/knotted
dildo_shape = "knotted"
name = "knotted dildo"
obj/item/weapon/dildo/human
obj/item/dildo/human
dildo_shape = "human"
name = "human dildo"
obj/item/weapon/dildo/plain
obj/item/dildo/plain
dildo_shape = "plain"
name = "plain dildo"
obj/item/weapon/dildo/flared
obj/item/dildo/flared
dildo_shape = "flared"
name = "flared dildo"
obj/item/weapon/dildo/flared/huge
obj/item/dildo/flared/huge
name = "literal horse cock"
desc = "THIS THING IS HUGE!"
dildo_size = 4
obj/item/weapon/dildo/custom
obj/item/dildo/custom
name = "customizable dildo"
desc = "Thanks to significant advances in synthetic nanomaterials, this dildo is capable of taking on many different forms to fit the user's preferences! Pricy!"
can_customize = TRUE