mirror of
https://github.com/yogstation13/Yogstation.git
synced 2025-02-26 09:04:50 +00:00
Rewrite supply packs/cargo orders
This commit is contained in:
@@ -120,9 +120,11 @@
|
|||||||
//some arbitrary defines to be used by self-pruning global lists. (see master_controller)
|
//some arbitrary defines to be used by self-pruning global lists. (see master_controller)
|
||||||
#define PROCESS_KILL 26 //Used to trigger removal from a processing list
|
#define PROCESS_KILL 26 //Used to trigger removal from a processing list
|
||||||
|
|
||||||
#define MANIFEST_ERROR_NAME 1
|
// Cargo-related stuff.
|
||||||
#define MANIFEST_ERROR_COUNT 2
|
#define MANIFEST_ERROR_CHANCE 5
|
||||||
#define MANIFEST_ERROR_ITEM 4
|
#define MANIFEST_ERROR_NAME 1
|
||||||
|
#define MANIFEST_ERROR_CONTENTS 2
|
||||||
|
#define MANIFEST_ERROR_ITEM 4
|
||||||
|
|
||||||
#define TRANSITIONEDGE 7 //Distance from edge to move to another z-level
|
#define TRANSITIONEDGE 7 //Distance from edge to move to another z-level
|
||||||
|
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ var/datum/subsystem/shuttle/SSshuttle
|
|||||||
var/ordernum = 1 //order number given to next order
|
var/ordernum = 1 //order number given to next order
|
||||||
var/points = 50 //number of trade-points we have
|
var/points = 50 //number of trade-points we have
|
||||||
var/points_per_decisecond = 0.005 //points gained every decisecond
|
var/points_per_decisecond = 0.005 //points gained every decisecond
|
||||||
var/points_per_slip = 2 //points gained per slip returned
|
var/points_per_manifest = 2 //points gained per manifest returned
|
||||||
var/points_per_crate = 5 //points gained per crate returned
|
var/points_per_crate = 5 //points gained per crate returned
|
||||||
var/points_per_intel = 250 //points gained per intel returned
|
var/points_per_intel = 250 //points gained per intel returned
|
||||||
var/points_per_plasma = 5 //points gained per plasma returned
|
var/points_per_plasma = 5 //points gained per plasma returned
|
||||||
@@ -31,9 +31,12 @@ var/datum/subsystem/shuttle/SSshuttle
|
|||||||
var/list/discoveredPlants = list() //Typepaths for unusual plants we've already sent CentComm, associated with their potencies
|
var/list/discoveredPlants = list() //Typepaths for unusual plants we've already sent CentComm, associated with their potencies
|
||||||
var/list/techLevels = list()
|
var/list/techLevels = list()
|
||||||
var/list/researchDesigns = list()
|
var/list/researchDesigns = list()
|
||||||
|
|
||||||
|
var/list/supply_packs = list()
|
||||||
var/list/shoppinglist = list()
|
var/list/shoppinglist = list()
|
||||||
var/list/requestlist = list()
|
var/list/requestlist = list()
|
||||||
var/list/supply_packs = list()
|
var/list/orderhistory = list()
|
||||||
|
|
||||||
var/datum/round_event/shuttle_loan/shuttle_loan
|
var/datum/round_event/shuttle_loan/shuttle_loan
|
||||||
var/sold_atoms = ""
|
var/sold_atoms = ""
|
||||||
|
|
||||||
@@ -50,12 +53,14 @@ var/datum/subsystem/shuttle/SSshuttle
|
|||||||
if(!supply)
|
if(!supply)
|
||||||
WARNING("No /obj/docking_port/mobile/supply placed on the map!")
|
WARNING("No /obj/docking_port/mobile/supply placed on the map!")
|
||||||
|
|
||||||
ordernum = rand(1,9000)
|
ordernum = rand(1, 9000)
|
||||||
|
|
||||||
for(var/typepath in subtypesof(/datum/supply_packs))
|
for(var/pack in subtypesof(/datum/supply_pack))
|
||||||
var/datum/supply_packs/P = new typepath()
|
var/datum/supply_pack/P = new pack()
|
||||||
if(P.name == "HEADER") continue // To filter out group headers
|
if(!P.contains)
|
||||||
|
continue
|
||||||
supply_packs["[P.type]"] = P
|
supply_packs["[P.type]"] = P
|
||||||
|
|
||||||
initial_move()
|
initial_move()
|
||||||
..()
|
..()
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -64,7 +64,7 @@ var/global/max_secret_rooms = 6
|
|||||||
if("organharvest")
|
if("organharvest")
|
||||||
walltypes = list(/turf/simulated/wall/r_wall=2,/turf/simulated/wall=2,/turf/simulated/mineral/random/high_chance=1)
|
walltypes = list(/turf/simulated/wall/r_wall=2,/turf/simulated/wall=2,/turf/simulated/mineral/random/high_chance=1)
|
||||||
floortypes = list(/turf/simulated/floor/plasteel,/turf/simulated/floor/engine)
|
floortypes = list(/turf/simulated/floor/plasteel,/turf/simulated/floor/engine)
|
||||||
treasureitems = list(/mob/living/simple_animal/bot/medbot/mysterious=1, /obj/item/weapon/circular_saw=1, /obj/structure/closet/crate/critter/cat=2)
|
treasureitems = list(/mob/living/simple_animal/bot/medbot/mysterious=1, /obj/item/weapon/circular_saw=1, /obj/structure/closet/crate/critter=2)
|
||||||
fluffitems = list(/obj/effect/decal/cleanable/blood=5,/obj/item/organ/internal/appendix=2,/obj/structure/closet/crate/freezer=2,
|
fluffitems = list(/obj/effect/decal/cleanable/blood=5,/obj/item/organ/internal/appendix=2,/obj/structure/closet/crate/freezer=2,
|
||||||
/obj/structure/table/optable=1,/obj/item/weapon/scalpel=1,/obj/item/weapon/storage/firstaid/regular=3,
|
/obj/structure/table/optable=1,/obj/item/weapon/scalpel=1,/obj/item/weapon/storage/firstaid/regular=3,
|
||||||
/obj/item/weapon/tank/internals/anesthetic=1, /obj/item/weapon/surgical_drapes=2, /obj/item/device/mass_spectrometer/adv=1,/obj/item/clothing/glasses/hud/health=1)
|
/obj/item/weapon/tank/internals/anesthetic=1, /obj/item/weapon/surgical_drapes=2, /obj/item/device/mass_spectrometer/adv=1,/obj/item/clothing/glasses/hud/health=1)
|
||||||
|
|||||||
@@ -501,13 +501,13 @@ Code:
|
|||||||
menu += "<BR>Current approved orders: <BR><ol>"
|
menu += "<BR>Current approved orders: <BR><ol>"
|
||||||
for(var/S in SSshuttle.shoppinglist)
|
for(var/S in SSshuttle.shoppinglist)
|
||||||
var/datum/supply_order/SO = S
|
var/datum/supply_order/SO = S
|
||||||
menu += "<li>#[SO.ordernum] - [SO.object.name] approved by [SO.orderedby] [SO.comment ? "([SO.comment])":""]</li>"
|
menu += "<li>#[SO.id] - [SO.pack.name] approved by [SO.orderer] [SO.reason ? "([SO.reason])":""]</li>"
|
||||||
menu += "</ol>"
|
menu += "</ol>"
|
||||||
|
|
||||||
menu += "Current requests: <BR><ol>"
|
menu += "Current requests: <BR><ol>"
|
||||||
for(var/S in SSshuttle.requestlist)
|
for(var/S in SSshuttle.requestlist)
|
||||||
var/datum/supply_order/SO = S
|
var/datum/supply_order/SO = S
|
||||||
menu += "<li>#[SO.ordernum] - [SO.object.name] requested by [SO.orderedby]</li>"
|
menu += "<li>#[SO.id] - [SO.pack.name] requested by [SO.orderer]</li>"
|
||||||
menu += "</ol><font size=\"-3\">Upgrade NOW to Space Parts & Space Vendors PLUS for full remote order control and inventory management."
|
menu += "</ol><font size=\"-3\">Upgrade NOW to Space Parts & Space Vendors PLUS for full remote order control and inventory management."
|
||||||
|
|
||||||
if (49) //janitorial locator
|
if (49) //janitorial locator
|
||||||
|
|||||||
@@ -127,10 +127,7 @@
|
|||||||
mobs_stored++
|
mobs_stored++
|
||||||
if(mobs_stored >= mob_storage_capacity)
|
if(mobs_stored >= mob_storage_capacity)
|
||||||
return 0
|
return 0
|
||||||
<<<<<<< ede93b63a61fbdfe3be0fe9569aa29b152e767bc
|
|
||||||
L.reset_perspective(src)
|
L.reset_perspective(src)
|
||||||
=======
|
|
||||||
>>>>>>> Fix up crates
|
|
||||||
L.stop_pulling()
|
L.stop_pulling()
|
||||||
else if(!istype(AM, /obj/item) && !istype(AM, /obj/effect/dummy/chameleon))
|
else if(!istype(AM, /obj/item) && !istype(AM, /obj/effect/dummy/chameleon))
|
||||||
return 0
|
return 0
|
||||||
@@ -346,18 +343,13 @@
|
|||||||
else
|
else
|
||||||
togglelock(user)
|
togglelock(user)
|
||||||
|
|
||||||
/obj/structure/closet/proc/togglelock(mob/user)
|
/obj/structure/closet/proc/togglelock(mob/living/user)
|
||||||
if(secure && !broken)
|
if(secure && !broken)
|
||||||
if(allowed(user))
|
if(allowed(user))
|
||||||
locked = !locked
|
locked = !locked
|
||||||
add_fingerprint(user)
|
add_fingerprint(user)
|
||||||
<<<<<<< ede93b63a61fbdfe3be0fe9569aa29b152e767bc
|
user.visible_message("<span class='notice'>[user] [locked ? null : "un"]locks [src].</span>",
|
||||||
for(var/mob/O in viewers(user, 3))
|
|
||||||
O.show_message("<span class='notice'>[user] has [locked ? null : "un"]locked the locker.</span>", 1)
|
|
||||||
=======
|
|
||||||
visible_message("<span class='notice'>[user] [locked ? null : "un"]locks [src].</span>",
|
|
||||||
"<span class='notice'>You [locked ? null : "un"]locks [src].</span>")
|
"<span class='notice'>You [locked ? null : "un"]locks [src].</span>")
|
||||||
>>>>>>> Fix up crates
|
|
||||||
update_icon()
|
update_icon()
|
||||||
else
|
else
|
||||||
user << "<span class='notice'>Access Denied</span>"
|
user << "<span class='notice'>Access Denied</span>"
|
||||||
@@ -374,11 +366,10 @@
|
|||||||
locked = 0
|
locked = 0
|
||||||
update_icon()
|
update_icon()
|
||||||
|
|
||||||
<<<<<<< ede93b63a61fbdfe3be0fe9569aa29b152e767bc
|
|
||||||
/obj/structure/closet/get_remote_view_fullscreens(mob/user)
|
/obj/structure/closet/get_remote_view_fullscreens(mob/user)
|
||||||
if(!(user.sight & (SEEOBJS|SEEMOBS)))
|
if(!(user.sight & (SEEOBJS|SEEMOBS)))
|
||||||
user.overlay_fullscreen("remote_view", /obj/screen/fullscreen/impaired, 1)
|
user.overlay_fullscreen("remote_view", /obj/screen/fullscreen/impaired, 1)
|
||||||
=======
|
|
||||||
/obj/structure/closet/emp_act(severity)
|
/obj/structure/closet/emp_act(severity)
|
||||||
for(var/obj/O in src)
|
for(var/obj/O in src)
|
||||||
O.emp_act(severity)
|
O.emp_act(severity)
|
||||||
@@ -393,4 +384,3 @@
|
|||||||
req_access = list()
|
req_access = list()
|
||||||
req_access += pick(get_all_accesses())
|
req_access += pick(get_all_accesses())
|
||||||
..()
|
..()
|
||||||
>>>>>>> Fix up crates
|
|
||||||
|
|||||||
@@ -19,27 +19,3 @@
|
|||||||
user << "<span class='notice'>It won't budge!</span>"
|
user << "<span class='notice'>It won't budge!</span>"
|
||||||
else
|
else
|
||||||
..()
|
..()
|
||||||
|
|
||||||
/obj/structure/closet/crate/critter/corgi/New()
|
|
||||||
..()
|
|
||||||
if(prob(50))
|
|
||||||
new /mob/living/simple_animal/pet/dog/corgi/Lisa(src)
|
|
||||||
else
|
|
||||||
new /mob/living/simple_animal/pet/dog/corgi(src)
|
|
||||||
|
|
||||||
/obj/structure/closet/crate/critter/cat/New()
|
|
||||||
..()
|
|
||||||
if(prob(50))
|
|
||||||
new /mob/living/simple_animal/pet/cat/Proc(src)
|
|
||||||
else
|
|
||||||
new /mob/living/simple_animal/pet/cat(src)
|
|
||||||
|
|
||||||
/obj/structure/closet/crate/critter/chick/New()
|
|
||||||
..()
|
|
||||||
for(var/i in 1 to rand(1, 3))
|
|
||||||
new /mob/living/simple_animal/chick(src)
|
|
||||||
|
|
||||||
/obj/structure/closet/crate/critter/butterfly/New()
|
|
||||||
..()
|
|
||||||
for(var/i in 1 to 50)
|
|
||||||
new /mob/living/simple_animal/butterfly(src)
|
|
||||||
@@ -18,9 +18,10 @@
|
|||||||
var/obj/item/weapon/circuitboard/cargo/board = circuit
|
var/obj/item/weapon/circuitboard/cargo/board = circuit
|
||||||
contraband = board.contraband
|
contraband = board.contraband
|
||||||
|
|
||||||
/obj/machinery/computer/cargo/emag_act(mob/user)
|
/obj/machinery/computer/cargo/emag_act(mob/living/user)
|
||||||
if(!emagged)
|
if(!emagged)
|
||||||
user << "<span class='notice'>Special supplies unlocked.</span>"
|
user.visible_message("<span class='warning'>[user] swipes a suspicious card through [src]!",
|
||||||
|
"<span class='notice'>You emag [src], unlocking special supplies.</span>")
|
||||||
emagged = TRUE
|
emagged = TRUE
|
||||||
|
|
||||||
/obj/machinery/computer/cargo/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, \
|
/obj/machinery/computer/cargo/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, \
|
||||||
@@ -41,40 +42,38 @@
|
|||||||
data["loan_dispatched"] = SSshuttle.shuttle_loan && SSshuttle.shuttle_loan.dispatched
|
data["loan_dispatched"] = SSshuttle.shuttle_loan && SSshuttle.shuttle_loan.dispatched
|
||||||
data["message"] = SSshuttle.centcom_message || "Remember to stamp and send back the supply manifests."
|
data["message"] = SSshuttle.centcom_message || "Remember to stamp and send back the supply manifests."
|
||||||
|
|
||||||
var/list/supplies = list()
|
data["supplies"] = list()
|
||||||
supplies.len = all_supply_groups.len
|
|
||||||
for(var/group in all_supply_groups)
|
|
||||||
supplies[group] = list(
|
|
||||||
"name" = get_supply_group_name(group),
|
|
||||||
"packs" = list()
|
|
||||||
)
|
|
||||||
for(var/pack in SSshuttle.supply_packs)
|
for(var/pack in SSshuttle.supply_packs)
|
||||||
var/datum/supply_packs/P = SSshuttle.supply_packs[pack]
|
var/datum/supply_pack/P = SSshuttle.supply_packs[pack]
|
||||||
|
if(!data["supplies"][P.group])
|
||||||
|
data["supplies"][P.group] = list(
|
||||||
|
"name" = P.group,
|
||||||
|
"packs" = list()
|
||||||
|
)
|
||||||
if((P.hidden && !emagged) || (P.contraband && !contraband))
|
if((P.hidden && !emagged) || (P.contraband && !contraband))
|
||||||
continue
|
continue
|
||||||
supplies[P.group]["packs"] += list(list(
|
data["supplies"][P.group]["packs"] += list(list(
|
||||||
"name" = P.name,
|
"name" = P.name,
|
||||||
"cost" = P.cost,
|
"cost" = P.cost,
|
||||||
"id" = pack
|
"id" = pack
|
||||||
))
|
))
|
||||||
data["supplies"] = supplies
|
|
||||||
|
|
||||||
data["cart"] = list()
|
data["cart"] = list()
|
||||||
for(var/datum/supply_order/SO in SSshuttle.shoppinglist)
|
for(var/datum/supply_order/SO in SSshuttle.shoppinglist)
|
||||||
data["cart"] += list(list(
|
data["cart"] += list(list(
|
||||||
"object" = SO.object.name,
|
"object" = SO.pack.name,
|
||||||
"cost" = SO.object.cost,
|
"cost" = SO.pack.cost,
|
||||||
"id" = SO.ordernum
|
"id" = SO.id
|
||||||
))
|
))
|
||||||
|
|
||||||
data["requests"] = list()
|
data["requests"] = list()
|
||||||
for(var/datum/supply_order/SO in SSshuttle.requestlist)
|
for(var/datum/supply_order/SO in SSshuttle.requestlist)
|
||||||
data["requests"] += list(list(
|
data["requests"] += list(list(
|
||||||
"object" = SO.object.name,
|
"object" = SO.pack.name,
|
||||||
"cost" = SO.object.cost,
|
"cost" = SO.pack.cost,
|
||||||
"orderedby" = SO.orderedby,
|
"orderer" = SO.orderer,
|
||||||
"comment" = SO.comment,
|
"reason" = SO.reason,
|
||||||
"id" = SO.ordernum
|
"id" = SO.id
|
||||||
))
|
))
|
||||||
|
|
||||||
return data
|
return data
|
||||||
@@ -127,7 +126,7 @@
|
|||||||
return
|
return
|
||||||
|
|
||||||
var/turf/T = get_turf(src)
|
var/turf/T = get_turf(src)
|
||||||
var/datum/supply_order/SO = SSshuttle.generateSupplyOrder(id, name, rank, reason)
|
var/datum/supply_order/SO = new(id, name, rank, reason)
|
||||||
SO.generateRequisition(T)
|
SO.generateRequisition(T)
|
||||||
if(requestonly)
|
if(requestonly)
|
||||||
SSshuttle.requestlist += SO
|
SSshuttle.requestlist += SO
|
||||||
@@ -137,7 +136,7 @@
|
|||||||
if("remove")
|
if("remove")
|
||||||
var/id = text2num(params["id"])
|
var/id = text2num(params["id"])
|
||||||
for(var/datum/supply_order/SO in SSshuttle.shoppinglist)
|
for(var/datum/supply_order/SO in SSshuttle.shoppinglist)
|
||||||
if(SO.ordernum == id)
|
if(SO.id == id)
|
||||||
SSshuttle.shoppinglist -= SO
|
SSshuttle.shoppinglist -= SO
|
||||||
. = TRUE
|
. = TRUE
|
||||||
break
|
break
|
||||||
@@ -147,7 +146,7 @@
|
|||||||
if("approve")
|
if("approve")
|
||||||
var/id = text2num(params["id"])
|
var/id = text2num(params["id"])
|
||||||
for(var/datum/supply_order/SO in SSshuttle.requestlist)
|
for(var/datum/supply_order/SO in SSshuttle.requestlist)
|
||||||
if(SO.ordernum == id)
|
if(SO.id == id)
|
||||||
SSshuttle.requestlist -= SO
|
SSshuttle.requestlist -= SO
|
||||||
SSshuttle.shoppinglist += SO
|
SSshuttle.shoppinglist += SO
|
||||||
. = TRUE
|
. = TRUE
|
||||||
@@ -155,7 +154,7 @@
|
|||||||
if("deny")
|
if("deny")
|
||||||
var/id = text2num(params["id"])
|
var/id = text2num(params["id"])
|
||||||
for(var/datum/supply_order/SO in SSshuttle.requestlist)
|
for(var/datum/supply_order/SO in SSshuttle.requestlist)
|
||||||
if(SO.ordernum == id)
|
if(SO.id == id)
|
||||||
SSshuttle.requestlist -= SO
|
SSshuttle.requestlist -= SO
|
||||||
. = TRUE
|
. = TRUE
|
||||||
break
|
break
|
||||||
|
|||||||
@@ -1,115 +1,89 @@
|
|||||||
/obj/item/weapon/paper/manifest
|
/obj/item/weapon/paper/manifest
|
||||||
name = "supply manifest"
|
var/order_cost = 0
|
||||||
var/erroneous = 0
|
var/order_id = 0
|
||||||
var/points = 0
|
var/errors = 0
|
||||||
var/ordernumber = 0
|
|
||||||
|
/obj/item/weapon/paper/manifest/New(atom/A, id, cost)
|
||||||
|
..()
|
||||||
|
order_id = id
|
||||||
|
order_cost = cost
|
||||||
|
|
||||||
|
if(prob(MANIFEST_ERROR_CHANCE))
|
||||||
|
errors |= MANIFEST_ERROR_NAME
|
||||||
|
if(prob(MANIFEST_ERROR_CHANCE))
|
||||||
|
errors |= MANIFEST_ERROR_CONTENTS
|
||||||
|
if(prob(MANIFEST_ERROR_CHANCE))
|
||||||
|
errors |= MANIFEST_ERROR_ITEM
|
||||||
|
|
||||||
/datum/supply_order
|
/datum/supply_order
|
||||||
var/ordernum
|
var/id
|
||||||
var/datum/supply_packs/object = null
|
var/orderer
|
||||||
var/orderedby = null
|
var/orderer_rank
|
||||||
var/orderedbyRank
|
var/reason
|
||||||
var/comment = null
|
var/datum/supply_pack/pack
|
||||||
|
|
||||||
/datum/supply_order/proc/generateRequisition(atom/_loc)
|
/datum/supply_order/New(pack, orderer, orderer_rank, reason)
|
||||||
if(!object)
|
id = SSshuttle.ordernum++
|
||||||
return
|
src.pack = SSshuttle.supply_packs[pack]
|
||||||
|
src.orderer = orderer
|
||||||
|
src.orderer_rank = orderer_rank
|
||||||
|
src.reason = reason
|
||||||
|
|
||||||
var/obj/item/weapon/paper/reqform = new /obj/item/weapon/paper(_loc)
|
/datum/supply_order/proc/generateRequisition(turf/T)
|
||||||
reqform.name = "requisition form - [object.name]"
|
var/obj/item/weapon/paper/P = new(T)
|
||||||
reqform.info += "<h3>[station_name] Supply Requisition Form</h3><hr>"
|
|
||||||
reqform.info += "INDEX: #[ordernum]<br>"
|
|
||||||
reqform.info += "REQUESTED BY: [orderedby]<br>"
|
|
||||||
reqform.info += "RANK: [orderedbyRank]<br>"
|
|
||||||
reqform.info += "REASON: [comment]<br>"
|
|
||||||
reqform.info += "SUPPLY CRATE TYPE: [object.name]<br>"
|
|
||||||
reqform.info += "ACCESS RESTRICTION: [get_access_desc(object.access)]<br>"
|
|
||||||
reqform.info += "CONTENTS:<br>"
|
|
||||||
reqform.info += object.manifest
|
|
||||||
reqform.info += "<hr>"
|
|
||||||
reqform.info += "STAMP BELOW TO APPROVE THIS REQUISITION:<br>"
|
|
||||||
|
|
||||||
reqform.update_icon() //Fix for appearing blank when printed.
|
P.name = "requisition form - #[id] ([pack.name])"
|
||||||
|
P.info += "<h2>[station_name()] Supply Requisition</h2>"
|
||||||
|
P.info += "<hr/>"
|
||||||
|
P.info += "Order #[id]<br/>"
|
||||||
|
P.info += "Item: [pack.name]<br/>"
|
||||||
|
P.info += "Access Restrictions: [get_access_desc(pack.access)]<br/>"
|
||||||
|
P.info += "Requested by: [orderer]<br/>"
|
||||||
|
P.info += "Rank: [orderer_rank]<br/>"
|
||||||
|
P.info += "Comment: [reason]<br/>"
|
||||||
|
|
||||||
return reqform
|
P.update_icon()
|
||||||
|
return P
|
||||||
|
|
||||||
/datum/subsystem/shuttle/proc/generateSupplyOrder(packId, _orderedby, _orderedbyRank, _comment)
|
/datum/supply_order/proc/generateManifest(obj/structure/closet/crate/C)
|
||||||
if(!packId)
|
var/obj/item/weapon/paper/manifest/P = new(C, id, pack.cost)
|
||||||
return
|
|
||||||
var/datum/supply_packs/P = supply_packs[packId]
|
|
||||||
if(!P)
|
|
||||||
return
|
|
||||||
|
|
||||||
var/datum/supply_order/O = new()
|
var/station_name = (P.errors & MANIFEST_ERROR_NAME) ? new_station_name() : station_name()
|
||||||
O.ordernum = ordernum++
|
|
||||||
O.object = P
|
|
||||||
O.orderedby = _orderedby
|
|
||||||
O.orderedbyRank = _orderedbyRank
|
|
||||||
O.comment = _comment
|
|
||||||
|
|
||||||
return O
|
P.name = "shipping manifest - #[id] ([pack.name])"
|
||||||
|
P.info += "<h2>[command_name()] Shipping Manifest</h2>"
|
||||||
|
P.info += "<hr/>"
|
||||||
|
P.info += "Order #[id]<br/>"
|
||||||
|
P.info += "Destination: [station_name]<br/>"
|
||||||
|
P.info += "Item: [pack.name]<br/>"
|
||||||
|
P.info += "Contents: <br/>"
|
||||||
|
P.info += "<ul>"
|
||||||
|
for(var/atom/movable/AM in C.contents - P)
|
||||||
|
if((P.errors & MANIFEST_ERROR_CONTENTS))
|
||||||
|
if(prob(50))
|
||||||
|
P.info += "<li>[AM.name]</li>"
|
||||||
|
else
|
||||||
|
continue
|
||||||
|
P.info += "<li>[AM.name]</li>"
|
||||||
|
P.info += "</ul>"
|
||||||
|
P.info += "<h4>Stamp below to confirm receipt of goods:</h4>"
|
||||||
|
|
||||||
/datum/supply_order/proc/createObject(atom/_loc, errors=0)
|
P.update_icon()
|
||||||
if(!object)
|
P.loc = C
|
||||||
return
|
C.manifest = P
|
||||||
|
C.update_icon()
|
||||||
|
|
||||||
//create the crate
|
return P
|
||||||
var/atom/Crate = new object.containertype(_loc)
|
|
||||||
Crate.name = "[object.containername] [comment ? "([comment])":"" ]"
|
|
||||||
if(object.access)
|
|
||||||
Crate:req_access = list(text2num(object.access))
|
|
||||||
|
|
||||||
//create the manifest slip
|
/datum/supply_order/proc/generate(turf/T)
|
||||||
var/obj/item/weapon/paper/manifest/slip = new /obj/item/weapon/paper/manifest()
|
var/obj/structure/closet/crate/C = pack.generate(T)
|
||||||
slip.erroneous = errors
|
var/obj/item/weapon/paper/manifest/M = generateManifest(C)
|
||||||
slip.points = object.cost
|
|
||||||
slip.ordernumber = ordernum
|
|
||||||
|
|
||||||
var/stationName = (errors & MANIFEST_ERROR_NAME) ? new_station_name() : station_name()
|
if(M.errors & MANIFEST_ERROR_ITEM)
|
||||||
var/packagesAmt = SSshuttle.shoppinglist.len + ((errors & MANIFEST_ERROR_COUNT) ? rand(1,2) : 0)
|
if(istype(C, /obj/structure/closet/crate/secure) || istype(C, /obj/structure/closet/crate/large))
|
||||||
|
M.errors &= ~MANIFEST_ERROR_ITEM
|
||||||
slip.info = "<h3>[command_name()] Shipping Manifest</h3><hr><br>"
|
|
||||||
slip.info +="Order #[ordernum]<br>"
|
|
||||||
slip.info +="Destination: [stationName]<br>"
|
|
||||||
slip.info +="[packagesAmt] PACKAGES IN THIS SHIPMENT<br>"
|
|
||||||
slip.info +="CONTENTS:<br><ul>"
|
|
||||||
|
|
||||||
//we now create the actual contents
|
|
||||||
var/list/contains
|
|
||||||
if(istype(object, /datum/supply_packs/misc/randomised))
|
|
||||||
var/datum/supply_packs/misc/randomised/SO = object
|
|
||||||
contains = list()
|
|
||||||
if(object.contains.len)
|
|
||||||
for(var/j=1, j<=SO.num_contained, j++)
|
|
||||||
contains += pick(object.contains)
|
|
||||||
else
|
|
||||||
contains = object.contains
|
|
||||||
|
|
||||||
for(var/typepath in contains)
|
|
||||||
if(!typepath)
|
|
||||||
continue
|
|
||||||
var/atom/A = new typepath(Crate)
|
|
||||||
if(object.amount && A.vars.Find("amount") && A:amount)
|
|
||||||
A:amount = object.amount
|
|
||||||
slip.info += "<li>[A.name]</li>" //add the item to the manifest (even if it was misplaced)
|
|
||||||
|
|
||||||
if((errors & MANIFEST_ERROR_ITEM))
|
|
||||||
//secure and large crates cannot lose items
|
|
||||||
if(findtext("[object.containertype]", "/secure/") || findtext("[object.containertype]","/large/"))
|
|
||||||
errors &= ~MANIFEST_ERROR_ITEM
|
|
||||||
else
|
else
|
||||||
var/lostAmt = max(round(Crate.contents.len/10), 1)
|
var/lost = max(round(C.contents.len / 10), 1)
|
||||||
//lose some of the items
|
while(--lost >= 0)
|
||||||
while(--lostAmt >= 0)
|
qdel(pick(C.contents))
|
||||||
qdel(pick(Crate.contents))
|
return C
|
||||||
|
|
||||||
//manifest finalisation
|
|
||||||
slip.info += "</ul><br>"
|
|
||||||
slip.info += "CHECK CONTENTS AND STAMP BELOW THE LINE TO CONFIRM RECEIPT OF GOODS<hr>" // And now this is actually meaningful.
|
|
||||||
slip.loc = Crate
|
|
||||||
if(istype(Crate, /obj/structure/closet/crate))
|
|
||||||
var/obj/structure/closet/crate/CR = Crate
|
|
||||||
CR.manifest = slip
|
|
||||||
CR.update_icon()
|
|
||||||
|
|
||||||
return Crate
|
|
||||||
|
|||||||
1308
code/modules/cargo/packs.dm
Normal file
1308
code/modules/cargo/packs.dm
Normal file
File diff suppressed because it is too large
Load Diff
@@ -12,12 +12,12 @@
|
|||||||
earliest_start = 4000
|
earliest_start = 4000
|
||||||
|
|
||||||
/datum/round_event/shuttle_loan
|
/datum/round_event/shuttle_loan
|
||||||
|
announceWhen = 1
|
||||||
endWhen = 500
|
endWhen = 500
|
||||||
var/dispatch_type = 4
|
var/dispatched = 0
|
||||||
|
var/dispatch_type = 0
|
||||||
var/bonus_points = 100
|
var/bonus_points = 100
|
||||||
var/thanks_msg = "The cargo shuttle should return in five minutes. Have some supply points for your trouble."
|
var/thanks_msg = "The cargo shuttle should return in five minutes. Have some supply points for your trouble."
|
||||||
var/dispatched = 0
|
|
||||||
announceWhen = 1
|
|
||||||
|
|
||||||
/datum/round_event/shuttle_loan/start()
|
/datum/round_event/shuttle_loan/start()
|
||||||
dispatch_type = pick(HIJACK_SYNDIE, RUSKY_PARTY, SPIDER_GIFT, DEPARTMENT_RESUPPLY, ANTIDOTE_NEEDED)
|
dispatch_type = pick(HIJACK_SYNDIE, RUSKY_PARTY, SPIDER_GIFT, DEPARTMENT_RESUPPLY, ANTIDOTE_NEEDED)
|
||||||
@@ -73,8 +73,6 @@
|
|||||||
else
|
else
|
||||||
endWhen = activeFor + 1
|
endWhen = activeFor + 1
|
||||||
|
|
||||||
//whomever coded this didn't even bother to follow the supply ordering code as an example.
|
|
||||||
//So I had to waste time rewriting it. Thanks for that >:[
|
|
||||||
/datum/round_event/shuttle_loan/end()
|
/datum/round_event/shuttle_loan/end()
|
||||||
if(SSshuttle.shuttle_loan && SSshuttle.shuttle_loan.dispatched)
|
if(SSshuttle.shuttle_loan && SSshuttle.shuttle_loan.dispatched)
|
||||||
//make sure the shuttle was dispatched in time
|
//make sure the shuttle was dispatched in time
|
||||||
@@ -91,7 +89,9 @@
|
|||||||
var/list/shuttle_spawns = list()
|
var/list/shuttle_spawns = list()
|
||||||
switch(dispatch_type)
|
switch(dispatch_type)
|
||||||
if(HIJACK_SYNDIE)
|
if(HIJACK_SYNDIE)
|
||||||
add_crates(list(/datum/supply_packs/emergency/specialops), empty_shuttle_turfs)
|
var/datum/supply_pack/pack = SSshuttle.supply_packs[/datum/supply_pack/emergency/specialops]
|
||||||
|
pack.generate(pick_n_take(empty_shuttle_turfs))
|
||||||
|
|
||||||
shuttle_spawns.Add(/mob/living/simple_animal/hostile/syndicate)
|
shuttle_spawns.Add(/mob/living/simple_animal/hostile/syndicate)
|
||||||
shuttle_spawns.Add(/mob/living/simple_animal/hostile/syndicate)
|
shuttle_spawns.Add(/mob/living/simple_animal/hostile/syndicate)
|
||||||
if(prob(75))
|
if(prob(75))
|
||||||
@@ -100,7 +100,9 @@
|
|||||||
shuttle_spawns.Add(/mob/living/simple_animal/hostile/syndicate)
|
shuttle_spawns.Add(/mob/living/simple_animal/hostile/syndicate)
|
||||||
|
|
||||||
if(RUSKY_PARTY)
|
if(RUSKY_PARTY)
|
||||||
add_crates(list(/datum/supply_packs/organic/party), empty_shuttle_turfs)
|
var/datum/supply_pack/pack = SSshuttle.supply_packs[/datum/supply_pack/organic/party]
|
||||||
|
pack.generate(pick_n_take(empty_shuttle_turfs))
|
||||||
|
|
||||||
shuttle_spawns.Add(/mob/living/simple_animal/hostile/russian)
|
shuttle_spawns.Add(/mob/living/simple_animal/hostile/russian)
|
||||||
shuttle_spawns.Add(/mob/living/simple_animal/hostile/russian/ranged) //drops a mateba
|
shuttle_spawns.Add(/mob/living/simple_animal/hostile/russian/ranged) //drops a mateba
|
||||||
shuttle_spawns.Add(/mob/living/simple_animal/hostile/bear)
|
shuttle_spawns.Add(/mob/living/simple_animal/hostile/bear)
|
||||||
@@ -110,7 +112,9 @@
|
|||||||
shuttle_spawns.Add(/mob/living/simple_animal/hostile/bear)
|
shuttle_spawns.Add(/mob/living/simple_animal/hostile/bear)
|
||||||
|
|
||||||
if(SPIDER_GIFT)
|
if(SPIDER_GIFT)
|
||||||
add_crates(list(/datum/supply_packs/emergency/specialops), empty_shuttle_turfs)
|
var/datum/supply_pack/pack = SSshuttle.supply_packs[/datum/supply_pack/emergency/specialops]
|
||||||
|
pack.generate(pick_n_take(empty_shuttle_turfs))
|
||||||
|
|
||||||
shuttle_spawns.Add(/mob/living/simple_animal/hostile/poison/giant_spider)
|
shuttle_spawns.Add(/mob/living/simple_animal/hostile/poison/giant_spider)
|
||||||
shuttle_spawns.Add(/mob/living/simple_animal/hostile/poison/giant_spider)
|
shuttle_spawns.Add(/mob/living/simple_animal/hostile/poison/giant_spider)
|
||||||
shuttle_spawns.Add(/mob/living/simple_animal/hostile/poison/giant_spider/nurse)
|
shuttle_spawns.Add(/mob/living/simple_animal/hostile/poison/giant_spider/nurse)
|
||||||
@@ -135,7 +139,6 @@
|
|||||||
T = pick(empty_shuttle_turfs)
|
T = pick(empty_shuttle_turfs)
|
||||||
new /obj/effect/spider/stickyweb(T)
|
new /obj/effect/spider/stickyweb(T)
|
||||||
|
|
||||||
|
|
||||||
if(ANTIDOTE_NEEDED)
|
if(ANTIDOTE_NEEDED)
|
||||||
var/virus_type = pick(/datum/disease/beesease, /datum/disease/brainrot, /datum/disease/fluspanish)
|
var/virus_type = pick(/datum/disease/beesease, /datum/disease/brainrot, /datum/disease/fluspanish)
|
||||||
var/turf/T
|
var/turf/T
|
||||||
@@ -158,22 +161,23 @@
|
|||||||
|
|
||||||
if(DEPARTMENT_RESUPPLY)
|
if(DEPARTMENT_RESUPPLY)
|
||||||
var/list/crate_types = list(
|
var/list/crate_types = list(
|
||||||
/datum/supply_packs/emergency/evac,
|
/datum/supply_pack/emergency/equipment,
|
||||||
/datum/supply_packs/security/supplies,
|
/datum/supply_pack/security/supplies,
|
||||||
/datum/supply_packs/organic/food,
|
/datum/supply_pack/organic/food,
|
||||||
/datum/supply_packs/emergency/weedcontrol,
|
/datum/supply_pack/emergency/weedcontrol,
|
||||||
/datum/supply_packs/engineering/tools,
|
/datum/supply_pack/engineering/tools,
|
||||||
/datum/supply_packs/engineering/engiequipment,
|
/datum/supply_pack/engineering/engiequipment,
|
||||||
/datum/supply_packs/science/robotics,
|
/datum/supply_pack/science/robotics,
|
||||||
/datum/supply_packs/science/plasma,
|
/datum/supply_pack/science/plasma,
|
||||||
/datum/supply_packs/medical/supplies
|
/datum/supply_pack/medical/supplies
|
||||||
)
|
)
|
||||||
add_crates(crate_types, empty_shuttle_turfs)
|
for(var/crate in crate_types)
|
||||||
|
var/datum/supply_pack/pack = SSshuttle.supply_packs[crate]
|
||||||
|
pack.generate(pick_n_take(empty_shuttle_turfs))
|
||||||
|
|
||||||
for(var/i=0,i<5,i++)
|
for(var/i in 1 to 5)
|
||||||
var/turf/T = pick(empty_shuttle_turfs)
|
var/decal = pick(/obj/effect/decal/cleanable/flour, /obj/effect/decal/cleanable/robot_debris, /obj/effect/decal/cleanable/oil)
|
||||||
var/spawn_type = pick(/obj/effect/decal/cleanable/flour, /obj/effect/decal/cleanable/robot_debris, /obj/effect/decal/cleanable/oil)
|
new decal(pick_n_take(empty_shuttle_turfs))
|
||||||
new spawn_type(T)
|
|
||||||
|
|
||||||
var/false_positive = 0
|
var/false_positive = 0
|
||||||
while(shuttle_spawns.len && empty_shuttle_turfs.len)
|
while(shuttle_spawns.len && empty_shuttle_turfs.len)
|
||||||
@@ -185,18 +189,8 @@
|
|||||||
var/spawn_type = pick_n_take(shuttle_spawns)
|
var/spawn_type = pick_n_take(shuttle_spawns)
|
||||||
new spawn_type(T)
|
new spawn_type(T)
|
||||||
|
|
||||||
/datum/round_event/shuttle_loan/proc/add_crates(list/crate_types, list/turfs)
|
|
||||||
for(var/crate_type in crate_types)
|
|
||||||
var/turf/T = pick_n_take(turfs)
|
|
||||||
var/datum/supply_packs/sp_obj = new crate_type()
|
|
||||||
var/atom/Crate = new sp_obj.containertype(T)
|
|
||||||
Crate.name = sp_obj.containername
|
|
||||||
for(var/type_path in sp_obj.contains)
|
|
||||||
var/atom/A = new type_path(Crate)
|
|
||||||
if(sp_obj.amount && A.vars.Find("amount") && A:amount)
|
|
||||||
A:amount = sp_obj.amount
|
|
||||||
|
|
||||||
#undef HIJACK_SYNDIE
|
#undef HIJACK_SYNDIE
|
||||||
#undef RUSKY_PARTY
|
#undef RUSKY_PARTY
|
||||||
#undef SPIDER_GIFT
|
#undef SPIDER_GIFT
|
||||||
#undef DEPARTMENT_RESUPPLY
|
#undef DEPARTMENT_RESUPPLY
|
||||||
|
#undef ANTIDOTE_NEEDED
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
/datum/supply_packs/engineering/engine/supermatter_shard
|
|
||||||
name = "Supermatter Shard Crate"
|
|
||||||
contains = list(/obj/machinery/power/supermatter_shard)
|
|
||||||
cost = 100 //So cargo thinks twice before killing themselves with it
|
|
||||||
containertype = /obj/structure/closet/crate/secure
|
|
||||||
containername = "supermatter shard crate"
|
|
||||||
access = access_ce
|
|
||||||
@@ -59,31 +59,23 @@
|
|||||||
if(!SSshuttle.shoppinglist.len)
|
if(!SSshuttle.shoppinglist.len)
|
||||||
return
|
return
|
||||||
|
|
||||||
var/list/emptyTurfs = list()
|
var/list/empty_turfs = list()
|
||||||
for(var/turf/simulated/floor/T in areaInstance)
|
for(var/turf/simulated/floor/T in areaInstance)
|
||||||
if(T.density || T.contents.len)
|
if(T.density || T.contents.len)
|
||||||
continue
|
continue
|
||||||
emptyTurfs += T
|
empty_turfs += T
|
||||||
|
|
||||||
for(var/datum/supply_order/SO in SSshuttle.shoppinglist)
|
for(var/datum/supply_order/SO in SSshuttle.shoppinglist)
|
||||||
if(!SO.object)
|
if(!empty_turfs.len)
|
||||||
continue
|
continue
|
||||||
if(SO.object.cost > SSshuttle.points)
|
if(SO.pack.cost > SSshuttle.points)
|
||||||
continue
|
continue
|
||||||
|
|
||||||
var/errors = 0
|
SSshuttle.points -= SO.pack.cost
|
||||||
if(prob(5))
|
|
||||||
errors |= MANIFEST_ERROR_COUNT
|
|
||||||
if(prob(5))
|
|
||||||
errors |= MANIFEST_ERROR_NAME
|
|
||||||
if(prob(5))
|
|
||||||
errors |= MANIFEST_ERROR_ITEM
|
|
||||||
|
|
||||||
var/turf/T = pick_n_take(emptyTurfs)
|
|
||||||
SO.createObject(T, errors)
|
|
||||||
|
|
||||||
SSshuttle.points -= SO.object.cost
|
|
||||||
SSshuttle.shoppinglist -= SO
|
SSshuttle.shoppinglist -= SO
|
||||||
|
SSshuttle.orderhistory += SO
|
||||||
|
|
||||||
|
SO.generate(pick_n_take(empty_turfs))
|
||||||
|
|
||||||
/obj/docking_port/mobile/supply/proc/sell()
|
/obj/docking_port/mobile/supply/proc/sell()
|
||||||
var/crates = 0
|
var/crates = 0
|
||||||
@@ -104,48 +96,48 @@
|
|||||||
if(!AM.contents.len)
|
if(!AM.contents.len)
|
||||||
SSshuttle.sold_atoms += " (empty)"
|
SSshuttle.sold_atoms += " (empty)"
|
||||||
else
|
else
|
||||||
var/slip_found = FALSE
|
var/manifest_found = FALSE
|
||||||
for(var/atom/movable/thing in AM)
|
for(var/atom/movable/thing in AM)
|
||||||
SSshuttle.sold_atoms += " [thing.name]"
|
SSshuttle.sold_atoms += " [thing.name]"
|
||||||
if(!slip_found && istype(thing, /obj/item/weapon/paper/manifest))
|
if(!manifest_found && istype(thing, /obj/item/weapon/paper/manifest))
|
||||||
var/obj/item/weapon/paper/manifest/slip = thing
|
var/obj/item/weapon/paper/manifest/manifest = thing
|
||||||
if(slip.stamped && slip.stamped.len)
|
if(manifest.stamped && manifest.stamped.len)
|
||||||
slip_found = TRUE
|
manifest_found = TRUE
|
||||||
var/denied = FALSE
|
var/denied = FALSE
|
||||||
for(var/stamp in slip.stamped)
|
for(var/stamp in manifest.stamped)
|
||||||
if(stamp == /obj/item/weapon/stamp/denied)
|
if(stamp == /obj/item/weapon/stamp/denied)
|
||||||
denied = TRUE
|
denied = TRUE
|
||||||
break
|
break
|
||||||
if(slip.erroneous && denied) // Caught a mistake by Centcom.
|
if(manifest.errors && denied) // Caught a mistake by Centcom.
|
||||||
pointsEarned = slip.points - SSshuttle.points_per_crate
|
pointsEarned = manifest.order_cost - SSshuttle.points_per_crate
|
||||||
SSshuttle.points += pointsEarned // Give a full refund (minus the crate).
|
SSshuttle.points += pointsEarned // Give a full refund (minus the crate).
|
||||||
msg += "[pointsEarned]: Station correctly denied package [slip.ordernumber]: "
|
msg += "+[pointsEarned]: Station correctly denied package #[manifest.order_id]: "
|
||||||
if(slip.erroneous & MANIFEST_ERROR_NAME)
|
if(manifest.errors & MANIFEST_ERROR_NAME)
|
||||||
msg += "Destination station incorrect. "
|
msg += "Destination station incorrect. "
|
||||||
else if(slip.erroneous & MANIFEST_ERROR_COUNT)
|
else if(manifest.errors & MANIFEST_ERROR_CONTENTS)
|
||||||
msg += "Packages incorrectly counted. "
|
msg += "Contents incorrectly counted. "
|
||||||
else if(slip.erroneous & MANIFEST_ERROR_ITEM)
|
else if(manifest.errors & MANIFEST_ERROR_ITEM)
|
||||||
msg += "Package incomplete. "
|
msg += "Package incomplete. "
|
||||||
msg += "Points refunded."
|
msg += "Points refunded."
|
||||||
else if(!slip.erroneous && !denied) // Approved a slip correctly.
|
else if(!manifest.errors && !denied) // Approved a manifest correctly.
|
||||||
pointsEarned = SSshuttle.points_per_slip
|
pointsEarned = SSshuttle.points_per_manifest
|
||||||
SSshuttle.points += pointsEarned
|
SSshuttle.points += pointsEarned
|
||||||
msg += "+[pointsEarned]: Package [slip.ordernumber] accorded."
|
msg += "+[pointsEarned]: Package [manifest.order_id] accorded."
|
||||||
else if(slip.erroneous) // You done goofed.
|
else if(manifest.errors) // You done goofed.
|
||||||
pointsEarned = -SSshuttle.points_per_slip
|
pointsEarned = -SSshuttle.points_per_manifest
|
||||||
SSshuttle.points += pointsEarned
|
SSshuttle.points += pointsEarned
|
||||||
msg += "[pointsEarned]: Station erroneously approved package [slip.ordernumber]: "
|
msg += "[pointsEarned]: Station erroneously approved package #[manifest.order_id]: "
|
||||||
if(slip.erroneous & MANIFEST_ERROR_NAME)
|
if(manifest.errors & MANIFEST_ERROR_NAME)
|
||||||
msg += "Destination station incorrect."
|
msg += "Destination station incorrect."
|
||||||
else if(slip.erroneous & MANIFEST_ERROR_COUNT)
|
else if(manifest.errors & MANIFEST_ERROR_CONTENTS)
|
||||||
msg += "Packages incorrectly counted."
|
msg += "Contents incorrectly counted. "
|
||||||
else if(slip.erroneous & MANIFEST_ERROR_ITEM)
|
else if(manifest.errors & MANIFEST_ERROR_ITEM)
|
||||||
msg += "We found unshipped items on our dock."
|
msg += "We found unshipped items on our dock."
|
||||||
msg += " Be more vigilant."
|
msg += " Be more vigilant."
|
||||||
else
|
else
|
||||||
pointsEarned = round(SSshuttle.points_per_crate - slip.points)
|
pointsEarned = round(SSshuttle.points_per_crate - manifest.order_cost)
|
||||||
SSshuttle.points += pointsEarned
|
SSshuttle.points += pointsEarned
|
||||||
msg += "[pointsEarned]: Station erroneously denied package [slip.ordernumber]."
|
msg += "[pointsEarned]: Station errorsly denied package #[manifest.order_id]."
|
||||||
|
|
||||||
// Sell plasma
|
// Sell plasma
|
||||||
if(istype(thing, /obj/item/stack/sheet/mineral/plasma))
|
if(istype(thing, /obj/item/stack/sheet/mineral/plasma))
|
||||||
|
|||||||
@@ -1409,7 +1409,6 @@
|
|||||||
#include "code\modules\power\singularity\particle_accelerator\particle_emitter.dm"
|
#include "code\modules\power\singularity\particle_accelerator\particle_emitter.dm"
|
||||||
#include "code\modules\power\singularity\particle_accelerator\particle_power.dm"
|
#include "code\modules\power\singularity\particle_accelerator\particle_power.dm"
|
||||||
#include "code\modules\power\supermatter\supermatter.dm"
|
#include "code\modules\power\supermatter\supermatter.dm"
|
||||||
#include "code\modules\power\supermatter\supermatter_crate.dm"
|
|
||||||
#include "code\modules\power\tesla\coil.dm"
|
#include "code\modules\power\tesla\coil.dm"
|
||||||
#include "code\modules\power\tesla\energy_ball.dm"
|
#include "code\modules\power\tesla\energy_ball.dm"
|
||||||
#include "code\modules\power\tesla\generator.dm"
|
#include "code\modules\power\tesla\generator.dm"
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -72,8 +72,8 @@
|
|||||||
<div class='content'>#{{id}}</div>
|
<div class='content'>#{{id}}</div>
|
||||||
<div class='content'>{{object}}</div>
|
<div class='content'>{{object}}</div>
|
||||||
<div class='content'>{{cost}} Points</div>
|
<div class='content'>{{cost}} Points</div>
|
||||||
<div class='content'>By {{orderedby}}</div>
|
<div class='content'>By {{orderer}}</div>
|
||||||
<div class='content'>Comment: {{comment}}</div>
|
<div class='content'>Comment: {{reason}}</div>
|
||||||
{{#if !data.requestonly}}
|
{{#if !data.requestonly}}
|
||||||
<div class='content'>
|
<div class='content'>
|
||||||
<ui-button icon='check' action='approve' params='{"id": "{{id}}"}'/>
|
<ui-button icon='check' action='approve' params='{"id": "{{id}}"}'/>
|
||||||
|
|||||||
Reference in New Issue
Block a user