Merge pull request #13 from Citadel-Station-13/master

6
This commit is contained in:
BlueWildrose
2021-01-01 21:07:57 -07:00
committed by GitHub
20 changed files with 394 additions and 234 deletions
+148 -189
View File
@@ -69,35 +69,18 @@
/turf/closed/wall/r_wall,
/area/security/prison)
"aaj" = (
/obj/structure/cable{
icon_state = "1-4"
},
/obj/structure/cable{
icon_state = "4-8"
},
/turf/closed/wall/r_wall,
/area/security/prison)
"aak" = (
/obj/structure/cable{
icon_state = "0-4"
},
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
/area/security/prison)
"aal" = (
/obj/structure/cable{
icon_state = "0-4"
},
/obj/structure/cable{
icon_state = "0-8"
},
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
/turf/open/floor/plasteel,
/area/security/prison)
"aam" = (
/obj/structure/cable{
icon_state = "0-2"
},
/obj/structure/cable{
icon_state = "0-8"
},
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
/area/security/prison)
@@ -115,11 +98,17 @@
/obj/structure/sign/warning/electricshock{
pixel_y = 32
},
/obj/structure/cable{
icon_state = "4-8"
},
/turf/open/floor/grass,
/area/security/prison)
"aap" = (
/obj/machinery/hydroponics/soil,
/obj/item/seeds/carrot,
/obj/structure/cable{
icon_state = "1-4"
},
/turf/open/floor/grass,
/area/security/prison)
"aaq" = (
@@ -140,17 +129,29 @@
/obj/structure/sink{
pixel_y = 20
},
/obj/structure/cable{
icon_state = "4-8"
},
/turf/open/floor/plasteel,
/area/security/prison)
"aar" = (
/obj/machinery/hydroponics/soil,
/obj/item/seeds/glowshroom,
/obj/structure/cable{
icon_state = "1-4"
},
/obj/structure/cable{
icon_state = "4-8"
},
/turf/open/floor/grass,
/area/security/prison)
"aas" = (
/obj/structure/sign/warning/electricshock{
pixel_y = 32
},
/obj/structure/cable{
icon_state = "4-8"
},
/turf/open/floor/plasteel,
/area/security/prison)
"aat" = (
@@ -5666,6 +5667,9 @@
/obj/structure/disposalpipe/segment{
dir = 4
},
/obj/structure/cable{
icon_state = "2-4"
},
/turf/open/floor/plasteel,
/area/security/brig)
"akw" = (
@@ -5845,10 +5849,13 @@
/area/science/xenobiology)
"akQ" = (
/obj/structure/cable{
icon_state = "4-8"
icon_state = "1-2"
},
/turf/closed/wall,
/area/security/brig)
/obj/structure/cable{
icon_state = "2-8"
},
/turf/open/floor/plasteel,
/area/security/prison)
"akR" = (
/obj/machinery/camera{
c_tag = "Security Office";
@@ -6108,7 +6115,7 @@
"alq" = (
/obj/machinery/door/airlock/security/glass{
name = "Evidence Storage";
req_access_txt = "4"
req_one_access_txt = "4;1"
},
/obj/machinery/door/firedoor,
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
@@ -6142,25 +6149,11 @@
/turf/open/floor/plasteel,
/area/security/brig)
"alt" = (
/obj/machinery/door/airlock/security/glass{
id_tag = "innerbrig";
name = "Brig";
req_access_txt = "63"
},
/obj/machinery/door/firedoor,
/obj/structure/cable{
icon_state = "4-8"
},
/obj/effect/mapping_helpers/airlock/cyclelink_helper,
/obj/effect/turf_decal/tile/red,
/obj/effect/turf_decal/tile/red{
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
},
/obj/effect/turf_decal/tile/red{
dir = 8
},
/obj/effect/turf_decal/tile/red{
dir = 1
/obj/structure/cable{
icon_state = "1-2"
},
/turf/open/floor/plasteel,
/area/security/brig)
@@ -6180,16 +6173,11 @@
/area/ai_monitored/nuke_storage)
"alv" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/structure/cable{
icon_state = "0-8"
},
/obj/structure/cable{
icon_state = "0-4"
},
/obj/machinery/door/poddoor/preopen{
id = "Secure Gate";
name = "brig shutters"
},
/obj/structure/cable,
/turf/open/floor/plating,
/area/security/brig)
"alw" = (
@@ -6272,6 +6260,9 @@
/obj/effect/turf_decal/tile/red{
dir = 4
},
/obj/structure/cable{
icon_state = "2-4"
},
/turf/open/floor/plasteel,
/area/security/brig)
"alB" = (
@@ -6572,9 +6563,6 @@
/turf/open/floor/engine,
/area/science/xenobiology)
"amm" = (
/obj/structure/cable{
icon_state = "0-8"
},
/obj/structure/cable{
icon_state = "0-4"
},
@@ -6609,6 +6597,9 @@
/obj/effect/turf_decal/tile/red{
dir = 4
},
/obj/structure/cable{
icon_state = "4-8"
},
/turf/open/floor/plasteel,
/area/security/brig)
"amq" = (
@@ -6661,9 +6652,6 @@
icon_state = "0-8"
},
/obj/effect/spawner/structure/window/reinforced,
/obj/structure/cable{
icon_state = "0-4"
},
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/turf/open/floor/plating,
/area/security/brig)
@@ -6763,6 +6751,12 @@
/obj/effect/turf_decal/tile/red{
dir = 1
},
/obj/structure/cable{
icon_state = "1-8"
},
/obj/structure/cable{
icon_state = "2-8"
},
/turf/open/floor/plasteel,
/area/security/brig)
"amJ" = (
@@ -6853,25 +6847,15 @@
},
/turf/open/floor/plasteel,
/area/science/xenobiology)
"amR" = (
/obj/structure/cable{
icon_state = "0-4"
},
/obj/structure/cable{
icon_state = "0-8"
},
/obj/machinery/door/poddoor/preopen{
id = "Secure Gate";
name = "brig shutters"
},
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
/area/security/brig)
"amS" = (
/obj/structure/cable{
icon_state = "4-8"
/obj/effect/turf_decal/tile/red,
/obj/effect/turf_decal/tile/red{
dir = 8
},
/turf/closed/wall/r_wall,
/obj/structure/cable{
icon_state = "1-2"
},
/turf/open/floor/plasteel,
/area/security/brig)
"amT" = (
/obj/structure/cable{
@@ -7271,9 +7255,11 @@
/obj/structure/cable{
icon_state = "0-4"
},
/obj/structure/cable,
/obj/effect/spawner/structure/window/reinforced,
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/structure/cable{
icon_state = "1-4"
},
/turf/open/floor/plating,
/area/security/brig)
"anQ" = (
@@ -7281,9 +7267,6 @@
/obj/effect/turf_decal/tile/yellow{
dir = 8
},
/obj/structure/cable{
icon_state = "1-2"
},
/turf/open/floor/plasteel,
/area/security/brig)
"anR" = (
@@ -7514,14 +7497,13 @@
/obj/structure/cable{
icon_state = "0-4"
},
/obj/structure/cable,
/obj/machinery/door/poddoor/preopen{
id = "Secure Gate";
name = "brig shutters"
},
/obj/effect/spawner/structure/window/reinforced,
/obj/structure/cable{
icon_state = "1-8"
icon_state = "0-8"
},
/turf/open/floor/plating,
/area/security/brig)
@@ -7755,13 +7737,13 @@
/area/security/brig)
"aoZ" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/structure/cable{
icon_state = "0-2"
},
/obj/machinery/door/poddoor/preopen{
id = "Secure Brig Control";
name = "brig shutters"
},
/obj/structure/cable{
icon_state = "0-4"
},
/turf/open/floor/plating,
/area/security/warden)
"apa" = (
@@ -7780,6 +7762,9 @@
/area/science/xenobiology)
"apc" = (
/obj/structure/chair/office/dark,
/obj/structure/cable{
icon_state = "4-8"
},
/turf/open/floor/plasteel/showroomfloor,
/area/security/warden)
"apd" = (
@@ -7933,6 +7918,12 @@
pixel_x = 6;
pixel_y = 3
},
/obj/structure/cable{
icon_state = "4-8"
},
/obj/structure/cable{
icon_state = "2-4"
},
/turf/open/floor/plasteel/showroomfloor,
/area/security/warden)
"apw" = (
@@ -8052,6 +8043,12 @@
pixel_y = -24;
req_access_txt = "2"
},
/obj/structure/cable{
icon_state = "2-4"
},
/obj/structure/cable{
icon_state = "4-8"
},
/turf/open/floor/plasteel/showroomfloor,
/area/security/warden)
"apI" = (
@@ -8133,9 +8130,6 @@
req_access_txt = "63"
},
/obj/machinery/door/firedoor,
/obj/structure/cable{
icon_state = "4-8"
},
/obj/effect/mapping_helpers/airlock/cyclelink_helper{
dir = 1
},
@@ -8158,14 +8152,19 @@
/turf/open/floor/plating,
/area/maintenance/fore)
"apT" = (
/obj/machinery/door/poddoor/preopen{
id = "Cell Interior Shutters";
name = "brig shutters"
},
/obj/effect/spawner/structure/window/reinforced,
/obj/structure/cable{
icon_state = "4-8"
icon_state = "0-8"
},
/obj/structure/cable{
icon_state = "1-8"
icon_state = "0-4"
},
/turf/closed/wall/r_wall,
/area/security/warden)
/turf/open/floor/plating,
/area/security/brig)
"apU" = (
/turf/open/floor/plating,
/area/security/vacantoffice/b)
@@ -8181,20 +8180,6 @@
},
/turf/open/floor/plating,
/area/maintenance/fore)
"apX" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/structure/cable{
icon_state = "0-8"
},
/obj/structure/cable{
icon_state = "0-4"
},
/obj/machinery/door/poddoor/preopen{
id = "Secure Brig Control";
name = "brig shutters"
},
/turf/open/floor/plating,
/area/security/warden)
"apY" = (
/obj/machinery/light/small{
dir = 1
@@ -8406,13 +8391,11 @@
/area/crew_quarters/fitness/pool)
"aqt" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/structure/cable{
icon_state = "0-8"
},
/obj/machinery/door/poddoor/preopen{
id = "Secure Brig Control";
name = "brig shutters"
},
/obj/structure/cable,
/turf/open/floor/plating,
/area/security/warden)
"aqu" = (
@@ -8858,6 +8841,9 @@
c_tag = "Brig Control";
dir = 1
},
/obj/structure/cable{
icon_state = "1-8"
},
/turf/open/floor/plasteel/showroomfloor,
/area/security/warden)
"arz" = (
@@ -52616,9 +52602,6 @@
/obj/effect/turf_decal/tile/blue{
dir = 8
},
/obj/structure/cable{
icon_state = "1-2"
},
/turf/open/floor/plasteel,
/area/security/brig)
"cLS" = (
@@ -53521,9 +53504,17 @@
/area/science/circuit)
"dyE" = (
/obj/structure/cable{
icon_state = "1-2"
icon_state = "0-4"
},
/turf/open/floor/plasteel,
/obj/structure/cable{
icon_state = "0-8"
},
/obj/machinery/door/poddoor/preopen{
id = "Secure Gate";
name = "brig shutters"
},
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
/area/security/brig)
"dyS" = (
/obj/effect/turf_decal/tile/green{
@@ -53583,9 +53574,6 @@
/turf/open/space,
/area/space/nearstation)
"dCV" = (
/obj/structure/cable{
icon_state = "1-4"
},
/obj/effect/turf_decal/tile/red{
dir = 1
},
@@ -54994,11 +54982,11 @@
/obj/structure/cable{
icon_state = "0-8"
},
/obj/structure/cable{
icon_state = "0-4"
},
/obj/effect/spawner/structure/window/reinforced,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/obj/structure/cable{
icon_state = "2-8"
},
/turf/open/floor/plating,
/area/security/brig)
"gOZ" = (
@@ -56342,15 +56330,15 @@
/obj/effect/turf_decal/tile/red{
dir = 8
},
/obj/structure/cable{
icon_state = "2-4"
},
/obj/effect/turf_decal/tile/red{
dir = 1
},
/obj/effect/turf_decal/tile/red{
dir = 4
},
/obj/structure/cable{
icon_state = "1-4"
},
/turf/open/floor/plasteel,
/area/security/brig)
"kcx" = (
@@ -56869,9 +56857,6 @@
/turf/open/floor/plasteel,
/area/security/brig)
"laq" = (
/obj/structure/cable{
icon_state = "2-8"
},
/obj/structure/cable{
icon_state = "2-4"
},
@@ -57160,7 +57145,7 @@
/area/maintenance/starboard/aft)
"lZn" = (
/obj/machinery/door/airlock/security/glass{
id_tag = "innerbrig";
id_tag = null;
name = "Brig Infirmary";
req_access_txt = "2"
},
@@ -58195,9 +58180,6 @@
/area/hallway/primary/central)
"ovv" = (
/obj/structure/table,
/obj/structure/cable{
icon_state = "0-2"
},
/obj/effect/turf_decal/tile/red{
dir = 1
},
@@ -58540,9 +58522,6 @@
/obj/effect/turf_decal/tile/red{
dir = 8
},
/obj/structure/cable{
icon_state = "2-4"
},
/obj/effect/turf_decal/tile/red{
dir = 1
},
@@ -58671,9 +58650,6 @@
/obj/effect/turf_decal/tile/red{
dir = 8
},
/obj/structure/cable{
icon_state = "2-8"
},
/obj/effect/turf_decal/tile/red{
dir = 1
},
@@ -58681,7 +58657,10 @@
dir = 4
},
/obj/structure/cable{
icon_state = "2-4"
icon_state = "4-8"
},
/obj/structure/cable{
icon_state = "1-4"
},
/turf/open/floor/plasteel,
/area/security/brig)
@@ -58809,9 +58788,6 @@
/turf/open/floor/plating,
/area/crew_quarters/fitness)
"pQr" = (
/obj/structure/cable{
icon_state = "1-2"
},
/obj/effect/turf_decal/tile/green,
/obj/effect/turf_decal/tile/green{
dir = 8
@@ -59498,9 +59474,6 @@
/area/maintenance/bar)
"rCl" = (
/obj/machinery/door/firedoor,
/obj/structure/cable{
icon_state = "4-8"
},
/obj/effect/mapping_helpers/airlock/cyclelink_helper{
dir = 1
},
@@ -59544,20 +59517,6 @@
},
/turf/open/floor/plating,
/area/crew_quarters/abandoned_gambling_den)
"rJv" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/structure/cable{
icon_state = "0-4"
},
/obj/structure/cable{
icon_state = "0-8"
},
/obj/machinery/door/poddoor/preopen{
id = "Secure Gate";
name = "brig shutters"
},
/turf/open/floor/plating,
/area/security/brig)
"rJw" = (
/obj/structure/table/glass,
/obj/item/hemostat,
@@ -59764,9 +59723,6 @@
},
/area/crew_quarters/fitness)
"seP" = (
/obj/structure/cable{
icon_state = "0-4"
},
/obj/structure/cable{
icon_state = "0-8"
},
@@ -61092,6 +61048,9 @@
/area/maintenance/starboard/aft)
"uXt" = (
/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
/obj/structure/cable{
icon_state = "1-2"
},
/turf/open/floor/plasteel,
/area/security/brig)
"vae" = (
@@ -61332,13 +61291,13 @@
/area/crew_quarters/dorms)
"vyK" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/structure/cable{
icon_state = "0-8"
},
/obj/machinery/door/poddoor/preopen{
id = "Secure Gate";
name = "brig shutters"
},
/obj/structure/cable{
icon_state = "0-2"
},
/turf/open/floor/plating,
/area/security/brig)
"vzp" = (
@@ -88087,7 +88046,7 @@ aaa
aaa
aag
aaa
aak
aam
aap
saX
aaD
@@ -88344,7 +88303,7 @@ aaa
aaa
aag
aaf
aaj
aai
aao
aax
aaC
@@ -88370,7 +88329,7 @@ alz
cZe
alg
plS
dyE
afM
pQr
aou
aqC
@@ -88601,7 +88560,7 @@ aaa
aaa
aag
aaa
aal
aam
aar
uGI
aaF
@@ -88858,7 +88817,7 @@ aaa
aaa
aag
aaf
aaj
aai
aaq
dyS
aaE
@@ -88883,10 +88842,10 @@ agj
agM
sAk
akp
akQ
agj
amB
amn
amS
aiX
anz
anz
aov
@@ -89115,8 +89074,8 @@ aaa
aaa
aag
aaa
aal
aat
aam
aaj
aat
aat
aat
@@ -89143,7 +89102,7 @@ akM
amm
gyr
anM
rJv
xal
aqC
anz
aox
@@ -89372,7 +89331,7 @@ aaa
aaa
aag
aaf
aaj
aai
aas
aat
aat
@@ -89395,12 +89354,12 @@ akU
afM
lBz
alA
ene
alg
alt
amS
kbm
dyE
afM
cKC
seP
dyE
aqC
anR
aow
@@ -89630,7 +89589,7 @@ aaa
aag
aaa
aam
aav
akQ
aav
aav
aav
@@ -89657,7 +89616,7 @@ akT
gNE
gLz
anB
amR
seP
aqC
anz
aov
@@ -89911,10 +89870,10 @@ fxx
ako
ene
amj
akQ
agj
amB
amn
amS
aiX
anz
anz
aov
@@ -90171,7 +90130,7 @@ amk
amm
gyr
mos
rJv
xal
aqC
anz
aov
@@ -90424,11 +90383,11 @@ akF
aiy
akv
uXt
alg
amS
pAK
dyE
afM
anQ
seP
dyE
aqC
anz
aov
@@ -90685,7 +90644,7 @@ akT
amx
any
arD
amR
seP
aqC
anz
aov
@@ -90939,10 +90898,10 @@ ajc
akz
ene
als
akQ
amB
agj
apT
amn
amS
aiX
aqD
anz
aov
@@ -91196,7 +91155,7 @@ ajc
akz
ene
alg
alt
alw
amp
aot
apR
@@ -91455,7 +91414,7 @@ itD
alg
vyK
amI
alg
amS
alv
aqE
anS
@@ -91970,7 +91929,7 @@ agn
agn
amN
aoZ
apT
agn
anw
anz
cXU
@@ -92227,7 +92186,7 @@ akY
alE
amU
apH
apX
aqt
aqC
anz
gfC
+10 -2
View File
@@ -136,11 +136,15 @@
#define COMSIG_ATOM_ATTACK_HAND "atom_attack_hand" //from base of atom/attack_hand(): (mob/user)
#define COMSIG_ATOM_ATTACK_PAW "atom_attack_paw" //from base of atom/attack_paw(): (mob/user)
#define COMPONENT_NO_ATTACK_HAND 1 //works on all 3.
/////////////////
//This signal return value bitflags can be found in __DEFINES/misc.dm
#define COMSIG_ATOM_INTERCEPT_Z_FALL "movable_intercept_z_impact" //called for each movable in a turf contents on /turf/zImpact(): (atom/movable/A, levels)
/////////////////
/// Called from orbit component: (atom/movable/orbiter, radius, clockwise, rotation_speed, rotation_segments, pre_rotation)
#define COMSIG_ATOM_ORBIT_BEGIN "atom_orbit_begin"
/// Called from orbit component: (atom/movable/orbiter, refreshing)
#define COMSIG_ATOM_ORBIT_END "atom_orbit_end"
#define COMSIG_ENTER_AREA "enter_area" //from base of area/Entered(): (/area)
#define COMSIG_EXIT_AREA "exit_area" //from base of area/Exited(): (/area)
@@ -536,3 +540,7 @@
#define COMSIG_XENO_TURF_CLICK_SHIFT "xeno_turf_click_shift" //from turf ShiftClickOn(): (/mob)
#define COMSIG_XENO_TURF_CLICK_CTRL "xeno_turf_click_alt" //from turf AltClickOn(): (/mob)
#define COMSIG_XENO_MONKEY_CLICK_CTRL "xeno_monkey_click_ctrl" //from monkey CtrlClickOn(): (/mob)
// twitch plays
/// Returns direction: (wipe_votes)
#define COMSIG_TWITCH_PLAYS_MOVEMENT_DATA "twitch_plays_movement_data"
+2
View File
@@ -54,6 +54,7 @@
move_react()
/datum/component/orbiter/proc/begin_orbit(atom/movable/orbiter, radius, clockwise, rotation_speed, rotation_segments, pre_rotation)
SEND_SIGNAL(parent, COMSIG_ATOM_ORBIT_BEGIN, orbiter, radius, clockwise, rotation_speed, rotation_segments, pre_rotation)
if(orbiter.orbiting)
if(orbiter.orbiting == src)
orbiter.orbiting.end_orbit(orbiter, TRUE)
@@ -87,6 +88,7 @@
/datum/component/orbiter/proc/end_orbit(atom/movable/orbiter, refreshing=FALSE)
if(!orbiters[orbiter])
return
SEND_SIGNAL(parent, COMSIG_ATOM_ORBIT_END, orbiter, refreshing)
UnregisterSignal(orbiter, COMSIG_MOVABLE_MOVED)
orbiter.SpinAnimation(0, 0)
if(istype(orbiters[orbiter],/matrix)) //This is ugly.
+2 -2
View File
@@ -133,7 +133,7 @@
//KEYS
/datum/component/riding/proc/keycheck(mob/user)
return !keytype || user.is_holding_item_of_type(keytype)
return !keytype || user?.is_holding_item_of_type(keytype)
//BUCKLE HOOKS
/datum/component/riding/proc/restore_position(mob/living/buckled_mob)
@@ -153,7 +153,7 @@
/datum/component/riding/proc/handle_ride(mob/user, direction)
var/atom/movable/AM = parent
if(user.incapacitated())
if(user && user.incapacitated())
Unbuckle(user)
return
if(world.time < last_vehicle_move + ((last_move_diagonal? 2 : 1) * vehicle_move_delay))
+104
View File
@@ -0,0 +1,104 @@
/**
* Observers voting on things through orbiting
*/
/datum/component/twitch_plays
/// Observers
var/list/mob/players = list()
/datum/component/twitch_plays/Initialize(...)
. = ..()
if(!isatom(parent))
return COMPONENT_INCOMPATIBLE
RegisterSignal(parent, COMSIG_ATOM_ORBIT_BEGIN, .proc/on_start_orbit)
RegisterSignal(parent, COMSIG_ATOM_ORBIT_END, .proc/on_end_orbit)
/datum/component/twitch_plays/Destroy(force, silent)
for(var/i in players)
DetachPlayer(i)
return ..()
/datum/component/twitch_plays/proc/on_start_orbit(datum/source, atom/movable/orbiter)
if(!isobserver(orbiter))
return
AttachPlayer(orbiter)
/datum/component/twitch_plays/proc/on_end_orbit(datum/source, atom/movable/orbiter)
if(!(orbiter in players))
return
DetachPlayer(orbiter)
/datum/component/twitch_plays/proc/AttachPlayer(mob/dead/observer)
players |= observer
RegisterSignal(observer, COMSIG_PARENT_QDELETING, .proc/on_end_orbit)
/datum/component/twitch_plays/proc/DetachPlayer(mob/dead/observer)
players -= observer
UnregisterSignal(observer, COMSIG_PARENT_QDELETING)
/// Simple movement one
/datum/component/twitch_plays/simple_movement
/// Movement votes by observer
var/list/votes = list()
/// Allow diagonals
var/allow_diagonal = FALSE
/datum/component/twitch_plays/simple_movement/Initialize(...)
. = ..()
if(. & COMPONENT_INCOMPATIBLE)
return
RegisterSignal(parent, COMSIG_TWITCH_PLAYS_MOVEMENT_DATA, .proc/fetch_data)
/datum/component/twitch_plays/simple_movement/AttachPlayer(mob/dead/observer)
. = ..()
RegisterSignal(observer, COMSIG_MOVABLE_PRE_MOVE, .proc/pre_move)
/datum/component/twitch_plays/simple_movement/DetachPlayer(mob/dead/observer)
. = ..()
UnregisterSignal(observer, COMSIG_MOVABLE_PRE_MOVE)
/datum/component/twitch_plays/simple_movement/proc/pre_move(datum/source, turf/newLoc)
if(get_dist(newLoc, parent) > 1) // they're trying to escape orbit
return
. = COMPONENT_MOVABLE_BLOCK_PRE_MOVE
var/dir = get_dir(parent, newLoc)
if(!dir)
return
if(allow_diagonal || !((dir - 1) & dir))
votes[source] = dir
else // pick one or the other
votes[source] = prob(50)? (dir & ~(dir - 1)) : (dir & (dir - 1))
/datum/component/twitch_plays/simple_movement/proc/fetch_data(datum/source, wipe_votes)
if(!votes.len)
return
var/list/total = list(TEXT_NORTH, TEXT_SOUTH, TEXT_EAST, TEXT_WEST)
for(var/i in votes)
total[num2text(votes[i])] += 1
. = text2num(pickweight(total, 0))
if(wipe_votes)
votes.len = 0
/datum/component/twitch_plays/simple_movement/auto
var/move_delay = 2
var/last_move = 0
/datum/component/twitch_plays/simple_movement/auto/Initialize(...)
if(!ismovable(parent))
return COMPONENT_INCOMPATIBLE
. = ..()
if(. & COMPONENT_INCOMPATIBLE)
return
START_PROCESSING(SSfastprocess, src)
/datum/component/twitch_plays/simple_movement/auto/Destroy(force, silent)
STOP_PROCESSING(SSfastprocess, src)
return ..()
/datum/component/twitch_plays/simple_movement/auto/process()
var/dir = fetch_data(null, TRUE)
if(!dir)
return
if(world.time < (last_move + move_delay))
return
last_move = world.time
step(parent, dir)
+44 -35
View File
@@ -18,7 +18,7 @@
var/mode = HEATER_MODE_STANDBY
var/setMode = "auto" // Anything other than "heat" or "cool" is considered auto.
var/targetTemperature = T20C
var/heatingPower = 40000
var/heatingPower = 10000
var/efficiency = 20000
var/temperatureTolerance = 1
var/settableTemperatureMedian = 30 + T0C
@@ -74,46 +74,55 @@
if(cell && cell.charge > 0)
var/turf/L = loc
if(!istype(L))
if(mode != HEATER_MODE_STANDBY)
mode = HEATER_MODE_STANDBY
update_icon()
return
PerformHeating(L)
var/datum/gas_mixture/env = L.return_air()
for(var/direction in GLOB.alldirs)
L=get_step(src,direction)
if(!locate(/turf/closed) in L) // we don't want to heat walls and cause jank
PerformHeating(L)
var/newMode = HEATER_MODE_STANDBY
if(setMode != HEATER_MODE_COOL && env.return_temperature() < targetTemperature - temperatureTolerance)
newMode = HEATER_MODE_HEAT
else if(setMode != HEATER_MODE_HEAT && env.return_temperature() > targetTemperature + temperatureTolerance)
newMode = HEATER_MODE_COOL
if(mode != newMode)
mode = newMode
update_icon()
if(mode == HEATER_MODE_STANDBY)
return
var/heat_capacity = env.heat_capacity()
var/requiredPower = abs(env.return_temperature() - targetTemperature) * heat_capacity
requiredPower = min(requiredPower, heatingPower)
if(requiredPower < 1)
return
var/deltaTemperature = requiredPower / heat_capacity
if(mode == HEATER_MODE_COOL)
deltaTemperature *= -1
if(deltaTemperature)
env.set_temperature(env.return_temperature() + deltaTemperature)
air_update_turf()
cell.use(requiredPower / efficiency)
else
on = FALSE
update_icon()
return PROCESS_KILL
/obj/machinery/space_heater/proc/PerformHeating(turf/L)
if(!istype(L))
if(mode != HEATER_MODE_STANDBY)
mode = HEATER_MODE_STANDBY
update_icon()
return
var/datum/gas_mixture/env = L.return_air()
var/newMode = HEATER_MODE_STANDBY
if(setMode != HEATER_MODE_COOL && env.return_temperature() < targetTemperature - temperatureTolerance)
newMode = HEATER_MODE_HEAT
else if(setMode != HEATER_MODE_HEAT && env.return_temperature() > targetTemperature + temperatureTolerance)
newMode = HEATER_MODE_COOL
if(mode != newMode)
mode = newMode
update_icon()
if(mode == HEATER_MODE_STANDBY)
return
var/heat_capacity = env.heat_capacity()
var/requiredPower = abs(env.return_temperature() - targetTemperature) * heat_capacity
requiredPower = min(requiredPower, heatingPower)
if(requiredPower < 1)
return
var/deltaTemperature = requiredPower / heat_capacity
if(mode == HEATER_MODE_COOL)
deltaTemperature *= -1
if(deltaTemperature)
env.set_temperature(env.return_temperature() + deltaTemperature)
air_update_turf()
cell.use(requiredPower / efficiency)
/obj/machinery/space_heater/RefreshParts()
var/laser = 2
var/cap = 1
@@ -122,7 +131,7 @@
for(var/obj/item/stock_parts/capacitor/M in component_parts)
cap += M.rating
heatingPower = laser * 40000
heatingPower = laser * 10000
settableTemperatureRange = cap * 30
efficiency = (cap + 1) * 10000
@@ -80,6 +80,17 @@
to_chat(user, "<span class='notice'>You insert the credits into [src].</span>")
update_icon()
qdel(H)
if(istype(I, /obj/item/card/id))
var/obj/item/card/id/ID = I
if(!ID.registered_account)
to_chat(user, "<span class='warning'>[ID] doesn't have a linked account to deposit into!</span>")
return
for(var/obj/item/holochip/money in src.loc.contents)
ID.attackby(money, user)
for(var/obj/item/stack/spacecash/money in src.loc.contents)
ID.attackby(money, user)
for(var/obj/item/coin/money in src.loc.contents)
ID.attackby(money, user)
/obj/item/holochip/AltClick(mob/user)
if(!istype(user) || !user.canUseTopic(src, BE_CLOSE, ismonkey(user)))
+14
View File
@@ -33,6 +33,20 @@
. = ..()
update_desc()
/obj/item/stack/spacecash/attackby(obj/item/W, mob/user, params)
. = ..()
if(istype(W, /obj/item/card/id))
var/obj/item/card/id/ID = W
if(!ID.registered_account)
to_chat(user, "<span class='warning'>[ID] doesn't have a linked account to deposit into!</span>")
return
for(var/obj/item/holochip/money in src.loc.contents)
ID.attackby(money, user)
for(var/obj/item/stack/spacecash/money in src.loc.contents)
ID.attackby(money, user)
for(var/obj/item/coin/money in src.loc.contents)
ID.attackby(money, user)
/obj/item/stack/spacecash/c1
icon_state = "spacecash"
singular_name = "one credit bill"
+11
View File
@@ -397,6 +397,17 @@ GLOBAL_LIST_INIT(sand_recipes, list(\
else
to_chat(user, "<span class='warning'>You need one length of cable to attach a string to the coin!</span>")
return
else if(istype(W, /obj/item/card/id))
var/obj/item/card/id/ID = W
if(!ID.registered_account)
to_chat(user, "<span class='warning'>[ID] doesn't have a linked account to deposit into!</span>")
return
for(var/obj/item/holochip/money in src.loc.contents)
ID.attackby(money, user)
for(var/obj/item/stack/spacecash/money in src.loc.contents)
ID.attackby(money, user)
for(var/obj/item/coin/money in src.loc.contents)
ID.attackby(money, user)
else
..()
@@ -380,6 +380,8 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
/mob/dead/observer/Move(NewLoc, direct)
if (SEND_SIGNAL(src, COMSIG_MOVABLE_PRE_MOVE, NewLoc) & COMPONENT_MOVABLE_BLOCK_PRE_MOVE)
return
if(updatedir)
setDir(direct)//only update dir if we actually need it, so overlays won't spin on base sprites that don't have directions of their own
var/oldloc = loc
@@ -9,6 +9,7 @@ GLOBAL_LIST_EMPTY(parasites) //all currently existing/living guardians
real_name = "Guardian Spirit"
desc = "A mysterious being that stands by its charge, ever vigilant."
speak_emote = list("hisses")
rad_flags = RAD_NO_CONTAMINATE | RAD_PROTECT_CONTENTS
gender = NEUTER
mob_biotypes = NONE
bubble_icon = "guardian"
+2 -2
View File
@@ -148,8 +148,8 @@ proc/get_top_level_mob(var/mob/S)
var/safety = 25
for(var/obj/structure/table/T in range(user, 1))
processing |= T
for(var/i in processing)
var/obj/structure/table/T = i
for(var/i = 1; i <= processing.len; ++i)
var/obj/structure/table/T = processing[i]
if(safety-- <= 0)
to_chat(user, "Table scan aborted early, some people might have not received the message (max 25)")
break
+21 -2
View File
@@ -18,14 +18,12 @@
. = ..()
initialize_controller_action_type(/datum/action/vehicle/sealed/horn/clowncar, VEHICLE_CONTROL_DRIVE)
/obj/vehicle/sealed/car/clowncar/driver_move(mob/user, direction) //Prevent it from moving onto space
if(isspaceturf(get_step(src, direction)))
return FALSE
else
return ..()
/obj/vehicle/sealed/car/clowncar/auto_assign_occupant_flags(mob/M)
if(ishuman(M))
var/mob/living/carbon/human/H = M
@@ -138,3 +136,24 @@
/obj/vehicle/sealed/car/clowncar/proc/StopDroppingOil()
droppingoil = FALSE
/obj/vehicle/sealed/car/clowncar/twitch_plays
key_type = null
/obj/vehicle/sealed/car/clowncar/twitch_plays/Initialize()
. = ..()
AddComponent(/datum/component/twitch_plays/simple_movement)
START_PROCESSING(SSfastprocess, src)
GLOB.poi_list |= src
notify_ghosts("Twitch Plays: Clown Car")
/obj/vehicle/sealed/car/clowncar/twitch_plays/Destroy()
STOP_PROCESSING(SSfastprocess, src)
GLOB.poi_list -= src
return ..()
/obj/vehicle/sealed/car/clowncar/twitch_plays/process()
var/dir = SEND_SIGNAL(src, COMSIG_TWITCH_PLAYS_MOVEMENT_DATA, TRUE)
if(!dir)
return
driver_move(null, dir)
@@ -0,0 +1,4 @@
author: "Putnam3145"
delete-after: True
changes:
- balance: "Zeolites now only generate 1/5 the heat when reacting and don't require a catalyst."
@@ -0,0 +1,4 @@
author: "raspy-on-osu"
delete-after: True
changes:
- tweak: "space heater heating range and power"
@@ -0,0 +1,4 @@
author: "silicons"
delete-after: True
changes:
- rscadd: "Twitch Plays: Clown Car"
@@ -0,0 +1,4 @@
author: "SandPoot"
delete-after: True
changes:
- tweak: "You can attack a pile of money on the floor with your id to put it all in quickly."
@@ -0,0 +1,4 @@
author: "MrJWhit"
delete-after: True
changes:
- tweak: "Small fixes on security on boxstation"
@@ -593,7 +593,6 @@
id = /datum/reagent/fermi/zeolites
results = list(/datum/reagent/fermi/zeolites = 5) //We make a lot! - But it's now somewhat dangerous, and needs a bit of gold to catalyze the reaction
required_reagents = list(/datum/reagent/medicine/potass_iodide = 1, /datum/reagent/aluminium = 1, /datum/reagent/silicon = 1, /datum/reagent/oxygen = 1)
required_catalysts = list(/datum/reagent/gold = 5)
//FermiChem vars:
OptimalTempMin = 500
OptimalTempMax = 750
@@ -604,7 +603,7 @@
//CatalystFact = 0
CurveSharpT = 1.5
CurveSharppH = 3
ThermicConstant = 5
ThermicConstant = 1
HIonRelease = -0.15
RateUpLim = 4
PurityMin = 0.5 //Good luck!
+1
View File
@@ -492,6 +492,7 @@
#include "code\datums\components\swarming.dm"
#include "code\datums\components\tackle.dm"
#include "code\datums\components\thermite.dm"
#include "code\datums\components\twitch_plays.dm"
#include "code\datums\components\twohanded.dm"
#include "code\datums\components\uplink.dm"
#include "code\datums\components\virtual_reality.dm"