Random Fixes + Dildos (#268)
* I'LL SNEAK THIS IN, TOO * will it blend * event tweaking * new kinkmate sprite * savefile bugfixes * drinks got overwritten again rip * replaces missing styles * dildos * last bit
This commit is contained in:
@@ -29,9 +29,8 @@
|
||||
var/list/femcum_fluids = list("femcum")
|
||||
|
||||
//Mob procs
|
||||
/mob/living/Life()
|
||||
/mob/living/proc/handle_arousal()
|
||||
return
|
||||
|
||||
|
||||
/mob/living/carbon/handle_arousal()
|
||||
if(canbearoused && dna)
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 298 B |
@@ -5,6 +5,7 @@
|
||||
icon = 'code/citadel/icons/ovipositor.dmi'
|
||||
zone = "groin"
|
||||
slot = "testicles"
|
||||
color = null //don't use the /genital color since it already is colored
|
||||
w_class = 3
|
||||
var/internal = TRUE
|
||||
var/egg_girth = EGG_GIRTH_DEF
|
||||
|
||||
@@ -12,25 +12,31 @@
|
||||
var/fluid_mult = 1
|
||||
var/producing = FALSE
|
||||
|
||||
/obj/item/organ/genital/New()
|
||||
/obj/item/organ/genital/Initialize()
|
||||
..()
|
||||
reagents = create_reagents(fluid_max_volume)
|
||||
|
||||
/obj/item/organ/genital/Destroy()
|
||||
if(owner)
|
||||
Remove(owner, 1)//this should remove references to it, so it can be GCd correctly
|
||||
update_link()
|
||||
return ..()
|
||||
|
||||
/obj/item/organ/genital/proc/update()
|
||||
return
|
||||
update_size()
|
||||
update_appearance()
|
||||
update_link()
|
||||
|
||||
/obj/item/organ/genital/proc/update_size()
|
||||
return
|
||||
|
||||
/obj/item/organ/genital/proc/update_appearance()
|
||||
return
|
||||
|
||||
/obj/item/organ/genital/proc/update_link()
|
||||
|
||||
|
||||
/obj/item/organ/genital/Insert(mob/living/carbon/M, special = 0)
|
||||
..()
|
||||
update()
|
||||
|
||||
/obj/item/organ/genital/Remove(mob/living/carbon/M, special = 0)
|
||||
..()
|
||||
update()
|
||||
@@ -40,7 +46,6 @@
|
||||
if(clean)
|
||||
var/obj/item/organ/genital/GtoClean
|
||||
for(GtoClean in internal_organs)
|
||||
GtoClean.Remove(src)
|
||||
qdel(GtoClean)
|
||||
if(dna.features["has_cock"])
|
||||
give_penis()
|
||||
@@ -69,7 +74,7 @@
|
||||
if(dna.species.use_skintones && dna.features["genitals_use_skintone"])
|
||||
P.color = skintone2hex(skin_tone)
|
||||
else
|
||||
P.color = dna.features["cock_color"]
|
||||
P.color = "#[dna.features["cock_color"]]"
|
||||
P.length = dna.features["cock_length"]
|
||||
P.girth_ratio = dna.features["cock_girth_ratio"]
|
||||
P.shape = dna.features["cock_shape"]
|
||||
@@ -83,10 +88,10 @@
|
||||
if(!getorganslot("testicles"))
|
||||
var/obj/item/organ/genital/testicles/T = new
|
||||
T.Insert(src)
|
||||
if(dna.species.use_skintones && dna.features["genitals_use_skintone"])
|
||||
T.color = skintone2hex(skin_tone)
|
||||
else
|
||||
T.color = dna.features["balls_color"]
|
||||
// if(dna.species.use_skintones && dna.features["genitals_use_skintone"])
|
||||
// T.color = skintone2hex(skin_tone)
|
||||
// else
|
||||
// T.color = "#[dna.features["balls_color"]]"
|
||||
T.size = dna.features["bals_size"]
|
||||
T.sack_size = dna.features["balls_sack_size"]
|
||||
T.fluid_id = dna.features["balls_fluid"]
|
||||
|
||||
@@ -6,7 +6,6 @@
|
||||
zone = "groin"
|
||||
slot = "penis"
|
||||
w_class = 3
|
||||
color = null
|
||||
can_masturbate_with = 1
|
||||
size = 2 //arbitrary value derived from length and girth for sprites.
|
||||
var/length = 6 //inches
|
||||
@@ -17,8 +16,7 @@
|
||||
var/list/knotted_types = list("", "barbknot")
|
||||
var/obj/item/organ/genital/testicles/linked_balls
|
||||
|
||||
/obj/item/organ/genital/penis/New()
|
||||
..()
|
||||
/obj/item/organ/genital/penis/Initialize()
|
||||
update()
|
||||
|
||||
/obj/item/organ/genital/penis/update()
|
||||
@@ -41,13 +39,13 @@
|
||||
girth = (length * girth_ratio)
|
||||
|
||||
/obj/item/organ/genital/penis/update_appearance()
|
||||
var/string = "penis_[shape]_[size]"
|
||||
var/string = "penis_[lowertext(shape)]_[size]"
|
||||
icon_state = sanitize_text(string)
|
||||
// name = "[shape] penis"
|
||||
desc = "That's a [lowertext(shape)] penis. You estimate it's about [round(length, 0.25)] inch[length > 1 ? "es" : ""] long and [round(girth, 0.25)] inch[length > 1 ? "es" : ""] around."
|
||||
if(!owner)
|
||||
return
|
||||
color = sanitize_hexcolor(owner.dna.features["cock_color"], 6, 0)
|
||||
color = "#[owner.dna.features["cock_color"]]"
|
||||
|
||||
/obj/item/organ/genital/penis/update_link()
|
||||
if(owner)
|
||||
|
||||
@@ -14,10 +14,10 @@
|
||||
var/sent_full_message = 1 //defaults to 1 since they're full to start
|
||||
var/obj/item/organ/genital/penis/linked_penis
|
||||
|
||||
/obj/item/organ/genital/testicles/New()
|
||||
..()
|
||||
/obj/item/organ/genital/testicles/Initialize()
|
||||
create_reagents(fluid_max_volume)
|
||||
reagents.add_reagent(fluid_id, fluid_max_volume)
|
||||
update()
|
||||
|
||||
/obj/item/organ/genital/testicles/on_life()
|
||||
if(fluid_id && producing)
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
/obj/item/organ/genital/vagina
|
||||
name = "vagina"
|
||||
desc = "A female reproductive organ."
|
||||
icon = 'code/citadel/icons/vagina.dmi'
|
||||
icon_state = "vagina"
|
||||
zone = "groin"
|
||||
slot = "vagina"
|
||||
|
||||
@@ -0,0 +1,148 @@
|
||||
//////////
|
||||
//DILDOS//
|
||||
//////////
|
||||
obj/item/weapon/dildo
|
||||
name = "dildo"
|
||||
desc = "Floppy!"
|
||||
icon = 'code/citadel/icons/dildo.dmi'
|
||||
damtype = BRUTE
|
||||
force = 0
|
||||
throwforce = 0
|
||||
icon_state = "dildo_knotted_2"
|
||||
alpha = 192//transparent
|
||||
var/can_customize = FALSE
|
||||
var/dildo_shape = "human"
|
||||
var/dildo_size = 2
|
||||
var/dildo_type = "dildo"//pretty much just used for the icon state
|
||||
var/random_color = TRUE
|
||||
var/random_size = FALSE
|
||||
var/random_shape = FALSE
|
||||
//these lists are used to generate random icons, stats, and names
|
||||
var/list/possible_colors = list(//mostly neon colors
|
||||
"Cyan" = "#00f9ff",//cyan
|
||||
"Green" = "#49ff00",//green
|
||||
"Pink" = "#ff4adc",//pink
|
||||
"Yellow" = "#fdff00",//yellow
|
||||
"Blue" = "#00d2ff",//blue
|
||||
"Lime" = "#89ff00",//lime
|
||||
"Black" = "#101010",//black
|
||||
"Red" = "#ff0000",//red
|
||||
"Orange" = "#ff9a00",//orange
|
||||
"Purple" = "#e300ff"//purple
|
||||
)
|
||||
var/list/possible_shapes = list(
|
||||
"Human" = "human",
|
||||
"Knotted" = "knotted",
|
||||
"Plain" = "plain",
|
||||
"Flared" = "flared"
|
||||
)
|
||||
var/list/possible_sizes = list(
|
||||
"Small" = 1,
|
||||
"Medium" = 2,
|
||||
"Big" = 3
|
||||
)
|
||||
|
||||
obj/item/weapon/dildo/proc/update_appearance()
|
||||
icon_state = "[dildo_type]_[dildo_shape]_[dildo_size]"
|
||||
var/sizeword = ""
|
||||
switch(dildo_size)
|
||||
if(1)
|
||||
sizeword = "small "
|
||||
if(2)
|
||||
sizeword = ""
|
||||
if(3)
|
||||
sizeword = "big "
|
||||
if(4)
|
||||
sizeword = "huge "
|
||||
if(5)
|
||||
sizeword = "gigantic "
|
||||
|
||||
name = "[sizeword][dildo_shape] [can_customize ? "custom " : ""][dildo_type]"
|
||||
|
||||
obj/item/weapon/dildo/AltClick(mob/living/user)
|
||||
customize(user)
|
||||
|
||||
obj/item/weapon/dildo/proc/customize(mob/living/user)
|
||||
if(!can_customize)
|
||||
return FALSE
|
||||
if(src && !user.incapacitated() && in_range(user,src))
|
||||
var/color_choice = input(user,"Choose a color for your dildo.","Dildo Color") as null|anything in possible_colors
|
||||
if(src && color_choice && !user.incapacitated() && in_range(user,src))
|
||||
sanitize_inlist(color_choice, possible_colors, "Red")
|
||||
color = possible_colors[color_choice]
|
||||
update_appearance()
|
||||
if(src && !user.incapacitated() && in_range(user,src))
|
||||
var/shape_choice = input(user,"Choose a shape for your dildo.","Dildo Shape") as null|anything in possible_shapes
|
||||
if(src && shape_choice && !user.incapacitated() && in_range(user,src))
|
||||
sanitize_inlist(shape_choice, possible_colors, "Knotted")
|
||||
dildo_shape = possible_shapes[shape_choice]
|
||||
update_appearance()
|
||||
if(src && !user.incapacitated() && in_range(user,src))
|
||||
var/size_choice = input(user,"Choose the size for your dildo.","Dildo Size") as null|anything in possible_sizes
|
||||
if(src && size_choice && !user.incapacitated() && in_range(user,src))
|
||||
sanitize_inlist(size_choice, possible_colors, "Medium")
|
||||
dildo_size = possible_sizes[size_choice]
|
||||
update_appearance()
|
||||
if(src && !user.incapacitated() && in_range(user,src))
|
||||
var/transparency_choice = input(user,"Choose the transparency of your dildo. Lower is more transparent!(192-255)","Dildo Transparency") as null|num
|
||||
if(src && transparency_choice && !user.incapacitated() && in_range(user,src))
|
||||
sanitize_integer(transparency_choice, 192, 255, 192)
|
||||
alpha = transparency_choice
|
||||
update_appearance()
|
||||
return TRUE
|
||||
|
||||
obj/item/weapon/dildo/Initialize()
|
||||
if(random_color == TRUE)
|
||||
var/randcolor = pick(possible_colors)
|
||||
color = possible_colors[randcolor]
|
||||
if(random_shape == TRUE)
|
||||
var/randshape = pick(possible_shapes)
|
||||
dildo_shape = possible_shapes[randshape]
|
||||
if(random_size == TRUE)
|
||||
var/randsize = pick(possible_sizes)
|
||||
dildo_size = possible_sizes[randsize]
|
||||
update_appearance()
|
||||
alpha = rand(192, 255)
|
||||
pixel_y = rand(-7,7)
|
||||
pixel_x = rand(-7,7)
|
||||
|
||||
obj/item/weapon/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
|
||||
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
|
||||
dildo_shape = "knotted"
|
||||
name = "knotted dildo"
|
||||
|
||||
obj/item/weapon/dildo/human
|
||||
dildo_shape = "human"
|
||||
name = "human dildo"
|
||||
|
||||
obj/item/weapon/dildo/plain
|
||||
dildo_shape = "plain"
|
||||
name = "plain dildo"
|
||||
|
||||
obj/item/weapon/dildo/flared
|
||||
dildo_shape = "flared"
|
||||
name = "flared dildo"
|
||||
|
||||
obj/item/weapon/dildo/flared/huge
|
||||
name = "literal horse cock"
|
||||
desc = "THIS THING IS HUGE!"
|
||||
dildo_size = 4
|
||||
|
||||
obj/item/weapon/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
|
||||
random_color = TRUE
|
||||
random_shape = TRUE
|
||||
random_size = TRUE
|
||||
Reference in New Issue
Block a user