mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-25 21:19:00 +01:00
+283
-282
File diff suppressed because it is too large
Load Diff
@@ -31,6 +31,7 @@
|
||||
var/detected_mech = FALSE
|
||||
var/detected_pod = FALSE
|
||||
var/detected_double_agent = FALSE
|
||||
var/mine_trigger_count = 0
|
||||
var/obj/machinery/computer/syndicate_depot/syndiecomms/comms_computer = null
|
||||
var/obj/structure/fusionreactor/reactor
|
||||
|
||||
@@ -81,8 +82,18 @@
|
||||
detected_mech = FALSE
|
||||
detected_pod = FALSE
|
||||
detected_double_agent = FALSE
|
||||
mine_trigger_count = 0
|
||||
updateicon()
|
||||
|
||||
if(!istype(reactor))
|
||||
for(var/obj/structure/fusionreactor/R in src)
|
||||
reactor = R
|
||||
R.has_overloaded = FALSE
|
||||
|
||||
for(var/obj/machinery/door/airlock/A in src)
|
||||
if(A.density && A.locked)
|
||||
spawn(0)
|
||||
A.unlock()
|
||||
|
||||
alert_log += "Alert level reset."
|
||||
|
||||
@@ -119,6 +130,12 @@
|
||||
if(on_peaceful)
|
||||
increase_alert("Vandals!")
|
||||
|
||||
/area/syndicate_depot/core/proc/mine_triggered(mob/living/M)
|
||||
if(mine_trigger_count)
|
||||
return TRUE
|
||||
mine_trigger_count++
|
||||
increase_alert("Intruder detected by sentry mine: [M]")
|
||||
|
||||
/area/syndicate_depot/core/proc/saw_mech(obj/mecha/E)
|
||||
if(detected_mech)
|
||||
return
|
||||
@@ -292,11 +309,11 @@
|
||||
for(var/obj/machinery/computer/syndicate_depot/C in src)
|
||||
C.security_lockout = FALSE
|
||||
|
||||
/area/syndicate_depot/core/proc/toggle_door_locks()
|
||||
/area/syndicate_depot/core/proc/set_emergency_access(var/openaccess)
|
||||
for(var/obj/machinery/door/airlock/A in src)
|
||||
A.emergency = !A.emergency
|
||||
if(A.locked)
|
||||
A.locked = !A.locked
|
||||
if(istype(A, /obj/machinery/door/airlock/hatch/syndicate/vault))
|
||||
continue
|
||||
A.emergency = !!openaccess
|
||||
A.update_icon()
|
||||
|
||||
/area/syndicate_depot/core/proc/toggle_falsewalls()
|
||||
@@ -315,9 +332,8 @@
|
||||
if(!M.ckey)
|
||||
continue
|
||||
var/turf/T = get_turf(M)
|
||||
if(T.loc != src)
|
||||
continue
|
||||
receivers |= M
|
||||
if(T && T.loc && T.loc == src)
|
||||
receivers |= M
|
||||
for(var/mob/R in receivers)
|
||||
to_chat(R, msg_text)
|
||||
R << sound('sound/misc/notice1.ogg')
|
||||
@@ -335,6 +351,8 @@
|
||||
if(!L.locked)
|
||||
L.locked = !L.locked
|
||||
L.update_icon()
|
||||
for(var/obj/machinery/door/airlock/hatch/syndicate/vault/A in src)
|
||||
A.lock()
|
||||
|
||||
/area/syndicate_depot/core/proc/shields_key_check()
|
||||
if(!shield_list.len)
|
||||
@@ -353,6 +371,8 @@
|
||||
if(L.locked)
|
||||
L.locked = !L.locked
|
||||
L.update_icon()
|
||||
for(var/obj/machinery/door/airlock/hatch/syndicate/vault/A in src)
|
||||
A.unlock()
|
||||
|
||||
/area/syndicate_depot/core/proc/despawn_guards()
|
||||
for(var/mob/thismob in list_getmobs(guard_list))
|
||||
@@ -363,7 +383,7 @@
|
||||
/area/syndicate_depot/core/proc/ghostlog(gmsg)
|
||||
if(istype(reactor))
|
||||
var/image/alert_overlay = image('icons/obj/flag.dmi', "syndiflag")
|
||||
notify_ghosts(gmsg, title = "Depot News", source = reactor, alert_overlay = alert_overlay, action = NOTIFY_JUMP)
|
||||
notify_ghosts(gmsg, title = "Depot News", source = reactor.loc, alert_overlay = alert_overlay, action = NOTIFY_JUMP)
|
||||
|
||||
/area/syndicate_depot/core/proc/declare_started()
|
||||
if(!run_started)
|
||||
|
||||
@@ -125,6 +125,8 @@
|
||||
|
||||
/obj/machinery/computer/syndicate_depot/doors
|
||||
name = "depot door control computer"
|
||||
req_access = list()
|
||||
var/pub_access = FALSE
|
||||
|
||||
/obj/machinery/computer/syndicate_depot/doors/get_menu(mob/user)
|
||||
return {"<B>Syndicate Depot Door Control Computer</B><HR>
|
||||
@@ -136,8 +138,13 @@
|
||||
if(..())
|
||||
return
|
||||
if(depotarea)
|
||||
depotarea.toggle_door_locks(src)
|
||||
to_chat(user, "<span class='notice'>Door locks toggled.</span>")
|
||||
pub_access = !pub_access
|
||||
if(pub_access)
|
||||
depotarea.set_emergency_access(TRUE)
|
||||
to_chat(user, "<span class='notice'>Emergency Access enabled.</span>")
|
||||
else
|
||||
depotarea.set_emergency_access(FALSE)
|
||||
to_chat(user, "<span class='notice'>Emergency Access disabled.</span>")
|
||||
playsound(user, sound_yes, 50, 0)
|
||||
|
||||
/obj/machinery/computer/syndicate_depot/doors/secondary(mob/user, subcommand)
|
||||
|
||||
@@ -53,6 +53,15 @@
|
||||
if(isliving(victim))
|
||||
victim.Weaken(stun_time)
|
||||
|
||||
/obj/effect/mine/depot
|
||||
name = "sentry mine"
|
||||
|
||||
/obj/effect/mine/depot/mineEffect(mob/living/victim)
|
||||
var/area/syndicate_depot/core/depotarea = areaMaster
|
||||
if(istype(depotarea))
|
||||
if(depotarea.mine_triggered(victim))
|
||||
explosion(loc, 1, 0, 0, 1) // devastate the tile you are on, but leave everything else untouched
|
||||
|
||||
/obj/effect/mine/dnascramble
|
||||
name = "Radiation Mine"
|
||||
var/radiation_amount
|
||||
|
||||
@@ -159,6 +159,7 @@
|
||||
/obj/effect/spawner/random_spawners/syndicate/trap/pizzabomb
|
||||
name = "50pc trap pizza"
|
||||
result = list(/obj/item/pizzabox/meat = 1,
|
||||
/obj/item/pizzabox/hawaiian = 1,
|
||||
/obj/item/pizza_bomb/autoarm = 1)
|
||||
|
||||
/obj/effect/spawner/random_spawners/syndicate/trap/medbot
|
||||
@@ -169,7 +170,7 @@
|
||||
/obj/effect/spawner/random_spawners/syndicate/trap/mine
|
||||
name = "50pc trap landmine"
|
||||
result = list(/datum/nothing = 1,
|
||||
/obj/effect/mine/explosive = 1)
|
||||
/obj/effect/mine/depot = 1)
|
||||
|
||||
/obj/effect/spawner/random_spawners/syndicate/trap/documents
|
||||
name = "66pc trapped documents"
|
||||
@@ -188,7 +189,6 @@
|
||||
// Loot schema: costumes, toys, useless gimmick items, trapped items
|
||||
result = list(/datum/nothing = 13,
|
||||
/obj/item/storage/toolbox/syndicate = 1,
|
||||
/obj/item/storage/toolbox/syndicate/trapped = 1,
|
||||
/obj/item/storage/fancy/cigarettes/cigpack_syndicate = 1,
|
||||
/obj/item/toy/cards/deck/syndicate = 1,
|
||||
/obj/item/storage/secure/briefcase/syndie = 1,
|
||||
|
||||
@@ -102,4 +102,4 @@
|
||||
|
||||
/obj/item/pizza_bomb/autoarm
|
||||
timer_set = 1
|
||||
timer = 10
|
||||
timer = 30 // 3 seconds
|
||||
@@ -94,16 +94,6 @@
|
||||
new /obj/item/multitool(src)
|
||||
new /obj/item/clothing/gloves/combat(src)
|
||||
|
||||
|
||||
/obj/item/storage/toolbox/syndicate/trapped
|
||||
name = "suspicious looking toolbox"
|
||||
desc = "Danger. Very robust. Has a small red marker by the handle."
|
||||
|
||||
/obj/item/storage/toolbox/syndicate/trapped/New()
|
||||
..()
|
||||
new /obj/item/grenade/chem_grenade/explosion/mine_armed(src)
|
||||
|
||||
|
||||
/obj/item/storage/toolbox/drone
|
||||
name = "mechanical toolbox"
|
||||
icon_state = "blue"
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
anchored = 1
|
||||
health = 200
|
||||
req_access = list()
|
||||
layer = 2.9 // ensures the loot they drop always appears on top of them.
|
||||
var/is_armory = FALSE
|
||||
var/ignore_use = FALSE
|
||||
|
||||
|
||||
@@ -9,17 +9,17 @@
|
||||
var/area/syndicate_depot/core/depotarea
|
||||
var/has_overloaded = FALSE
|
||||
|
||||
/obj/structure/fusionreactor/Initialize()
|
||||
..()
|
||||
/obj/structure/fusionreactor/New()
|
||||
. = ..()
|
||||
// Do not attempt to put the code below into Initialize() or even LateInitialize() with a "return INITIALIZE_HINT_LATELOAD". It won't work!
|
||||
depotarea = areaMaster
|
||||
if(istype(depotarea))
|
||||
depotarea.reactor = src
|
||||
return INITIALIZE_HINT_LATELOAD
|
||||
|
||||
/obj/structure/fusionreactor/LateInitialize()
|
||||
for(var/obj/machinery/porta_turret/syndicate/T in range(50, loc))
|
||||
if(!istype(T.depotarea))
|
||||
T.depotarea = depotarea
|
||||
for(var/obj/machinery/porta_turret/syndicate/T in range(50, loc))
|
||||
if(!istype(T.depotarea))
|
||||
T.depotarea = depotarea
|
||||
else
|
||||
log_debug("[src] at [x],[y],[z] failed depotarea istype check during New()! Either it was spawned outside the depot area (bad idea), or a bug is happening.")
|
||||
|
||||
/obj/structure/fusionreactor/Destroy()
|
||||
if(istype(depotarea))
|
||||
@@ -84,8 +84,9 @@
|
||||
var/max_fire_range = 9
|
||||
var/area/syndicate_depot/core/depotarea
|
||||
|
||||
/obj/effect/overload/Initialize()
|
||||
/obj/effect/overload/New()
|
||||
. = ..()
|
||||
// Do not attempt to put the code below into Initialize() or even LateInitialize() with a "return INITIALIZE_HINT_LATELOAD". It won't work!
|
||||
processing_objects.Add(src)
|
||||
depotarea = areaMaster
|
||||
if(istype(depotarea))
|
||||
@@ -93,6 +94,8 @@
|
||||
depotarea.used_self_destruct = TRUE // Silences all further alerts from this point onwards.
|
||||
depotarea.updateicon()
|
||||
depotarea.shields_down()
|
||||
else
|
||||
log_debug("[src] at [x],[y],[z] failed depotarea istype check during New()! Either it was spawned outside the depot area (bad idea), or a bug is happening.")
|
||||
|
||||
/obj/effect/overload/process()
|
||||
var/turf/T = get_turf(src)
|
||||
@@ -116,6 +119,8 @@
|
||||
L.open()
|
||||
for(var/mob/living/M in range(30, T))
|
||||
M.gib()
|
||||
for(var/obj/mecha/E in range(30, T))
|
||||
E.Destroy()
|
||||
explosion(get_turf(src), 25, 35, 45, 55, 1, 1, 60, 0, 0)
|
||||
processing_objects.Remove(src)
|
||||
qdel(src)
|
||||
|
||||
@@ -23,12 +23,13 @@
|
||||
path_image_color = "#FF0000"
|
||||
data_hud_type = DATA_HUD_SECURITY_ADVANCED
|
||||
|
||||
allow_pai = 0
|
||||
|
||||
var/lastfired = 0
|
||||
var/shot_delay = 3 //.3 seconds between shots
|
||||
var/lasercolor = ""
|
||||
var/disabled = 0//A holder for if it needs to be disabled, if true it will not seach for targets, shoot at targets, or move, currently only used for lasertag
|
||||
|
||||
|
||||
var/mob/living/carbon/target
|
||||
var/oldtarget_name
|
||||
var/threatlevel = 0
|
||||
@@ -41,10 +42,9 @@
|
||||
var/arrest_type = 0 //If true, don't handcuff
|
||||
var/projectile = /obj/item/projectile/energy/electrode //Holder for projectile type
|
||||
var/shoot_sound = 'sound/weapons/Taser.ogg'
|
||||
allow_pai = 0
|
||||
|
||||
|
||||
/mob/living/simple_animal/bot/ed209/New(loc,created_name,created_lasercolor)
|
||||
/mob/living/simple_animal/bot/ed209/New(loc, created_name, created_lasercolor)
|
||||
..()
|
||||
if(created_name)
|
||||
name = created_name
|
||||
@@ -52,29 +52,33 @@
|
||||
lasercolor = created_lasercolor
|
||||
icon_state = "[lasercolor]ed209[on]"
|
||||
set_weapon() //giving it the right projectile and firing sound.
|
||||
spawn(3)
|
||||
var/datum/job/detective/J = new/datum/job/detective
|
||||
access_card.access += J.get_access()
|
||||
prev_access = access_card.access
|
||||
setup_access()
|
||||
|
||||
if(lasercolor)
|
||||
shot_delay = 6//Longer shot delay because JESUS CHRIST
|
||||
check_records = 0//Don't actively target people set to arrest
|
||||
arrest_type = 1//Don't even try to cuff
|
||||
declare_arrests = 0 // Don't spam sec
|
||||
bot_core.req_access = list(access_maint_tunnels, access_theatre, access_robotics)
|
||||
if(lasercolor)
|
||||
shot_delay = 6//Longer shot delay because JESUS CHRIST
|
||||
check_records = 0//Don't actively target people set to arrest
|
||||
arrest_type = 1//Don't even try to cuff
|
||||
declare_arrests = 0 // Don't spam sec
|
||||
bot_core.req_access = list(access_maint_tunnels, access_theatre, access_robotics)
|
||||
|
||||
if(created_name == initial(name) || !created_name)
|
||||
if(lasercolor == "b")
|
||||
name = pick("BLUE BALLER","SANIC","BLUE KILLDEATH MURDERBOT")
|
||||
else if (lasercolor == "r")
|
||||
name = pick("RED RAMPAGE","RED ROVER","RED KILLDEATH MURDERBOT")
|
||||
if(created_name == initial(name) || !created_name)
|
||||
if(lasercolor == "b")
|
||||
name = pick("BLUE BALLER","SANIC","BLUE KILLDEATH MURDERBOT")
|
||||
else if (lasercolor == "r")
|
||||
name = pick("RED RAMPAGE","RED ROVER","RED KILLDEATH MURDERBOT")
|
||||
|
||||
//SECHUD
|
||||
var/datum/atom_hud/secsensor = huds[DATA_HUD_SECURITY_ADVANCED]
|
||||
secsensor.add_hud_to(src)
|
||||
permanent_huds |= secsensor
|
||||
|
||||
|
||||
/mob/living/simple_animal/bot/ed209/proc/setup_access()
|
||||
if(access_card)
|
||||
var/datum/job/detective/J = new/datum/job/detective
|
||||
access_card.access += J.get_access()
|
||||
prev_access = access_card.access
|
||||
|
||||
/mob/living/simple_animal/bot/ed209/turn_on()
|
||||
. = ..()
|
||||
icon_state = "[lasercolor]ed209[on]"
|
||||
|
||||
@@ -29,12 +29,14 @@
|
||||
|
||||
/mob/living/simple_animal/bot/ed209/syndicate/New()
|
||||
..()
|
||||
if(access_card)
|
||||
access_card.access = list(access_syndicate, access_syndicate_leader)
|
||||
set_weapon()
|
||||
update_icon()
|
||||
spawn_turf = get_turf(src)
|
||||
|
||||
/mob/living/simple_animal/bot/ed209/syndicate/setup_access()
|
||||
if(access_card)
|
||||
access_card.access = list(access_syndicate, access_syndicate_leader)
|
||||
prev_access = access_card.access
|
||||
|
||||
/mob/living/simple_animal/bot/ed209/syndicate/update_icon()
|
||||
icon_state = initial(icon_state)
|
||||
@@ -160,7 +162,7 @@
|
||||
P.fire()
|
||||
|
||||
/mob/living/simple_animal/bot/ed209/syndicate/explode()
|
||||
if (!QDELETED(src))
|
||||
if(!QDELETED(src))
|
||||
if(depotarea)
|
||||
depotarea.list_remove(src, depotarea.guard_list)
|
||||
walk_to(src,0)
|
||||
|
||||
@@ -85,7 +85,7 @@
|
||||
var/area/syndicate_depot/core/depotarea
|
||||
var/raised_alert = FALSE
|
||||
var/alert_on_death = FALSE
|
||||
var/alert_on_timeout = FALSE
|
||||
var/alert_on_timeout = TRUE
|
||||
var/alert_on_spacing = TRUE
|
||||
var/alert_on_shield_breach = FALSE
|
||||
var/seen_enemy = FALSE
|
||||
@@ -99,6 +99,7 @@
|
||||
/mob/living/simple_animal/hostile/syndicate/melee/autogib/depot/New()
|
||||
..()
|
||||
name = "[name] [pick(GLOB.last_names)]"
|
||||
// Do not attempt to move this code to Initialize() or LateInitialize(). Doing so with other objects has caused bugs in the past, because assigning "depotarea" may not work there.
|
||||
depotarea = areaMaster
|
||||
spawn_turf = get_turf(src)
|
||||
|
||||
@@ -197,7 +198,6 @@
|
||||
/mob/living/simple_animal/hostile/syndicate/melee/autogib/depot/officer
|
||||
name = "Syndicate Officer"
|
||||
alert_on_death = TRUE
|
||||
alert_on_timeout = TRUE
|
||||
melee_block_chance = 60
|
||||
|
||||
/mob/living/simple_animal/hostile/syndicate/melee/autogib/depot/armory
|
||||
@@ -209,7 +209,6 @@
|
||||
maxHealth = 250
|
||||
health = 250
|
||||
melee_block_chance = 80
|
||||
alert_on_timeout = TRUE
|
||||
alert_on_shield_breach = TRUE
|
||||
|
||||
/mob/living/simple_animal/hostile/syndicate/melee/autogib/depot/armory/Initialize()
|
||||
|
||||
Reference in New Issue
Block a user