Merge branch 'master' into dullahan-2-electric-boogaloo
This commit is contained in:
@@ -878,9 +878,9 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
|
||||
nightshift_public_area = NIGHTSHIFT_AREA_RECREATION
|
||||
sound_environment = SOUND_AREA_WOODFLOOR
|
||||
|
||||
// /area/service/bar/Initialize(mapload)
|
||||
// . = ..()
|
||||
// GLOB.bar_areas += src
|
||||
/area/service/bar/Initialize(mapload)
|
||||
. = ..()
|
||||
GLOB.bar_areas += src
|
||||
|
||||
/area/service/bar/atrium
|
||||
name = "Atrium"
|
||||
|
||||
@@ -30,4 +30,4 @@
|
||||
/datum/game_mode/extended/announced/send_intercept(report = 0)
|
||||
if(flipseclevel) //CIT CHANGE - allows the sec level to be flipped roundstart
|
||||
return ..()
|
||||
priority_announce("Thanks to the tireless efforts of our security and intelligence divisions, there are currently no credible threats to [station_name()]. All station construction projects have been authorized. Have a secure shift!", "Security Report", "commandreport")
|
||||
priority_announce("Thanks to the tireless efforts of our security and intelligence divisions, there are currently no credible threats to [station_name()]. All station construction projects have been authorized. Have a secure shift!", "Security Report", SSstation.announcer.get_rand_report_sound())
|
||||
|
||||
@@ -278,7 +278,7 @@
|
||||
|
||||
/datum/game_mode/proc/send_intercept()
|
||||
if(flipseclevel && !(config_tag == "extended"))//CIT CHANGE - lets the security level be flipped roundstart
|
||||
priority_announce("Thanks to the tireless efforts of our security and intelligence divisions, there are currently no credible threats to [station_name()]. All station construction projects have been authorized. Have a secure shift!", "Security Report", "commandreport")
|
||||
priority_announce("Thanks to the tireless efforts of our security and intelligence divisions, there are currently no credible threats to [station_name()]. All station construction projects have been authorized. Have a secure shift!", "Security Report", SSstation.announcer.get_rand_report_sound())
|
||||
return
|
||||
var/intercepttext = "<b><i>Central Command Status Summary</i></b><hr>"
|
||||
intercepttext += "<b>Central Command has intercepted and partially decoded a Syndicate transmission with vital information regarding their movements. The following report outlines the most \
|
||||
|
||||
@@ -244,7 +244,7 @@
|
||||
nuke_request(reason, usr)
|
||||
to_chat(usr, span_notice("Request sent."))
|
||||
usr.log_message("has requested the nuclear codes from CentCom with reason \"[reason]\"", LOG_SAY)
|
||||
priority_announce("The codes for the on-station nuclear self-destruct have been requested by [usr]. Confirmation or denial of this request will be sent shortly.", "Nuclear Self-Destruct Codes Requested", "commandreport")
|
||||
priority_announce("The codes for the on-station nuclear self-destruct have been requested by [usr]. Confirmation or denial of this request will be sent shortly.", "Nuclear Self-Destruct Codes Requested", SSstation.announcer.get_rand_report_sound())
|
||||
playsound(src, 'sound/machines/terminal_prompt.ogg', 50, FALSE)
|
||||
COOLDOWN_START(src, important_action_cooldown, IMPORTANT_ACTION_COOLDOWN)
|
||||
if ("restoreBackupRoutingData")
|
||||
|
||||
@@ -1356,6 +1356,7 @@
|
||||
/obj/machinery/door/airlock/proc/remove_electrify()
|
||||
secondsElectrified = NOT_ELECTRIFIED
|
||||
unelectrify_timerid = null
|
||||
diag_hud_set_electrified()
|
||||
|
||||
/obj/machinery/door/airlock/proc/set_electrified(seconds, mob/user)
|
||||
secondsElectrified = seconds
|
||||
|
||||
@@ -322,3 +322,9 @@
|
||||
|
||||
/obj/effect/particle_effect/smoke/transparent
|
||||
opaque = FALSE
|
||||
|
||||
/proc/do_smoke(range=0, location=null, smoke_type=/obj/effect/particle_effect/smoke)
|
||||
var/datum/effect_system/smoke_spread/smoke = new
|
||||
smoke.effect_type = smoke_type
|
||||
smoke.set_up(range, location)
|
||||
smoke.start()
|
||||
|
||||
@@ -528,3 +528,70 @@ INITIALIZE_IMMEDIATE(/obj/effect/landmark/start/new_player)
|
||||
name = "portal exit"
|
||||
icon_state = "portal_exit"
|
||||
var/id
|
||||
|
||||
/obj/effect/landmark/start/hangover
|
||||
name = "hangover spawn"
|
||||
icon_state = "hangover_spawn"
|
||||
|
||||
/// A list of everything this hangover spawn created
|
||||
var/list/debris = list()
|
||||
|
||||
/obj/effect/landmark/start/hangover/Initialize(mapload)
|
||||
. = ..()
|
||||
return INITIALIZE_HINT_LATELOAD
|
||||
|
||||
/obj/effect/landmark/start/hangover/Destroy()
|
||||
debris = null
|
||||
return ..()
|
||||
|
||||
/obj/effect/landmark/start/hangover/LateInitialize()
|
||||
. = ..()
|
||||
if(!HAS_TRAIT(SSstation, STATION_TRAIT_HANGOVER))
|
||||
return
|
||||
if(prob(60))
|
||||
debris += new /obj/effect/decal/cleanable/vomit(get_turf(src))
|
||||
if(prob(70))
|
||||
var/bottle_count = rand(1, 3)
|
||||
for(var/index in 1 to bottle_count)
|
||||
var/turf/turf_to_spawn_on = get_step(src, pick(GLOB.alldirs))
|
||||
if(!isopenturf(turf_to_spawn_on))
|
||||
continue
|
||||
var/dense_object = FALSE
|
||||
for(var/atom/content in turf_to_spawn_on.contents)
|
||||
if(content.density)
|
||||
dense_object = TRUE
|
||||
break
|
||||
if(dense_object)
|
||||
continue
|
||||
debris += new /obj/item/reagent_containers/food/drinks/beer/almost_empty(turf_to_spawn_on)
|
||||
|
||||
///Spawns the mob with some drugginess/drunkeness, and some disgust.
|
||||
/obj/effect/landmark/start/hangover/proc/make_hungover(mob/hangover_mob)
|
||||
if(!iscarbon(hangover_mob))
|
||||
return
|
||||
var/mob/living/carbon/spawned_carbon = hangover_mob
|
||||
spawned_carbon.set_resting(TRUE, silent = TRUE)
|
||||
if(prob(50))
|
||||
spawned_carbon.adjust_drugginess(rand(15, 20))
|
||||
else
|
||||
spawned_carbon.drunkenness += rand(15, 25)
|
||||
spawned_carbon.adjust_disgust(rand(5, 55)) //How hungover are you?
|
||||
if(spawned_carbon.head)
|
||||
return
|
||||
|
||||
/obj/effect/landmark/start/hangover/JoinPlayerHere(mob/joining_mob, buckle)
|
||||
. = ..()
|
||||
make_hungover(joining_mob)
|
||||
|
||||
/obj/effect/landmark/start/hangover/closet
|
||||
name = "hangover spawn closet"
|
||||
icon_state = "hangover_spawn_closet"
|
||||
|
||||
/obj/effect/landmark/start/hangover/closet/JoinPlayerHere(mob/joining_mob, buckle)
|
||||
make_hungover(joining_mob)
|
||||
for(var/obj/structure/closet/closet in contents)
|
||||
if(closet.opened)
|
||||
continue
|
||||
joining_mob.forceMove(closet)
|
||||
return
|
||||
return ..() //Call parent as fallback
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
icon = 'icons/effects/landmarks_static.dmi'
|
||||
icon_state = "random_loot"
|
||||
layer = OBJ_LAYER
|
||||
var/spawn_on_init = TRUE
|
||||
var/spawn_on_turf = TRUE
|
||||
var/lootcount = 1 //how many items will be spawned
|
||||
var/lootdoubles = TRUE //if the same item can be spawned twice
|
||||
@@ -10,10 +11,19 @@
|
||||
|
||||
/obj/effect/spawner/lootdrop/Initialize(mapload)
|
||||
..()
|
||||
if(should_spawn_on_init())
|
||||
spawn_loot()
|
||||
return INITIALIZE_HINT_QDEL
|
||||
|
||||
/obj/effect/spawner/lootdrop/proc/should_spawn_on_init()
|
||||
return spawn_on_init
|
||||
|
||||
/obj/effect/spawner/lootdrop/proc/spawn_loot(lootcount_override)
|
||||
var/lootcount = isnull(lootcount_override) ? src.lootcount : lootcount_override
|
||||
if(loot && loot.len)
|
||||
var/atom/A = spawn_on_turf ? get_turf(src) : loc
|
||||
var/loot_spawned = 0
|
||||
while((lootcount-loot_spawned) && loot.len)
|
||||
while((lootcount-loot_spawned) > 0 && loot.len)
|
||||
var/lootspawn = pickweight(loot)
|
||||
if(!lootdoubles)
|
||||
loot.Remove(lootspawn)
|
||||
@@ -29,7 +39,6 @@
|
||||
if (loot_spawned)
|
||||
spawned_loot.pixel_x = spawned_loot.pixel_y = ((!(loot_spawned%2)*loot_spawned/2)*-1)+((loot_spawned%2)*(loot_spawned+1)/2*1)
|
||||
loot_spawned++
|
||||
return INITIALIZE_HINT_QDEL
|
||||
|
||||
/obj/effect/spawner/lootdrop/bedsheet
|
||||
icon = 'icons/obj/bedsheets.dmi'
|
||||
@@ -162,6 +171,15 @@
|
||||
loot = GLOB.maintenance_loot
|
||||
. = ..()
|
||||
|
||||
/obj/effect/spawner/lootdrop/maintenance/spawn_loot(lootcount_override)
|
||||
if(isnull(lootcount_override))
|
||||
if(HAS_TRAIT(SSstation, STATION_TRAIT_FILLED_MAINT))
|
||||
lootcount_override = round(lootcount * 1.5)
|
||||
|
||||
else if(HAS_TRAIT(SSstation, STATION_TRAIT_EMPTY_MAINT))
|
||||
lootcount_override = round(lootcount * 0.5)
|
||||
. = ..()
|
||||
|
||||
/obj/effect/spawner/lootdrop/glowstick
|
||||
name = "random colored glowstick"
|
||||
icon = 'icons/obj/lighting.dmi'
|
||||
|
||||
@@ -561,4 +561,4 @@
|
||||
singular_name = "catwalk floor tile"
|
||||
desc = "Flooring that shows its contents underneath. Engineers love it!"
|
||||
icon_state = "catwalk_tile"
|
||||
turf_type = /turf/open/floor/plating/catwalk_floor
|
||||
turf_type = /turf/open/floor/catwalk_floor
|
||||
|
||||
@@ -121,6 +121,10 @@
|
||||
else
|
||||
new /obj/item/tank/internals/plasmaman/belt(src)
|
||||
|
||||
if(HAS_TRAIT(SSstation, STATION_TRAIT_PREMIUM_INTERNALS))
|
||||
new /obj/item/flashlight/flare(src)
|
||||
new /obj/item/radio/off(src)
|
||||
|
||||
/obj/item/storage/box/survival/radio/PopulateContents()
|
||||
..() // we want the survival stuff too.
|
||||
new /obj/item/radio/off(src)
|
||||
@@ -773,6 +777,10 @@
|
||||
else
|
||||
new /obj/item/tank/internals/plasmaman/belt(src)
|
||||
|
||||
if(HAS_TRAIT(SSstation, STATION_TRAIT_PREMIUM_INTERNALS))
|
||||
new /obj/item/flashlight/flare(src)
|
||||
new /obj/item/radio/off(src)
|
||||
|
||||
/obj/item/storage/box/rubbershot
|
||||
name = "box of rubber shots"
|
||||
desc = "A box full of rubber shots, designed for riot shotguns."
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
* you can crowbar it to interact with the underneath stuff without destroying the tile...
|
||||
* unless you want to!
|
||||
*/
|
||||
/turf/open/floor/plating/catwalk_floor
|
||||
/turf/open/floor/catwalk_floor
|
||||
icon = 'icons/turf/floors/catwalk_plating.dmi'
|
||||
icon_state = "catwalk_below"
|
||||
floor_tile = /obj/item/stack/tile/catwalk
|
||||
@@ -16,29 +16,35 @@
|
||||
barefootstep = FOOTSTEP_CATWALK
|
||||
clawfootstep = FOOTSTEP_CATWALK
|
||||
heavyfootstep = FOOTSTEP_CATWALK
|
||||
intact = FALSE
|
||||
var/covered = TRUE
|
||||
|
||||
/turf/open/floor/plating/catwalk_floor/Initialize(mapload)
|
||||
/turf/open/floor/catwalk_floor/Initialize(mapload)
|
||||
. = ..()
|
||||
layer = CATWALK_LAYER
|
||||
update_icon(UPDATE_OVERLAYS)
|
||||
|
||||
/turf/open/floor/plating/catwalk_floor/update_overlays()
|
||||
/turf/open/floor/catwalk_floor/update_overlays()
|
||||
. = ..()
|
||||
var/static/catwalk_overlay
|
||||
var/static/image/catwalk_overlay
|
||||
if(isnull(catwalk_overlay))
|
||||
catwalk_overlay = iconstate2appearance(icon, "catwalk_above")
|
||||
catwalk_overlay = new()
|
||||
catwalk_overlay.icon = icon
|
||||
catwalk_overlay.icon_state = "catwalk_above"
|
||||
catwalk_overlay.plane = GAME_PLANE
|
||||
catwalk_overlay.layer = CATWALK_LAYER
|
||||
catwalk_overlay = catwalk_overlay.appearance
|
||||
if(covered)
|
||||
. += catwalk_overlay
|
||||
|
||||
/turf/open/floor/plating/catwalk_floor/screwdriver_act(mob/living/user, obj/item/tool)
|
||||
/turf/open/floor/catwalk_floor/screwdriver_act(mob/living/user, obj/item/tool)
|
||||
. = ..()
|
||||
covered = !covered
|
||||
user.balloon_alert(user, "[!covered ? "cover removed" : "cover added"]")
|
||||
update_icon(UPDATE_OVERLAYS)
|
||||
|
||||
/turf/open/floor/plating/catwalk_floor/pry_tile(obj/item/crowbar, mob/user, silent)
|
||||
/turf/open/floor/catwalk_floor/crowbar_act(mob/user, obj/item/I)
|
||||
if(covered)
|
||||
user.balloon_alert(user, "remove cover first!")
|
||||
return FALSE
|
||||
. = ..()
|
||||
return pry_tile(I, user)
|
||||
|
||||
Reference in New Issue
Block a user