Merge branch 'master' into FERMICHEMCurTweaks
This commit is contained in:
@@ -1,49 +0,0 @@
|
||||
//This component applies a customizable drop_shadow filter to its wearer when they toggle combat mode on or off. This can stack.
|
||||
|
||||
/datum/component/phantomthief
|
||||
dupe_mode = COMPONENT_DUPE_UNIQUE_PASSARGS
|
||||
|
||||
var/filter_x
|
||||
var/filter_y
|
||||
var/filter_size
|
||||
var/filter_border
|
||||
var/filter_color
|
||||
|
||||
var/datum/component/redirect/combattoggle_redir
|
||||
|
||||
/datum/component/phantomthief/Initialize(_x = -2, _y = 0, _size = 0, _border = 0, _color = "#E62111")
|
||||
filter_x = _x
|
||||
filter_y = _y
|
||||
filter_size = _size
|
||||
filter_border = _border
|
||||
filter_color = _color
|
||||
|
||||
RegisterSignal(parent, COMSIG_COMBAT_TOGGLED, .proc/handlefilterstuff)
|
||||
RegisterSignal(parent, COMSIG_ITEM_EQUIPPED, .proc/OnEquipped)
|
||||
RegisterSignal(parent, COMSIG_ITEM_DROPPED, .proc/OnDropped)
|
||||
|
||||
/datum/component/phantomthief/proc/handlefilterstuff(mob/user, combatmodestate)
|
||||
if(istype(user))
|
||||
var/thefilter = filter(type = "drop_shadow", x = filter_x, y = filter_y, size = filter_size, border = filter_border, color = filter_color)
|
||||
if(!combatmodestate)
|
||||
user.filters -= thefilter
|
||||
else
|
||||
user.filters += thefilter
|
||||
|
||||
/datum/component/phantomthief/proc/stripdesiredfilter(mob/user)
|
||||
if(istype(user))
|
||||
var/thefilter = filter(type = "drop_shadow", x = filter_x, y = filter_y, size = filter_size, border = filter_border, color = filter_color)
|
||||
user.filters -= thefilter
|
||||
|
||||
/datum/component/phantomthief/proc/OnEquipped(mob/user, slot)
|
||||
if(!istype(user))
|
||||
return
|
||||
if(!combattoggle_redir)
|
||||
combattoggle_redir = user.AddComponent(/datum/component/redirect, list(COMSIG_COMBAT_TOGGLED = CALLBACK(src, .proc/handlefilterstuff)))
|
||||
|
||||
/datum/component/phantomthief/proc/OnDropped(mob/user)
|
||||
if(!istype(user))
|
||||
return
|
||||
if(combattoggle_redir)
|
||||
QDEL_NULL(combattoggle_redir)
|
||||
stripdesiredfilter(user)
|
||||
@@ -29,7 +29,7 @@
|
||||
if(!wearer)
|
||||
return //idfk
|
||||
new/obj/effect/temp_visual/souldeath(wearer.loc, wearer)
|
||||
playsound(wearer, 'modular_citadel/sound/misc/souldeath.ogg', 100, FALSE)
|
||||
playsound(wearer, 'sound/misc/souldeath.ogg', 100, FALSE)
|
||||
|
||||
/datum/component/souldeath/neck
|
||||
equip_slot = SLOT_NECK
|
||||
|
||||
@@ -1,59 +1,59 @@
|
||||
/datum/mood_event/eigenstate
|
||||
mood_change = -3
|
||||
description = "<span class='warning'>Where the hell am I? Is this an alternative dimension ?</span>\n"
|
||||
mood_change = -3
|
||||
description = "<span class='warning'>Where the hell am I? Is this an alternative dimension ?</span>\n"
|
||||
|
||||
/datum/mood_event/enthrall
|
||||
mood_change = 5
|
||||
mood_change = 5
|
||||
|
||||
/datum/mood_event/enthrall/add_effects(message)
|
||||
description = "<span class='nicegreen'>[message]</span>\n"
|
||||
description = "<span class='nicegreen'>[message]</span>\n"
|
||||
|
||||
/datum/mood_event/enthrallpraise
|
||||
mood_change = 10
|
||||
timeout = 1 MINUTES
|
||||
|
||||
/datum/mood_event/enthrallpraise/add_effects(message)
|
||||
description = "<span class='nicegreen'>[message]</span>\n"
|
||||
description = "<span class='nicegreen'>[message]</span>\n"
|
||||
|
||||
/datum/mood_event/enthrallscold
|
||||
mood_change = -10
|
||||
timeout = 1 MINUTES
|
||||
mood_change = -10
|
||||
timeout = 1 MINUTES
|
||||
|
||||
/datum/mood_event/enthrallscold/add_effects(message)
|
||||
description = "<span class='warning'>[message]</span>\n"//aaa I'm not kinky enough for this
|
||||
|
||||
/datum/mood_event/enthrallmissing1
|
||||
mood_change = -5
|
||||
mood_change = -5
|
||||
|
||||
/datum/mood_event/enthrallmissing1/add_effects(message)
|
||||
description = "<span class='warning'>[message]</span>\n"
|
||||
description = "<span class='warning'>[message]</span>\n"
|
||||
|
||||
/datum/mood_event/enthrallmissing2
|
||||
mood_change = -10
|
||||
mood_change = -10
|
||||
|
||||
/datum/mood_event/enthrallmissing2/add_effects(message)
|
||||
description = "<span class='warning'>[message]</span>\n"
|
||||
|
||||
/datum/mood_event/enthrallmissing3
|
||||
mood_change = -15
|
||||
mood_change = -15
|
||||
|
||||
/datum/mood_event/enthrallmissing3/add_effects(message)
|
||||
description = "<span class='warning'>[message]</span>\n"
|
||||
|
||||
/datum/mood_event/enthrallmissing4
|
||||
mood_change = -25
|
||||
mood_change = -25
|
||||
|
||||
/datum/mood_event/enthrallmissing4/add_effects(message)
|
||||
description = "<span class='warning'>[message]</span>\n"
|
||||
|
||||
/datum/mood_event/InLove
|
||||
mood_change = 10
|
||||
mood_change = 10
|
||||
|
||||
/datum/mood_event/InLove/add_effects(message)
|
||||
description = "<span class='nicegreen'>[message]</span>\n"
|
||||
description = "<span class='nicegreen'>[message]</span>\n"
|
||||
|
||||
/datum/mood_event/MissingLove
|
||||
mood_change = -10
|
||||
mood_change = -10
|
||||
|
||||
/datum/mood_event/MissingLove/add_effects(message)
|
||||
description = "<span class='warning'>[message]</span>\n"
|
||||
description = "<span class='warning'>[message]</span>\n"
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
// Jack the Ripper starring plush
|
||||
/obj/item/toy/plush/attackby(obj/item/I, mob/living/user, params)
|
||||
. = ..()
|
||||
if(I.is_sharp())
|
||||
if(I.get_sharpness())
|
||||
if(!grenade)
|
||||
SEND_SIGNAL(user, COMSIG_ADD_MOOD_EVENT,"plushjack", /datum/mood_event/plushjack)
|
||||
|
||||
|
||||
@@ -37,64 +37,62 @@
|
||||
alert_type = null
|
||||
var/moveCalc = 1
|
||||
var/cachedmoveCalc = 1
|
||||
var/last_checked_size //used to prevent potential cpu waste from happening every tick.
|
||||
|
||||
/datum/status_effect/chem/breast_enlarger/on_apply(mob/living/carbon/human/H)//Removes clothes, they're too small to contain you. You belong to space now.
|
||||
/datum/status_effect/chem/breast_enlarger/on_apply()//Removes clothes, they're too small to contain you. You belong to space now.
|
||||
log_game("FERMICHEM: [owner]'s breasts has reached comical sizes. ID: [owner.key]")
|
||||
var/mob/living/carbon/human/o = owner
|
||||
var/items = o.get_contents()
|
||||
for(var/obj/item/W in items)
|
||||
if(W == o.w_uniform || W == o.wear_suit)
|
||||
o.dropItemToGround(W, TRUE)
|
||||
playsound(o.loc, 'sound/items/poster_ripped.ogg', 50, 1)
|
||||
to_chat(o, "<span class='warning'>Your clothes give, ripping into peices under the strain of your swelling breasts! Unless you manage to reduce the size of your breasts, there's no way you're going to be able to put anything on over these melons..!</b></span>")
|
||||
o.visible_message("<span class='boldnotice'>[o]'s chest suddenly bursts forth, ripping their clothes off!'</span>")
|
||||
else
|
||||
to_chat(o, "<span class='notice'>Your bountiful bosom is so rich with mass, you seriously doubt you'll be able to fit any clothes over it.</b></span>")
|
||||
return ..()
|
||||
var/mob/living/carbon/human/H = owner
|
||||
var/message = FALSE
|
||||
if(H.w_uniform)
|
||||
H.dropItemToGround(H.w_uniform, TRUE)
|
||||
message = TRUE
|
||||
if(H.wear_suit)
|
||||
H.dropItemToGround(H.wear_suit, TRUE)
|
||||
message = TRUE
|
||||
if(message)
|
||||
playsound(H.loc, 'sound/items/poster_ripped.ogg', 50, 1)
|
||||
H.visible_message("<span class='boldnotice'>[H]'s chest suddenly bursts forth, ripping their clothes off!'</span>", \
|
||||
"<span class='warning'>Your clothes give, ripping into peices under the strain of your swelling breasts! Unless you manage to reduce the size of your breasts, there's no way you're going to be able to put anything on over these melons..!</b></span>")
|
||||
else
|
||||
to_chat(H, "<span class='notice'>Your bountiful bosom is so rich with mass, you seriously doubt you'll be able to fit any clothes over it.</b></span>")
|
||||
return ..()
|
||||
|
||||
/datum/status_effect/chem/breast_enlarger/tick(mob/living/carbon/human/H)//If you try to wear clothes, you fail. Slows you down if you're comically huge
|
||||
var/mob/living/carbon/human/o = owner
|
||||
var/obj/item/organ/genital/breasts/B = o.getorganslot("breasts")
|
||||
moveCalc = 1+((round(B.cached_size) - 9)/3) //Afffects how fast you move, and how often you can click.
|
||||
/datum/status_effect/chem/breast_enlarger/tick()//If you try to wear clothes, you fail. Slows you down if you're comically huge
|
||||
var/mob/living/carbon/human/H = owner
|
||||
var/obj/item/organ/genital/breasts/B = H.getorganslot(ORGAN_SLOT_BREASTS)
|
||||
if(!B)
|
||||
o.remove_movespeed_modifier(BREAST_MOVEMENT_SPEED)
|
||||
sizeMoveMod(1)
|
||||
owner.remove_status_effect(src)
|
||||
var/items = o.get_contents()
|
||||
for(var/obj/item/W in items)
|
||||
if(W == o.w_uniform || W == o.wear_suit)
|
||||
o.dropItemToGround(W, TRUE)
|
||||
playsound(o.loc, 'sound/items/poster_ripped.ogg', 50, 1)
|
||||
to_chat(owner, "<span class='warning'>Your enormous breasts are way too large to fit anything over them!</b></span>")
|
||||
H.remove_status_effect(src)
|
||||
return
|
||||
moveCalc = 1+((round(B.cached_size) - 9)/3) //Afffects how fast you move, and how often you can click.
|
||||
var/message = FALSE
|
||||
if(H.w_uniform)
|
||||
H.dropItemToGround(H.w_uniform, TRUE)
|
||||
message = TRUE
|
||||
if(H.wear_suit)
|
||||
H.dropItemToGround(H.wear_suit, TRUE)
|
||||
message = TRUE
|
||||
if(message)
|
||||
playsound(H.loc, 'sound/items/poster_ripped.ogg', 50, 1)
|
||||
to_chat(H, "<span class='warning'>Your enormous breasts are way too large to fit anything over them!</b></span>")
|
||||
|
||||
if(last_checked_size != B.cached_size)
|
||||
H.add_movespeed_modifier(BREAST_MOVEMENT_SPEED, TRUE, 100, NONE, override = TRUE, multiplicative_slowdown = moveCalc)
|
||||
sizeMoveMod(moveCalc)
|
||||
|
||||
if (B.size == "huge")
|
||||
if(prob(1))
|
||||
to_chat(owner, "<span class='notice'>Your back is feeling sore.</span>")
|
||||
var/target = o.get_bodypart(BODY_ZONE_CHEST)
|
||||
o.apply_damage(0.1, BRUTE, target)
|
||||
if(!B.cached_size == B.breast_values[B.prev_size])
|
||||
o.add_movespeed_modifier(BREAST_MOVEMENT_SPEED, TRUE, 100, NONE, override = TRUE, multiplicative_slowdown = moveCalc)
|
||||
sizeMoveMod(moveCalc)
|
||||
return ..()
|
||||
else if (B.breast_values[B.size] > B.breast_values[B.prev_size])
|
||||
o.add_movespeed_modifier(BREAST_MOVEMENT_SPEED, TRUE, 100, NONE, override = TRUE, multiplicative_slowdown = moveCalc)
|
||||
sizeMoveMod(moveCalc)
|
||||
else if (B.breast_values[B.size] < B.breast_values[B.prev_size])
|
||||
o.add_movespeed_modifier(BREAST_MOVEMENT_SPEED, TRUE, 100, NONE, override = TRUE, multiplicative_slowdown = moveCalc)
|
||||
sizeMoveMod(moveCalc)
|
||||
if((B.cached_size) < 16)
|
||||
switch(round(B.cached_size))
|
||||
if(9)
|
||||
if (B.breast_values[B.prev_size] != B.breast_values[B.size])
|
||||
to_chat(o, "<span class='notice'>Your expansive chest has become a more managable size, liberating your movements.</b></span>")
|
||||
if(10 to INFINITY)
|
||||
if (B.breast_values[B.prev_size] != B.breast_values[B.size])
|
||||
to_chat(H, "<span class='warning'>Your indulgent busom is so substantial, it's affecting your movements!</b></span>")
|
||||
var/target = H.get_bodypart(BODY_ZONE_CHEST)
|
||||
H.apply_damage(0.1, BRUTE, target)
|
||||
else
|
||||
if(prob(1))
|
||||
to_chat(owner, "<span class='notice'>Your back is feeling a little sore.</span>")
|
||||
..()
|
||||
to_chat(H, "<span class='notice'>Your back is feeling a little sore.</span>")
|
||||
last_checked_size = B.cached_size
|
||||
..()
|
||||
|
||||
/datum/status_effect/chem/breast_enlarger/on_remove(mob/living/carbon/M)
|
||||
/datum/status_effect/chem/breast_enlarger/on_remove()
|
||||
log_game("FERMICHEM: [owner]'s breasts has reduced to an acceptable size. ID: [owner.key]")
|
||||
to_chat(owner, "<span class='notice'>Your expansive chest has become a more managable size, liberating your movements.</b></span>")
|
||||
owner.remove_movespeed_modifier(BREAST_MOVEMENT_SPEED)
|
||||
sizeMoveMod(1)
|
||||
|
||||
@@ -112,51 +110,57 @@
|
||||
alert_type = null
|
||||
var/bloodCalc
|
||||
var/moveCalc
|
||||
var/last_checked_size //used to prevent potential cpu waste, just like the above.
|
||||
|
||||
/datum/status_effect/chem/penis_enlarger/on_apply(mob/living/carbon/human/H)//Removes clothes, they're too small to contain you. You belong to space now.
|
||||
/datum/status_effect/chem/penis_enlarger/on_apply()//Removes clothes, they're too small to contain you. You belong to space now.
|
||||
log_game("FERMICHEM: [owner]'s dick has reached comical sizes. ID: [owner.key]")
|
||||
var/mob/living/carbon/human/o = owner
|
||||
var/items = o.get_contents()
|
||||
if(o.w_uniform || o.wear_suit)
|
||||
to_chat(o, "<span class='warning'>Your clothes give, ripping into peices under the strain of your swelling pecker! Unless you manage to reduce the size of your emancipated trouser snake, there's no way you're going to be able to put anything on over this girth..!</b></span>")
|
||||
owner.visible_message("<span class='boldnotice'>[o]'s schlong suddenly bursts forth, ripping their clothes off!'</span>")
|
||||
var/mob/living/carbon/human/H = owner
|
||||
var/message = FALSE
|
||||
if(H.w_uniform)
|
||||
H.dropItemToGround(H.w_uniform, TRUE)
|
||||
message = TRUE
|
||||
if(H.wear_suit)
|
||||
H.dropItemToGround(H.wear_suit, TRUE)
|
||||
message = TRUE
|
||||
if(message)
|
||||
playsound(H.loc, 'sound/items/poster_ripped.ogg', 50, 1)
|
||||
H.visible_message("<span class='boldnotice'>[H]'s schlong suddenly bursts forth, ripping their clothes off!'</span>", \
|
||||
"<span class='warning'>Your clothes give, ripping into peices under the strain of your swelling pecker! Unless you manage to reduce the size of your emancipated trouser snake, there's no way you're going to be able to put anything on over this girth..!</b></span>")
|
||||
else
|
||||
to_chat(o, "<span class='notice'>Your emancipated trouser snake is so ripe with girth, you seriously doubt you'll be able to fit any clothes over it.</b></span>")
|
||||
for(var/obj/item/W in items)
|
||||
if(W == o.w_uniform || W == o.wear_suit)
|
||||
o.dropItemToGround(W, TRUE)
|
||||
playsound(o.loc, 'sound/items/poster_ripped.ogg', 50, 1)
|
||||
to_chat(H, "<span class='notice'>Your emancipated trouser snake is so ripe with girth, you seriously doubt you'll be able to fit any clothes over it.</b></span>")
|
||||
return ..()
|
||||
|
||||
|
||||
/datum/status_effect/chem/penis_enlarger/tick(mob/living/carbon/M)
|
||||
var/mob/living/carbon/human/o = owner
|
||||
var/obj/item/organ/genital/penis/P = o.getorganslot("penis")
|
||||
/datum/status_effect/chem/penis_enlarger/tick()
|
||||
var/mob/living/carbon/human/H = owner
|
||||
var/obj/item/organ/genital/penis/P = H.getorganslot(ORGAN_SLOT_PENIS)
|
||||
if(!P)
|
||||
owner.remove_status_effect(src)
|
||||
return
|
||||
moveCalc = 1+((round(P.length) - 21)/3) //effects how fast you can move
|
||||
bloodCalc = 1+((round(P.length) - 21)/15) //effects how much blood you need (I didn' bother adding an arousal check because I'm spending too much time on this organ already.)
|
||||
if(!P)
|
||||
o.remove_movespeed_modifier(DICK_MOVEMENT_SPEED)
|
||||
o.ResetBloodVol()
|
||||
owner.remove_status_effect(src)
|
||||
var/items = o.get_contents()
|
||||
for(var/obj/item/W in items)
|
||||
if(W == o.w_uniform || W == o.wear_suit)
|
||||
o.dropItemToGround(W, TRUE)
|
||||
playsound(o.loc, 'sound/items/poster_ripped.ogg', 50, 1)
|
||||
to_chat(owner, "<span class='warning'>Your enormous package is way to large to fit anything over!</b></span>")
|
||||
switch(round(P.cached_length))
|
||||
if(21)
|
||||
to_chat(o, "<span class='notice'>Your rascally willy has become a more managable size, liberating your movements.</b></span>")
|
||||
o.remove_movespeed_modifier(DICK_MOVEMENT_SPEED)
|
||||
o.AdjustBloodVol(bloodCalc)
|
||||
if(22 to INFINITY)
|
||||
if(prob(2))
|
||||
to_chat(o, "<span class='warning'>Your indulgent johnson is so substantial, it's taking all your blood and affecting your movements!</b></span>")
|
||||
o.add_movespeed_modifier(DICK_MOVEMENT_SPEED, TRUE, 100, NONE, override = TRUE, multiplicative_slowdown = moveCalc)
|
||||
o.AdjustBloodVol(bloodCalc)
|
||||
|
||||
var/message = FALSE
|
||||
if(H.w_uniform)
|
||||
H.dropItemToGround(H.w_uniform, TRUE)
|
||||
message = TRUE
|
||||
if(H.wear_suit)
|
||||
H.dropItemToGround(H.wear_suit, TRUE)
|
||||
message = TRUE
|
||||
if(message)
|
||||
playsound(H.loc, 'sound/items/poster_ripped.ogg', 50, 1)
|
||||
to_chat(H, "<span class='warning'>Your enormous package is way to large to fit anything over!</b></span>")
|
||||
|
||||
if(P.length < 22 && H.has_movespeed_modifier(DICK_MOVEMENT_SPEED))
|
||||
to_chat(owner, "<span class='notice'>Your rascally willy has become a more managable size, liberating your movements.</b></span>")
|
||||
H.remove_movespeed_modifier(DICK_MOVEMENT_SPEED)
|
||||
else if(P.length >= 22 && !H.has_movespeed_modifier(DICK_MOVEMENT_SPEED))
|
||||
to_chat(H, "<span class='warning'>Your indulgent johnson is so substantial, it's taking all your blood and affecting your movements!</b></span>")
|
||||
H.add_movespeed_modifier(DICK_MOVEMENT_SPEED, TRUE, 100, NONE, override = TRUE, multiplicative_slowdown = moveCalc)
|
||||
H.AdjustBloodVol(bloodCalc)
|
||||
..()
|
||||
|
||||
/datum/status_effect/chem/penis_enlarger/on_remove(mob/living/carbon/human/o)
|
||||
/datum/status_effect/chem/penis_enlarger/on_remove()
|
||||
log_game("FERMICHEM: [owner]'s dick has reduced to an acceptable size. ID: [owner.key]")
|
||||
owner.remove_movespeed_modifier(DICK_MOVEMENT_SPEED)
|
||||
owner.ResetBloodVol()
|
||||
@@ -230,7 +234,6 @@
|
||||
var/enthrallGender //Use master or mistress
|
||||
|
||||
var/mental_capacity //Higher it is, lower the cooldown on commands, capacity reduces with resistance.
|
||||
var/datum/weakref/redirect_component //resistance
|
||||
|
||||
var/distancelist = list(2,1.5,1,0.8,0.6,0.5,0.4,0.3,0.2) //Distance multipliers
|
||||
|
||||
@@ -260,7 +263,7 @@
|
||||
master = get_mob_by_key(enthrallID)
|
||||
//if(M.ckey == enthrallID)
|
||||
// owner.remove_status_effect(src)//At the moment, a user can enthrall themselves, toggle this back in if that should be removed.
|
||||
redirect_component = WEAKREF(owner.AddComponent(/datum/component/redirect, list(COMSIG_LIVING_RESIST = CALLBACK(src, .proc/owner_resist)))) //Do resistance calc if resist is pressed#
|
||||
RegisterSignal(owner, COMSIG_LIVING_RESIST, .proc/owner_resist) //Do resistance calc if resist is pressed#
|
||||
RegisterSignal(owner, COMSIG_MOVABLE_HEAR, .proc/owner_hear)
|
||||
mental_capacity = 500 - M.getOrganLoss(ORGAN_SLOT_BRAIN)//It's their brain!
|
||||
var/mob/living/carbon/human/H = owner
|
||||
@@ -532,7 +535,7 @@
|
||||
cooldown += 1 //Cooldown doesn't process till status is done
|
||||
|
||||
else if(status == "charge")
|
||||
ADD_TRAIT(owner, TRAIT_GOTTAGOFAST, "MKUltra")
|
||||
owner.add_movespeed_modifier(MOVESPEED_ID_MKULTRA, update=TRUE, priority=100, multiplicative_slowdown=-2, blacklisted_movetypes=(FLYING|FLOATING))
|
||||
status = "charged"
|
||||
if(master.client?.prefs.lewdchem)
|
||||
to_chat(owner, "<span class='notice'><i>Your [enthrallGender]'s order fills you with a burst of speed!</i></span>")
|
||||
@@ -542,7 +545,7 @@
|
||||
else if (status == "charged")
|
||||
if (statusStrength < 0)
|
||||
status = null
|
||||
REMOVE_TRAIT(owner, TRAIT_GOTTAGOFAST, "MKUltra")
|
||||
owner.remove_movespeed_modifier(MOVESPEED_ID_MKULTRA)
|
||||
owner.Knockdown(50)
|
||||
to_chat(owner, "<span class='notice'><i>Your body gives out as the adrenaline in your system runs out.</i></span>")
|
||||
else
|
||||
@@ -598,8 +601,7 @@
|
||||
SEND_SIGNAL(M, COMSIG_CLEAR_MOOD_EVENT, "EnthMissing2")
|
||||
SEND_SIGNAL(M, COMSIG_CLEAR_MOOD_EVENT, "EnthMissing3")
|
||||
SEND_SIGNAL(M, COMSIG_CLEAR_MOOD_EVENT, "EnthMissing4")
|
||||
qdel(redirect_component.resolve())
|
||||
redirect_component = null
|
||||
UnregisterSignal(M, COMSIG_LIVING_RESIST)
|
||||
UnregisterSignal(owner, COMSIG_MOVABLE_HEAR)
|
||||
REMOVE_TRAIT(owner, TRAIT_PACIFISM, "MKUltra")
|
||||
to_chat(owner, "<span class='big redtext'><i>You're now free of [master]'s influence, and fully independent!'</i></span>")
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
// Citadel-specific Negative Traits
|
||||
@@ -1,43 +0,0 @@
|
||||
// Citadel-specific Neutral Traits
|
||||
|
||||
/datum/quirk/libido
|
||||
name = "Nymphomania"
|
||||
desc = "You're always feeling a bit in heat. Also, you get aroused faster than usual."
|
||||
value = 0
|
||||
mob_trait = TRAIT_NYMPHO
|
||||
gain_text = "<span class='notice'>You are feeling extra wild.</span>"
|
||||
lose_text = "<span class='notice'>You don't feel that burning sensation anymore.</span>"
|
||||
|
||||
/datum/quirk/libido/add()
|
||||
var/mob/living/M = quirk_holder
|
||||
M.min_arousal = 16
|
||||
M.arousal_rate = 3
|
||||
|
||||
/datum/quirk/libido/remove()
|
||||
var/mob/living/M = quirk_holder
|
||||
M.min_arousal = initial(M.min_arousal)
|
||||
M.arousal_rate = initial(M.arousal_rate)
|
||||
|
||||
/datum/quirk/libido/on_process()
|
||||
var/mob/living/M = quirk_holder
|
||||
if(M.canbearoused == FALSE)
|
||||
to_chat(quirk_holder, "<span class='notice'>Having high libido is useless when you can't feel arousal at all!</span>")
|
||||
qdel(src)
|
||||
|
||||
/datum/quirk/maso
|
||||
name = "Masochism"
|
||||
desc = "You are aroused by pain."
|
||||
value = 0
|
||||
mob_trait = TRAIT_MASO
|
||||
gain_text = "<span class='notice'>You desire to be hurt.</span>"
|
||||
lose_text = "<span class='notice'>Pain has become less exciting for you.</span>"
|
||||
|
||||
/datum/quirk/pharmacokinesis //Prevents unwanted organ additions.
|
||||
name = "Acute hepatic pharmacokinesis"
|
||||
desc = "You've a rare genetic disorder that causes Incubus draft and Sucubus milk to be absorbed by your liver instead."
|
||||
value = 0
|
||||
mob_trait = TRAIT_PHARMA
|
||||
lose_text = "<span class='notice'>Your liver feels different.</span>"
|
||||
var/active = FALSE
|
||||
var/power = 0
|
||||
var/cachedmoveCalc = 1
|
||||
@@ -1,40 +0,0 @@
|
||||
/datum/wires/airlock
|
||||
proper_name = "Generic Airlock"
|
||||
var/wiretype
|
||||
|
||||
/datum/wires/airlock/command
|
||||
proper_name = "Command Airlock"
|
||||
wiretype = "commandairlock"
|
||||
|
||||
/datum/wires/airlock/security
|
||||
proper_name = "Security Airlock"
|
||||
wiretype = "securityairlock"
|
||||
|
||||
/datum/wires/airlock/engineering
|
||||
proper_name = "Engineering Airlock"
|
||||
wiretype = "engineeringairlock"
|
||||
|
||||
/datum/wires/airlock/science
|
||||
proper_name = "Science Airlock"
|
||||
wiretype = "scienceairlock"
|
||||
|
||||
/datum/wires/airlock/medical
|
||||
proper_name = "Medical Airlock"
|
||||
wiretype = "medicalairlock"
|
||||
|
||||
/datum/wires/airlock/cargo
|
||||
proper_name = "Cargo Airlock"
|
||||
wiretype = "cargoairlock"
|
||||
|
||||
/datum/wires/airlock/New(atom/holder)
|
||||
. = ..()
|
||||
if(randomize)
|
||||
return
|
||||
if(wiretype)
|
||||
if(!GLOB.wire_color_directory[wiretype])
|
||||
colors = list()
|
||||
randomize()
|
||||
GLOB.wire_color_directory[wiretype] = colors
|
||||
GLOB.wire_name_directory[wiretype] = proper_name
|
||||
else
|
||||
colors = GLOB.wire_color_directory[wiretype]
|
||||
Reference in New Issue
Block a user