Merge remote-tracking branch 'upstream/master' into call-it-whatever-the-fuck-i-want

This commit is contained in:
Oposshim
2020-07-09 02:54:49 -04:00
113 changed files with 118244 additions and 132063 deletions
+91
View File
@@ -0,0 +1,91 @@
/obj/item/mesmetron
name = "Mesmetron"
desc = "An elaborate pocketwatch, with a captivating gold etching and an enchanting face..."
icon = 'icons/obj/pocketwatch.dmi'
icon_state = "pocketwatch"
item_state = "pocketwatch"
w_class = WEIGHT_CLASS_SMALL
throw_range = 7
throw_speed = 3
var/mob/living/carbon/subject = null
var/closed = FALSE
//Hypnotize someone
/obj/item/mesmetron/attack(mob/living/carbon/human/H, mob/living/user)
if(closed)
return
if(H.IsSleeping())
to_chat(user, "You can't hypnotize [H] whilst they're asleep!")
return
user.visible_message("<span class='warning'>[user] begins to mesmerizingly wave [src] like a pendulum before [H]'s very eyes!</span>")
if(!do_mob(user, H, 12 SECONDS))
return
if(!(user in view(1, loc)))
return
var/response = alert(H, "Do you wish to fall into a hypnotic sleep? (This will allow [user] to issue hypnotic suggestions)", "Hypnosis", "Yes", "No")
if(response == "Yes")
H.visible_message("<span class='warning'>[H] falls into a deep slumber!</span>", "<span class ='danger'>Your eyelids gently shut as you fall into a deep slumber. All you can hear is [user]'s voice as you commit to following all of their suggestions</span>")
H.SetSleeping(1200)
H.drowsyness = max(H.drowsyness, 40)
subject = H
return
//No
H.visible_message("<span class='warning'>[H]'s attention breaks, despite your attempts to hypnotize them! They clearly don't want this</span>", "<span class ='warning'>Your concentration breaks as you realise you have no interest in following [user]'s words!</span>")
//If there's a subject, open the suggestion interface
/obj/item/mesmetron/attack_self(mob/user)
if(closed)
return
if(!subject)
return
if(!subject.IsSleeping())
to_chat(user, "[subject] is awake and no longer under hypnosis!")
subject = null
return
var/response = alert(user, "Would you like to release your subject or give them a suggestion?", "Mesmetron", "Suggestion", "Release")
if(response == "Suggestion")
if(get_dist(user, subject) > 1)
to_chat(user, "You must stand in whisper range of [subject].")
return
text = input("What would you like to suggest?", "Hypnotic suggestion", null, null)
text = sanitize(text)
if(!text)
return
to_chat(user, "You whisper your suggestion in a smooth calming voice to [subject]")
to_chat(subject, "<span class='hypnophrase'>...[text]...</span>")
return
//Release
subject.visible_message("<span class='warning'>[subject] wakes up from their deep slumber!</span>", "<span class ='danger'>Your eyelids gently open as you see [user]'s face staring back at you</span>")
subject.SetSleeping(0)
subject = null
//Toggle open/close
/obj/item/mesmetron/AltClick(mob/user)
//Close it
if(icon_state == "pocketwatch")
icon_state = "pocketwatch_closed"
item_state = "pocketwatch_closed"
desc = "An elaborate pocketwatch, with a captivating gold etching. It's closed however and you can't see it's face"
closed = TRUE
return
//Open it
icon_state = "pocketwatch"
item_state = "pocketwatch"
desc = "An elaborate pocketwatch, with a captivating gold etching and an enchanting face..."
closed = FALSE
+31
View File
@@ -12,6 +12,7 @@
* Cigarette Box
* Cigar Case
* Heart Shaped Box w/ Chocolates
* Ring Box
*/
/obj/item/storage/fancy
@@ -350,3 +351,33 @@
GET_COMPONENT(STR, /datum/component/storage)
STR.max_items = 8
STR.can_hold = typecacheof(list(/obj/item/reagent_containers/food/snacks/tinychocolate))
/*
* Ring Box
*/
/obj/item/storage/fancy/ringbox
name = "ring box"
desc = "A tiny box covered in soft red felt made for holding rings."
icon = 'icons/obj/ring.dmi'
icon_state = "gold ringbox"
icon_type = "gold ring"
w_class = WEIGHT_CLASS_TINY
spawn_type = /obj/item/clothing/gloves/ring
/obj/item/storage/fancy/ringbox/ComponentInitialize()
. = ..()
var/datum/component/storage/STR = GetComponent(/datum/component/storage)
STR.max_items = 1
STR.can_hold = typecacheof(list(/obj/item/clothing/gloves/ring))
/obj/item/storage/fancy/ringbox/diamond
icon_state = "diamond ringbox"
icon_type = "diamond ring"
spawn_type = /obj/item/clothing/gloves/ring/diamond
/obj/item/storage/fancy/ringbox/silver
icon_state = "silver ringbox"
icon_type = "silver ring"
spawn_type = /obj/item/clothing/gloves/ring/silver
@@ -129,3 +129,8 @@
name = "Kinaris.Co Logo"
desc = "The Kinaris corporate logo."
icon_state = "nanotrasen_sign1"
/obj/structure/sign/logo/kinaris
name = "kinaris logo"
desc = "The Kinaris corprate logo. Radiant."
icon_state = "kinaris_sign1"
@@ -126,6 +126,7 @@
/obj/structure/transit_tube/station/proc/launch_pod()
if(launch_cooldown >= world.time)
return
density = FALSE
for(var/obj/structure/transit_tube_pod/pod in loc)
if(!pod.moving)
pod_moving = 1
@@ -148,6 +149,7 @@
pod.setDir(tube_dirs[1]) //turning the pod around for next launch.
launch_cooldown = world.time + cooldown_delay
open_animation()
density = TRUE
sleep(OPEN_DURATION + 2)
pod_moving = 0
if(!QDELETED(pod))
@@ -4,7 +4,7 @@
icon = 'icons/obj/atmospherics/pipes/transit_tube.dmi'
icon_state = "straight"
desc = "A transit tube for moving things around."
density = TRUE
density = FALSE
layer = LOW_ITEM_LAYER
anchored = TRUE
climbable = 1
@@ -16,7 +16,7 @@
/obj/structure/transit_tube/CanPass(atom/movable/mover, turf/target)
if(istype(mover) && (mover.pass_flags & PASSGLASS))
return 1
return TRUE
return !density
/obj/structure/transit_tube/New(loc, newdirection)
@@ -189,7 +189,6 @@
dir = WEST
/obj/structure/transit_tube/diagonal/crossing
density = FALSE
icon_state = "diagonal_crossing"
tube_construction = /obj/structure/c_transit_tube/diagonal/crossing
@@ -263,7 +262,6 @@
/obj/structure/transit_tube/crossing
icon_state = "crossing"
tube_construction = /obj/structure/c_transit_tube/crossing
density = FALSE
//mostly for mapping use
/obj/structure/transit_tube/crossing/horizontal
@@ -88,7 +88,7 @@
/obj/structure/c_transit_tube/curved
icon_state = "curved0"
build_type = /obj/structure/transit_tube/curved
flipped_build_type = /obj/structure/transit_tube/curved/flipped
flipped_build_type = /obj/structure/c_transit_tube/curved/flipped
base_icon = "curved"
/obj/structure/c_transit_tube/curved/flipped
@@ -3,7 +3,7 @@
icon_state = "pod"
animate_movement = FORWARD_STEPS
anchored = TRUE
density = TRUE
density = FALSE
layer = BELOW_OBJ_LAYER
var/moving = 0
var/datum/gas_mixture/air_contents = new()
@@ -136,13 +136,11 @@
sleep(last_delay)
setDir(next_dir)
forceMove(next_loc) // When moving from one tube to another, skip collision and such.
density = current_tube.density
if(current_tube && current_tube.should_stop_pod(src, next_dir))
current_tube.pod_stopped(src, dir)
break
density = TRUE
moving = 0
var/obj/structure/transit_tube/TT = locate(/obj/structure/transit_tube) in loc