it compiles, now to fix the maps
This commit is contained in:
@@ -65,6 +65,7 @@
|
||||
#define FREQ_ENGINEERING 1357 // Engineering comms frequency, orange
|
||||
#define FREQ_SECURITY 1359 // Security comms frequency, red
|
||||
|
||||
#define FREQ_HOLOGRID_SOLUTION 1433
|
||||
#define FREQ_STATUS_DISPLAYS 1435
|
||||
#define FREQ_ATMOS_ALARMS 1437 // air alarms <-> alert computers
|
||||
#define FREQ_ATMOS_CONTROL 1439 // air alarms <-> vents and scrubbers
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
/datum/element/snailcrawl
|
||||
element_flags = ELEMENT_DETACH
|
||||
|
||||
/datum/element/snailcrawl/Attach(datum/target)
|
||||
. = ..()
|
||||
if(!ismovable(target))
|
||||
return ELEMENT_INCOMPATIBLE
|
||||
var/P
|
||||
if(iscarbon(target))
|
||||
P = .proc/snail_crawl
|
||||
else
|
||||
P = .proc/lubricate
|
||||
RegisterSignal(target, COMSIG_MOVABLE_MOVED, P)
|
||||
|
||||
/datum/element/snailcrawl/Detach(mob/living/carbon/target)
|
||||
. = ..()
|
||||
UnregisterSignal(target, COMSIG_MOVABLE_MOVED)
|
||||
if(istype(target))
|
||||
target.remove_movespeed_modifier(/datum/movespeed_modifier/snail_crawl)
|
||||
|
||||
/datum/element/snailcrawl/proc/snail_crawl(mob/living/carbon/snail)
|
||||
if(snail.resting && !snail.buckled && lubricate(snail))
|
||||
snail.add_movespeed_modifier(/datum/movespeed_modifier/snail_crawl)
|
||||
else
|
||||
snail.remove_movespeed_modifier(/datum/movespeed_modifier/snail_crawl)
|
||||
|
||||
/datum/element/snailcrawl/proc/lubricate(atom/movable/snail)
|
||||
var/turf/open/OT = get_turf(snail)
|
||||
if(istype(OT))
|
||||
OT.MakeSlippery(TURF_WET_LUBE, 20)
|
||||
return TRUE
|
||||
@@ -8,6 +8,7 @@
|
||||
level = 1
|
||||
var/trigger_mob = TRUE
|
||||
var/trigger_item = FALSE
|
||||
var/specific_item = null
|
||||
var/trigger_silent = FALSE
|
||||
var/sound/trigger_sound = 'sound/effects/pressureplate.ogg'
|
||||
var/obj/item/assembly/signaler/sigdev = null
|
||||
@@ -35,6 +36,8 @@
|
||||
. = ..()
|
||||
if(!can_trigger || !active)
|
||||
return
|
||||
if(trigger_item && !istype(AM, specific_item))
|
||||
return
|
||||
if(trigger_mob && isliving(AM))
|
||||
var/mob/living/L = AM
|
||||
to_chat(L, "<span class='warning'>You feel something click beneath you!</span>")
|
||||
|
||||
@@ -115,7 +115,6 @@
|
||||
roundstart_signaller_freq = FREQ_HOLOGRID_SOLUTION //Frequency is kept on it's own default channel however.
|
||||
active = TRUE
|
||||
trigger_delay = 10
|
||||
protected = TRUE
|
||||
resistance_flags = INDESTRUCTIBLE | FIRE_PROOF | ACID_PROOF | LAVA_PROOF
|
||||
var/reward = /obj/item/reagent_containers/food/snacks/cookie
|
||||
var/claimed = FALSE
|
||||
|
||||
@@ -398,9 +398,6 @@
|
||||
if(istype(loc, /area/mine/explored) || istype(loc, /area/lavaland/surface/outdoors/explored))
|
||||
return
|
||||
var/randumb = pickweight(terrain_spawn_list)
|
||||
for(var/obj/structure/geyser/F in range(7, T))
|
||||
if(istype(F, randumb))
|
||||
return
|
||||
new randumb(T)
|
||||
|
||||
/turf/open/floor/plating/asteroid/snow
|
||||
|
||||
@@ -27,22 +27,7 @@ GLOBAL_LIST_EMPTY(cursed_minds)
|
||||
return
|
||||
GLOB.cursed_minds[L.mind] = TRUE
|
||||
RegisterSignal(L.mind, COMSIG_PARENT_QDELETING, .proc/remove_from_cursed)
|
||||
var/random_choice = pick("Mob", "Appearance")
|
||||
switch(random_choice)
|
||||
if("Mob")
|
||||
L = wabbajack(L, "animal")
|
||||
if("Appearance")
|
||||
var/mob/living/carbon/human/H = wabbajack(L, "humanoid")
|
||||
randomize_human(H)
|
||||
var/list/all_species = list()
|
||||
for(var/stype in subtypesof(/datum/species))
|
||||
var/datum/species/S = stype
|
||||
if(initial(S.changesource_flags) & RACE_SWAP)
|
||||
all_species += stype
|
||||
var/random_race = pick(all_species)
|
||||
H.set_species(random_race)
|
||||
H.dna.unique_enzymes = H.dna.generate_unique_enzymes()
|
||||
L = H
|
||||
L = wabbajack(L, "animal") // Appearance randomization removed so citadel players don't get randomized into some ungodly ugly creature and complain
|
||||
var/turf/T = find_safe_turf()
|
||||
L.forceMove(T)
|
||||
to_chat(L, "<span class='notice'>You blink and find yourself in [get_area_name(T)].</span>")
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
var/view_range = 7
|
||||
var/x_offset = 0
|
||||
var/y_offset = 0
|
||||
var/list/whitelist_turfs = list(/turf/open/space, /turf/open/floor/plating, /turf/open/lava)
|
||||
var/space_turfs_only = TRUE
|
||||
var/see_hidden = FALSE
|
||||
var/designate_time = 0
|
||||
@@ -22,6 +23,7 @@
|
||||
/obj/machinery/computer/camera_advanced/shuttle_docker/Initialize()
|
||||
. = ..()
|
||||
GLOB.navigation_computers += src
|
||||
whitelist_turfs = typecacheof(whitelist_turfs)
|
||||
|
||||
/obj/machinery/computer/camera_advanced/shuttle_docker/Destroy()
|
||||
. = ..()
|
||||
@@ -226,6 +228,11 @@
|
||||
if(!ispath(turf_type, /turf/open/space))
|
||||
return SHUTTLE_DOCKER_BLOCKED
|
||||
|
||||
if(length(whitelist_turfs))
|
||||
var/turf_type = hidden_turf_info ? hidden_turf_info[2] : T.type
|
||||
if(!is_type_in_typecache(turf_type, whitelist_turfs))
|
||||
return SHUTTLE_DOCKER_BLOCKED
|
||||
|
||||
// Checking for overlapping dock boundaries
|
||||
for(var/i in 1 to overlappers.len)
|
||||
var/obj/docking_port/port = overlappers[i]
|
||||
|
||||
Reference in New Issue
Block a user