136 lines
5.4 KiB
Plaintext
136 lines
5.4 KiB
Plaintext
//Barrier cube - Chilling Grey
|
|
/obj/item/barriercube
|
|
name = "barrier cube"
|
|
desc = "A compressed cube of slime. When squeezed, it grows to massive size!"
|
|
icon = 'icons/obj/slimecrossing.dmi'
|
|
icon_state = "barriercube"
|
|
w_class = WEIGHT_CLASS_TINY
|
|
|
|
/obj/item/barriercube/attack_self(mob/user)
|
|
if(locate(/obj/structure/barricade/slime) in get_turf(loc))
|
|
to_chat(user, "<span class='warning'>You can't fit more than one barrier in the same space!</span>")
|
|
return
|
|
to_chat(user, "<span class='notice'>You squeeze [src].</span>")
|
|
var/obj/B = new /obj/structure/barricade/slime(get_turf(loc))
|
|
B.visible_message("<span class='warning'>[src] suddenly grows into a large, gelatinous barrier!</span>")
|
|
qdel(src)
|
|
|
|
//Slime barricade - Chilling Grey
|
|
/obj/structure/barricade/slime
|
|
name = "gelatinous barrier"
|
|
desc = "A huge chunk of grey slime. Bullets might get stuck in it."
|
|
icon = 'icons/obj/slimecrossing.dmi'
|
|
icon_state = "slimebarrier"
|
|
proj_pass_rate = 40
|
|
max_integrity = 60
|
|
|
|
//Melting Gel Wall - Chilling Metal
|
|
/obj/effect/forcefield/slimewall
|
|
name = "solidified gel"
|
|
desc = "A mass of solidified slime gel - completely impenetrable, but it's melting away!"
|
|
icon = 'icons/obj/slimecrossing.dmi'
|
|
icon_state = "slimebarrier_thick"
|
|
CanAtmosPass = ATMOS_PASS_NO
|
|
opacity = TRUE
|
|
timeleft = 100
|
|
|
|
//Rainbow barrier - Chilling Rainbow
|
|
/obj/effect/forcefield/slimewall/rainbow
|
|
name = "rainbow barrier"
|
|
desc = "Despite others' urgings, you probably shouldn't taste this."
|
|
icon_state = "rainbowbarrier"
|
|
|
|
//Ration pack - Chilling Silver
|
|
/obj/item/reagent_containers/food/snacks/rationpack
|
|
name = "ration pack"
|
|
desc = "A square bar that sadly <i>looks</i> like chocolate, packaged in a nondescript grey wrapper. Has saved soldiers' lives before - usually by stopping bullets."
|
|
icon_state = "rationpack"
|
|
bitesize = 3
|
|
junkiness = 15
|
|
filling_color = "#964B00"
|
|
tastes = list("cardboard" = 3, "sadness" = 3)
|
|
foodtype = null //Don't ask what went into them. You're better off not knowing.
|
|
list_reagents = list("stabilizednutriment" = 10, "nutriment" = 2) //Won't make you fat. Will make you question your sanity.
|
|
|
|
/obj/item/reagent_containers/food/snacks/rationpack/checkLiked(fraction, mob/M) //Nobody likes rationpacks. Nobody.
|
|
if(last_check_time + 50 < world.time)
|
|
if(ishuman(M))
|
|
var/mob/living/carbon/human/H = M
|
|
if(H.mind && !H.has_trait(TRAIT_AGEUSIA))
|
|
to_chat(H,"<span class='notice'>That didn't taste very good...</span>") //No disgust, though. It's just not good tasting.
|
|
GET_COMPONENT_FROM(mood, /datum/component/mood, H)
|
|
if(mood)
|
|
mood.add_event(null,"gross_food", /datum/mood_event/gross_food)
|
|
last_check_time = world.time
|
|
return
|
|
..()
|
|
|
|
//Ice stasis block - Chilling Dark Blue
|
|
/obj/structure/ice_stasis
|
|
name = "ice block"
|
|
desc = "A massive block of ice. You can see something vaguely humanoid inside."
|
|
icon = 'icons/obj/slimecrossing.dmi'
|
|
icon_state = "frozen"
|
|
density = TRUE
|
|
max_integrity = 100
|
|
armor = list("melee" = 30, "bullet" = 50, "laser" = -50, "energy" = -50, "bomb" = 0, "bio" = 100, "rad" = 100, "fire" = -80, "acid" = 30)
|
|
|
|
/obj/structure/ice_stasis/Initialize()
|
|
. = ..()
|
|
playsound(src, 'sound/magic/ethereal_exit.ogg', 50, 1)
|
|
|
|
/obj/structure/ice_stasis/Destroy()
|
|
for(var/atom/movable/M in contents)
|
|
M.forceMove(loc)
|
|
playsound(src, 'sound/effects/glassbr3.ogg', 50, 1)
|
|
return ..()
|
|
|
|
//Gold capture device - Chilling Gold
|
|
/obj/item/capturedevice
|
|
name = "gold capture device"
|
|
desc = "Bluespace technology packed into a roughly egg-shaped device, used to store nonhuman creatures. Can't catch them all, though - it only fits one."
|
|
w_class = WEIGHT_CLASS_SMALL
|
|
icon = 'icons/obj/slimecrossing.dmi'
|
|
icon_state = "capturedevice"
|
|
|
|
/obj/item/capturedevice/attack(mob/living/M, mob/user)
|
|
if(length(contents))
|
|
to_chat(user, "<span class='warning'>The device already has something inside.</span>")
|
|
return
|
|
if(!isanimal(M))
|
|
to_chat(user, "<span class='warning'>The capture device only works on simple creatures.</span>")
|
|
return
|
|
if(M.mind)
|
|
to_chat(user, "<span class='notice'>You offer the device to [M].</span>")
|
|
if(alert(M, "Would you like to enter [user]'s capture device?", "Gold Capture Device", "Yes", "No") == "Yes")
|
|
if(user.canUseTopic(src, BE_CLOSE) && user.canUseTopic(M, BE_CLOSE))
|
|
to_chat(user, "<span class='notice'>You store [M] in the capture device.</span>")
|
|
to_chat(M, "<span class='notice'>The world warps around you, and you're suddenly in an endless void, with a window to the outside floating in front of you.</span>")
|
|
store(M, user)
|
|
else
|
|
to_chat(user, "<span class='warning'>You were too far away from [M].</span>")
|
|
to_chat(M, "<span class='warning'>You were too far away from [user].</span>")
|
|
else
|
|
to_chat(user, "<span class='warning'>[M] refused to enter the device.</span>")
|
|
return
|
|
else
|
|
if(istype(M, /mob/living/simple_animal/hostile) && !("neutral" in M.faction))
|
|
to_chat(user, "<span class='warning'>This creature is too aggressive to capture.</span>")
|
|
return
|
|
to_chat(user, "<span class='notice'>You store [M] in the capture device.</span>")
|
|
store(M)
|
|
|
|
/obj/item/capturedevice/attack_self(mob/user)
|
|
if(contents.len)
|
|
to_chat(user, "<span class='notice'>You open the capture device!</span>")
|
|
release()
|
|
else
|
|
to_chat(user, "<span class='warning'>The device is empty...</span>")
|
|
|
|
/obj/item/capturedevice/proc/store(var/mob/living/M)
|
|
M.forceMove(src)
|
|
|
|
/obj/item/capturedevice/proc/release()
|
|
for(var/atom/movable/M in contents)
|
|
M.forceMove(get_turf(loc))
|