Merge pull request #10422 from Kyep/depot_update_4

Depot Update
This commit is contained in:
variableundefined
2018-12-13 23:06:29 +08:00
committed by GitHub
12 changed files with 376 additions and 338 deletions
File diff suppressed because it is too large Load Diff
+28 -8
View File
@@ -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)
+9 -2
View File
@@ -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)
+9
View File
@@ -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
+14 -9
View File
@@ -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()