From 04cb381e02e3b3a3069343d097aaa5fd4933f4c0 Mon Sep 17 00:00:00 2001
From: Metis <100518708+sheepishgoat@users.noreply.github.com>
Date: Tue, 15 Oct 2024 00:36:18 -0400
Subject: [PATCH] camera and arousal fixes
---
.../code/mechanics/den abductors/console.dm | 13 ++++++-----
GainStation13/code/modules/arousal/arousal.dm | 19 ++++++++++++++++
.../machinery/computer/camera_advanced.dm | 2 +-
.../antagonists/abductor/machinery/camera.dm | 4 +++-
code/modules/arousal/arousal.dm | 22 +------------------
hyperstation/code/obj/fleshlight.dm | 1 -
tgstation.dme | 1 +
7 files changed, 32 insertions(+), 30 deletions(-)
create mode 100644 GainStation13/code/modules/arousal/arousal.dm
diff --git a/GainStation13/code/mechanics/den abductors/console.dm b/GainStation13/code/mechanics/den abductors/console.dm
index 4293c5e203..a0a967a3b6 100644
--- a/GainStation13/code/mechanics/den abductors/console.dm
+++ b/GainStation13/code/mechanics/den abductors/console.dm
@@ -26,7 +26,7 @@
var/credits = linked_scale?.credits
dat += "Gear Credits: [credits]
"
- dat += "Transfer credits in exchange for supplies:
"
+ dat += "Transfer credits in exchange for supplies:
"
for(var/goodie in subtypesof(/datum/feeders_den_goodie))
var/datum/feeders_den_goodie/temp_goodie = new goodie()
dat += "[temp_goodie.name] (Cost: [temp_goodie.credit_cost])
"
@@ -64,7 +64,7 @@
say("Unable to purchase more!")
return FALSE
- if(!Dispense(item_path, price))
+ if(!Dispense(item_path, price))
return FALSE
if(buy_counts[goodie_datum.name] == null)
@@ -146,7 +146,7 @@
return TRUE
return ..()
-
+
/obj/structure/scale/credits
name = "tracking scale"
desc = "A upgraded scale that tracks to weight of all of those that have stepped on it. Using this will add credits to the feeder console"
@@ -155,7 +155,7 @@
/// How much credits do we currently have?
var/credits = 0
/// How many credits are we going to reward per pound gained?
- var/credits_per_fatness = 0.25
+ var/credits_per_fatness = 0.25
/// A list containing all of the people we've scanned and their maximum weight.
var/list/scanned_people = list()
/// What is the current team number?
@@ -201,7 +201,7 @@
var/credit_total = max((credits_to_add - credits_to_remove), 0)
if(credit_total > 0)
say("[credit_total] credits have been deposited into the console.")
-
+
credits += credit_total
scanned_people[fatty] += credit_total
@@ -214,6 +214,7 @@
team_number = 27
vest_mode_action = null
vest_disguise_action = null
+ check_if_abductor = FALSE
/obj/machinery/computer/camera_advanced/abductor/feeder/IsScientist(mob/living/carbon/human/H)
return TRUE
@@ -245,4 +246,4 @@
prepare(target,user)
return TRUE
-
+
diff --git a/GainStation13/code/modules/arousal/arousal.dm b/GainStation13/code/modules/arousal/arousal.dm
new file mode 100644
index 0000000000..11b2474e0d
--- /dev/null
+++ b/GainStation13/code/modules/arousal/arousal.dm
@@ -0,0 +1,19 @@
+//GS13 Port
+/mob/living/proc/mob_climax(forced_climax = FALSE, cause = "none")//This is just so I can test this shit without being forced to add actual content to get rid of arousal. Will be a very basic proc for a while.
+ set name = "Masturbate"
+ set category = "IC"
+ if(canbearoused && !restrained() && !stat)
+ if(mb_cd_timer <= world.time)
+ //start the cooldown even if it fails
+ mb_cd_timer = world.time + mb_cd_length
+ if(getArousal() >= ((max_arousal / 100) * 33))//33% arousal or greater required
+ src.visible_message("[src] starts masturbating!", \
+ "You start masturbating.")
+ if(do_after(src, 30, target = src))
+ src.visible_message("[src] relieves [p_them()]self!", \
+ "You have relieved yourself.")
+ SEND_SIGNAL(src, COMSIG_ADD_MOOD_EVENT, "orgasm", /datum/mood_event/orgasm)
+ setArousal(min_arousal)
+ else
+ to_chat(src, "You aren't aroused enough for that.")
+
diff --git a/code/game/machinery/computer/camera_advanced.dm b/code/game/machinery/computer/camera_advanced.dm
index 5395dd6fee..fc4823cbc8 100644
--- a/code/game/machinery/computer/camera_advanced.dm
+++ b/code/game/machinery/computer/camera_advanced.dm
@@ -102,7 +102,7 @@
return TRUE
/obj/machinery/computer/camera_advanced/abductor/can_use(mob/user)
- if(!isabductor(user))
+ if(check_if_abductor && !isabductor(user))
return FALSE
return ..()
diff --git a/code/modules/antagonists/abductor/machinery/camera.dm b/code/modules/antagonists/abductor/machinery/camera.dm
index 4fb6bf5645..9069130a7d 100644
--- a/code/modules/antagonists/abductor/machinery/camera.dm
+++ b/code/modules/antagonists/abductor/machinery/camera.dm
@@ -11,6 +11,8 @@
var/obj/machinery/abductor/console/console
lock_override = TRUE
+ var/check_if_abductor = TRUE //GS13 EDIT
+
icon = 'icons/obj/abductor.dmi'
icon_state = "camera"
icon_keyboard = null
@@ -24,7 +26,7 @@
/obj/machinery/computer/camera_advanced/abductor/Initialize(mapload)
. = ..()
-
+
if(tele_in_action)
actions += new tele_in_action(src)
if(tele_out_action)
diff --git a/code/modules/arousal/arousal.dm b/code/modules/arousal/arousal.dm
index 8fa4ed092e..d918d0cb19 100644
--- a/code/modules/arousal/arousal.dm
+++ b/code/modules/arousal/arousal.dm
@@ -240,26 +240,6 @@
if(!. && !silent)
to_chat(H, "Your [name] is unable to produce it's own fluids, it's missing the organs for it.")
-//GS13 Port
-/mob/living/proc/mob_climax()//This is just so I can test this shit without being forced to add actual content to get rid of arousal. Will be a very basic proc for a while.
- set name = "Masturbate"
- set category = "IC"
- if(canbearoused && !restrained() && !stat)
- if(mb_cd_timer <= world.time)
- //start the cooldown even if it fails
- mb_cd_timer = world.time + mb_cd_length
- if(getArousal() >= ((max_arousal / 100) * 33))//33% arousal or greater required
- src.visible_message("[src] starts masturbating!", \
- "You start masturbating.")
- if(do_after(src, 30, target = src))
- src.visible_message("[src] relieves [p_them()]self!", \
- "You have relieved yourself.")
- SEND_SIGNAL(src, COMSIG_ADD_MOOD_EVENT, "orgasm", /datum/mood_event/orgasm)
- setArousal(min_arousal)
- else
- to_chat(src, "You aren't aroused enough for that.")
-
-
//These are various procs that we'll use later, split up for readability instead of having one, huge proc.
//For all of these, we assume the arguments given are proper and have been checked beforehand.
/mob/living/carbon/human/proc/mob_masturbate(obj/item/organ/genital/G, mb_time = 30) //Masturbation, keep it gender-neutral
@@ -604,7 +584,7 @@
//Here's the main proc itself
-/mob/living/carbon/human/mob_climax(forced_climax=FALSE) //Forced is instead of the other proc, makes you cum if you have the tools for it, ignoring restraints
+/mob/living/carbon/human/mob_climax(forced_climax=FALSE, cause = "none") //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!")
diff --git a/hyperstation/code/obj/fleshlight.dm b/hyperstation/code/obj/fleshlight.dm
index 37e4574d58..593477fc6a 100644
--- a/hyperstation/code/obj/fleshlight.dm
+++ b/hyperstation/code/obj/fleshlight.dm
@@ -188,7 +188,6 @@
M.adjust_arousal(5)
return
- ..()
/obj/item/portallight/proc/updatesleeve()
//get their looks and vagina colour!
diff --git a/tgstation.dme b/tgstation.dme
index 02317ed49d..b2eadc6988 100644
--- a/tgstation.dme
+++ b/tgstation.dme
@@ -3969,6 +3969,7 @@
#include "GainStation13\code\mobs\cakegolem.dm"
#include "GainStation13\code\mobs\chocoslime.dm"
#include "GainStation13\code\mobs\races\caloritegolem.dm"
+#include "GainStation13\code\modules\arousal\arousal.dm"
#include "GainStation13\code\modules\cargo\packs.dm"
#include "GainStation13\code\modules\client\border_control.dm"
#include "GainStation13\code\modules\client\preferences\preferences.dm"