From 36aee0b3acfb496aeeaaf4cc0b5bd4e3bb222f44 Mon Sep 17 00:00:00 2001 From: SandPoot <43283559+SandPoot@users.noreply.github.com> Date: Fri, 21 Aug 2020 03:26:51 -0300 Subject: [PATCH] Various ERP verb fixes (#53) --- code/modules/arousal/arousal.dm | 2 +- .../{ => datums}/interactions/_interaction.dm | 0 .../interactions/interaction_definitions.dm | 0 .../interactions/interaction_interface.dm | 0 .../interactions/interaction_mob.dm | 0 .../{ => datums}/interactions/lewd/_lewd.dm | 25 +++++++++++++++++-- .../interactions/lewd/_lewd_extra.dm | 0 .../interactions/lewd/lewd_datums.dm | 15 +++++++++++ .../interactions/lewd/lewd_datums_extra.dm | 0 .../interactions/lewd/lewd_interactions.dm | 0 .../interactions/lewd/lewd_species.dm | 0 .../{ => datums}/interactions/lewd/objects.dm | 0 tgstation.dme | 22 ++++++++-------- 13 files changed, 50 insertions(+), 14 deletions(-) rename sandcode/code/{ => datums}/interactions/_interaction.dm (100%) rename sandcode/code/{ => datums}/interactions/interaction_definitions.dm (100%) rename sandcode/code/{ => datums}/interactions/interaction_interface.dm (100%) rename sandcode/code/{ => datums}/interactions/interaction_mob.dm (100%) rename sandcode/code/{ => datums}/interactions/lewd/_lewd.dm (98%) rename sandcode/code/{ => datums}/interactions/lewd/_lewd_extra.dm (100%) rename sandcode/code/{ => datums}/interactions/lewd/lewd_datums.dm (97%) rename sandcode/code/{ => datums}/interactions/lewd/lewd_datums_extra.dm (100%) rename sandcode/code/{ => datums}/interactions/lewd/lewd_interactions.dm (100%) rename sandcode/code/{ => datums}/interactions/lewd/lewd_species.dm (100%) rename sandcode/code/{ => datums}/interactions/lewd/objects.dm (100%) diff --git a/code/modules/arousal/arousal.dm b/code/modules/arousal/arousal.dm index 4a48e0598d..10215931e0 100644 --- a/code/modules/arousal/arousal.dm +++ b/code/modules/arousal/arousal.dm @@ -234,7 +234,7 @@ partner = check_target //skyrat edit if(forced_partner) - if((forced_partner == TRUE) || (!istype(forced_partner))) + if((forced_partner == "none") || (!istype(forced_partner))) partner = null else partner = forced_partner diff --git a/sandcode/code/interactions/_interaction.dm b/sandcode/code/datums/interactions/_interaction.dm similarity index 100% rename from sandcode/code/interactions/_interaction.dm rename to sandcode/code/datums/interactions/_interaction.dm diff --git a/sandcode/code/interactions/interaction_definitions.dm b/sandcode/code/datums/interactions/interaction_definitions.dm similarity index 100% rename from sandcode/code/interactions/interaction_definitions.dm rename to sandcode/code/datums/interactions/interaction_definitions.dm diff --git a/sandcode/code/interactions/interaction_interface.dm b/sandcode/code/datums/interactions/interaction_interface.dm similarity index 100% rename from sandcode/code/interactions/interaction_interface.dm rename to sandcode/code/datums/interactions/interaction_interface.dm diff --git a/sandcode/code/interactions/interaction_mob.dm b/sandcode/code/datums/interactions/interaction_mob.dm similarity index 100% rename from sandcode/code/interactions/interaction_mob.dm rename to sandcode/code/datums/interactions/interaction_mob.dm diff --git a/sandcode/code/interactions/lewd/_lewd.dm b/sandcode/code/datums/interactions/lewd/_lewd.dm similarity index 98% rename from sandcode/code/interactions/lewd/_lewd.dm rename to sandcode/code/datums/interactions/lewd/_lewd.dm index 5d98320956..7ef4fe60d6 100644 --- a/sandcode/code/interactions/lewd/_lewd.dm +++ b/sandcode/code/datums/interactions/lewd/_lewd.dm @@ -29,6 +29,27 @@ */ //I'm sorry, lewd should not have mob procs such as life() and such in it. //NO SHIT IT SHOULDNT I REMOVED THEM +// Lewd interactions have a blacklist for certain mobs. When we evalute the user and target, both of +// their requirements must be satisfied, and the mob must not be of a blacklisted type. +// This should not be too weighty on the server, as the check is only run to generate the menu options. +/datum/interaction/lewd/evaluate_user(mob/living/user, silent) + . = ..() + if(.) + if((user.stat == DEAD)) + return FALSE + for(var/check in blacklisted_mobs) + if(istype(user, check)) + return FALSE + +/datum/interaction/lewd/evaluate_target(mob/living/user, mob/living/target, silent = TRUE) + . = ..() + if(.) + if((target.stat == DEAD)) + return FALSE + for(var/check in blacklisted_mobs) + if(istype(target, check)) + return FALSE + /proc/playlewdinteractionsound(turf/turf_source, soundin, vol as num, vary, extrarange as num ,frequency, falloff, channel = 0, pressure_affected = TRUE, sound/S, envwet = -10000, envdry = 0, manual_x, manual_y) var/list/hearing_mobs for(var/mob/H in get_hearers_in_view(4, turf_source)) @@ -746,9 +767,9 @@ if(ishuman(src)) var/mob/living/carbon/human/H = src if(!partner) - H.mob_climax(TRUE, TRUE) + H.mob_climax(TRUE, "none") else - H.mob_climax(TRUE, partner, cumin) + H.mob_climax(TRUE, partner, !cumin) set_lust(0) /* /mob/living/cum(mob/living/partner, target_orifice) diff --git a/sandcode/code/interactions/lewd/_lewd_extra.dm b/sandcode/code/datums/interactions/lewd/_lewd_extra.dm similarity index 100% rename from sandcode/code/interactions/lewd/_lewd_extra.dm rename to sandcode/code/datums/interactions/lewd/_lewd_extra.dm diff --git a/sandcode/code/interactions/lewd/lewd_datums.dm b/sandcode/code/datums/interactions/lewd/lewd_datums.dm similarity index 97% rename from sandcode/code/interactions/lewd/lewd_datums.dm rename to sandcode/code/datums/interactions/lewd/lewd_datums.dm index d0fd85e3d4..fa5e4479f0 100644 --- a/sandcode/code/interactions/lewd/lewd_datums.dm +++ b/sandcode/code/datums/interactions/lewd/lewd_datums.dm @@ -1,3 +1,18 @@ +/datum/interaction/lewd + var/list/blacklisted_mobs = list(/mob/living/simple_animal/pet, + /mob/living/simple_animal/cockroach, + /mob/living/simple_animal/babyKiwi, + /mob/living/simple_animal/butterfly, + /mob/living/simple_animal/chick, + /mob/living/simple_animal/chicken, + /mob/living/simple_animal/cow, + /mob/living/simple_animal/crab, + /mob/living/simple_animal/kiwi, + /mob/living/simple_animal/parrot, + /mob/living/simple_animal/sloth, + /mob/living/simple_animal/pickle, + /mob/living/simple_animal/hostile/retaliate/goat) + /datum/interaction/lewd/kiss command = "deepkiss" description = "Kiss them deeply." diff --git a/sandcode/code/interactions/lewd/lewd_datums_extra.dm b/sandcode/code/datums/interactions/lewd/lewd_datums_extra.dm similarity index 100% rename from sandcode/code/interactions/lewd/lewd_datums_extra.dm rename to sandcode/code/datums/interactions/lewd/lewd_datums_extra.dm diff --git a/sandcode/code/interactions/lewd/lewd_interactions.dm b/sandcode/code/datums/interactions/lewd/lewd_interactions.dm similarity index 100% rename from sandcode/code/interactions/lewd/lewd_interactions.dm rename to sandcode/code/datums/interactions/lewd/lewd_interactions.dm diff --git a/sandcode/code/interactions/lewd/lewd_species.dm b/sandcode/code/datums/interactions/lewd/lewd_species.dm similarity index 100% rename from sandcode/code/interactions/lewd/lewd_species.dm rename to sandcode/code/datums/interactions/lewd/lewd_species.dm diff --git a/sandcode/code/interactions/lewd/objects.dm b/sandcode/code/datums/interactions/lewd/objects.dm similarity index 100% rename from sandcode/code/interactions/lewd/objects.dm rename to sandcode/code/datums/interactions/lewd/objects.dm diff --git a/tgstation.dme b/tgstation.dme index 56f174ea38..78cd1b7ddf 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -3593,6 +3593,17 @@ #include "sandcode\code\_onclick\hud\screen_objects.dm" #include "sandcode\code\datums\action.dm" #include "sandcode\code\datums\shuttles.dm" +#include "sandcode\code\datums\interactions\_interaction.dm" +#include "sandcode\code\datums\interactions\interaction_definitions.dm" +#include "sandcode\code\datums\interactions\interaction_interface.dm" +#include "sandcode\code\datums\interactions\interaction_mob.dm" +#include "sandcode\code\datums\interactions\lewd\_lewd.dm" +#include "sandcode\code\datums\interactions\lewd\_lewd_extra.dm" +#include "sandcode\code\datums\interactions\lewd\lewd_datums.dm" +#include "sandcode\code\datums\interactions\lewd\lewd_datums_extra.dm" +#include "sandcode\code\datums\interactions\lewd\lewd_interactions.dm" +#include "sandcode\code\datums\interactions\lewd\lewd_species.dm" +#include "sandcode\code\datums\interactions\lewd\objects.dm" #include "sandcode\code\datums\mutations\combined.dm" #include "sandcode\code\datums\ruins\lavaland.dm" #include "sandcode\code\datums\status_effects\buffs.dm" @@ -3627,17 +3638,6 @@ #include "sandcode\code\game\objects\structures\ladders.dm" #include "sandcode\code\game\objects\structures\lavaland\necropolis_tendril.dm" #include "sandcode\code\game\turfs\simulated\floor\asteroid.dm" -#include "sandcode\code\interactions\_interaction.dm" -#include "sandcode\code\interactions\interaction_definitions.dm" -#include "sandcode\code\interactions\interaction_interface.dm" -#include "sandcode\code\interactions\interaction_mob.dm" -#include "sandcode\code\interactions\lewd\_lewd.dm" -#include "sandcode\code\interactions\lewd\_lewd_extra.dm" -#include "sandcode\code\interactions\lewd\lewd_datums.dm" -#include "sandcode\code\interactions\lewd\lewd_datums_extra.dm" -#include "sandcode\code\interactions\lewd\lewd_interactions.dm" -#include "sandcode\code\interactions\lewd\lewd_species.dm" -#include "sandcode\code\interactions\lewd\objects.dm" #include "sandcode\code\modules\admin\verbs\fix_air.dm" #include "sandcode\code\modules\atmospherics\machinery\pipes\bluespace.dm" #include "sandcode\code\modules\cargo\packs\emergency.dm"