This commit is contained in:
Ghommie
2019-01-19 00:28:24 +01:00
54 changed files with 361 additions and 152 deletions
@@ -0,0 +1,35 @@
/datum/component/souldeath
var/mob/living/wearer
var/equip_slot
var/signal = FALSE
/datum/component/souldeath/Initialize()
if(!isitem(parent))
return COMPONENT_INCOMPATIBLE
RegisterSignal(parent, COMSIG_ITEM_EQUIPPED, .proc/equip)
RegisterSignal(parent, COMSIG_ITEM_DROPPED, .proc/unequip)
/datum/component/souldeath/proc/equip(datum/source, mob/living/equipper, slot)
if(!slot || equip_slot == slot)
wearer = equipper
RegisterSignal(wearer, COMSIG_MOB_DEATH, .proc/die, TRUE)
signal = TRUE
else
if(signal)
UnregisterSignal(wearer, COMSIG_MOB_DEATH)
signal = FALSE
return
/datum/component/souldeath/proc/unequip()
UnregisterSignal(wearer, COMSIG_MOB_DEATH)
wearer = null
signal = FALSE
/datum/component/souldeath/proc/die()
if(!wearer)
return //idfk
new/obj/effect/temp_visual/souldeath(wearer.loc, wearer)
playsound(wearer, 'modular_citadel/sound/misc/souldeath.ogg', 100, FALSE)
/datum/component/souldeath/neck
equip_slot = SLOT_NECK
@@ -0,0 +1,5 @@
/obj/effect/temp_visual/souldeath
name = "soul death"
icon = 'modular_citadel/icons/effects/souldeath.dmi'
icon_state = "souldeath"
duration = 30
@@ -1,7 +1,7 @@
//////////
//DILDOS//
//////////
obj/item/dildo
/obj/item/dildo
name = "dildo"
desc = "Floppy!"
icon = 'modular_citadel/icons/obj/genitals/dildo.dmi'
@@ -18,9 +18,10 @@ obj/item/dildo
var/random_color = TRUE
var/random_size = FALSE
var/random_shape = FALSE
var/is_knotted = FALSE
//Lists moved to _cit_helpers.dm as globals so they're not instanced individually
obj/item/dildo/proc/update_appearance()
/obj/item/dildo/proc/update_appearance()
icon_state = "[dildo_type]_[dildo_shape]_[dildo_size]"
var/sizeword = ""
switch(dildo_size)
@@ -35,7 +36,7 @@ obj/item/dildo/proc/update_appearance()
name = "[sizeword][dildo_shape] [can_customize ? "custom " : ""][dildo_type]"
obj/item/dildo/AltClick(mob/living/user)
/obj/item/dildo/AltClick(mob/living/user)
if(QDELETED(src))
return
if(!isliving(user))
@@ -46,7 +47,7 @@ obj/item/dildo/AltClick(mob/living/user)
return
customize(user)
obj/item/dildo/proc/customize(mob/living/user)
/obj/item/dildo/proc/customize(mob/living/user)
if(!can_customize)
return FALSE
if(src && !user.incapacitated() && in_range(user,src))
@@ -75,7 +76,7 @@ obj/item/dildo/proc/customize(mob/living/user)
update_appearance()
return TRUE
obj/item/dildo/Initialize()
/obj/item/dildo/Initialize()
. = ..()
if(random_color == TRUE)
var/randcolor = pick(GLOB.dildo_colors)
@@ -91,38 +92,41 @@ obj/item/dildo/Initialize()
pixel_y = rand(-7,7)
pixel_x = rand(-7,7)
obj/item/dildo/examine(mob/user)
/obj/item/dildo/examine(mob/user)
..()
if(can_customize)
user << "<span class='notice'>Alt-Click \the [src.name] to customize it.</span>"
obj/item/dildo/random//totally random
/obj/item/dildo/random//totally random
name = "random dildo"//this name will show up in vendors and shit so you know what you're vending(or don't, i guess :^))
random_color = TRUE
random_shape = TRUE
random_size = TRUE
obj/item/dildo/knotted
/obj/item/dildo/knotted
dildo_shape = "knotted"
name = "knotted dildo"
attack_verb = list("penetrated", "knotted", "slapped", "inseminated")
obj/item/dildo/human
dildo_shape = "human"
name = "human dildo"
attack_verb = list("penetrated", "slapped", "inseminated")
obj/item/dildo/plain
dildo_shape = "plain"
name = "plain dildo"
attack_verb = list("penetrated", "slapped", "inseminated")
obj/item/dildo/flared
dildo_shape = "flared"
name = "flared dildo"
attack_verb = list("penetrated", "slapped", "neighed", "gaped", "prolapsed", "inseminated")
obj/item/dildo/flared/huge
name = "literal horse cock"
desc = "THIS THING IS HUGE!"
dildo_size = 4
name = "literal horse cock"
desc = "THIS THING IS HUGE!"
dildo_size = 4
obj/item/dildo/custom
name = "customizable dildo"
@@ -131,3 +135,30 @@ obj/item/dildo/custom
random_color = TRUE
random_shape = TRUE
random_size = TRUE
// Suicide acts, by request
/obj/item/dildo/proc/manual_suicide(mob/living/user)
user.visible_message("<span class='suicide'>[user] finally finishes deepthroating the [src], and their life.</span>")
user.adjustOxyLoss(200)
user.death(0)
/obj/item/dildo/suicide_act(mob/living/user)
// is_knotted = ((src.dildo_shape == "knotted")?"They swallowed the knot":"Their face is turning blue")
if(do_after(user,17,target=src))
user.visible_message("<span class='suicide'>[user] tears-up and gags as they shove [src] down their throat! It looks like [user.p_theyre()] trying to commit suicide!</span>")
playsound(loc, 'sound/weapons/gagging.ogg', 50, 1, -1)
user.Stun(150)
user.adjust_blurriness(8)
user.adjust_eye_damage(10)
return MANUAL_SUICIDE
/obj/item/dildo/flared/huge/suicide_act(mob/living/user)
if(do_after(user,35,target=src))
user.visible_message("<span class='suicide'>[user] tears-up and gags as they try to deepthroat the [src]! WHY WOULD THEY DO THAT? It looks like [user.p_theyre()] trying to commit suicide!!</span>")
playsound(loc, 'sound/weapons/gagging.ogg', 50, 2, -1)
user.Stun(300)
user.adjust_blurriness(8)
user.adjust_eye_damage(15)
return MANUAL_SUICIDE
@@ -361,4 +361,10 @@ datum/gear/darksabresheath
name = "Mime's Overalls"
category = SLOT_WEAR_SUIT
path = /obj/item/clothing/under/mimeoveralls
ckeywhitelist = list("pireamaineach")
ckeywhitelist = list("pireamaineach")
/datum/gear/soulneck
name = "Soul Necklace"
category = SLOT_IN_BACKPACK
path = /obj/item/clothing/neck/undertale
ckeywhitelist = list("twilightic")
@@ -1,8 +1,6 @@
/obj/item/clothing/glasses/phantomthief
name = "suspicious paper mask"
desc = "A cheap, Syndicate-branded paper face mask with vision correction lens and flash proof! They'll never see it coming. This mask goes over your eyes."
flash_protect = 1
vision_correction = 1
desc = "A cheap, Syndicate-branded paper face mask. They'll never see it coming."
alternate_worn_icon = 'icons/mob/mask.dmi'
icon = 'icons/obj/clothing/masks.dmi'
icon_state = "s-ninja"
@@ -14,7 +12,7 @@
/obj/item/clothing/glasses/phantomthief/syndicate
name = "suspicious plastic mask"
desc = "A cheap, bulky, Syndicate-branded plastic face mask with vision correction lens and flash proof. You have to break in to break out. This mask goes over your eyes."
desc = "A cheap, bulky, Syndicate-branded plastic face mask. You have to break in to break out."
var/nextadrenalinepop
var/datum/component/redirect/combattoggle_redir
@@ -0,0 +1,23 @@
/datum/action/item_action/zanderlocket
name = "Activate the locket"
/obj/item/clothing/neck/undertale
name = "Sylphaen Heart Locket"
desc = "A heart shaped locket...The name: 'Zander Sylphaen is inscribed on the front. Something about this necklace fills you with determination."
icon = 'modular_citadel/icons/obj/clothing/cit_neck.dmi'
item_state = "undertale"
icon_state = "undertale"
alternate_worn_icon = 'modular_citadel/icons/mob/clothing/necks.dmi'
resistance_flags = FIRE_PROOF
actions_types = list(/datum/action/item_action/zanderlocket)
var/toggled = FALSE
var/obj/effect/heart/heart
/datum/action/item_action/zanderlocket/Trigger()
new/obj/effect/temp_visual/souldeath(owner.loc, owner)
playsound(owner, 'modular_citadel/sound/misc/souldeath.ogg', 100, FALSE)
/obj/item/clothing/neck/undertale/Initialize()
..()
AddComponent(/datum/component/souldeath/neck)