diff --git a/code/modules/mob/living/carbon/human/species/station/station_special_abilities_vr.dm b/code/modules/mob/living/carbon/human/species/station/station_special_abilities_vr.dm index 994f0fd9d1..3eaf982026 100644 --- a/code/modules/mob/living/carbon/human/species/station/station_special_abilities_vr.dm +++ b/code/modules/mob/living/carbon/human/species/station/station_special_abilities_vr.dm @@ -650,7 +650,7 @@ var/list/choices = list() for(var/mob/living/carbon/human/M in oviewers(1)) choices += M - + if(!choices.len) to_chat(src,"There's nobody nearby to use this on.") @@ -698,7 +698,7 @@ if(can_shred(T) != T) to_chat(src,"Looks like you lost your chance...") return - + //Removing an internal organ if(T_int && T_int.damage >= 25) //Internal organ and it's been severely damaged T.apply_damage(15, BRUTE, T_ext) //Damage the external organ they're going through. @@ -713,7 +713,7 @@ //Removing an external organ else if(!T_int && (T_ext.damage >= 25 || T_ext.brute_dam >= 25)) T_ext.droplimb(1,DROPLIMB_EDGE) //Clean cut so it doesn't kill the prey completely. - + //Is it groin/chest? You can't remove those. if(T_ext.cannot_amputate) T.apply_damage(25, BRUTE, T_ext) @@ -726,12 +726,12 @@ visible_message("[src] tears off [T]'s [T_ext.name]!","You tear off [T]'s [T_ext.name]!") //Not targeting an internal organ w/ > 25 damage , and the limb doesn't have < 25 damage. - else + else if(T_int) T_int.damage = 25 //Internal organs can only take damage, not brute damage. T.apply_damage(25, BRUTE, T_ext) visible_message("[src] severely damages [T]'s [T_ext.name]!") - + add_attack_logs(src,T,"Shredded (hardvore)") /mob/living/proc/flying_toggle() @@ -901,36 +901,4 @@ mob/living/carbon/proc/charmed() //TODO if(prob(7)) M.show_message("You lose sensation of your body.") M.Weaken(20) - return - -/mob/living/carbon/human/proc/face_sit() - set name = "Face Sit" - set desc = "Sit on your Prey's Face" - set category = "Abilities" - - if(last_special > world.time) - return - - if(!ishuman(src)) - return //If you're not a human you don't have permission to do this. - - var/mob/living/carbon/human/C = src - - var/obj/item/weapon/grab/G = src.get_active_hand() - - if(!istype(G)) - to_chat(C, "You must be grabbing a creature in your active hand to sit on them.") - return - - var/mob/living/carbon/human/T = G.affecting - - if(!istype(T) || T.isSynthetic()) - to_chat(src, "\The [T] is not able to be sit on.") - return - - if(G.state != GRAB_AGGRESSIVE) - to_chat(C, "You must have the creature pinned on the ground to sit on them ") - return - - src.visible_message("[src] moves their ass to [T]'s head, sitting down on them, making them unable to see anything else than [src]'s butt ") - return + return \ No newline at end of file diff --git a/code/modules/mob/living/carbon/human/species/station/traits_vr/neutral.dm b/code/modules/mob/living/carbon/human/species/station/traits_vr/neutral.dm index 4ed17886be..8a364ca139 100644 --- a/code/modules/mob/living/carbon/human/species/station/traits_vr/neutral.dm +++ b/code/modules/mob/living/carbon/human/species/station/traits_vr/neutral.dm @@ -114,15 +114,6 @@ H.verbs |= /mob/living/proc/glow_toggle H.verbs |= /mob/living/proc/glow_color -/datum/trait/face_sit - name = "Face_Sitting" - desc = "Makes you able to sit on your prey" - cost = 0 - -/datum/trait/face_sit/apply(var/datum/species/S,var/mob/living/carbon/human/H) - ..(S,H) - H.verbs |= /mob/living/carbon/human/proc/face_sit - /datum/trait/succubus_bite name = "Succubus Bite" desc = "Makes you able to bite prey in your grasp and subject them to a variety of chemicals.." diff --git a/code/modules/mob/mob_grab.dm b/code/modules/mob/mob_grab.dm index 58c530d06c..af4014ec27 100644 --- a/code/modules/mob/mob_grab.dm +++ b/code/modules/mob/mob_grab.dm @@ -144,6 +144,7 @@ else affecting.Weaken(2) + if(state >= GRAB_NECK) affecting.Stun(3) if(isliving(affecting)) @@ -173,6 +174,15 @@ assailant.visible_message("[assailant] covers [affecting]'s eyes!") if(affecting.eye_blind < 3) affecting.Blind(3) + if(BP_HEAD) + if(force_down) + if(announce) + assailant.visible_message("[assailant] moves their ass to [target]'s head, sitting down on them, making them unable to see anything else than [assailant]'s butt!") + if(target.silent < 3) + target.silent = 3 + if(target.eye_blind < 3) + target.Blind(3) + /obj/item/weapon/grab/attack_self() return s_click(hud) diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents_chomp.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents_chomp.dm new file mode 100644 index 0000000000..b9099a30d7 --- /dev/null +++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents_chomp.dm @@ -0,0 +1,50 @@ +/// Recipes + +/datum/chemical_reaction/aphrodisiac + name = "aphrodisiac" + id = "aphrodisiac" + result = "aphrodisiac" + required_reagents = list("carbon" = 2, "hydrogen" = 2, "oxygen" = 2, "water" = 1) + result_amount = 6 + +/datum/reagent/aphrodisiac + name = "aphrodisiac" + id = "aphrodisiac" + description = "You so horny." + taste_description = "sweetness" + reagent_state = LIQUID + color = "#FF9999" + scannable = 1 + +/datum/reagent/aphrodisiac/affect_blood(var/mob/living/carbon/M, var/alien, var/removed) + if(!M) return + + if(prob(3)) + M.emote(pick("blush", "moan", "moan", "giggle")) + + // Unsure if we want to allow cumming. I'm gonna disable it for now. +/* + if(prob(1)) + switch(M.gender) + if(MALE) + M.emote("mcum") + if(FEMALE) + M.emote("fcum") + if(PLURAL) + if(prob(50)) + M.emote("mcum") + else + M.emote("fcum") +*/ +// Disabled cause I'm unsure if we want to do this or not. +/* +/mob/living/proc/cum() + if(!check_has_mouth()) + return + src.visible_message("[src] throws up!","You throw up!") + + var/turf/simulated/T = get_turf(src) //TODO: Make add_blood_floor remove blood from human mobs + if(istype(T)) + T.add_vomit_floor(src, 1) +*/ + diff --git a/html/changelogs/Jonathan-Facesitting-Icon.yml b/html/changelogs/Jonathan-Facesitting-Icon.yml new file mode 100644 index 0000000000..6ce3eaa761 --- /dev/null +++ b/html/changelogs/Jonathan-Facesitting-Icon.yml @@ -0,0 +1,37 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# wip (For works in progress) +# tweak +# soundadd +# sounddel +# rscadd (general adding of nice things) +# rscdel (general deleting of nice things) +# imageadd +# imagedel +# maptweak +# spellcheck (typo fixes) +# experiment +################################# + +# Your name. +author: JonathanHybrid + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. +# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. +changes: + - tweak: "Replaced the method of facesitting, you don't need to have a trait anymore! You instead use grab, pin them down and aim at head. (I recommend using subtles for them to read your messages~)" + - tweak: "Replaced the image of SS13 to chomper's logo! :D" diff --git a/icons/ss13_32.png b/icons/ss13_32.png index 72bf4f0f97..0d8fcdd890 100644 Binary files a/icons/ss13_32.png and b/icons/ss13_32.png differ diff --git a/icons/ss13_64.png b/icons/ss13_64.png index 103ff0b264..d2d27bdafe 100644 Binary files a/icons/ss13_64.png and b/icons/ss13_64.png differ diff --git a/vorestation.dme b/vorestation.dme index 2140fa4a6a..bcdc1a3139 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -2467,6 +2467,7 @@ #include "code\modules\reagents\Chemistry-Reagents\Chemistry-Reagents-Other.dm" #include "code\modules\reagents\Chemistry-Reagents\Chemistry-Reagents-Toxins.dm" #include "code\modules\reagents\Chemistry-Reagents\Chemistry-Reagents-Vore_vr.dm" +#include "code\modules\reagents\Chemistry-Reagents\Chemistry-Reagents_chomp.dm" #include "code\modules\reagents\dispenser\_defines.dm" #include "code\modules\reagents\dispenser\cartridge.dm" #include "code\modules\reagents\dispenser\cartridge_presets.dm"