From aa7316b93b7f1f2ca055bbb407157400b20f05e3 Mon Sep 17 00:00:00 2001 From: Enric Gabriel <43283559+SandPoot@users.noreply.github.com> Date: Tue, 28 Jul 2020 18:54:12 -0300 Subject: [PATCH] some tweaks and removes unused code --- code/modules/arousal/arousal.dm | 22 ++++- code/modules/arousal/genitals.dm | 10 +- code/modules/arousal/organs/breasts.dm | 2 +- code/modules/arousal/organs/penis.dm | 2 +- .../objects/items/devices/floor_painter.dm | 99 ------------------- 5 files changed, 29 insertions(+), 106 deletions(-) delete mode 100644 sandcode/code/game/objects/items/devices/floor_painter.dm diff --git a/code/modules/arousal/arousal.dm b/code/modules/arousal/arousal.dm index c9b2690784..efc09734e9 100644 --- a/code/modules/arousal/arousal.dm +++ b/code/modules/arousal/arousal.dm @@ -43,7 +43,7 @@ for(var/obj/item/organ/genital/G in internal_organs) if(G.genital_flags & GENITAL_CAN_AROUSE && !G.aroused_state && prob(strength*G.sensitivity)) G.set_aroused_state(strength > 0) - G.update_appearance() + G.update_body(TRUE) if(G.aroused_state) genit_list += G return genit_list @@ -70,6 +70,12 @@ R.trans_to(target, R.total_volume * (spill ? G.fluid_transfer_factor : 1)) G.time_since_last_orgasm = 0 R.clear_reagents() + //skyrat edit - chock i am going to beat you to death + //this is not a joke i am actually going to break your + //ribcage + if(!Process_Spacemove(turn(dir, 180))) + newtonian_move(turn(dir, 180)) + // /mob/living/carbon/human/proc/mob_climax_outside(obj/item/organ/genital/G, mb_time = 30) //This is used for forced orgasms and other hands-free climaxes var/datum/reagents/fluid_source = G.climaxable(src, TRUE) @@ -189,7 +195,8 @@ return TRUE //Here's the main proc itself -/mob/living/carbon/human/proc/mob_climax(forced_climax=FALSE) //Forced is instead of the other proc, makes you cum if you have the tools for it, ignoring restraints +//skyrat edit - forced partner and spillage +/mob/living/carbon/human/proc/mob_climax(forced_climax=FALSE, var/mob/living/forced_partner = null, var/forced_spillage = TRUE) //Forced is instead of the other proc, makes you cum if you have the tools for it, ignoring restraints if(mb_cd_timer > world.time) if(!forced_climax) //Don't spam the message to the victim if forced to come too fast to_chat(src, "You need to wait [DisplayTimeText((mb_cd_timer - world.time), TRUE)] before you can do that again!") @@ -224,8 +231,17 @@ partner = C else //A cat is fine too partner = check_target + //skyrat edit + if(forced_partner) + if((forced_partner == TRUE) || (!istype(forced_partner))) + partner = null + else + partner = forced_partner + // if(partner) //Did they pass the clothing checks? - mob_climax_partner(G, partner, mb_time = 0) //Instant climax due to forced + //skyrat edit + mob_climax_partner(G, partner, spillage = forced_spillage, mb_time = 0) //Instant climax due to forced + // continue //You've climaxed once with this organ, continue on //not exposed OR if no partner was found while exposed, climax alone mob_climax_outside(G, mb_time = 0) //removed climax timer for sudden, forced orgasms diff --git a/code/modules/arousal/genitals.dm b/code/modules/arousal/genitals.dm index 4d2e5e6fef..9d89621b86 100644 --- a/code/modules/arousal/genitals.dm +++ b/code/modules/arousal/genitals.dm @@ -162,7 +162,13 @@ /obj/item/organ/genital/proc/generate_fluid(datum/reagents/R) var/amount = clamp(fluid_rate * time_since_last_orgasm * fluid_mult,0,fluid_max_volume) R.clear_reagents() - R.add_reagent(fluid_id,amount) + //skyrat edit - fix coom + if(fluid_id) + R.add_reagent(fluid_id,amount) + else if(linked_organ && linked_organ.fluid_id) + amount = clamp(linked_organ.fluid_rate * time_since_last_orgasm * linked_organ.fluid_mult,0,linked_organ.fluid_max_volume) + R.add_reagent(linked_organ.fluid_id, amount) + // return TRUE /obj/item/organ/genital/proc/update_link() @@ -240,7 +246,7 @@ if(!. && I && slot && !(slot in GLOB.no_genitals_update_slots)) //the item was successfully equipped, and the chosen slot wasn't merely storage, hands or cuffs. update_genitals() -/mob/living/carbon/human/doUnEquip(obj/item/I, force, newloc, no_move, invdrop = TRUE) +/mob/living/carbon/human/doUnEquip(obj/item/I, force, newloc, no_move, invdrop = TRUE, ignore_strip_self = TRUE) //skyrat edit var/no_update = FALSE if(!I || I == l_store || I == r_store || I == s_store || I == handcuffed || I == legcuffed || get_held_index_of_item(I)) //stops storages, cuffs and held items from triggering it. no_update = TRUE diff --git a/code/modules/arousal/organs/breasts.dm b/code/modules/arousal/organs/breasts.dm index 0989966638..9e30530ad3 100644 --- a/code/modules/arousal/organs/breasts.dm +++ b/code/modules/arousal/organs/breasts.dm @@ -134,4 +134,4 @@ toggle_visibility(D.features["breasts_visibility"], FALSE) #undef BREASTS_ICON_MIN_SIZE -#undef BREASTS_ICON_MAX_SIZE \ No newline at end of file +#undef BREASTS_ICON_MAX_SIZE diff --git a/code/modules/arousal/organs/penis.dm b/code/modules/arousal/organs/penis.dm index 7b20c0e7ce..5a451359f3 100644 --- a/code/modules/arousal/organs/penis.dm +++ b/code/modules/arousal/organs/penis.dm @@ -106,4 +106,4 @@ diameter_ratio = D.features["cock_diameter_ratio"] shape = D.features["cock_shape"] prev_length = length - toggle_visibility(D.features["cock_visibility"], FALSE) \ No newline at end of file + toggle_visibility(D.features["cock_visibility"], FALSE) diff --git a/sandcode/code/game/objects/items/devices/floor_painter.dm b/sandcode/code/game/objects/items/devices/floor_painter.dm deleted file mode 100644 index 0e84af782d..0000000000 --- a/sandcode/code/game/objects/items/devices/floor_painter.dm +++ /dev/null @@ -1,99 +0,0 @@ -/* Floor painter - -/obj/item/floor_painter - name = "floor painter" - icon = 'icons/obj/device.dmi' - icon_state = "floor_painter" - item_state = "electronic" - - var/floor_icon - var/floor_state = "floor" - var/floor_dir = SOUTH - - w_class = WEIGHT_CLASS_TINY - slot_flags = SLOT_BELT - - var/static/list/allowed_states = list("arrival", "arrivalcorner", "bar", "barber", "blackcorner", "blue", "bluecorner", - "bluefull", "bluered", "blueyellow", "blueyellowfull", "bot", "brown", "browncorner", "browncornerold", "brownold", - "cafeteria", "caution", "cautioncorner", "chapel", "cmo", "dark", "delivery", "escape", "escapecorner", "floor", - "freezerfloor", "green", "greenblue", "greenbluefull", "greencorner", "greenfull", "greenyellow", - "greenyellowfull", "grimy", "loadingarea", "neutral", "neutralcorner", "neutralfull", "orange", "orangecorner", - "orangefull", "purple", "purplecorner", "purplefull", "rampbottom", "ramptop", "red", "redblue", "redbluefull", - "redcorner", "redfull", "redgreen", "redgreenfull", "redyellow", "redyellowfull", "warning", "warningcorner", "warnwhite", - "warnwhitecorner", "white", "whiteblue", "whitebluecorner", "whitebluefull", "whitebot", "whitecorner", "whitedelivery", - "whitegreen", "whitegreencorner", "whitegreenfull", "whitehall", "whitepurple", "whitepurplecorner", "whitepurplefull", - "whitered", "whiteredcorner", "whiteredfull", "whiteyellow", "whiteyellowcorner", "whiteyellowfull", "yellow", - "yellowcorner", "yellowcornersiding", "yellowsiding") - -/obj/item/floor_painter/afterattack(var/atom/A, var/mob/user, proximity, params) - if(!proximity) - return - - var/turf/simulated/floor/plasteel/F = A - if(!istype(F)) - to_chat(user, "\The [src] can only be used on station flooring.") - return - - F.icon_state = floor_state - F.icon_regular_floor = floor_state - F.dir = floor_dir - -/obj/item/floor_painter/attack_self(var/mob/user) - if(!user) - return 0 - user.set_machine(src) - interact(user) - return 1 - -/obj/item/floor_painter/interact(mob/user as mob) - if(!floor_icon) - floor_icon = icon('icons/turf/floors.dmi', floor_state, floor_dir) - user << browse_rsc(floor_icon, "floor.png") - var/dat = {" -
- ->
-