|
|
|
|
@@ -4,7 +4,7 @@
|
|
|
|
|
#define SUPPLY_STATION_AREATYPE "/area/supply/station" //Type of the supply shuttle area for station
|
|
|
|
|
#define SUPPLY_DOCK_AREATYPE "/area/supply/dock" //Type of the supply shuttle area for dock
|
|
|
|
|
|
|
|
|
|
var/datum/controller/supply_shuttle/supply_shuttle = new()
|
|
|
|
|
var/datum/controller/supply/supply_controller = new()
|
|
|
|
|
|
|
|
|
|
var/list/mechtoys = list(
|
|
|
|
|
/obj/item/toy/prize/ripley,
|
|
|
|
|
@@ -125,7 +125,7 @@ var/list/mechtoys = list(
|
|
|
|
|
var/orderedby = null
|
|
|
|
|
var/comment = null
|
|
|
|
|
|
|
|
|
|
/datum/controller/supply_shuttle
|
|
|
|
|
/datum/controller/supply
|
|
|
|
|
var/processing = 1
|
|
|
|
|
var/processing_interval = 300
|
|
|
|
|
var/iteration = 0
|
|
|
|
|
@@ -333,11 +333,11 @@ var/list/mechtoys = list(
|
|
|
|
|
if(temp)
|
|
|
|
|
dat = temp
|
|
|
|
|
else
|
|
|
|
|
var/datum/shuttle/ferry/supply/shuttle = supply_shuttle.get_shuttle()
|
|
|
|
|
var/datum/shuttle/ferry/supply/shuttle = supply_controller.get_shuttle()
|
|
|
|
|
if (shuttle)
|
|
|
|
|
dat += {"<BR><B>Supply shuttle</B><HR>
|
|
|
|
|
Location: [shuttle.has_eta() ? "Moving to station ([shuttle.eta_minutes()] Mins.)":shuttle.at_station() ? "Docked":"Away"]<BR>
|
|
|
|
|
<HR>Supply points: [supply_shuttle.points]<BR>
|
|
|
|
|
<HR>Supply points: [supply_controller.points]<BR>
|
|
|
|
|
<BR>\n<A href='?src=\ref[src];order=categories'>Request items</A><BR><BR>
|
|
|
|
|
<A href='?src=\ref[src];vieworders=1'>View approved orders</A><BR><BR>
|
|
|
|
|
<A href='?src=\ref[src];viewrequests=1'>View requests</A><BR><BR>
|
|
|
|
|
@@ -359,18 +359,18 @@ var/list/mechtoys = list(
|
|
|
|
|
//all_supply_groups
|
|
|
|
|
//Request what?
|
|
|
|
|
last_viewed_group = "categories"
|
|
|
|
|
temp = "<b>Supply points: [supply_shuttle.points]</b><BR>"
|
|
|
|
|
temp = "<b>Supply points: [supply_controller.points]</b><BR>"
|
|
|
|
|
temp += "<A href='?src=\ref[src];mainmenu=1'>Main Menu</A><HR><BR><BR>"
|
|
|
|
|
temp += "<b>Select a category</b><BR><BR>"
|
|
|
|
|
for(var/supply_group_name in all_supply_groups )
|
|
|
|
|
temp += "<A href='?src=\ref[src];order=[supply_group_name]'>[supply_group_name]</A><BR>"
|
|
|
|
|
else
|
|
|
|
|
last_viewed_group = href_list["order"]
|
|
|
|
|
temp = "<b>Supply points: [supply_shuttle.points]</b><BR>"
|
|
|
|
|
temp = "<b>Supply points: [supply_controller.points]</b><BR>"
|
|
|
|
|
temp += "<A href='?src=\ref[src];order=categories'>Back to all categories</A><HR><BR><BR>"
|
|
|
|
|
temp += "<b>Request from: [last_viewed_group]</b><BR><BR>"
|
|
|
|
|
for(var/supply_name in supply_shuttle.supply_packs )
|
|
|
|
|
var/datum/supply_packs/N = supply_shuttle.supply_packs[supply_name]
|
|
|
|
|
for(var/supply_name in supply_controller.supply_packs )
|
|
|
|
|
var/datum/supply_packs/N = supply_controller.supply_packs[supply_name]
|
|
|
|
|
if(N.hidden || N.contraband || N.group != last_viewed_group) continue //Have to send the type instead of a reference to
|
|
|
|
|
temp += "<A href='?src=\ref[src];doorder=[supply_name]'>[supply_name]</A> Cost: [N.cost]<BR>" //the obj because it would get caught by the garbage
|
|
|
|
|
|
|
|
|
|
@@ -381,7 +381,7 @@ var/list/mechtoys = list(
|
|
|
|
|
return
|
|
|
|
|
|
|
|
|
|
//Find the correct supply_pack datum
|
|
|
|
|
var/datum/supply_packs/P = supply_shuttle.supply_packs[href_list["doorder"]]
|
|
|
|
|
var/datum/supply_packs/P = supply_controller.supply_packs[href_list["doorder"]]
|
|
|
|
|
if(!istype(P)) return
|
|
|
|
|
|
|
|
|
|
var/timeout = world.time + 600
|
|
|
|
|
@@ -398,11 +398,11 @@ var/list/mechtoys = list(
|
|
|
|
|
else if(issilicon(usr))
|
|
|
|
|
idname = usr.real_name
|
|
|
|
|
|
|
|
|
|
supply_shuttle.ordernum++
|
|
|
|
|
supply_controller.ordernum++
|
|
|
|
|
var/obj/item/weapon/paper/reqform = new /obj/item/weapon/paper(loc)
|
|
|
|
|
reqform.name = "Requisition Form - [P.name]"
|
|
|
|
|
reqform.info += "<h3>[station_name] Supply Requisition Form</h3><hr>"
|
|
|
|
|
reqform.info += "INDEX: #[supply_shuttle.ordernum]<br>"
|
|
|
|
|
reqform.info += "INDEX: #[supply_controller.ordernum]<br>"
|
|
|
|
|
reqform.info += "REQUESTED BY: [idname]<br>"
|
|
|
|
|
reqform.info += "RANK: [idrank]<br>"
|
|
|
|
|
reqform.info += "REASON: [reason]<br>"
|
|
|
|
|
@@ -418,24 +418,24 @@ var/list/mechtoys = list(
|
|
|
|
|
|
|
|
|
|
//make our supply_order datum
|
|
|
|
|
var/datum/supply_order/O = new /datum/supply_order()
|
|
|
|
|
O.ordernum = supply_shuttle.ordernum
|
|
|
|
|
O.ordernum = supply_controller.ordernum
|
|
|
|
|
O.object = P
|
|
|
|
|
O.orderedby = idname
|
|
|
|
|
supply_shuttle.requestlist += O
|
|
|
|
|
supply_controller.requestlist += O
|
|
|
|
|
|
|
|
|
|
temp = "Thanks for your request. The cargo team will process it as soon as possible.<BR>"
|
|
|
|
|
temp += "<BR><A href='?src=\ref[src];order=[last_viewed_group]'>Back</A> <A href='?src=\ref[src];mainmenu=1'>Main Menu</A>"
|
|
|
|
|
|
|
|
|
|
else if (href_list["vieworders"])
|
|
|
|
|
temp = "Current approved orders: <BR><BR>"
|
|
|
|
|
for(var/S in supply_shuttle.shoppinglist)
|
|
|
|
|
for(var/S in supply_controller.shoppinglist)
|
|
|
|
|
var/datum/supply_order/SO = S
|
|
|
|
|
temp += "[SO.object.name] approved by [SO.orderedby] [SO.comment ? "([SO.comment])":""]<BR>"
|
|
|
|
|
temp += "<BR><A href='?src=\ref[src];mainmenu=1'>OK</A>"
|
|
|
|
|
|
|
|
|
|
else if (href_list["viewrequests"])
|
|
|
|
|
temp = "Current requests: <BR><BR>"
|
|
|
|
|
for(var/S in supply_shuttle.requestlist)
|
|
|
|
|
for(var/S in supply_controller.requestlist)
|
|
|
|
|
var/datum/supply_order/SO = S
|
|
|
|
|
temp += "#[SO.ordernum] - [SO.object.name] requested by [SO.orderedby]<BR>"
|
|
|
|
|
temp += "<BR><A href='?src=\ref[src];mainmenu=1'>OK</A>"
|
|
|
|
|
@@ -460,7 +460,7 @@ var/list/mechtoys = list(
|
|
|
|
|
if (temp)
|
|
|
|
|
dat = temp
|
|
|
|
|
else
|
|
|
|
|
var/datum/shuttle/ferry/supply/shuttle = supply_shuttle.get_shuttle()
|
|
|
|
|
var/datum/shuttle/ferry/supply/shuttle = supply_controller.get_shuttle()
|
|
|
|
|
if (shuttle)
|
|
|
|
|
dat += "<BR><B>Supply shuttle</B><HR>"
|
|
|
|
|
dat += "\nLocation: "
|
|
|
|
|
@@ -495,7 +495,7 @@ var/list/mechtoys = list(
|
|
|
|
|
dat += "<BR>\n<BR>"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
dat += {"<HR>\nSupply points: [supply_shuttle.points]<BR>\n<BR>
|
|
|
|
|
dat += {"<HR>\nSupply points: [supply_controller.points]<BR>\n<BR>
|
|
|
|
|
// [shuttle.at_station() ? "\n*Must be away to order items*<BR>\n<BR>":"\n<A href='?src=\ref[src];order=categories'>Order items</A><BR>\n<BR>"]
|
|
|
|
|
\n<A href='?src=\ref[src];order=categories'>Order items</A><BR>\n<BR>
|
|
|
|
|
\n<A href='?src=\ref[src];viewrequests=1'>View requests</A><BR>\n<BR>
|
|
|
|
|
@@ -517,10 +517,10 @@ var/list/mechtoys = list(
|
|
|
|
|
return
|
|
|
|
|
|
|
|
|
|
/obj/machinery/computer/supplycomp/Topic(href, href_list)
|
|
|
|
|
if(!supply_shuttle)
|
|
|
|
|
world.log << "## ERROR: Eek. The supply_shuttle controller datum is missing somehow."
|
|
|
|
|
if(!supply_controller)
|
|
|
|
|
world.log << "## ERROR: Eek. The supply_controller controller datum is missing somehow."
|
|
|
|
|
return
|
|
|
|
|
var/datum/shuttle/ferry/supply/shuttle = supply_shuttle.get_shuttle()
|
|
|
|
|
var/datum/shuttle/ferry/supply/shuttle = supply_controller.get_shuttle()
|
|
|
|
|
if (!shuttle)
|
|
|
|
|
world.log << "## ERROR: Eek. The supply/shuttle datum is missing somehow."
|
|
|
|
|
return
|
|
|
|
|
@@ -540,7 +540,7 @@ var/list/mechtoys = list(
|
|
|
|
|
temp = "Initiating launch sequence.<BR><BR><A href='?src=\ref[src];mainmenu=1'>OK</A>"
|
|
|
|
|
else
|
|
|
|
|
shuttle.launch(src)
|
|
|
|
|
temp = "The supply shuttle has been called and will arrive in approximately [round(supply_shuttle.movetime/600,1)] minutes.<BR><BR><A href='?src=\ref[src];mainmenu=1'>OK</A>"
|
|
|
|
|
temp = "The supply shuttle has been called and will arrive in approximately [round(supply_controller.movetime/600,1)] minutes.<BR><BR><A href='?src=\ref[src];mainmenu=1'>OK</A>"
|
|
|
|
|
post_signal("supply")
|
|
|
|
|
|
|
|
|
|
if (href_list["force_send"])
|
|
|
|
|
@@ -555,25 +555,25 @@ var/list/mechtoys = list(
|
|
|
|
|
//all_supply_groups
|
|
|
|
|
//Request what?
|
|
|
|
|
last_viewed_group = "categories"
|
|
|
|
|
temp = "<b>Supply points: [supply_shuttle.points]</b><BR>"
|
|
|
|
|
temp = "<b>Supply points: [supply_controller.points]</b><BR>"
|
|
|
|
|
temp += "<A href='?src=\ref[src];mainmenu=1'>Main Menu</A><HR><BR><BR>"
|
|
|
|
|
temp += "<b>Select a category</b><BR><BR>"
|
|
|
|
|
for(var/supply_group_name in all_supply_groups )
|
|
|
|
|
temp += "<A href='?src=\ref[src];order=[supply_group_name]'>[supply_group_name]</A><BR>"
|
|
|
|
|
else
|
|
|
|
|
last_viewed_group = href_list["order"]
|
|
|
|
|
temp = "<b>Supply points: [supply_shuttle.points]</b><BR>"
|
|
|
|
|
temp = "<b>Supply points: [supply_controller.points]</b><BR>"
|
|
|
|
|
temp += "<A href='?src=\ref[src];order=categories'>Back to all categories</A><HR><BR><BR>"
|
|
|
|
|
temp += "<b>Request from: [last_viewed_group]</b><BR><BR>"
|
|
|
|
|
for(var/supply_name in supply_shuttle.supply_packs )
|
|
|
|
|
var/datum/supply_packs/N = supply_shuttle.supply_packs[supply_name]
|
|
|
|
|
for(var/supply_name in supply_controller.supply_packs )
|
|
|
|
|
var/datum/supply_packs/N = supply_controller.supply_packs[supply_name]
|
|
|
|
|
if((N.hidden && !hacked) || (N.contraband && !can_order_contraband) || N.group != last_viewed_group) continue //Have to send the type instead of a reference to
|
|
|
|
|
temp += "<A href='?src=\ref[src];doorder=[supply_name]'>[supply_name]</A> Cost: [N.cost]<BR>" //the obj because it would get caught by the garbage
|
|
|
|
|
|
|
|
|
|
/*temp = "Supply points: [supply_shuttle.points]<BR><HR><BR>Request what?<BR><BR>"
|
|
|
|
|
/*temp = "Supply points: [supply_controller.points]<BR><HR><BR>Request what?<BR><BR>"
|
|
|
|
|
|
|
|
|
|
for(var/supply_name in supply_shuttle.supply_packs )
|
|
|
|
|
var/datum/supply_packs/N = supply_shuttle.supply_packs[supply_name]
|
|
|
|
|
for(var/supply_name in supply_controller.supply_packs )
|
|
|
|
|
var/datum/supply_packs/N = supply_controller.supply_packs[supply_name]
|
|
|
|
|
if(N.hidden && !hacked) continue
|
|
|
|
|
if(N.contraband && !can_order_contraband) continue
|
|
|
|
|
temp += "<A href='?src=\ref[src];doorder=[supply_name]'>[supply_name]</A> Cost: [N.cost]<BR>" //the obj because it would get caught by the garbage
|
|
|
|
|
@@ -586,7 +586,7 @@ var/list/mechtoys = list(
|
|
|
|
|
return
|
|
|
|
|
|
|
|
|
|
//Find the correct supply_pack datum
|
|
|
|
|
var/datum/supply_packs/P = supply_shuttle.supply_packs[href_list["doorder"]]
|
|
|
|
|
var/datum/supply_packs/P = supply_controller.supply_packs[href_list["doorder"]]
|
|
|
|
|
if(!istype(P)) return
|
|
|
|
|
|
|
|
|
|
var/timeout = world.time + 600
|
|
|
|
|
@@ -603,11 +603,11 @@ var/list/mechtoys = list(
|
|
|
|
|
else if(issilicon(usr))
|
|
|
|
|
idname = usr.real_name
|
|
|
|
|
|
|
|
|
|
supply_shuttle.ordernum++
|
|
|
|
|
supply_controller.ordernum++
|
|
|
|
|
var/obj/item/weapon/paper/reqform = new /obj/item/weapon/paper(loc)
|
|
|
|
|
reqform.name = "Requisition Form - [P.name]"
|
|
|
|
|
reqform.info += "<h3>[station_name] Supply Requisition Form</h3><hr>"
|
|
|
|
|
reqform.info += "INDEX: #[supply_shuttle.ordernum]<br>"
|
|
|
|
|
reqform.info += "INDEX: #[supply_controller.ordernum]<br>"
|
|
|
|
|
reqform.info += "REQUESTED BY: [idname]<br>"
|
|
|
|
|
reqform.info += "RANK: [idrank]<br>"
|
|
|
|
|
reqform.info += "REASON: [reason]<br>"
|
|
|
|
|
@@ -623,10 +623,10 @@ var/list/mechtoys = list(
|
|
|
|
|
|
|
|
|
|
//make our supply_order datum
|
|
|
|
|
var/datum/supply_order/O = new /datum/supply_order()
|
|
|
|
|
O.ordernum = supply_shuttle.ordernum
|
|
|
|
|
O.ordernum = supply_controller.ordernum
|
|
|
|
|
O.object = P
|
|
|
|
|
O.orderedby = idname
|
|
|
|
|
supply_shuttle.requestlist += O
|
|
|
|
|
supply_controller.requestlist += O
|
|
|
|
|
|
|
|
|
|
temp = "Order request placed.<BR>"
|
|
|
|
|
temp += "<BR><A href='?src=\ref[src];order=[last_viewed_group]'>Back</A> | <A href='?src=\ref[src];mainmenu=1'>Main Menu</A> | <A href='?src=\ref[src];confirmorder=[O.ordernum]'>Authorize Order</A>"
|
|
|
|
|
@@ -637,15 +637,15 @@ var/list/mechtoys = list(
|
|
|
|
|
var/datum/supply_order/O
|
|
|
|
|
var/datum/supply_packs/P
|
|
|
|
|
temp = "Invalid Request"
|
|
|
|
|
for(var/i=1, i<=supply_shuttle.requestlist.len, i++)
|
|
|
|
|
var/datum/supply_order/SO = supply_shuttle.requestlist[i]
|
|
|
|
|
for(var/i=1, i<=supply_controller.requestlist.len, i++)
|
|
|
|
|
var/datum/supply_order/SO = supply_controller.requestlist[i]
|
|
|
|
|
if(SO.ordernum == ordernum)
|
|
|
|
|
O = SO
|
|
|
|
|
P = O.object
|
|
|
|
|
if(supply_shuttle.points >= P.cost)
|
|
|
|
|
supply_shuttle.requestlist.Cut(i,i+1)
|
|
|
|
|
supply_shuttle.points -= P.cost
|
|
|
|
|
supply_shuttle.shoppinglist += O
|
|
|
|
|
if(supply_controller.points >= P.cost)
|
|
|
|
|
supply_controller.requestlist.Cut(i,i+1)
|
|
|
|
|
supply_controller.points -= P.cost
|
|
|
|
|
supply_controller.shoppinglist += O
|
|
|
|
|
temp = "Thanks for your order.<BR>"
|
|
|
|
|
temp += "<BR><A href='?src=\ref[src];viewrequests=1'>Back</A> <A href='?src=\ref[src];mainmenu=1'>Main Menu</A>"
|
|
|
|
|
else
|
|
|
|
|
@@ -655,7 +655,7 @@ var/list/mechtoys = list(
|
|
|
|
|
|
|
|
|
|
else if (href_list["vieworders"])
|
|
|
|
|
temp = "Current approved orders: <BR><BR>"
|
|
|
|
|
for(var/S in supply_shuttle.shoppinglist)
|
|
|
|
|
for(var/S in supply_controller.shoppinglist)
|
|
|
|
|
var/datum/supply_order/SO = S
|
|
|
|
|
temp += "#[SO.ordernum] - [SO.object.name] approved by [SO.orderedby][SO.comment ? " ([SO.comment])":""]<BR>"// <A href='?src=\ref[src];cancelorder=[S]'>(Cancel)</A><BR>"
|
|
|
|
|
temp += "<BR><A href='?src=\ref[src];mainmenu=1'>OK</A>"
|
|
|
|
|
@@ -673,7 +673,7 @@ var/list/mechtoys = list(
|
|
|
|
|
*/
|
|
|
|
|
else if (href_list["viewrequests"])
|
|
|
|
|
temp = "Current requests: <BR><BR>"
|
|
|
|
|
for(var/S in supply_shuttle.requestlist)
|
|
|
|
|
for(var/S in supply_controller.requestlist)
|
|
|
|
|
var/datum/supply_order/SO = S
|
|
|
|
|
temp += "#[SO.ordernum] - [SO.object.name] requested by [SO.orderedby] [shuttle.idle() ? "":shuttle.at_station() ? "":"<A href='?src=\ref[src];confirmorder=[SO.ordernum]'>Approve</A> <A href='?src=\ref[src];rreq=[SO.ordernum]'>Remove</A>"]<BR>"
|
|
|
|
|
|
|
|
|
|
@@ -683,16 +683,16 @@ var/list/mechtoys = list(
|
|
|
|
|
else if (href_list["rreq"])
|
|
|
|
|
var/ordernum = text2num(href_list["rreq"])
|
|
|
|
|
temp = "Invalid Request.<BR>"
|
|
|
|
|
for(var/i=1, i<=supply_shuttle.requestlist.len, i++)
|
|
|
|
|
var/datum/supply_order/SO = supply_shuttle.requestlist[i]
|
|
|
|
|
for(var/i=1, i<=supply_controller.requestlist.len, i++)
|
|
|
|
|
var/datum/supply_order/SO = supply_controller.requestlist[i]
|
|
|
|
|
if(SO.ordernum == ordernum)
|
|
|
|
|
supply_shuttle.requestlist.Cut(i,i+1)
|
|
|
|
|
supply_controller.requestlist.Cut(i,i+1)
|
|
|
|
|
temp = "Request removed.<BR>"
|
|
|
|
|
break
|
|
|
|
|
temp += "<BR><A href='?src=\ref[src];viewrequests=1'>Back</A> <A href='?src=\ref[src];mainmenu=1'>Main Menu</A>"
|
|
|
|
|
|
|
|
|
|
else if (href_list["clearreq"])
|
|
|
|
|
supply_shuttle.requestlist.Cut()
|
|
|
|
|
supply_controller.requestlist.Cut()
|
|
|
|
|
temp = "List cleared.<BR>"
|
|
|
|
|
temp += "<BR><A href='?src=\ref[src];mainmenu=1'>OK</A>"
|
|
|
|
|
|
|
|
|
|
|