@@ -25,6 +25,14 @@
|
||||
max_matter = 600 //Bigger container and faster speeds due to being specialized and stationary.
|
||||
no_ammo_message = "<span class='warning'>Internal matter exhausted. Please add additional materials.</span>"
|
||||
delay_mod = 0.5
|
||||
adjacency_check = FALSE
|
||||
upgrade = TRUE
|
||||
var/obj/machinery/computer/camera_advanced/base_construction/console
|
||||
|
||||
/obj/item/construction/rcd/internal/check_menu(mob/living/user)
|
||||
if(!istype(user) || user.incapacitated() || !user.Adjacent(console))
|
||||
return FALSE
|
||||
return TRUE
|
||||
|
||||
/obj/machinery/computer/camera_advanced/base_construction
|
||||
name = "base construction console"
|
||||
@@ -49,12 +57,10 @@
|
||||
|
||||
light_color = LIGHT_COLOR_PINK
|
||||
|
||||
/obj/machinery/computer/camera_advanced/base_construction/Initialize()
|
||||
. = ..()
|
||||
RCD = new(src)
|
||||
|
||||
/obj/machinery/computer/camera_advanced/base_construction/Initialize(mapload)
|
||||
. = ..()
|
||||
RCD = new(src)
|
||||
RCD.console = src
|
||||
if(mapload) //Map spawned consoles have a filled RCD and stocked special structures
|
||||
RCD.matter = RCD.max_matter
|
||||
fans_remaining = 4
|
||||
@@ -85,7 +91,7 @@
|
||||
return ..()
|
||||
|
||||
/obj/machinery/computer/camera_advanced/base_construction/Destroy()
|
||||
qdel(RCD)
|
||||
QDEL_NULL(RCD)
|
||||
return ..()
|
||||
|
||||
/obj/machinery/computer/camera_advanced/base_construction/GrantActions(mob/living/user)
|
||||
@@ -140,7 +146,8 @@
|
||||
remote_eye = C.remote_control
|
||||
B = target
|
||||
if(!B.RCD) //The console must always have an RCD.
|
||||
B.RCD = new /obj/item/construction/rcd/internal(src) //If the RCD is lost somehow, make a new (empty) one!
|
||||
B.RCD = new /obj/item/construction/rcd/internal(B) //If the RCD is lost somehow, make a new (empty) one!
|
||||
B.RCD.console = B
|
||||
|
||||
/datum/action/innate/aux_base/proc/check_spot()
|
||||
//Check a loction to see if it is inside the aux base at the station. Camera visbility checks omitted so as to not hinder construction.
|
||||
@@ -195,34 +202,40 @@
|
||||
|
||||
var/list/buildlist = list("Walls and Floors" = 1,"Airlocks" = 2,"Deconstruction" = 3,"Windows and Grilles" = 4)
|
||||
var/buildmode = input("Set construction mode.", "Base Console", null) in buildlist
|
||||
B.RCD.mode = buildlist[buildmode]
|
||||
to_chat(owner, "Build mode is now [buildmode].")
|
||||
if(buildmode)
|
||||
B.RCD.mode = buildlist[buildmode]
|
||||
to_chat(owner, "Build mode is now [buildmode].")
|
||||
|
||||
/datum/action/innate/aux_base/airlock_type
|
||||
name = "Select Airlock Type"
|
||||
name = "Change Airlock Settings"
|
||||
button_icon_state = "airlock_select"
|
||||
|
||||
datum/action/innate/aux_base/airlock_type/Activate()
|
||||
/datum/action/innate/aux_base/airlock_type/Activate()
|
||||
if(..())
|
||||
return
|
||||
|
||||
B.RCD.change_airlock_setting()
|
||||
var/mode = alert("Modify Type or Access?", "Airlock Settings", "Type", "Access", "None")
|
||||
switch(mode)
|
||||
if("Type")
|
||||
B.RCD.change_airlock_setting(usr)
|
||||
if("Access")
|
||||
B.RCD.change_airlock_access(usr)
|
||||
|
||||
|
||||
datum/action/innate/aux_base/window_type
|
||||
/datum/action/innate/aux_base/window_type
|
||||
name = "Select Window Type"
|
||||
button_icon_state = "window_select"
|
||||
|
||||
datum/action/innate/aux_base/window_type/Activate()
|
||||
/datum/action/innate/aux_base/window_type/Activate()
|
||||
if(..())
|
||||
return
|
||||
B.RCD.toggle_window_type()
|
||||
B.RCD.toggle_window_type(usr)
|
||||
|
||||
datum/action/innate/aux_base/place_fan
|
||||
/datum/action/innate/aux_base/place_fan
|
||||
name = "Place Tiny Fan"
|
||||
button_icon_state = "build_fan"
|
||||
|
||||
datum/action/innate/aux_base/place_fan/Activate()
|
||||
/datum/action/innate/aux_base/place_fan/Activate()
|
||||
if(..())
|
||||
return
|
||||
|
||||
@@ -244,11 +257,11 @@ datum/action/innate/aux_base/place_fan/Activate()
|
||||
to_chat(owner, "<span class='notice'>Tiny fan placed. [B.fans_remaining] remaining.</span>")
|
||||
playsound(fan_turf, 'sound/machines/click.ogg', 50, 1)
|
||||
|
||||
datum/action/innate/aux_base/install_turret
|
||||
/datum/action/innate/aux_base/install_turret
|
||||
name = "Install Plasma Anti-Wildlife Turret"
|
||||
button_icon_state = "build_turret"
|
||||
|
||||
datum/action/innate/aux_base/install_turret/Activate()
|
||||
/datum/action/innate/aux_base/install_turret/Activate()
|
||||
if(..())
|
||||
return
|
||||
|
||||
|
||||
@@ -1022,21 +1022,10 @@
|
||||
|
||||
message_admins("<span class='adminnotice'>[ADMIN_LOOKUPFLW(L)] has been marked for death by [ADMIN_LOOKUPFLW(user)]!</span>")
|
||||
|
||||
var/datum/objective/survive/survive = new
|
||||
survive.owner = L.mind
|
||||
L.mind.objectives += survive
|
||||
var/datum/antagonist/blood_contract/A = new
|
||||
L.mind.add_antag_datum(A)
|
||||
|
||||
log_combat(user, L, "took out a blood contract on", src)
|
||||
to_chat(L, "<span class='userdanger'>You've been marked for death! Don't let the demons get you! KILL THEM ALL!</span>")
|
||||
L.add_atom_colour("#FF0000", ADMIN_COLOUR_PRIORITY)
|
||||
var/obj/effect/mine/pickup/bloodbath/B = new(L)
|
||||
INVOKE_ASYNC(B, /obj/effect/mine/pickup/bloodbath/.proc/mineEffect, L)
|
||||
|
||||
for(var/mob/living/carbon/human/H in GLOB.player_list)
|
||||
if(H == L)
|
||||
continue
|
||||
to_chat(H, "<span class='userdanger'>You have an overwhelming desire to kill [L]. [L.p_theyve(TRUE)] been marked red! Whoever [L.p_they()] [L.p_were()], friend or foe, go kill [L.p_them()]!</span>")
|
||||
H.put_in_hands(new /obj/item/kitchen/knife/butcher(H), TRUE)
|
||||
|
||||
qdel(src)
|
||||
|
||||
//Colossus
|
||||
|
||||
@@ -121,7 +121,7 @@
|
||||
dat += "<b>Smelt Alloys</b><br>"
|
||||
|
||||
for(var/v in stored_research.researched_designs)
|
||||
var/datum/design/D = stored_research.researched_designs[v]
|
||||
var/datum/design/D = SSresearch.techweb_design_by_id(v)
|
||||
dat += "<span class=\"res_name\">[D.name] "
|
||||
if (selected_alloy == D.id)
|
||||
dat += " <i>Smelting</i>"
|
||||
|
||||
@@ -209,7 +209,7 @@
|
||||
|
||||
data["alloys"] = list()
|
||||
for(var/v in stored_research.researched_designs)
|
||||
var/datum/design/D = stored_research.researched_designs[v]
|
||||
var/datum/design/D = SSresearch.techweb_design_by_id(v)
|
||||
data["alloys"] += list(list("name" = D.name, "id" = D.id, "amount" = can_smelt_alloy(D)))
|
||||
|
||||
if (!mat_container)
|
||||
@@ -304,7 +304,9 @@
|
||||
return
|
||||
var/alloy_id = params["id"]
|
||||
var/datum/design/alloy = stored_research.isDesignResearchedID(alloy_id)
|
||||
if((check_access(inserted_scan_id) || allowed(usr)) && alloy)
|
||||
var/mob/M = usr
|
||||
var/obj/item/card/id/I = M.get_idcard(TRUE)
|
||||
if((check_access(I) || allowed(usr)) && alloy)
|
||||
var/smelt_amount = can_smelt_alloy(alloy)
|
||||
var/desired = 0
|
||||
if (params["sheets"])
|
||||
|
||||
@@ -171,7 +171,7 @@ GLOBAL_LIST_EMPTY(silo_access_logs)
|
||||
return
|
||||
var/datum/ore_silo_log/entry = new(M, action, amount, noun, mats)
|
||||
|
||||
var/list/logs = GLOB.silo_access_logs[REF(src)]
|
||||
var/list/datum/ore_silo_log/logs = GLOB.silo_access_logs[REF(src)]
|
||||
if(!LAZYLEN(logs))
|
||||
GLOB.silo_access_logs[REF(src)] = logs = list(entry)
|
||||
else if(!logs[1].merge(entry))
|
||||
|
||||
@@ -73,7 +73,7 @@
|
||||
shuttleId = "mining"
|
||||
possible_destinations = "mining_home;mining_away;landing_zone_dock;mining_public"
|
||||
no_destination_swap = 1
|
||||
var/global/list/dumb_rev_heads = list()
|
||||
var/static/list/dumb_rev_heads = list()
|
||||
|
||||
//ATTACK HAND IGNORING PARENT RETURN VALUE
|
||||
/obj/machinery/computer/shuttle/mining/attack_hand(mob/user)
|
||||
|
||||
Reference in New Issue
Block a user