Skip to content

Commit

Permalink
SCP 173's cage (SS13-SCP13#598)
Browse files Browse the repository at this point in the history
* SCP-173's cage

* CL

* grammar or something

* structure check

* small changes

* cage is dense now
  • Loading branch information
kachnov authored and JakeDaBoss committed Dec 6, 2018
1 parent b1dcbc9 commit e50e09f
Show file tree
Hide file tree
Showing 4 changed files with 79 additions and 2 deletions.
2 changes: 2 additions & 0 deletions code/_macros.dm
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,8 @@

#define isscp049_1(A) (istype(A, /mob/living/carbon/human) && istype(A:species, /datum/species/scp049_1))

#define isscp173(A) istype(A, /mob/living/scp_173)

#define isunderwear(A) istype(A, /obj/item/underwear)

#define isvirtualmob(A) istype(A, /mob/observer/virtual)
Expand Down
43 changes: 41 additions & 2 deletions code/modules/SCP/SCPs/SCP-173.dm
Original file line number Diff line number Diff line change
Expand Up @@ -158,7 +158,7 @@ GLOBAL_LIST_EMPTY(scp173s)
/mob/living/scp_173/verb/get_schwifty() // plz don't kill me for the reference
set name = "Shit On Floor"
set category = "SCP"
if(world.time >= last_player_shit + 600)
if(!isobj(loc) && world.time >= (last_player_shit + (1 MINUTE)))
last_player_shit = world.time
var/feces = pick(/obj/effect/decal/cleanable/blood, /obj/effect/decal/cleanable/blood/gibs, /obj/effect/decal/cleanable/mucus)
new feces(loc)
Expand All @@ -167,4 +167,43 @@ GLOBAL_LIST_EMPTY(scp173s)
/mob/living/carbon/human/set_stat(_new)
..(_new)
if (stat != DEAD)
scp173_killed = FALSE
scp173_killed = FALSE

// the cage
/obj/structure/scp173_cage
icon = 'icons/SCP/cage.dmi'
icon_state = "1"
layer = MOB_LAYER + 0.05
name = "Empty SCP-173 Cage"
density = TRUE

/obj/structure/scp173_cage/MouseDrop_T(atom/movable/dropping, mob/user)
if (isscp173(dropping))
visible_message("<span class = \"danger\">[user] starts to put SCP-173 into the cage.</span>")
var/oloc = loc
if (do_mob(user, dropping, 5 SECONDS) && loc == oloc) // shitty but there's no good alternative
dropping.forceMove(src)
underlays = list(dropping)
visible_message("<span class = \"good\">[user] puts SCP-173 in the cage.</span>")
name = "SCP-173 Cage"
else if (isliving(dropping))
to_chat(user, "<span class = \"warning\">\The [dropping] won't fit in the cage.</span>")

/obj/structure/scp173_cage/attack_hand(mob/living/carbon/human/H)
if (locate(/mob/living/scp_173) in contents)
visible_message("<span class = \"danger\">[H] releases SCP-173 from the cage.</span>")

var/mob/living/scp_173/S = contents[1]
S.forceMove(get_step(src, dir))

// move to a nice spot if our current one is too full
for (var/dir in list(NORTH, EAST, SOUTH, WEST))
if (S.loc.density || (locate(/mob/living) in (S.loc.contents-S)) || (locate(/obj/structure) in (S.loc.contents-S)))
S.forceMove(get_step(src, dir))
else
break

underlays.Cut()
name = initial(name)
else
visible_message("<span class = \"warning\">The cage is empty; there's nothing to take out.</span>")
36 changes: 36 additions & 0 deletions html/changelogs/SCP173-cage.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
################################
# Example Changelog File
#
# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb.
#
# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.)
# When it is, any changes listed below will disappear.
#
# Valid Prefixes:
# bugfix
# wip (For works in progress)
# tweak
# soundadd
# sounddel
# rscadd (general adding of nice things)
# rscdel (general deleting of nice things)
# imageadd
# imagedel
# maptweak
# spellcheck (typo fixes)
# experiment
#################################

# Your name.
author: Memeopolis

# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again.
delete-after: True

# Any changes you've made. See valid prefix list above.
# INDENT WITH TWO SPACES. NOT TABS. SPACES.
# SCREW THIS UP AND IT WON'T WORK.
# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries.
# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog.
changes:
- rscadd: "Added a cage that can be used to safely contain and transport SCP-173."
Binary file added icons/SCP/cage.dmi
Binary file not shown.

0 comments on commit e50e09f

Please sign in to comment.