|
53 | 53 | return FALSE
|
54 | 54 | if(get_playerquality(client.ckey) <= -10)
|
55 | 55 | return FALSE
|
56 |
| -// if(!client.whitelisted()) |
57 |
| -// if(!client.patreonlevel()) |
58 |
| -// can_do_sex = 0 |
59 |
| -// return can_do_sex |
60 | 56 | if(client.blacklisted())
|
61 | 57 | can_do_sex = 0
|
62 | 58 | return can_do_sex
|
|
81 | 77 | if(G.limb_grabbed == chest)
|
82 | 78 | if(G.grabbee == user)
|
83 | 79 | if(G.sublimb_grabbed == BODY_ZONE_PRECISE_GROIN)
|
84 |
| - var/yea = list("fap") |
| 80 | + var/yea = list("pleasure self") |
85 | 81 | var/td = input(user, "pleasures","") as null|anything in yea
|
86 | 82 | if(td == "fap")
|
87 | 83 | sexcon.begin_fapping(G, user)
|
|
112 | 108 | if(user.gender == MALE)
|
113 | 109 | if(gender == FEMALE)
|
114 | 110 | if(get_location_accessible(src, BODY_ZONE_CHEST))
|
115 |
| - what2do += "use chest" |
| 111 | + what2do += "taff chest" |
116 | 112 | if(user.gender == MALE)
|
117 | 113 | if(ourgroin && theirgroin)
|
118 |
| - what2do += "love" |
119 |
| - what2do += "zodomy" |
| 114 | + what2do += "taff the front" |
| 115 | + what2do += "taff the back" |
120 | 116 | if(user.gender == FEMALE)
|
121 | 117 | if(ourgroin && theirgroin)
|
122 | 118 | if(!user.lying && src.lying)
|
|
141 | 137 | user.sexcon.begin_mouthride(src)
|
142 | 138 | if("use chest")
|
143 | 139 | user.sexcon.begin_titfuck(src)
|
144 |
| - if("zodomy") |
| 140 | + if("taff back") |
145 | 141 | user.sexcon.begin_assfuck(src)
|
146 |
| - if("love") |
| 142 | + if("taff front") |
147 | 143 | user.sexcon.begin_fuck(src)
|
148 | 144 | if("service")
|
149 | 145 | if(G)
|
|
272 | 268 | if(user.cmode)
|
273 | 269 | user.emote("embed", forced = TRUE)
|
274 | 270 | playsound(owner, list('sound/misc/mat/insert (1).ogg','sound/misc/mat/insert (2).ogg'), 20, TRUE, ignore_walls = FALSE)
|
275 |
| - owner.visible_message("<span class='[!user.cmode ? "love" : "warning"]'>[owner] zodomizes [user].</span>") |
| 271 | + owner.visible_message("<span class='[!user.cmode ? "love" : "warning"]'>[owner] taffs [user] from behind.</span>") |
276 | 272 | START_PROCESSING(SSsex, user.sexcon)
|
277 | 273 | START_PROCESSING(SSsex, src)
|
278 | 274 |
|
|
656 | 652 | return TRUE
|
657 | 653 |
|
658 | 654 | /datum/sex_controller/proc/can_change_dir()
|
659 |
| - if(fucking) |
660 |
| - return FALSE |
661 |
| - if(inass) |
662 |
| - return FALSE |
663 |
| - if(inpussy) |
664 |
| - return FALSE |
665 |
| - if(ontits) |
666 |
| - return FALSE |
667 |
| - if(inmouth) |
668 |
| - return FALSE |
669 |
| - if(weeating) |
670 |
| - return FALSE |
671 |
| - if(riding) |
672 |
| - return FALSE |
673 |
| - if(fapping && fapping.grabbee != owner) |
| 655 | + if(fucking || inass || inpussy || ontits || inmouth || weeating || riding || (fapping && fapping.grabbee != owner)) |
674 | 656 | return FALSE
|
675 | 657 | return TRUE
|
676 | 658 |
|
|
757 | 739 | if(prob(33))
|
758 | 740 | fucking.visible_message("<span class='[!owner.cmode ? "love" : "warning"]'>[fucking] rides [owner].</span>")
|
759 | 741 | var/usedsource = "insidepussy"
|
760 |
| - if(D.owner.stat == DEAD) |
761 |
| - usedsource = "fuckcorpse" |
762 |
| - stop_fucking() |
763 | 742 | D.adjust_horny(4, "pussyfucked")
|
764 | 743 | if(adjust_horny(3, usedsource))
|
765 | 744 | D.adjust_horny(50, "pussyfucked")
|
|
773 | 752 | if(prob(33))
|
774 | 753 | fucking.visible_message("<span class='[!D.owner.cmode ? "love" : "warning"]'>[owner] taffs [fucking].</span>")
|
775 | 754 | var/usedsource = "insidepussy"
|
776 |
| - if(D.owner.stat == DEAD) |
777 |
| - usedsource = "fuckcorpse" |
778 |
| - stop_fucking() |
779 |
| - else |
780 |
| - if(D.owner.stat != CONSCIOUS) |
781 |
| - usedsource = "sleepingbeauty" |
| 755 | + if(D.owner.stat != CONSCIOUS) |
| 756 | + usedsource = "sleepingbeauty" |
782 | 757 | if(D.owner.cmode)
|
783 | 758 | D.owner.flash_fullscreen("redflash1")
|
784 | 759 | D.adjust_horny(4, "pussyfucked")
|
|
793 | 768 | if(fucking)
|
794 | 769 | playsound(owner, 'sound/misc/mat/segso.ogg', 50, TRUE, -2, ignore_walls = FALSE)
|
795 | 770 | if(prob(33))
|
796 |
| - fucking.visible_message("<span class='[!D.owner.cmode ? "love" : "warning"]'>[owner] zodomizes [fucking].</span>") |
| 771 | + fucking.visible_message("<span class='[!D.owner.cmode ? "love" : "warning"]'>[owner] taffs [fucking] from behind.</span>") |
797 | 772 | // D.owner.Immobilize(10)
|
798 | 773 | var/usedsource = "insideass"
|
799 |
| - if(D.owner.stat == DEAD) |
800 |
| - usedsource = "fuckcorpse" |
801 |
| - stop_fucking() |
802 | 774 | if(D.owner.cmode)
|
803 | 775 | D.owner.flash_fullscreen("redflash1")
|
804 | 776 | if(D.owner.cmode)
|
|
817 | 789 | if(fucking)
|
818 | 790 | playsound(owner, 'sound/misc/mat/fap.ogg', 30, TRUE, -2, ignore_walls = FALSE)
|
819 | 791 | if(prob(33))
|
820 |
| - fucking.visible_message("<span class='[!D.owner.cmode ? "love" : "warning"]'>[owner] uses [fucking]'s chest.</span>") |
| 792 | + fucking.visible_message("<span class='[!D.owner.cmode ? "love" : "warning"]'>[owner] taffs [fucking]'s chest.</span>") |
821 | 793 | var/usedsource = "ontits"
|
822 |
| - if(D.owner.stat == DEAD) |
823 |
| - usedsource = "fuckcorpse" |
824 |
| - stop_fucking() |
825 | 794 | if(adjust_horny(2, usedsource))
|
826 | 795 | stop_fucking()
|
827 | 796 | // D.owner.Immobilize(10)
|
|
838 | 807 | else
|
839 | 808 | playsound(fucking, pick('sound/misc/mat/guymouth (1).ogg','sound/misc/mat/guymouth (2).ogg','sound/misc/mat/guymouth (3).ogg','sound/misc/mat/guymouth (4).ogg','sound/misc/mat/guymouth (5).ogg'), 20, TRUE, ignore_walls = FALSE)
|
840 | 809 | if(prob(33))
|
841 |
| - fucking.visible_message("<span class='[!D.owner.cmode ? "love" : "warning"]'>[owner] feeds [fucking].</span>") |
| 810 | + fucking.visible_message("<span class='[!D.owner.cmode ? "love" : "warning"]'>[owner] thrusts in [fucking]'s mouth.</span>") |
842 | 811 | // D.owner.Immobilize(10)
|
843 | 812 | var/usedsource = "fuckmouth"
|
844 |
| - if(D.owner.stat == DEAD) |
845 |
| - usedsource = "fuckcorpse" |
846 |
| - stop_fucking() |
847 | 813 | if(adjust_horny(3, usedsource))
|
848 | 814 | stop_fucking()
|
849 | 815 | if(riding)
|
|
876 | 842 | playsound(eatingus, pick('sound/misc/mat/guymouth (1).ogg','sound/misc/mat/guymouth (2).ogg','sound/misc/mat/guymouth (3).ogg','sound/misc/mat/guymouth (4).ogg','sound/misc/mat/guymouth (5).ogg'), 100, TRUE, -2, ignore_walls = FALSE)
|
877 | 843 | if(prob(33))
|
878 | 844 | if(owner.gender == MALE)
|
879 |
| - owner.visible_message("<span class='[!owner.cmode ? "love" : "warning"]'>[eatingus] sucks [owner].</span>") |
| 845 | + owner.visible_message("<span class='[!owner.cmode ? "love" : "warning"]'>[eatingus] sucks off [owner].</span>") |
880 | 846 | else
|
881 |
| - owner.visible_message("<span class='[!owner.cmode ? "love" : "warning"]'>[eatingus] eats [owner].</span>") |
| 847 | + owner.visible_message("<span class='[!owner.cmode ? "love" : "warning"]'>[eatingus] eats out [owner].</span>") |
882 | 848 | if(adjust_horny(3, "suckedoff"))
|
883 | 849 | stop_eating_us()
|
884 | 850 | if(fapping)
|
|
895 | 861 | if(fapping)
|
896 | 862 | playsound(owner, 'sound/misc/mat/fap.ogg', 30, TRUE, -2, ignore_walls = FALSE)
|
897 | 863 | if(prob(33))
|
898 |
| - owner.visible_message("<span class='[!owner.cmode ? "love" : "warning"]'>[owner] faps.</span>") |
| 864 | + owner.visible_message("<span class='[!owner.cmode ? "love" : "warning"]'>[owner] pleasures themself.</span>") |
899 | 865 | if(adjust_horny(1, "fapself"))
|
900 | 866 | stop_fapping()
|
901 | 867 | else
|
|
960 | 926 |
|
961 | 927 | /datum/sex_controller/female/handle_sex()
|
962 | 928 | . = ..()
|
963 |
| -/* if(world.time > last_silence_check + 10 SECONDS) |
964 |
| - if(iscarbon(owner)) |
965 |
| - var/mob/living/carbon/C = owner |
966 |
| - if(C.silent || !C.canspeak()) |
967 |
| - if(curplaying) |
968 |
| - curplaying = null |
969 |
| - if(femmoans) |
970 |
| - femmoans.stop() |
971 |
| - return |
972 |
| - if(owner.stat) |
973 |
| - if(curplaying) |
974 |
| - curplaying = null |
975 |
| - if(femmoans) |
976 |
| - femmoans.stop() |
977 |
| - if(draining) |
978 |
| - if(curplaying) |
979 |
| - curplaying = null |
980 |
| - if(femmoans) |
981 |
| - femmoans.stop() |
982 |
| -/ else |
983 |
| - if(owner.r_intent == SUBMIT_INTENT && owner.stat == CONSCIOUS) |
984 |
| - if(horny > 200) |
985 |
| - if(curplaying != "hvy") |
986 |
| - if(femmoans) |
987 |
| - femmoans.stop() |
988 |
| - if(prob(50)) |
989 |
| - femmoans = new /datum/looping_sound/femhornyhvy(list(owner), FALSE) |
990 |
| - else |
991 |
| - femmoans = new /datum/looping_sound/femhornyhvyalt(list(owner), FALSE) |
992 |
| - femmoans.start() |
993 |
| - curplaying = "hvy" |
994 |
| - else if(horny > 150) |
995 |
| - if(curplaying != "med") |
996 |
| - if(femmoans) |
997 |
| - femmoans.stop() |
998 |
| - if(prob(50)) |
999 |
| - femmoans = new /datum/looping_sound/femhornymed(list(owner), FALSE) |
1000 |
| - else |
1001 |
| - femmoans = new /datum/looping_sound/femhornymedalt(list(owner), FALSE) |
1002 |
| - femmoans.start() |
1003 |
| - curplaying = "med" |
1004 |
| - else if(horny > 50) |
1005 |
| - if(curplaying != "lite") |
1006 |
| - if(femmoans) |
1007 |
| - femmoans.stop() |
1008 |
| - if(prob(50)) |
1009 |
| - femmoans = new /datum/looping_sound/femhornylite(list(owner), FALSE) |
1010 |
| - else |
1011 |
| - femmoans = new /datum/looping_sound/femhornylitealt(list(owner), FALSE) |
1012 |
| - femmoans.start() |
1013 |
| - curplaying = "lite" |
1014 |
| - else |
1015 |
| - if(curplaying) |
1016 |
| - curplaying = null |
1017 |
| - if(femmoans) |
1018 |
| - femmoans.stop() |
1019 |
| - else |
1020 |
| - if(curplaying) |
1021 |
| - curplaying = null |
1022 |
| - if(femmoans) |
1023 |
| - femmoans.stop()*/ |
1024 | 929 |
|
1025 | 930 | /datum/sex_controller/proc/adjust_horny(amt, source)
|
1026 | 931 | if(!amt)
|
|
1086 | 991 | C.add_stress(/datum/stressevent/cumok)
|
1087 | 992 | else
|
1088 | 993 | C.add_stress(/datum/stressevent/cumbad)
|
1089 |
| - if("fuckcorpse") |
1090 |
| - C.add_stress(/datum/stressevent/cumcorpse) |
1091 |
| - C.freak_out() |
1092 | 994 |
|
1093 | 995 | /datum/sex_controller/male/cum(source)
|
1094 | 996 | ..()
|
|
1115 | 1017 | playsound(owner, pick('sound/misc/mat/mouthend (1).ogg','sound/misc/mat/mouthend (2).ogg'), 100, FALSE, ignore_walls = FALSE)
|
1116 | 1018 | owner.visible_message("<span class='notice'>[owner] feeds [fucking]!</span>")
|
1117 | 1019 | add_cum_floor(get_turf(fucking))
|
1118 |
| - if(fucking && fucking.sexcon.weeating == owner) |
1119 |
| - if(fucking.cmode) |
1120 |
| - if(ishuman(owner)) |
1121 |
| - var/mob/living/carbon/human/H = owner |
1122 |
| - var/wuzantag |
1123 |
| - if(H.mind) |
1124 |
| - if(H.mind.antag_datums) |
1125 |
| - if(H.mind.antag_datums.len) |
1126 |
| - wuzantag = TRUE |
1127 |
| - if(!wuzantag) |
1128 |
| - adjust_playerquality(-2, H.ckey, reason="Raped as a non villain.") |
1129 |
| - addtimer(CALLBACK(eatingus, TYPE_PROC_REF(/mob, emote), "gag"), rand(10,20)) |
1130 | 1020 | if("insideass")
|
1131 | 1021 | if(owner.has_flaw(/datum/charflaw/addiction/lovefiend))
|
1132 | 1022 | owner.sate_addiction()
|
|
0 commit comments