From 5cc6f62968e62a4915422332bbc4dbecda4790a5 Mon Sep 17 00:00:00 2001 From: Tk420634 Date: Mon, 6 Jan 2025 19:53:55 -0600 Subject: [PATCH] 97% --- .../hud/screen_objects/character_actions.dm | 6 +- code/datums/traits/neutral.dm | 72 +++++++++---------- code/game/objects/hand_items.dm | 57 +++++++++++---- code/modules/mob/living/carbon/emote.dm | 59 ++++++++++++++- 4 files changed, 140 insertions(+), 54 deletions(-) diff --git a/code/_onclick/hud/screen_objects/character_actions.dm b/code/_onclick/hud/screen_objects/character_actions.dm index 3b8ae3cf5d9..7d11928847b 100644 --- a/code/_onclick/hud/screen_objects/character_actions.dm +++ b/code/_onclick/hud/screen_objects/character_actions.dm @@ -414,7 +414,7 @@ if(!ishuman(usr)) to_chat(usr, span_alert("Sorry! You've gotta be a fully spawned in character with hopes and dreams to use this!")) return - H.emote("touch") + H.emote("touchhorny") /atom/movable/screen/lick_hud_button name = "lick on people!" @@ -427,7 +427,7 @@ if(!ishuman(usr)) to_chat(usr, span_alert("Sorry! You've gotta be a fully spawned in character with hopes and dreams to use this!")) return - H.emote("lick") + H.emote("lickhorny") /atom/movable/screen/kiss_hud_button name = "kiss on people!" @@ -440,7 +440,7 @@ if(!ishuman(usr)) to_chat(usr, span_alert("Sorry! You've gotta be a fully spawned in character with hopes and dreams to use this!")) return - H.emote("kiss") + H.emote("kisshorny") //////////////////////////////////////////////////////////// /// Private panel button diff --git a/code/datums/traits/neutral.dm b/code/datums/traits/neutral.dm index 3583f965b4e..bb3f93075af 100644 --- a/code/datums/traits/neutral.dm +++ b/code/datums/traits/neutral.dm @@ -715,44 +715,44 @@ if(!human_holder.put_in_hands(folder)) folder.forceMove(get_turf(human_holder)) -/datum/quirk/lick_heal - name = "Innate healing - Saliva" - desc = "You got that dog in you, your licks straight up heal the wounded. Somehow. Don't think about it too hard." - value = 0 - category = "Healer Quirks" - mechanics = "You can pull out your tongue with *lick and use it to heal wounds on folks. Drink water to regain uses faster. Just remember that some people do not like being licked to be healed." - conflicts = list() - mob_trait = TRAIT_HEAL_TONGUE - gain_text = span_notice("You feel a slight tingle in your mouth.") - lose_text = span_danger("The tingle in your mouth fades.") - locked = FALSE - human_only = FALSE +// /datum/quirk/lick_heal +// name = "Innate healing - Saliva" +// desc = "You got that dog in you, your licks straight up heal the wounded. Somehow. Don't think about it too hard." +// value = 0 +// category = "Healer Quirks" +// mechanics = "You can pull out your tongue with *lick and use it to heal wounds on folks. Drink water to regain uses faster. Just remember that some people do not like being licked to be healed." +// conflicts = list() +// mob_trait = TRAIT_HEAL_TONGUE +// gain_text = span_notice("You feel a slight tingle in your mouth.") +// lose_text = span_danger("The tingle in your mouth fades.") +// locked = FALSE +// human_only = FALSE -/datum/quirk/touch_heal - name = "Innate healing - Magic" - desc = "By the Nine- Wait, wrong game. One way or another you can lay on hands." - value = 0 - category = "Healer Quirks" - mechanics = "Your touch has a mild healing effect on burns and bruises. Use *touch to soothe the injuries of yourself or others. Drinking water helps recover from the fatigue of using the spell faster." - conflicts = list() - mob_trait = TRAIT_HEAL_TOUCH - gain_text = span_notice("You feel a slight tingle in your hands.") - lose_text = span_danger("The tingle in your palm fades.") - locked = FALSE - human_only = FALSE +// /datum/quirk/touch_heal +// name = "Innate healing - Magic" +// desc = "By the Nine- Wait, wrong game. One way or another you can lay on hands." +// value = 0 +// category = "Healer Quirks" +// mechanics = "Your touch has a mild healing effect on burns and bruises. Use *touch to soothe the injuries of yourself or others. Drinking water helps recover from the fatigue of using the spell faster." +// conflicts = list() +// mob_trait = TRAIT_HEAL_TOUCH +// gain_text = span_notice("You feel a slight tingle in your hands.") +// lose_text = span_danger("The tingle in your palm fades.") +// locked = FALSE +// human_only = FALSE -/datum/quirk/tend_heal - name = "Innate healing - Triage" - desc = "You keep a tiny kit of medical supplies stashed away for emergencies." - value = 0 - category = "Healer Quirks" - mechanics = "Use *tend to treat the injuries of yourself or others. Drinking water helps recover your focus." - conflicts = list() - mob_trait = TRAIT_HEAL_TEND - gain_text = span_notice("You feel your triage kit tucked safely in a pocket.") - lose_text = span_danger("You lost your triage kit...") - locked = FALSE - human_only = FALSE +// /datum/quirk/tend_heal +// name = "Innate healing - Triage" +// desc = "You keep a tiny kit of medical supplies stashed away for emergencies." +// value = 0 +// category = "Healer Quirks" +// mechanics = "Use *tend to treat the injuries of yourself or others. Drinking water helps recover your focus." +// conflicts = list() +// mob_trait = TRAIT_HEAL_TEND +// gain_text = span_notice("You feel your triage kit tucked safely in a pocket.") +// lose_text = span_danger("You lost your triage kit...") +// locked = FALSE +// human_only = FALSE //Fennys insane RP quirks diff --git a/code/game/objects/hand_items.dm b/code/game/objects/hand_items.dm index 0e134ea0a6a..7b2a4d65dce 100644 --- a/code/game/objects/hand_items.dm +++ b/code/game/objects/hand_items.dm @@ -550,33 +550,61 @@ touch + help + facing their rear = pat back . = ..() AddComponent(/datum/component/knockback, 1, FALSE, TRUE) -/obj/item/hand_item/playfultail/ - name = "playful tail" - desc = "A playful tail, good for teasing." - icon_state = "proboscis" - force = 0 - force_wielded = 0 - attack_speed = 3 - weapon_special_component = /datum/component/weapon_special/single_turf - /obj/item/hand_item/tail name = "tailwhack" desc = "A tail. Good for whacking." - icon_state = "proboscis" + icon = 'icons/effects/effects.dmi' + icon_state = "a" w_class = WEIGHT_CLASS_TINY force = 15 backstab_multiplier = 1.8 attack_speed = CLICK_CD_MELEE * 0.7 weapon_special_component = /datum/component/weapon_special/single_turf + var/list/mytail /obj/item/hand_item/tail/ComponentInitialize() . = ..() AddComponent(/datum/component/knockback, 1, FALSE, TRUE) +/obj/item/hand_item/tail/attack(mob/living/M, mob/living/user) + . = ..() + user.spin(4, 1) // SPEEN + +/obj/item/hand_item/tail/equipped(mob/user, slot) + . = ..() + tailify(user) + +/obj/item/hand_item/tail/pickup(mob/living/user) + . = ..() + tailify(user) + +/obj/item/hand_item/tail/proc/tailify(mob/user) + if(!iscarbon(user)) + to_chat(user, span_alert("You aint got a tail!")) + return + var/datum/genital_images/mynt = SSpornhud.get_genital_datum(user) + if(!mynt || !LAZYLEN(mynt.tail)) + to_chat(user, span_warning("Oh no your tail doesnt seem to be seeable!!!")) + qdel(src) + return + mytail = mynt.tail.Copy() + overlays.Cut() + for(var/whatever in mytail) + var/image/I = whatever + I.dir = NORTH + overlays += I + +/obj/item/hand_item/tail/playful + name = "playful tail" + desc = "A playful tail, good for teasing." + force = 0 + force_wielded = 0 + attack_speed = 3 + weapon_special_component = /datum/component/weapon_special/single_turf + /obj/item/hand_item/tail/fast name = "fast tail" desc = "A speedy tail that's very good at whackin' fast." - icon_state = "proboscis" color = "#448844" force = 18 attack_speed = CLICK_CD_MELEE * 0.6 @@ -584,7 +612,6 @@ touch + help + facing their rear = pat back /obj/item/hand_item/tail/big name = "big tail" desc = "A big tail that whacks hard." - icon_state = "proboscis" color = "#884444" force = 25 attack_speed = CLICK_CD_MELEE * 0.8 @@ -592,7 +619,6 @@ touch + help + facing their rear = pat back /obj/item/hand_item/tail/spicy name = "spicy tail" desc = "A tail with something that can inject venom on it." - icon_state = "proboscis" color = "#44FF44" force = 15 attack_speed = CLICK_CD_MELEE * 0.8 @@ -606,7 +632,6 @@ touch + help + facing their rear = pat back /obj/item/hand_item/tail/thago name = "dangerous tail" desc = "A god damn mighty tail that would kill an allosaurus. Maybe." - icon_state = "proboscis" color = "#FF4444" force = 40 attack_speed = CLICK_CD_MELEE * 1.2 @@ -859,6 +884,10 @@ touch + help + facing their rear = pat back flags_1 = CONDUCT_1 force = 0 +/obj/item/hand_item/butt/attack(mob/living/M, mob/living/user) + . = ..() + user.spin(4, 1) // SPEEN + /obj/item/hand_item/butt/equipped(mob/user, slot) . = ..() buttify(user) diff --git a/code/modules/mob/living/carbon/emote.dm b/code/modules/mob/living/carbon/emote.dm index 73fda5ca68b..44398da9856 100644 --- a/code/modules/mob/living/carbon/emote.dm +++ b/code/modules/mob/living/carbon/emote.dm @@ -193,6 +193,25 @@ else qdel(licky) +/datum/emote/living/carbon/lick_horny + key = "lickhorny" + key_third_person = "licks" + restraint_check = TRUE + +/datum/emote/living/carbon/lick_horny/run_emote(mob/user) + . = ..() + var/obj/item/I = user.get_active_held_item() + if(istype(I, /obj/item/hand_item/tactile)) + I.melee_attack_chain(user, user) + // else if(I) + // to_chat(user, span_warning("Your active hand is full, and therefore you can't lick anything! Don't ask why!")) + // return + var/obj/item/hand_item/tactile/licker/horny/licky = new(user) + if(user.put_in_hands(licky)) + to_chat(user, span_notice("You extend your tongue and get ready to lick something.")) + else + qdel(licky) + /datum/emote/living/carbon/touch key = "touch" key_third_person = "touches" @@ -212,6 +231,25 @@ else qdel(touchy) +/datum/emote/living/carbon/touch_horny + key = "touchhorny" + key_third_person = "touches" + restraint_check = TRUE + +/datum/emote/living/carbon/touch_horny/run_emote(mob/user) + . = ..() + var/obj/item/I = user.get_active_held_item() + if(istype(I, /obj/item/hand_item/tactile/)) + I.melee_attack_chain(user, user) + // else if(I) + // to_chat(user, span_warning("Your active hand is full, and therefore you can't touch anything!")) + // return + var/obj/item/hand_item/tactile/toucher/horny/touchy = new(user) + if(user.put_in_hands(touchy)) + to_chat(user, span_notice("You get ready to touch something.")) + else + qdel(touchy) + /datum/emote/living/carbon/kiss key = "kiss" key_third_person = "kisses" @@ -231,6 +269,25 @@ else qdel(touchy) +/datum/emote/living/carbon/kiss_horny + key = "kisshorny" + key_third_person = "kisses" + restraint_check = TRUE + +/datum/emote/living/carbon/kiss_horny/run_emote(mob/user) + . = ..() + var/obj/item/I = user.get_active_held_item() + if(istype(I, /obj/item/hand_item/tactile/)) + I.melee_attack_chain(user, user) + // else if(I) + // to_chat(user, span_warning("My active hand is full, and therefore you can't touch anything!")) + // return + var/obj/item/hand_item/tactile/kisser/horny/touchy = new(user) + if(user.put_in_hands(touchy)) + to_chat(user, span_notice("You get ready to smooch something.")) + else + qdel(touchy) + /datum/emote/living/carbon/tend key = "tend" key_third_person = "tends" @@ -383,7 +440,7 @@ else if(HAS_TRAIT(user, TRAIT_TAILTHAGO)) which_tail_to_spawn = /obj/item/hand_item/tail/thago else if(HAS_TRAIT(user, TRAIT_TAILPLAY)) - which_tail_to_spawn = /obj/item/hand_item/playfultail + which_tail_to_spawn = /obj/item/hand_item/tail/playful else which_tail_to_spawn = /obj/item/hand_item/tail else