mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-10 02:09:41 +00:00
Converted old supply_controller to SSsupply
This commit is contained in:
@@ -78,6 +78,7 @@ var/global/list/runlevel_flags = list(RUNLEVEL_LOBBY, RUNLEVEL_SETUP, RUNLEVEL_G
|
|||||||
// Subsystem fire priority, from lowest to highest priority
|
// Subsystem fire priority, from lowest to highest priority
|
||||||
// If the subsystem isn't listed here it's either DEFAULT or PROCESS (if it's a processing subsystem child)
|
// If the subsystem isn't listed here it's either DEFAULT or PROCESS (if it's a processing subsystem child)
|
||||||
#define FIRE_PRIORITY_SHUTTLES 5
|
#define FIRE_PRIORITY_SHUTTLES 5
|
||||||
|
#define FIRE_PRIORITY_SUPPLY 5
|
||||||
#define FIRE_PRIORITY_ORBIT 8
|
#define FIRE_PRIORITY_ORBIT 8
|
||||||
#define FIRE_PRIORITY_VOTE 9
|
#define FIRE_PRIORITY_VOTE 9
|
||||||
#define FIRE_PRIORITY_AI 10
|
#define FIRE_PRIORITY_AI 10
|
||||||
|
|||||||
@@ -1,33 +1,15 @@
|
|||||||
|
|
||||||
// TODO - Refactor to use the Supply Subsystem (SSsupply)
|
|
||||||
|
|
||||||
//Supply packs are in /code/datums/supplypacks
|
//Supply packs are in /code/datums/supplypacks
|
||||||
//Computers are in /code/game/machinery/computer/supply.dm
|
//Computers are in /code/game/machinery/computer/supply.dm
|
||||||
|
SUBSYSTEM_DEF(supply)
|
||||||
|
name = "Supply"
|
||||||
|
wait = 20 SECONDS
|
||||||
|
priority = FIRE_PRIORITY_SUPPLY
|
||||||
|
//Initializes at default time
|
||||||
|
flags = SS_NO_TICK_CHECK
|
||||||
|
|
||||||
/datum/supply_order
|
|
||||||
var/ordernum // Unfabricatable index
|
|
||||||
var/index // Fabricatable index
|
|
||||||
var/datum/supply_pack/object = null
|
|
||||||
var/cost // Cost of the supply pack (Fabricatable) (Changes not reflected when purchasing supply packs, this is cosmetic only)
|
|
||||||
var/name // Name of the supply pack datum (Fabricatable)
|
|
||||||
var/ordered_by = null // Who requested the order
|
|
||||||
var/comment = null // What reason was given for the order
|
|
||||||
var/approved_by = null // Who approved the order
|
|
||||||
var/ordered_at // Date and time the order was requested at
|
|
||||||
var/approved_at // Date and time the order was approved at
|
|
||||||
var/status // [Requested, Accepted, Denied, Shipped]
|
|
||||||
|
|
||||||
/datum/exported_crate
|
|
||||||
var/name
|
|
||||||
var/value
|
|
||||||
var/list/contents
|
|
||||||
|
|
||||||
var/datum/controller/supply/supply_controller = new()
|
|
||||||
|
|
||||||
/datum/controller/supply
|
|
||||||
//supply points
|
//supply points
|
||||||
var/points = 50
|
var/points = 50
|
||||||
var/points_per_process = 1.5
|
var/points_per_process = 1.0 // Processes every 20 seconds, so this is 3 per minute
|
||||||
var/points_per_slip = 2
|
var/points_per_slip = 2
|
||||||
var/points_per_money = 0.02 // 1 point for $50
|
var/points_per_money = 0.02 // 1 point for $50
|
||||||
//control
|
//control
|
||||||
@@ -46,9 +28,10 @@ var/datum/controller/supply/supply_controller = new()
|
|||||||
"platinum" = 5
|
"platinum" = 5
|
||||||
)
|
)
|
||||||
|
|
||||||
/datum/controller/supply/New()
|
/datum/controller/subsystem/supply/Initialize()
|
||||||
ordernum = rand(1,9000)
|
ordernum = rand(1,9000)
|
||||||
|
|
||||||
|
// build master supply list
|
||||||
for(var/typepath in subtypesof(/datum/supply_pack))
|
for(var/typepath in subtypesof(/datum/supply_pack))
|
||||||
var/datum/supply_pack/P = new typepath()
|
var/datum/supply_pack/P = new typepath()
|
||||||
if(P.name)
|
if(P.name)
|
||||||
@@ -56,20 +39,18 @@ var/datum/controller/supply/supply_controller = new()
|
|||||||
else
|
else
|
||||||
qdel(P)
|
qdel(P)
|
||||||
|
|
||||||
/datum/controller/process/supply/setup()
|
// TODO - Auto-build material_points_conversion from material datums
|
||||||
name = "supply controller"
|
. = ..()
|
||||||
schedule_interval = 300 // every 30 seconds
|
|
||||||
|
|
||||||
/datum/controller/process/supply/doWork()
|
// Supply shuttle ticker - handles supply point regeneration. Just add points over time.
|
||||||
supply_controller.process()
|
/datum/controller/subsystem/supply/fire()
|
||||||
|
|
||||||
// Supply shuttle ticker - handles supply point regeneration
|
|
||||||
// This is called by the process scheduler every thirty seconds
|
|
||||||
/datum/controller/supply/process()
|
|
||||||
points += points_per_process
|
points += points_per_process
|
||||||
|
|
||||||
|
/datum/controller/subsystem/supply/stat_entry()
|
||||||
|
..("Points: [points]")
|
||||||
|
|
||||||
//To stop things being sent to CentCom which should not be sent to centcomm. Recursively checks for these types.
|
//To stop things being sent to CentCom which should not be sent to centcomm. Recursively checks for these types.
|
||||||
/datum/controller/supply/proc/forbidden_atoms_check(atom/A)
|
/datum/controller/subsystem/supply/proc/forbidden_atoms_check(atom/A)
|
||||||
if(isliving(A))
|
if(isliving(A))
|
||||||
return 1
|
return 1
|
||||||
if(istype(A,/obj/item/weapon/disk/nuclear))
|
if(istype(A,/obj/item/weapon/disk/nuclear))
|
||||||
@@ -86,7 +67,7 @@ var/datum/controller/supply/supply_controller = new()
|
|||||||
return 1
|
return 1
|
||||||
|
|
||||||
//Selling
|
//Selling
|
||||||
/datum/controller/supply/proc/sell()
|
/datum/controller/subsystem/supply/proc/sell()
|
||||||
// Loop over each area in the supply shuttle
|
// Loop over each area in the supply shuttle
|
||||||
for(var/area/subarea in shuttle.shuttle_area)
|
for(var/area/subarea in shuttle.shuttle_area)
|
||||||
callHook("sell_shuttle", list(subarea));
|
callHook("sell_shuttle", list(subarea));
|
||||||
@@ -162,7 +143,7 @@ var/datum/controller/supply/supply_controller = new()
|
|||||||
|
|
||||||
qdel(MA)
|
qdel(MA)
|
||||||
|
|
||||||
/datum/controller/supply/proc/get_clear_turfs()
|
/datum/controller/subsystem/supply/proc/get_clear_turfs()
|
||||||
var/list/clear_turfs = list()
|
var/list/clear_turfs = list()
|
||||||
|
|
||||||
for(var/area/subarea in shuttle.shuttle_area)
|
for(var/area/subarea in shuttle.shuttle_area)
|
||||||
@@ -181,7 +162,7 @@ var/datum/controller/supply/supply_controller = new()
|
|||||||
return clear_turfs
|
return clear_turfs
|
||||||
|
|
||||||
//Buying
|
//Buying
|
||||||
/datum/controller/supply/proc/buy()
|
/datum/controller/subsystem/supply/proc/buy()
|
||||||
var/list/shoppinglist = list()
|
var/list/shoppinglist = list()
|
||||||
for(var/datum/supply_order/SO in order_history)
|
for(var/datum/supply_order/SO in order_history)
|
||||||
if(SO.status == SUP_ORDER_APPROVED)
|
if(SO.status == SUP_ORDER_APPROVED)
|
||||||
@@ -260,9 +241,9 @@ var/datum/controller/supply/supply_controller = new()
|
|||||||
return
|
return
|
||||||
|
|
||||||
// Will attempt to purchase the specified order, returning TRUE on success, FALSE on failure
|
// Will attempt to purchase the specified order, returning TRUE on success, FALSE on failure
|
||||||
/datum/controller/supply/proc/approve_order(var/datum/supply_order/O, var/mob/user)
|
/datum/controller/subsystem/supply/proc/approve_order(var/datum/supply_order/O, var/mob/user)
|
||||||
// Not enough points to purchase the crate
|
// Not enough points to purchase the crate
|
||||||
if(supply_controller.points <= O.object.cost)
|
if(points <= O.object.cost)
|
||||||
return FALSE
|
return FALSE
|
||||||
|
|
||||||
// Based on the current model, there shouldn't be any entries in order_history, requestlist, or shoppinglist, that aren't matched in adm_order_history
|
// Based on the current model, there shouldn't be any entries in order_history, requestlist, or shoppinglist, that aren't matched in adm_order_history
|
||||||
@@ -289,11 +270,11 @@ var/datum/controller/supply/supply_controller = new()
|
|||||||
adm_order.approved_at = stationdate2text() + " - " + stationtime2text()
|
adm_order.approved_at = stationdate2text() + " - " + stationtime2text()
|
||||||
|
|
||||||
// Deduct cost
|
// Deduct cost
|
||||||
supply_controller.points -= O.object.cost
|
points -= O.object.cost
|
||||||
return TRUE
|
return TRUE
|
||||||
|
|
||||||
// Will deny the specified order. Only useful if the order is currently requested, but available at any status
|
// Will deny the specified order. Only useful if the order is currently requested, but available at any status
|
||||||
/datum/controller/supply/proc/deny_order(var/datum/supply_order/O, var/mob/user)
|
/datum/controller/subsystem/supply/proc/deny_order(var/datum/supply_order/O, var/mob/user)
|
||||||
// Based on the current model, there shouldn't be any entries in order_history, requestlist, or shoppinglist, that aren't matched in adm_order_history
|
// Based on the current model, there shouldn't be any entries in order_history, requestlist, or shoppinglist, that aren't matched in adm_order_history
|
||||||
var/datum/supply_order/adm_order
|
var/datum/supply_order/adm_order
|
||||||
for(var/datum/supply_order/temp in adm_order_history)
|
for(var/datum/supply_order/temp in adm_order_history)
|
||||||
@@ -319,22 +300,22 @@ var/datum/controller/supply/supply_controller = new()
|
|||||||
return
|
return
|
||||||
|
|
||||||
// Will deny all requested orders
|
// Will deny all requested orders
|
||||||
/datum/controller/supply/proc/deny_all_pending(var/mob/user)
|
/datum/controller/subsystem/supply/proc/deny_all_pending(var/mob/user)
|
||||||
for(var/datum/supply_order/O in order_history)
|
for(var/datum/supply_order/O in order_history)
|
||||||
if(O.status == SUP_ORDER_REQUESTED)
|
if(O.status == SUP_ORDER_REQUESTED)
|
||||||
deny_order(O, user)
|
deny_order(O, user)
|
||||||
|
|
||||||
// Will delete the specified order from the user-side list
|
// Will delete the specified order from the user-side list
|
||||||
/datum/controller/supply/proc/delete_order(var/datum/supply_order/O, var/mob/user)
|
/datum/controller/subsystem/supply/proc/delete_order(var/datum/supply_order/O, var/mob/user)
|
||||||
// Making sure they know what they're doing
|
// Making sure they know what they're doing
|
||||||
if(alert(user, "Are you sure you want to delete this record? If it has been approved, cargo points will NOT be refunded!", "Delete Record","No","Yes") == "Yes")
|
if(alert(user, "Are you sure you want to delete this record? If it has been approved, cargo points will NOT be refunded!", "Delete Record","No","Yes") == "Yes")
|
||||||
if(alert(user, "Are you really sure? There is no way to recover the order once deleted.", "Delete Record", "No", "Yes") == "Yes")
|
if(alert(user, "Are you really sure? There is no way to recover the order once deleted.", "Delete Record", "No", "Yes") == "Yes")
|
||||||
log_admin("[key_name(user)] has deleted supply order \ref[O] [O] from the user-side order history.")
|
log_admin("[key_name(user)] has deleted supply order \ref[O] [O] from the user-side order history.")
|
||||||
supply_controller.order_history -= O
|
order_history -= O
|
||||||
return
|
return
|
||||||
|
|
||||||
// Will generate a new, requested order, for the given supply pack type
|
// Will generate a new, requested order, for the given supply pack type
|
||||||
/datum/controller/supply/proc/create_order(var/datum/supply_pack/S, var/mob/user, var/reason)
|
/datum/controller/subsystem/supply/proc/create_order(var/datum/supply_pack/S, var/mob/user, var/reason)
|
||||||
var/datum/supply_order/new_order = new()
|
var/datum/supply_order/new_order = new()
|
||||||
var/datum/supply_order/adm_order = new() // Admin-recorded order must be a separate copy in memory, or user-made edits will corrupt it
|
var/datum/supply_order/adm_order = new() // Admin-recorded order must be a separate copy in memory, or user-made edits will corrupt it
|
||||||
|
|
||||||
@@ -369,16 +350,16 @@ var/datum/controller/supply/supply_controller = new()
|
|||||||
adm_order_history += adm_order
|
adm_order_history += adm_order
|
||||||
|
|
||||||
// Will delete the specified export receipt from the user-side list
|
// Will delete the specified export receipt from the user-side list
|
||||||
/datum/controller/supply/proc/delete_export(var/datum/exported_crate/E, var/mob/user)
|
/datum/controller/subsystem/supply/proc/delete_export(var/datum/exported_crate/E, var/mob/user)
|
||||||
// Making sure they know what they're doing
|
// Making sure they know what they're doing
|
||||||
if(alert(user, "Are you sure you want to delete this record?", "Delete Record","No","Yes") == "Yes")
|
if(alert(user, "Are you sure you want to delete this record?", "Delete Record","No","Yes") == "Yes")
|
||||||
if(alert(user, "Are you really sure? There is no way to recover the receipt once deleted.", "Delete Record", "No", "Yes") == "Yes")
|
if(alert(user, "Are you really sure? There is no way to recover the receipt once deleted.", "Delete Record", "No", "Yes") == "Yes")
|
||||||
log_admin("[key_name(user)] has deleted export receipt \ref[E] [E] from the user-side export history.")
|
log_admin("[key_name(user)] has deleted export receipt \ref[E] [E] from the user-side export history.")
|
||||||
supply_controller.exported_crates -= E
|
exported_crates -= E
|
||||||
return
|
return
|
||||||
|
|
||||||
// Will add an item entry to the specified export receipt on the user-side list
|
// Will add an item entry to the specified export receipt on the user-side list
|
||||||
/datum/controller/supply/proc/add_export_item(var/datum/exported_crate/E, var/mob/user)
|
/datum/controller/subsystem/supply/proc/add_export_item(var/datum/exported_crate/E, var/mob/user)
|
||||||
var/new_name = input(user, "Name", "Please enter the name of the item.") as null|text
|
var/new_name = input(user, "Name", "Please enter the name of the item.") as null|text
|
||||||
if(!new_name)
|
if(!new_name)
|
||||||
return
|
return
|
||||||
@@ -396,3 +377,21 @@ var/datum/controller/supply/supply_controller = new()
|
|||||||
"quantity" = new_quantity,
|
"quantity" = new_quantity,
|
||||||
"value" = new_value
|
"value" = new_value
|
||||||
)
|
)
|
||||||
|
|
||||||
|
/datum/exported_crate
|
||||||
|
var/name
|
||||||
|
var/value
|
||||||
|
var/list/contents
|
||||||
|
|
||||||
|
/datum/supply_order
|
||||||
|
var/ordernum // Unfabricatable index
|
||||||
|
var/index // Fabricatable index
|
||||||
|
var/datum/supply_pack/object = null
|
||||||
|
var/cost // Cost of the supply pack (Fabricatable) (Changes not reflected when purchasing supply packs, this is cosmetic only)
|
||||||
|
var/name // Name of the supply pack datum (Fabricatable)
|
||||||
|
var/ordered_by = null // Who requested the order
|
||||||
|
var/comment = null // What reason was given for the order
|
||||||
|
var/approved_by = null // Who approved the order
|
||||||
|
var/ordered_at // Date and time the order was requested at
|
||||||
|
var/approved_at // Date and time the order was approved at
|
||||||
|
var/status // [Requested, Accepted, Denied, Shipped]
|
||||||
@@ -94,7 +94,6 @@
|
|||||||
options["LEGACY: air_master"] = air_master
|
options["LEGACY: air_master"] = air_master
|
||||||
options["LEGACY: job_master"] = job_master
|
options["LEGACY: job_master"] = job_master
|
||||||
options["LEGACY: radio_controller"] = radio_controller
|
options["LEGACY: radio_controller"] = radio_controller
|
||||||
options["LEGACY: supply_controller"] = supply_controller
|
|
||||||
options["LEGACY: emergency_shuttle"] = emergency_shuttle
|
options["LEGACY: emergency_shuttle"] = emergency_shuttle
|
||||||
options["LEGACY: paiController"] = paiController
|
options["LEGACY: paiController"] = paiController
|
||||||
options["LEGACY: cameranet"] = cameranet
|
options["LEGACY: cameranet"] = cameranet
|
||||||
|
|||||||
@@ -56,7 +56,7 @@
|
|||||||
var/orders[0]
|
var/orders[0]
|
||||||
var/receipts[0]
|
var/receipts[0]
|
||||||
|
|
||||||
var/datum/shuttle/autodock/ferry/supply/shuttle = supply_controller.shuttle
|
var/datum/shuttle/autodock/ferry/supply/shuttle = SSsupply.shuttle
|
||||||
if(shuttle)
|
if(shuttle)
|
||||||
if(shuttle.has_arrive_time())
|
if(shuttle.has_arrive_time())
|
||||||
shuttle_status["location"] = "In transit"
|
shuttle_status["location"] = "In transit"
|
||||||
@@ -109,8 +109,8 @@
|
|||||||
else
|
else
|
||||||
shuttle["mode"] = SUP_SHUTTLE_ERROR
|
shuttle["mode"] = SUP_SHUTTLE_ERROR
|
||||||
|
|
||||||
for(var/pack_name in supply_controller.supply_pack)
|
for(var/pack_name in SSsupply.supply_pack)
|
||||||
var/datum/supply_pack/P = supply_controller.supply_pack[pack_name]
|
var/datum/supply_pack/P = SSsupply.supply_pack[pack_name]
|
||||||
if(P.group == active_category)
|
if(P.group == active_category)
|
||||||
var/list/pack = list(
|
var/list/pack = list(
|
||||||
"name" = P.name,
|
"name" = P.name,
|
||||||
@@ -131,7 +131,7 @@
|
|||||||
// Status determines which menus the entry will display in
|
// Status determines which menus the entry will display in
|
||||||
// Organized in field-entry list for iterative display
|
// Organized in field-entry list for iterative display
|
||||||
// List is nested so both the list of orders, and the list of elements in each order, can be iterated over
|
// List is nested so both the list of orders, and the list of elements in each order, can be iterated over
|
||||||
for(var/datum/supply_order/S in supply_controller.order_history)
|
for(var/datum/supply_order/S in SSsupply.order_history)
|
||||||
orders[++orders.len] = list(
|
orders[++orders.len] = list(
|
||||||
"ref" = "\ref[S]",
|
"ref" = "\ref[S]",
|
||||||
"status" = S.status,
|
"status" = S.status,
|
||||||
@@ -148,7 +148,7 @@
|
|||||||
)
|
)
|
||||||
|
|
||||||
// Compile exported crates
|
// Compile exported crates
|
||||||
for(var/datum/exported_crate/E in supply_controller.exported_crates)
|
for(var/datum/exported_crate/E in SSsupply.exported_crates)
|
||||||
receipts[++receipts.len] = list(
|
receipts[++receipts.len] = list(
|
||||||
"ref" = "\ref[E]",
|
"ref" = "\ref[E]",
|
||||||
"contents" = E.contents,
|
"contents" = E.contents,
|
||||||
@@ -164,7 +164,7 @@
|
|||||||
data["shuttle_auth"] = (authorization & SUP_SEND_SHUTTLE) // Whether this ui is permitted to control the supply shuttle
|
data["shuttle_auth"] = (authorization & SUP_SEND_SHUTTLE) // Whether this ui is permitted to control the supply shuttle
|
||||||
data["order_auth"] = (authorization & SUP_ACCEPT_ORDERS) // Whether this ui is permitted to accept/deny requested orders
|
data["order_auth"] = (authorization & SUP_ACCEPT_ORDERS) // Whether this ui is permitted to accept/deny requested orders
|
||||||
data["shuttle"] = shuttle_status
|
data["shuttle"] = shuttle_status
|
||||||
data["supply_points"] = supply_controller.points
|
data["supply_points"] = SSsupply.points
|
||||||
data["categories"] = all_supply_groups
|
data["categories"] = all_supply_groups
|
||||||
data["active_category"] = active_category
|
data["active_category"] = active_category
|
||||||
data["supply_packs"] = pack_list
|
data["supply_packs"] = pack_list
|
||||||
@@ -189,10 +189,10 @@
|
|||||||
|
|
||||||
|
|
||||||
/obj/machinery/computer/supplycomp/Topic(href, href_list)
|
/obj/machinery/computer/supplycomp/Topic(href, href_list)
|
||||||
if(!supply_controller)
|
if(!SSsupply)
|
||||||
to_world_log("## ERROR: The supply_controller datum is missing.")
|
to_world_log("## ERROR: The SSsupply datum is missing.")
|
||||||
return
|
return
|
||||||
var/datum/shuttle/autodock/ferry/supply/shuttle = supply_controller.shuttle
|
var/datum/shuttle/autodock/ferry/supply/shuttle = SSsupply.shuttle
|
||||||
if (!shuttle)
|
if (!shuttle)
|
||||||
to_world_log("## ERROR: The supply shuttle datum is missing.")
|
to_world_log("## ERROR: The supply shuttle datum is missing.")
|
||||||
return
|
return
|
||||||
@@ -240,7 +240,7 @@
|
|||||||
if(!reason)
|
if(!reason)
|
||||||
return
|
return
|
||||||
|
|
||||||
supply_controller.create_order(S, user, reason)
|
SSsupply.create_order(S, user, reason)
|
||||||
|
|
||||||
var/idname = "*None Provided*"
|
var/idname = "*None Provided*"
|
||||||
var/idrank = "*None Provided*"
|
var/idrank = "*None Provided*"
|
||||||
@@ -255,7 +255,7 @@
|
|||||||
var/obj/item/weapon/paper/reqform = new /obj/item/weapon/paper(loc)
|
var/obj/item/weapon/paper/reqform = new /obj/item/weapon/paper(loc)
|
||||||
reqform.name = "Requisition Form - [S.name]"
|
reqform.name = "Requisition Form - [S.name]"
|
||||||
reqform.info += "<h3>[station_name()] Supply Requisition Form</h3><hr>"
|
reqform.info += "<h3>[station_name()] Supply Requisition Form</h3><hr>"
|
||||||
reqform.info += "INDEX: #[supply_controller.ordernum]<br>"
|
reqform.info += "INDEX: #[SSsupply.ordernum]<br>"
|
||||||
reqform.info += "REQUESTED BY: [idname]<br>"
|
reqform.info += "REQUESTED BY: [idname]<br>"
|
||||||
reqform.info += "RANK: [idrank]<br>"
|
reqform.info += "RANK: [idrank]<br>"
|
||||||
reqform.info += "REASON: [reason]<br>"
|
reqform.info += "REASON: [reason]<br>"
|
||||||
@@ -315,20 +315,20 @@
|
|||||||
O.approved_at = new_val
|
O.approved_at = new_val
|
||||||
|
|
||||||
if(href_list["approve"])
|
if(href_list["approve"])
|
||||||
supply_controller.approve_order(O, user)
|
SSsupply.approve_order(O, user)
|
||||||
|
|
||||||
if(href_list["deny"])
|
if(href_list["deny"])
|
||||||
supply_controller.deny_order(O, user)
|
SSsupply.deny_order(O, user)
|
||||||
|
|
||||||
if(href_list["delete"])
|
if(href_list["delete"])
|
||||||
supply_controller.delete_order(O, user)
|
SSsupply.delete_order(O, user)
|
||||||
|
|
||||||
if(href_list["clear_all_requests"])
|
if(href_list["clear_all_requests"])
|
||||||
var/mob/user = locate(href_list["user"])
|
var/mob/user = locate(href_list["user"])
|
||||||
if(!istype(user)) // Invalid ref
|
if(!istype(user)) // Invalid ref
|
||||||
return
|
return
|
||||||
|
|
||||||
supply_controller.deny_all_pending(user)
|
SSsupply.deny_all_pending(user)
|
||||||
|
|
||||||
if(href_list["export_ref"])
|
if(href_list["export_ref"])
|
||||||
var/datum/exported_crate/E = locate(href_list["export_ref"])
|
var/datum/exported_crate/E = locate(href_list["export_ref"])
|
||||||
@@ -384,10 +384,10 @@
|
|||||||
E.value = num
|
E.value = num
|
||||||
|
|
||||||
else if(href_list["delete"])
|
else if(href_list["delete"])
|
||||||
supply_controller.delete_export(E, user)
|
SSsupply.delete_export(E, user)
|
||||||
|
|
||||||
else if(href_list["add_item"])
|
else if(href_list["add_item"])
|
||||||
supply_controller.add_export_item(E, user)
|
SSsupply.add_export_item(E, user)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -401,7 +401,7 @@
|
|||||||
|
|
||||||
if("send_to_station")
|
if("send_to_station")
|
||||||
shuttle.launch(src)
|
shuttle.launch(src)
|
||||||
to_chat(usr, "<span class='notice'>The supply shuttle has been called and will arrive in approximately [round(supply_controller.movetime/600,1)] minutes.</span>")
|
to_chat(usr, "<span class='notice'>The supply shuttle has been called and will arrive in approximately [round(SSsupply.movetime/600,1)] minutes.</span>")
|
||||||
|
|
||||||
if("cancel_shuttle")
|
if("cancel_shuttle")
|
||||||
shuttle.cancel_launch(src)
|
shuttle.cancel_launch(src)
|
||||||
|
|||||||
@@ -222,7 +222,7 @@
|
|||||||
return "[add_zero(num2text((timeleft / 60) % 60),2)]:[add_zero(num2text(timeleft % 60), 2)]"
|
return "[add_zero(num2text((timeleft / 60) % 60),2)]:[add_zero(num2text(timeleft % 60), 2)]"
|
||||||
|
|
||||||
/obj/machinery/status_display/proc/get_supply_shuttle_timer()
|
/obj/machinery/status_display/proc/get_supply_shuttle_timer()
|
||||||
var/datum/shuttle/autodock/ferry/supply/shuttle = supply_controller.shuttle
|
var/datum/shuttle/autodock/ferry/supply/shuttle = SSsupply.shuttle
|
||||||
if(!shuttle)
|
if(!shuttle)
|
||||||
return "Error"
|
return "Error"
|
||||||
|
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
message1 = "CARGO"
|
message1 = "CARGO"
|
||||||
message2 = ""
|
message2 = ""
|
||||||
|
|
||||||
var/datum/shuttle/autodock/ferry/supply/shuttle = supply_controller.shuttle
|
var/datum/shuttle/autodock/ferry/supply/shuttle = SSsupply.shuttle
|
||||||
if(!shuttle)
|
if(!shuttle)
|
||||||
message2 = "Error"
|
message2 = "Error"
|
||||||
else if(shuttle.has_arrive_time())
|
else if(shuttle.has_arrive_time())
|
||||||
|
|||||||
@@ -425,14 +425,14 @@ var/list/civilian_cartridges = list(
|
|||||||
|
|
||||||
if(mode==47)
|
if(mode==47)
|
||||||
var/supplyData[0]
|
var/supplyData[0]
|
||||||
var/datum/shuttle/autodock/ferry/supply/shuttle = supply_controller.shuttle
|
var/datum/shuttle/autodock/ferry/supply/shuttle = SSsupply.shuttle
|
||||||
if (shuttle)
|
if (shuttle)
|
||||||
supplyData["shuttle_moving"] = shuttle.has_arrive_time()
|
supplyData["shuttle_moving"] = shuttle.has_arrive_time()
|
||||||
supplyData["shuttle_eta"] = shuttle.eta_minutes()
|
supplyData["shuttle_eta"] = shuttle.eta_minutes()
|
||||||
supplyData["shuttle_loc"] = shuttle.at_station() ? "Station" : "Dock"
|
supplyData["shuttle_loc"] = shuttle.at_station() ? "Station" : "Dock"
|
||||||
var/supplyOrderCount = 0
|
var/supplyOrderCount = 0
|
||||||
var/supplyOrderData[0]
|
var/supplyOrderData[0]
|
||||||
for(var/S in supply_controller.shoppinglist)
|
for(var/S in SSsupply.shoppinglist)
|
||||||
var/datum/supply_order/SO = S
|
var/datum/supply_order/SO = S
|
||||||
|
|
||||||
supplyOrderData[++supplyOrderData.len] = list("Number" = SO.ordernum, "Name" = html_encode(SO.object.name), "ApprovedBy" = SO.ordered_by, "Comment" = html_encode(SO.comment))
|
supplyOrderData[++supplyOrderData.len] = list("Number" = SO.ordernum, "Name" = html_encode(SO.object.name), "ApprovedBy" = SO.ordered_by, "Comment" = html_encode(SO.comment))
|
||||||
@@ -444,7 +444,7 @@ var/list/civilian_cartridges = list(
|
|||||||
|
|
||||||
var/requestCount = 0
|
var/requestCount = 0
|
||||||
var/requestData[0]
|
var/requestData[0]
|
||||||
for(var/S in supply_controller.order_history)
|
for(var/S in SSsupply.order_history)
|
||||||
var/datum/supply_order/SO = S
|
var/datum/supply_order/SO = S
|
||||||
if(SO.status != SUP_ORDER_REQUESTED)
|
if(SO.status != SUP_ORDER_REQUESTED)
|
||||||
continue
|
continue
|
||||||
|
|||||||
@@ -140,7 +140,7 @@
|
|||||||
if(!reason)
|
if(!reason)
|
||||||
return
|
return
|
||||||
|
|
||||||
supply_controller.create_order(S, user, reason)
|
SSsupply.create_order(S, user, reason)
|
||||||
internal_data["supply_reqtime"] = (world.time + 5) % 1e5
|
internal_data["supply_reqtime"] = (world.time + 5) % 1e5
|
||||||
|
|
||||||
if(href_list["order_ref"])
|
if(href_list["order_ref"])
|
||||||
@@ -189,20 +189,20 @@
|
|||||||
O.approved_at = new_val
|
O.approved_at = new_val
|
||||||
|
|
||||||
if(href_list["approve"])
|
if(href_list["approve"])
|
||||||
supply_controller.approve_order(O, user)
|
SSsupply.approve_order(O, user)
|
||||||
|
|
||||||
if(href_list["deny"])
|
if(href_list["deny"])
|
||||||
supply_controller.deny_order(O, user)
|
SSsupply.deny_order(O, user)
|
||||||
|
|
||||||
if(href_list["delete"])
|
if(href_list["delete"])
|
||||||
supply_controller.delete_order(O, user)
|
SSsupply.delete_order(O, user)
|
||||||
|
|
||||||
if(href_list["clear_all_requests"])
|
if(href_list["clear_all_requests"])
|
||||||
var/mob/user = locate(href_list["user"])
|
var/mob/user = locate(href_list["user"])
|
||||||
if(!istype(user)) // Invalid ref
|
if(!istype(user)) // Invalid ref
|
||||||
return
|
return
|
||||||
|
|
||||||
supply_controller.deny_all_pending(user)
|
SSsupply.deny_all_pending(user)
|
||||||
|
|
||||||
if(href_list["export_ref"])
|
if(href_list["export_ref"])
|
||||||
var/datum/exported_crate/E = locate(href_list["export_ref"])
|
var/datum/exported_crate/E = locate(href_list["export_ref"])
|
||||||
@@ -258,29 +258,29 @@
|
|||||||
E.value = num
|
E.value = num
|
||||||
|
|
||||||
else if(href_list["delete"])
|
else if(href_list["delete"])
|
||||||
supply_controller.delete_export(E, user)
|
SSsupply.delete_export(E, user)
|
||||||
|
|
||||||
else if(href_list["add_item"])
|
else if(href_list["add_item"])
|
||||||
supply_controller.add_export_item(E, user)
|
SSsupply.add_export_item(E, user)
|
||||||
|
|
||||||
if(supply_controller && supply_controller.shuttle)
|
if(SSsupply && SSsupply.shuttle)
|
||||||
switch(href_list["send_shuttle"])
|
switch(href_list["send_shuttle"])
|
||||||
if("send_away")
|
if("send_away")
|
||||||
if(supply_controller.shuttle.forbidden_atoms_check())
|
if(SSsupply.shuttle.forbidden_atoms_check())
|
||||||
to_chat(usr, "<span class='warning'>For safety reasons the automated supply shuttle cannot transport live organisms, classified nuclear weaponry or homing beacons.</span>")
|
to_chat(usr, "<span class='warning'>For safety reasons the automated supply shuttle cannot transport live organisms, classified nuclear weaponry or homing beacons.</span>")
|
||||||
else
|
else
|
||||||
supply_controller.shuttle.launch(src)
|
SSsupply.shuttle.launch(src)
|
||||||
to_chat(usr, "<span class='notice'>Initiating launch sequence.</span>")
|
to_chat(usr, "<span class='notice'>Initiating launch sequence.</span>")
|
||||||
|
|
||||||
if("send_to_station")
|
if("send_to_station")
|
||||||
supply_controller.shuttle.launch(src)
|
SSsupply.shuttle.launch(src)
|
||||||
to_chat(usr, "<span class='notice'>The supply shuttle has been called and will arrive in approximately [round(supply_controller.movetime/600,1)] minutes.</span>")
|
to_chat(usr, "<span class='notice'>The supply shuttle has been called and will arrive in approximately [round(SSsupply.movetime/600,1)] minutes.</span>")
|
||||||
|
|
||||||
if("cancel_shuttle")
|
if("cancel_shuttle")
|
||||||
supply_controller.shuttle.cancel_launch(src)
|
SSsupply.shuttle.cancel_launch(src)
|
||||||
|
|
||||||
if("force_shuttle")
|
if("force_shuttle")
|
||||||
supply_controller.shuttle.force_launch(src)
|
SSsupply.shuttle.force_launch(src)
|
||||||
|
|
||||||
// Status display
|
// Status display
|
||||||
switch(href_list["stat_display"])
|
switch(href_list["stat_display"])
|
||||||
|
|||||||
@@ -394,7 +394,7 @@
|
|||||||
// code\game\machinery\computer\supply.dm, starting at line 55
|
// code\game\machinery\computer\supply.dm, starting at line 55
|
||||||
/obj/item/weapon/commcard/proc/get_supply_shuttle_status()
|
/obj/item/weapon/commcard/proc/get_supply_shuttle_status()
|
||||||
var/shuttle_status[0]
|
var/shuttle_status[0]
|
||||||
var/datum/shuttle/autodock/ferry/supply/shuttle = supply_controller.shuttle
|
var/datum/shuttle/autodock/ferry/supply/shuttle = SSsupply.shuttle
|
||||||
if(shuttle)
|
if(shuttle)
|
||||||
if(shuttle.has_arrive_time())
|
if(shuttle.has_arrive_time())
|
||||||
shuttle_status["location"] = "In transit"
|
shuttle_status["location"] = "In transit"
|
||||||
@@ -454,7 +454,7 @@
|
|||||||
// code\game\machinery\computer\supply.dm, starting at line 130
|
// code\game\machinery\computer\supply.dm, starting at line 130
|
||||||
/obj/item/weapon/commcard/proc/get_supply_orders()
|
/obj/item/weapon/commcard/proc/get_supply_orders()
|
||||||
var/orders[0]
|
var/orders[0]
|
||||||
for(var/datum/supply_order/S in supply_controller.order_history)
|
for(var/datum/supply_order/S in SSsupply.order_history)
|
||||||
orders[++orders.len] = list(
|
orders[++orders.len] = list(
|
||||||
"ref" = "\ref[S]",
|
"ref" = "\ref[S]",
|
||||||
"status" = S.status,
|
"status" = S.status,
|
||||||
@@ -477,7 +477,7 @@
|
|||||||
// code\game\machinery\computer\supply.dm, starting at line 147
|
// code\game\machinery\computer\supply.dm, starting at line 147
|
||||||
/obj/item/weapon/commcard/proc/get_supply_receipts()
|
/obj/item/weapon/commcard/proc/get_supply_receipts()
|
||||||
var/receipts[0]
|
var/receipts[0]
|
||||||
for(var/datum/exported_crate/E in supply_controller.exported_crates)
|
for(var/datum/exported_crate/E in SSsupply.exported_crates)
|
||||||
receipts[++receipts.len] = list(
|
receipts[++receipts.len] = list(
|
||||||
"ref" = "\ref[E]",
|
"ref" = "\ref[E]",
|
||||||
"contents" = E.contents,
|
"contents" = E.contents,
|
||||||
@@ -495,8 +495,8 @@
|
|||||||
// code\game\machinery\computer\supply.dm, starting at line 147
|
// code\game\machinery\computer\supply.dm, starting at line 147
|
||||||
/obj/item/weapon/commcard/proc/get_supply_pack_list()
|
/obj/item/weapon/commcard/proc/get_supply_pack_list()
|
||||||
var/supply_packs[0]
|
var/supply_packs[0]
|
||||||
for(var/pack_name in supply_controller.supply_pack)
|
for(var/pack_name in SSsupply.supply_pack)
|
||||||
var/datum/supply_pack/P = supply_controller.supply_pack[pack_name]
|
var/datum/supply_pack/P = SSsupply.supply_pack[pack_name]
|
||||||
if(P.group == internal_data["supply_category"])
|
if(P.group == internal_data["supply_category"])
|
||||||
var/list/pack = list(
|
var/list/pack = list(
|
||||||
"name" = P.name,
|
"name" = P.name,
|
||||||
@@ -521,7 +521,7 @@
|
|||||||
return list(
|
return list(
|
||||||
"shuttle_auth" = (internal_data["supply_controls"] & SUP_SEND_SHUTTLE),
|
"shuttle_auth" = (internal_data["supply_controls"] & SUP_SEND_SHUTTLE),
|
||||||
"order_auth" = (internal_data["supply_controls"] & SUP_ACCEPT_ORDERS),
|
"order_auth" = (internal_data["supply_controls"] & SUP_ACCEPT_ORDERS),
|
||||||
"supply_points" = supply_controller.points,
|
"supply_points" = SSsupply.points,
|
||||||
"supply_categories" = all_supply_groups
|
"supply_categories" = all_supply_groups
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/datum/event/shipping_error/start()
|
/datum/event/shipping_error/start()
|
||||||
var/datum/supply_order/O = new /datum/supply_order()
|
var/datum/supply_order/O = new /datum/supply_order()
|
||||||
O.ordernum = supply_controller.ordernum
|
O.ordernum = SSsupply.ordernum
|
||||||
O.object = supply_controller.supply_pack[pick(supply_controller.supply_pack)]
|
O.object = SSsupply.supply_pack[pick(SSsupply.supply_pack)]
|
||||||
O.ordered_by = random_name(pick(MALE,FEMALE), species = SPECIES_HUMAN)
|
O.ordered_by = random_name(pick(MALE,FEMALE), species = SPECIES_HUMAN)
|
||||||
supply_controller.shoppinglist += O
|
SSsupply.shoppinglist += O
|
||||||
@@ -11,7 +11,7 @@
|
|||||||
/datum/gm_action/shipping_error/start()
|
/datum/gm_action/shipping_error/start()
|
||||||
..()
|
..()
|
||||||
var/datum/supply_order/O = new /datum/supply_order()
|
var/datum/supply_order/O = new /datum/supply_order()
|
||||||
O.ordernum = supply_controller.ordernum
|
O.ordernum = SSsupply.ordernum
|
||||||
O.object = supply_controller.supply_pack[pick(supply_controller.supply_pack)]
|
O.object = SSsupply.supply_pack[pick(SSsupply.supply_pack)]
|
||||||
O.ordered_by = random_name(pick(MALE,FEMALE), species = "Human")
|
O.ordered_by = random_name(pick(MALE,FEMALE), species = "Human")
|
||||||
supply_controller.shoppinglist += O
|
SSsupply.shoppinglist += O
|
||||||
@@ -5,7 +5,7 @@
|
|||||||
chaotic = 0
|
chaotic = 0
|
||||||
reusable = TRUE
|
reusable = TRUE
|
||||||
|
|
||||||
var/datum/controller/supply/SC
|
var/datum/controller/subsystem/supply/SC
|
||||||
var/running = FALSE
|
var/running = FALSE
|
||||||
var/last_run
|
var/last_run
|
||||||
|
|
||||||
@@ -13,7 +13,7 @@
|
|||||||
|
|
||||||
/datum/gm_action/nanotrasen_budget_allocation/New()
|
/datum/gm_action/nanotrasen_budget_allocation/New()
|
||||||
..()
|
..()
|
||||||
SC = supply_controller
|
SC = SSsupply
|
||||||
|
|
||||||
/datum/gm_action/nanotrasen_budget_allocation/set_up()
|
/datum/gm_action/nanotrasen_budget_allocation/set_up()
|
||||||
running = TRUE
|
running = TRUE
|
||||||
|
|||||||
@@ -61,17 +61,17 @@
|
|||||||
if(flags & SHUTTLE_FLAGS_PROCESS)
|
if(flags & SHUTTLE_FLAGS_PROCESS)
|
||||||
SSshuttles.process_shuttles += src
|
SSshuttles.process_shuttles += src
|
||||||
if(flags & SHUTTLE_FLAGS_SUPPLY)
|
if(flags & SHUTTLE_FLAGS_SUPPLY)
|
||||||
if(supply_controller.shuttle)
|
if(SSsupply.shuttle)
|
||||||
CRASH("A supply shuttle is already defined.")
|
CRASH("A supply shuttle is already defined.")
|
||||||
supply_controller.shuttle = src
|
SSsupply.shuttle = src
|
||||||
|
|
||||||
/datum/shuttle/Destroy()
|
/datum/shuttle/Destroy()
|
||||||
current_location = null
|
current_location = null
|
||||||
SSshuttles.shuttles -= src.name
|
SSshuttles.shuttles -= src.name
|
||||||
SSshuttles.process_shuttles -= src
|
SSshuttles.process_shuttles -= src
|
||||||
SSshuttles.shuttle_logs -= src
|
SSshuttles.shuttle_logs -= src
|
||||||
if(supply_controller.shuttle == src)
|
if(SSsupply.shuttle == src)
|
||||||
supply_controller.shuttle = null
|
SSsupply.shuttle = null
|
||||||
. = ..()
|
. = ..()
|
||||||
|
|
||||||
// This creates a graphical warning to where the shuttle is about to land, in approximately five seconds.
|
// This creates a graphical warning to where the shuttle is about to land, in approximately five seconds.
|
||||||
|
|||||||
@@ -31,7 +31,7 @@
|
|||||||
return
|
return
|
||||||
|
|
||||||
if (!at_station()) //at centcom
|
if (!at_station()) //at centcom
|
||||||
supply_controller.buy()
|
SSsupply.buy()
|
||||||
|
|
||||||
//We pretend it's a long_jump by making the shuttle stay at centcom for the "in-transit" period.
|
//We pretend it's a long_jump by making the shuttle stay at centcom for the "in-transit" period.
|
||||||
var/obj/effect/shuttle_landmark/away_waypoint = get_location_waypoint(away_location)
|
var/obj/effect/shuttle_landmark/away_waypoint = get_location_waypoint(away_location)
|
||||||
@@ -42,7 +42,7 @@
|
|||||||
attempt_move(away_waypoint)
|
attempt_move(away_waypoint)
|
||||||
|
|
||||||
//wait ETA here.
|
//wait ETA here.
|
||||||
arrive_time = world.time + supply_controller.movetime
|
arrive_time = world.time + SSsupply.movetime
|
||||||
while (world.time <= arrive_time)
|
while (world.time <= arrive_time)
|
||||||
sleep(5)
|
sleep(5)
|
||||||
|
|
||||||
@@ -57,7 +57,7 @@
|
|||||||
make_sounds(HYPERSPACE_END)
|
make_sounds(HYPERSPACE_END)
|
||||||
|
|
||||||
if (!at_station()) //at centcom
|
if (!at_station()) //at centcom
|
||||||
supply_controller.sell()
|
SSsupply.sell()
|
||||||
|
|
||||||
// returns 1 if the supply shuttle should be prevented from moving because it contains forbidden atoms
|
// returns 1 if the supply shuttle should be prevented from moving because it contains forbidden atoms
|
||||||
/datum/shuttle/autodock/ferry/supply/proc/forbidden_atoms_check()
|
/datum/shuttle/autodock/ferry/supply/proc/forbidden_atoms_check()
|
||||||
@@ -65,7 +65,7 @@
|
|||||||
return 0 //if badmins want to send mobs or a nuke on the supply shuttle from centcom we don't care
|
return 0 //if badmins want to send mobs or a nuke on the supply shuttle from centcom we don't care
|
||||||
|
|
||||||
for(var/area/A in shuttle_area)
|
for(var/area/A in shuttle_area)
|
||||||
if(supply_controller.forbidden_atoms_check(A))
|
if(SSsupply.forbidden_atoms_check(A))
|
||||||
return 1
|
return 1
|
||||||
|
|
||||||
/datum/shuttle/autodock/ferry/supply/proc/at_station()
|
/datum/shuttle/autodock/ferry/supply/proc/at_station()
|
||||||
|
|||||||
@@ -225,7 +225,11 @@
|
|||||||
#include "code\controllers\Processes\alarm.dm"
|
#include "code\controllers\Processes\alarm.dm"
|
||||||
#include "code\controllers\Processes\emergencyShuttle.dm"
|
#include "code\controllers\Processes\emergencyShuttle.dm"
|
||||||
#include "code\controllers\Processes\game_master.dm"
|
#include "code\controllers\Processes\game_master.dm"
|
||||||
|
<<<<<<< HEAD:vorestation.dme
|
||||||
#include "code\controllers\Processes\supply.dm"
|
#include "code\controllers\Processes\supply.dm"
|
||||||
|
=======
|
||||||
|
#include "code\controllers\Processes\mob.dm"
|
||||||
|
>>>>>>> dfda8ea... Merge pull request #6900 from VOREStation/vplk-sssupply:polaris.dme
|
||||||
#include "code\controllers\Processes\ticker.dm"
|
#include "code\controllers\Processes\ticker.dm"
|
||||||
#include "code\controllers\ProcessScheduler\core\process.dm"
|
#include "code\controllers\ProcessScheduler\core\process.dm"
|
||||||
#include "code\controllers\ProcessScheduler\core\processScheduler.dm"
|
#include "code\controllers\ProcessScheduler\core\processScheduler.dm"
|
||||||
@@ -257,6 +261,7 @@
|
|||||||
#include "code\controllers\subsystems\skybox.dm"
|
#include "code\controllers\subsystems\skybox.dm"
|
||||||
#include "code\controllers\subsystems\sqlite.dm"
|
#include "code\controllers\subsystems\sqlite.dm"
|
||||||
#include "code\controllers\subsystems\sun.dm"
|
#include "code\controllers\subsystems\sun.dm"
|
||||||
|
#include "code\controllers\subsystems\supply.dm"
|
||||||
#include "code\controllers\subsystems\time_track.dm"
|
#include "code\controllers\subsystems\time_track.dm"
|
||||||
#include "code\controllers\subsystems\timer.dm"
|
#include "code\controllers\subsystems\timer.dm"
|
||||||
#include "code\controllers\subsystems\transcore_vr.dm"
|
#include "code\controllers\subsystems\transcore_vr.dm"
|
||||||
|
|||||||
Reference in New Issue
Block a user