Merge branch 'master' of https://github.com/Citadel-Station-13/Citadel-Station-13 into ninjasarecum
This commit is contained in:
@@ -96,6 +96,10 @@ Class Procs:
|
||||
flags_ricochet = RICOCHET_HARD
|
||||
ricochet_chance_mod = 0.3
|
||||
|
||||
explosion_flags = EXPLOSION_FLAG_DENSITY_DEPENDENT
|
||||
wave_explosion_block = EXPLOSION_BLOCK_MACHINE
|
||||
wave_explosion_multiply = EXPLOSION_DAMPEN_MACHINE
|
||||
|
||||
anchored = TRUE
|
||||
interaction_flags_atom = INTERACT_ATOM_ATTACK_HAND | INTERACT_ATOM_UI_INTERACT
|
||||
|
||||
|
||||
@@ -79,10 +79,12 @@
|
||||
if (obj_flags & EMAGGED)
|
||||
return
|
||||
obj_flags |= EMAGGED
|
||||
SSshuttle.shuttle_purchase_requirements_met |= "emagged"
|
||||
if (authenticated)
|
||||
authorize_access = get_all_accesses()
|
||||
to_chat(user, "<span class='danger'>You scramble the communication routing circuits!</span>")
|
||||
playsound(src, 'sound/machines/terminal_alert.ogg', 50, FALSE)
|
||||
SSshuttle.shuttle_purchase_requirements_met["emagged"] = TRUE
|
||||
return
|
||||
|
||||
/obj/machinery/computer/communications/ui_act(action, list/params)
|
||||
|
||||
@@ -54,6 +54,8 @@
|
||||
assemblytype = /obj/structure/door_assembly
|
||||
normalspeed = 1
|
||||
explosion_block = 1
|
||||
wave_explosion_block = EXPLOSION_BLOCK_WALL
|
||||
wave_explosion_multiply = EXPLOSION_DAMPEN_WALL
|
||||
hud_possible = list(DIAG_AIRLOCK_HUD)
|
||||
|
||||
interaction_flags_machine = INTERACT_MACHINE_WIRES_IF_OPEN | INTERACT_MACHINE_ALLOW_SILICON | INTERACT_MACHINE_OPEN_SILICON | INTERACT_MACHINE_REQUIRES_SILICON | INTERACT_MACHINE_OPEN
|
||||
|
||||
@@ -16,6 +16,11 @@
|
||||
|
||||
interaction_flags_atom = INTERACT_ATOM_UI_INTERACT
|
||||
|
||||
wave_explosion_block = EXPLOSION_BLOCK_DENSE_FILLER
|
||||
wave_explosion_multiply = EXPLOSION_DAMPEN_DENSE_FILLER
|
||||
|
||||
explosion_flags = EXPLOSION_FLAG_HARD_OBSTACLE | EXPLOSION_FLAG_DENSITY_DEPENDENT
|
||||
|
||||
var/secondsElectrified = 0
|
||||
var/air_tight = FALSE //TRUE means density will be set as soon as the door begins to close
|
||||
var/shockedby
|
||||
@@ -412,3 +417,8 @@
|
||||
|
||||
/obj/machinery/door/GetExplosionBlock()
|
||||
return density ? real_explosion_block : 0
|
||||
|
||||
/obj/machinery/door/wave_explosion_damage(power, datum/wave_explosion/explosion)
|
||||
. = ..()
|
||||
if(!density)
|
||||
return . * EXPLOSION_DAMAGE_OPEN_DOOR_FACTOR
|
||||
|
||||
@@ -71,3 +71,6 @@
|
||||
|
||||
/obj/machinery/door/password/ex_act(severity, target)
|
||||
return
|
||||
|
||||
/obj/machinery/door/password/wave_ex_act(power, datum/wave_explosion/explosion, dir)
|
||||
return 0 //no.
|
||||
|
||||
@@ -8,6 +8,8 @@
|
||||
closingLayer = CLOSED_BLASTDOOR_LAYER
|
||||
sub_door = TRUE
|
||||
explosion_block = 3
|
||||
wave_explosion_block = EXPLOSION_BLOCK_BLAST_PROOF
|
||||
wave_explosion_multiply = EXPLOSION_DAMPEN_BLAST_PROOF
|
||||
heat_proof = TRUE
|
||||
safe = FALSE
|
||||
max_integrity = 600
|
||||
|
||||
@@ -360,6 +360,8 @@
|
||||
max_integrity = 300 //Stronger doors for prison (regular window door health is 200)
|
||||
reinf = 1
|
||||
explosion_block = 1
|
||||
wave_explosion_block = EXPLOSION_BLOCK_REINFORCED_WINDOW
|
||||
wave_explosion_multiply = EXPLOSION_DAMPEN_REINFORCED_WINDOW
|
||||
|
||||
/obj/machinery/door/window/brigdoor/security/cell
|
||||
name = "cell door"
|
||||
|
||||
@@ -114,6 +114,44 @@ GLOBAL_LIST_EMPTY(doppler_arrays)
|
||||
LAZYADD(message_log, messages.Join(" "))
|
||||
return TRUE
|
||||
|
||||
/obj/machinery/doppler_array/proc/sense_wave_explosion(turf/epicenter, power, speed)
|
||||
if(stat & NOPOWER)
|
||||
return FALSE
|
||||
var/turf/zone = get_turf(src)
|
||||
if(zone.z != epicenter.z)
|
||||
return FALSE
|
||||
|
||||
if(next_announce > world.time)
|
||||
return FALSE
|
||||
next_announce = world.time + cooldown
|
||||
|
||||
var/distance = get_dist(epicenter, zone)
|
||||
var/direct = get_dir(zone, epicenter)
|
||||
|
||||
if(distance > max_dist)
|
||||
return FALSE
|
||||
if(!(direct & dir) && !integrated)
|
||||
return FALSE
|
||||
|
||||
|
||||
var/list/messages = list("Explosive shockwave detected.", \
|
||||
"Epicenter at: grid ([epicenter.x],[epicenter.y]). Shockwave expanding at a theoretical speed of [speed] m/s.", \
|
||||
"Wave energy: [power]MJ.")
|
||||
|
||||
if(integrated)
|
||||
var/obj/item/clothing/head/helmet/space/hardsuit/helm = loc
|
||||
if(!helm || !istype(helm, /obj/item/clothing/head/helmet/space/hardsuit))
|
||||
return FALSE
|
||||
helm.display_visor_message("Waveform explosion detected! Wave energy: [power]MJ.")
|
||||
else
|
||||
for(var/message in messages)
|
||||
say(message)
|
||||
if(LAZYLEN(message_log) > list_limit)
|
||||
say("Storage buffer is full! Clearing buffers...")
|
||||
LAZYCLEARLIST(message_log)
|
||||
LAZYADD(message_log, messages.Join(" "))
|
||||
return TRUE
|
||||
|
||||
/obj/machinery/doppler_array/examine(mob/user)
|
||||
. = ..()
|
||||
. += "<span class='notice'>Its dish is facing to the [dir2text(dir)].</span>"
|
||||
|
||||
Reference in New Issue
Block a user