Skip to content

Commit

Permalink
Merge pull request #2 from MrCastmer/cargo_updated
Browse files Browse the repository at this point in the history
Cargo Updated
  • Loading branch information
Blundir authored Feb 3, 2024
2 parents 8703b9b + 17dc3e7 commit 640bdfc
Show file tree
Hide file tree
Showing 110 changed files with 3,808 additions and 19 deletions.
3 changes: 3 additions & 0 deletions code/__DEFINES/traits.dm
Original file line number Diff line number Diff line change
Expand Up @@ -139,6 +139,7 @@
#define TRAIT_INCAPACITATED "incapacitated"
#define HANDCUFFED_TRAIT "handcuffed"
#define TRAIT_BLIND "blind"
#define HYPNOCHAIR_TRAIT "hypnochair" //dripstation edit
#define TRAIT_ECHOLOCATION_RECEIVER "echolocation_receiver"
#define TRAIT_MUTE "mute"
#define TRAIT_EMOTEMUTE "emotemute"
Expand Down Expand Up @@ -242,6 +243,7 @@
#define TRAIT_QUICK_CARRY "quick-carry"
#define TRAIT_QUICKER_CARRY "quicker-carry"
#define TRAIT_QUICKEST_CARRY "quickest-carry"
#define TRAIT_QUICK_BUILD "quick-build" //dripstation edit
#define TRAIT_STRONG_GRIP "strong-grip"
#define TRAIT_UNINTELLIGIBLE_SPEECH "unintelligible-speech"
#define TRAIT_UNSTABLE "unstable"
Expand Down Expand Up @@ -343,6 +345,7 @@
#define TRAIT_ANXIOUS "anxious"
#define TRAIT_SEE_REAGENTS "see_reagents"
#define TRAIT_STARGAZED "stargazed"
#define TRAIT_TRANSFORM_ACTIVE "active_transform" //dripstation edit

// common trait sources
#define TRAIT_GENERIC "generic"
Expand Down
9 changes: 9 additions & 0 deletions code/__DEFINES/{dripstation_defines}/blackmarket.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@

// Shipping methods

// The BEST way of shipping items: accurate, "undetectable"
#define SHIPPING_METHOD_LTSRBT "LTSRBT"
// Picks a random area to teleport the item to and gives you a minute to get there before it is sent.
#define SHIPPING_METHOD_TELEPORT "Teleport"
// Throws the item from somewhere at the station.
#define SHIPPING_METHOD_LAUNCH "Launch"
2 changes: 2 additions & 0 deletions code/__DEFINES/{dripstation_defines}/cargo.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
/// Defining standart crate value for blackmarket, some events will change this shit some day
#define CARGO_CRATE_VALUE 200
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
// /datum/component/transforming signals

/// From /datum/component/transforming/proc/on_attack_self(obj/item/source, mob/user): (obj/item/source, mob/user, active)
#define COMSIG_TRANSFORMING_PRE_TRANSFORM "transforming_pre_transform"
/// Return COMPONENT_BLOCK_TRANSFORM to prevent the item from transforming.
#define COMPONENT_BLOCK_TRANSFORM (1<<0)
/// From /datum/component/transforming/proc/do_transform(obj/item/source, mob/user): (obj/item/source, mob/user, active)
#define COMSIG_TRANSFORMING_ON_TRANSFORM "transforming_on_transform"
/// Return COMPONENT_NO_DEFAULT_MESSAGE to prevent the transforming component from displaying the default transform message / sound.
#define COMPONENT_NO_DEFAULT_MESSAGE (1<<0)
3 changes: 3 additions & 0 deletions code/controllers/subsystem/research.dm
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ SUBSYSTEM_DEF(research)
var/list/techweb_categories = list() //category name = list(node.id = TRUE)
var/list/techweb_boost_items = list() //associative double-layer path = list(id = list(point_type = point_discount))
var/list/techweb_nodes_hidden = list() //Node ids that should be hidden by default.
var/list/techweb_nodes_experimental = list()//Node ids that are exclusive to the BEPIS. dripstation edit
var/list/techweb_point_items = list( //path = list(point type = value)
/obj/item/assembly/signaler/anomaly = list(TECHWEB_POINT_TYPE_GENERIC = 10000)
)
Expand Down Expand Up @@ -256,6 +257,8 @@ SUBSYSTEM_DEF(research)
D.unlocked_by += node.id
if(node.hidden)
techweb_nodes_hidden[node.id] = TRUE
if(node.experimental) //dripstation edit
techweb_nodes_experimental[node.id] = TRUE //dripstation edit
CHECK_TICK
generate_techweb_unlock_linking()

Expand Down
4 changes: 2 additions & 2 deletions code/datums/components/chasm.dm
Original file line number Diff line number Diff line change
Expand Up @@ -40,8 +40,8 @@
STOP_PROCESSING(SSobj, src)

/datum/component/chasm/proc/is_safe()
//if anything matching this typecache is found in the chasm, we don't drop things
var/static/list/chasm_safeties_typecache = typecacheof(list(/obj/structure/lattice/catwalk, /obj/structure/stone_tile))
//if anything matching this typecache is found in the chasm, we don't drop things, dripstation edit
var/static/list/chasm_safeties_typecache = typecacheof(list(/obj/structure/lattice/catwalk, /obj/structure/lattice/lava, /obj/structure/stone_tile))

var/atom/parent = src.parent
var/list/found_safeties = typecache_filter_list(parent.contents, chasm_safeties_typecache)
Expand Down
4 changes: 2 additions & 2 deletions code/datums/components/storage/concrete/pockets.dm
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@
/datum/component/storage/concrete/pockets/shoes/Initialize()
. = ..()
set_holdable(list(
/obj/item/kitchen/knife, /obj/item/switchblade, /obj/item/pen,
/obj/item/kitchen/knife, /obj/item/boxcutter, /obj/item/switchblade, /obj/item/pen, //boxcutter dripstation edit
/obj/item/scalpel, /obj/item/reagent_containers/syringe, /obj/item/dnainjector,
/obj/item/reagent_containers/autoinjector/medipen, /obj/item/reagent_containers/dropper,
/obj/item/implanter, /obj/item/screwdriver, /obj/item/weldingtool/mini,
Expand All @@ -56,7 +56,7 @@
/datum/component/storage/concrete/pockets/shoes/clown/Initialize()
. = ..()
set_holdable(list(
/obj/item/kitchen/knife, /obj/item/switchblade, /obj/item/pen,
/obj/item/kitchen/knife, /obj/item/boxcutter, /obj/item/switchblade, /obj/item/pen, //boxcutter dripstation edit
/obj/item/scalpel, /obj/item/reagent_containers/syringe, /obj/item/dnainjector,
/obj/item/reagent_containers/autoinjector/medipen, /obj/item/reagent_containers/dropper,
/obj/item/implanter, /obj/item/screwdriver, /obj/item/weldingtool/mini,
Expand Down
2 changes: 2 additions & 0 deletions code/game/atoms_movable.dm
Original file line number Diff line number Diff line change
Expand Up @@ -1011,6 +1011,8 @@
return FALSE
if(force < (move_resist * MOVE_FORCE_PULL_RATIO))
return FALSE
if(SEND_SIGNAL(src, COMSIG_ATOM_CAN_BE_PULLED, user) & COMSIG_ATOM_CANT_PULL) //dripstation edit
return FALSE //dripstation edit
return TRUE

/// Called when mob changes from a standing position into a prone while lacking the ability to stand up at the moment.
Expand Down
2 changes: 1 addition & 1 deletion code/game/gamemodes/dynamic/dynamic.dm
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ GLOBAL_VAR_INIT(dynamic_forced_threat_level, -1)
/// Antags rolled by rules so far, to keep track of and discourage scaling past a certain ratio of crew/antags especially on lowpop.
var/antags_rolled = 0
/// CRATE DISCOUNT
var/discountedcrates = list( /datum/supply_pack/security/laser,
var/discountedcrates = list( /datum/supply_pack/security/armory/laser, //dripstation edit
/datum/supply_pack/security/vending/security,
/datum/supply_pack/service/party)

Expand Down
1 change: 1 addition & 0 deletions code/game/machinery/recharger.dm
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@

var/static/list/allowed_devices = typecacheof(list(
/obj/item/gun/energy,
/obj/item/cargo_teleporter, //dripstation edit
/obj/item/melee/baton,
/obj/item/ammo_box/magazine/recharge,
/obj/item/ammo_box/magazine/m308/laser,
Expand Down
2 changes: 1 addition & 1 deletion code/game/objects/items/stacks/sheets/sheet_types.dm
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ GLOBAL_LIST_INIT(metal_recipes, list ( \
new/datum/stack_recipe("floor tile", /obj/item/stack/tile/plasteel, 1, 4, 20), \
new/datum/stack_recipe("metal rod", /obj/item/stack/rods, 1, 2, 60), \
null, \
new/datum/stack_recipe("wall girders", /obj/structure/girder, 2, time = 40, one_per_turf = TRUE, on_floor = TRUE), \
new/datum/stack_recipe("wall girders", /obj/structure/girder, 2, time = 40, one_per_turf = TRUE, on_floor = TRUE, trait_booster = TRAIT_QUICK_BUILD, trait_modifier = 0.75), \
null, \
new/datum/stack_recipe("computer frame", /obj/structure/frame/computer, 5, time = 25, one_per_turf = TRUE, on_floor = TRUE), \
new/datum/stack_recipe("machine frame", /obj/structure/frame/machine, 5, time = 25, one_per_turf = TRUE, on_floor = TRUE), \
Expand Down
10 changes: 8 additions & 2 deletions code/game/objects/items/stacks/stack.dm
Original file line number Diff line number Diff line change
Expand Up @@ -456,9 +456,13 @@
var/on_floor = FALSE
var/window_checks = FALSE
var/placement_checks = FALSE
/// What trait, if any, boosts the construction speed of this item dripstation
var/trait_booster
/// How much the trait above, if supplied, boosts the construct speed of this item dripstation
var/trait_modifier = 1

/datum/stack_recipe/New(title, result_type, req_amount = 1, res_amount = 1, max_res_amount = 1,time = 0, one_per_turf = FALSE, on_floor = FALSE, window_checks = FALSE, placement_checks = FALSE )

/datum/stack_recipe/New(title, result_type, req_amount = 1, res_amount = 1, max_res_amount = 1,time = 0, one_per_turf = FALSE, on_floor = FALSE, window_checks = FALSE, placement_checks = FALSE, trait_booster, trait_modifier = 1)
//dripstation edit

src.title = title
src.result_type = result_type
Expand All @@ -470,6 +474,8 @@
src.on_floor = on_floor
src.window_checks = window_checks
src.placement_checks = placement_checks
src.trait_booster = trait_booster //dripstation edit
src.trait_modifier = trait_modifier //dripstation edit
/*
* Recipe list datum
*/
Expand Down
1 change: 1 addition & 0 deletions code/game/objects/items/storage/belt.dm
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,7 @@
/obj/item/shuttle_creator, //Yogs: Added this here cause I felt it fits
/obj/item/barrier_taperoll/engineering,
/obj/item/storage/bag/sheetsnatcher,
/obj/item/boxcutter, //dripstation edit
/obj/item/holotool,
))

Expand Down
8 changes: 7 additions & 1 deletion code/game/objects/structures/crates_lockers/closets.dm
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,8 @@ GLOBAL_LIST_EMPTY(lockers)
var/door_anim_angle = 136
var/door_hinge_x = -6.5
var/door_anim_time = 2.5 // set to 0 to make the door not animate at all
/// true whenever someone with the strong pull component (or magnet modsuit module) is dragging this, preventing opening
var/strong_grab = FALSE //dripstation edit

/obj/structure/closet/Initialize(mapload)
. = ..()
Expand Down Expand Up @@ -171,7 +173,11 @@ GLOBAL_LIST_EMPTY(lockers)

/obj/structure/closet/proc/can_open(mob/living/user)
if(welded || locked)
return FALSE
to_chat(user, span_danger("[src] locked or welded to be opened.")) //dripstation edit
return FALSE //dripstation edit
if(strong_grab) //dripstation edit
to_chat(user, span_danger("[pulledby] has an incredibly strong grip on [src], preventing it from opening.")) //dripstation edit
return FALSE //dripstation edit

var/turf/T = get_turf(src)
for(var/mob/living/L in T)
Expand Down
11 changes: 9 additions & 2 deletions code/game/objects/structures/girders.dm
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
max_integrity = 200
flags_1 = RAD_PROTECT_CONTENTS_1 | RAD_NO_CONTAMINATE_1
rad_insulation = RAD_VERY_LIGHT_INSULATION
var/next_beep = 0 //Prevents spamming of the construction sound, dripstation edit

/obj/structure/girder/examine(mob/user)
. = ..()
Expand All @@ -27,6 +28,12 @@
. += span_notice("[src] is disassembled! You probably shouldn't be able to see this examine message.")

/obj/structure/girder/attackby(obj/item/W, mob/user, params)
var/platingmodifier = 1 //dripstation edit start
if(HAS_TRAIT(user, TRAIT_QUICK_BUILD))
platingmodifier = 0.7
if(next_beep <= world.time)
next_beep = world.time + 10
playsound(src, 'sound/machines/clockcult/integration_cog_install.ogg', 50, TRUE) //dripstation edit end
add_fingerprint(user)

if(istype(W, /obj/item/gun/energy/plasmacutter))
Expand Down Expand Up @@ -55,7 +62,7 @@
to_chat(user, span_warning("You need at least two rods to create a false wall!"))
return
to_chat(user, span_notice("You start building a reinforced false wall..."))
if(do_after(user, 2 SECONDS, src))
if(do_after(user, 20*platingmodifier, src)) //dripstation edit
if(S.get_amount() < 2)
return
S.use(2)
Expand All @@ -68,7 +75,7 @@
to_chat(user, span_warning("You need at least five rods to add plating!"))
return
to_chat(user, span_notice("You start adding plating..."))
if(do_after(user, 4 SECONDS, src))
if(do_after(user, 40*platingmodifier, src)) //dripstation edit
if(S.get_amount() < 5)
return
S.use(5)
Expand Down
5 changes: 4 additions & 1 deletion code/game/turfs/simulated/chasm.dm
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,10 @@
to_chat(user, span_notice("You construct a lattice."))
playsound(src, 'sound/weapons/genhit.ogg', 50, 1)
// Create a lattice, without reverting to our baseturf
new /obj/structure/lattice(src)
if(istype(R, /obj/item/stack/rods/lava)) //dripstation edit start
new /obj/structure/lattice/lava(src)
else
new /obj/structure/lattice(src) //dripstation edit end
else
to_chat(user, span_warning("You need one rod to build a lattice."))
return
Expand Down
29 changes: 28 additions & 1 deletion code/modules/cargo/console.dm
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
or homing beacons. Additionally, remove any privately ordered crates from the shuttle."
var/blockade_warning = "Bluespace instability detected. Shuttle movement impossible."
var/self_paid = FALSE
req_access = list(ACCESS_CARGO) //dripstation edit

/obj/machinery/computer/cargo/request
name = "supply request console"
Expand All @@ -25,6 +26,7 @@
requestonly = TRUE
can_send = FALSE
can_approve_requests = FALSE
req_access = list() //dripstation edit

/obj/machinery/computer/cargo/Initialize(mapload)
. = ..()
Expand All @@ -50,6 +52,7 @@

obj_flags |= EMAGGED
contraband = TRUE
do_sparks(8, FALSE, loc) //dripstation edit

// This also permamently sets this on the circuit board
var/obj/item/circuitboard/computer/cargo/board = circuit
Expand Down Expand Up @@ -133,6 +136,9 @@
/obj/machinery/computer/cargo/ui_act(action, params, datum/tgui/ui)
if(..())
return
if(!allowed(usr) && can_approve_requests) //dripstation edit
say("Access denied.") //dripstation edit
return //dripstation edit
switch(action)
if("send")
if(!SSshuttle.supply.canMove())
Expand All @@ -148,7 +154,7 @@
investigate_log("[key_name(usr)] sent the supply shuttle away.", INVESTIGATE_CARGO)
else
investigate_log("[key_name(usr)] called the supply shuttle.", INVESTIGATE_CARGO)
say("The supply shuttle has been called and will arrive in [SSshuttle.supply.timeLeft(600)] minutes.")
say("The supply shuttle has been called and will arrive in [SSshuttle.supply.timeLeft(10)] seconds.") //dripstation edit
SSshuttle.moveShuttle("supply", "supply_home", TRUE)
. = TRUE
if("loan")
Expand All @@ -171,6 +177,12 @@
var/datum/supply_pack/pack = SSshuttle.supply_packs[id]
if(!istype(pack))
return
if(pack.times_ordered >= pack.order_limit && pack.order_limit != -1) //If the crate has reached the limit, do not allow it to be ordered.
say("[pack.name] is out of stock and can no longer be ordered.")
return
if(pack.times_ordered_in_one_order >= pack.order_limit_in_one_order && pack.order_limit_in_one_order != -1)
say("[pack.name] is out of stock for now and can no longer be ordered in this package. Try again later.")
return
if((pack.hidden && !(obj_flags & EMAGGED)) || (pack.contraband && !contraband) || pack.DropPodOnly)
return

Expand Down Expand Up @@ -210,6 +222,8 @@
SSshuttle.requestlist += SO
else
SSshuttle.shoppinglist += SO
SO.pack.times_ordered += 1 //dripstation edit
SO.pack.times_ordered_in_one_order += 1 //dripstation edit
if(self_paid)
say("Order processed. The price will be charged to [account.account_holder]'s bank account on delivery.")
. = TRUE
Expand All @@ -218,17 +232,30 @@
for(var/datum/supply_order/SO in SSshuttle.shoppinglist)
if(SO.id == id)
SSshuttle.shoppinglist -= SO
SO.pack.times_ordered -= 1 //dripstation edit
SO.pack.times_ordered_in_one_order -= 1 //dripstation edit
. = TRUE
break
if("clear")
for(var/datum/supply_order/SO in SSshuttle.shoppinglist) //dripstation edit
SO.pack.times_ordered -= 1 //dripstation edit
SO.pack.times_ordered_in_one_order = 0 //dripstation edit
SSshuttle.shoppinglist.Cut()
. = TRUE
if("approve")
var/id = text2num(params["id"])
for(var/datum/supply_order/SO in SSshuttle.requestlist)
if(SO.id == id)
if(SO.pack.times_ordered >= SO.pack.order_limit && SO.pack.order_limit != -1) //If the crate has reached the limit, do not allow it to be ordered. dripstation edit start
say("[SO.pack.name] is out of stock and can no longer be ordered.")
return
if(SO.pack.times_ordered_in_one_order >= SO.pack.order_limit_in_one_order && SO.pack.order_limit_in_one_order != -1)
say("[SO.pack.name] is out of stock for now and can no longer be ordered in this package. Try again later.")
return //dripstation edit end
SSshuttle.requestlist -= SO
SSshuttle.shoppinglist += SO
SO.pack.times_ordered += 1 //dripstation edit
SO.pack.times_ordered_in_one_order += 1 //dripstation edit
. = TRUE
break
if("deny")
Expand Down
2 changes: 1 addition & 1 deletion code/modules/cargo/order.dm
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,7 @@
if(paying_account)
account_holder = paying_account.account_holder
else
account_holder = "Cargo"
account_holder = "Cargo Budget" //dripstation edit
var/obj/structure/closet/crate/C = pack.generate(A, paying_account)
generateManifest(C, account_holder, pack)
return C
Expand Down
4 changes: 2 additions & 2 deletions code/modules/cargo/packs.dm
Original file line number Diff line number Diff line change
Expand Up @@ -317,7 +317,7 @@
/obj/item/toy/crayon/white,
/obj/item/clothing/head/fedora/det_hat)
crate_name = "forensics crate"

/*
/datum/supply_pack/security/laser
name = "Lasers Crate"
desc = "Contains three lethal, high-energy laser guns. Requires Security access to open."
Expand All @@ -326,7 +326,7 @@
/obj/item/gun/energy/laser,
/obj/item/gun/energy/laser)
crate_name = "laser crate"

*/
/datum/supply_pack/security/secfiringpins
name = "Mindshield Firing Pins Crate"
desc = "Upgrade your arsenal with 10 mindshield firing pins. Requires Security access to open."
Expand Down
4 changes: 2 additions & 2 deletions code/modules/mob/living/carbon/carbon_defense.dm
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
/mob/living/carbon/get_eye_protection()
. = ..()
if(HAS_TRAIT(src, TRAIT_BLIND))
return INFINITY //Can't get flashed if you cant see
if(is_blind() && !HAS_TRAIT_FROM(src, TRAIT_BLIND, UNCONSCIOUS_TRAIT) && !HAS_TRAIT_FROM(src, TRAIT_BLIND, HYPNOCHAIR_TRAIT)) //dripstation edit
return INFINITY //For all my homies that can not see in the world
var/obj/item/organ/eyes/E = getorganslot(ORGAN_SLOT_EYES)
if(!E)
return INFINITY //Can't get flashed without eyes
Expand Down
1 change: 1 addition & 0 deletions code/modules/mob/living/living.dm
Original file line number Diff line number Diff line change
Expand Up @@ -258,6 +258,7 @@

pulling = AM
AM.set_pulledby(src)
SEND_SIGNAL(src, COMSIG_LIVING_START_PULL, AM, state, force) //dripstation edit
if(!supress_message)
var/sound_to_play = 'sound/weapons/thudswoosh.ogg'
if(ishuman(src))
Expand Down
3 changes: 3 additions & 0 deletions code/modules/research/rdconsole.dm
Original file line number Diff line number Diff line change
Expand Up @@ -1090,6 +1090,9 @@ Nothing else in the console has ID requirements.
stored_research.add_design(D, TRUE)
else
stored_research.add_design(d_disk.blueprints[n], TRUE)

say("Uploading blueprints from disk.") //dripstation edit
d_disk.on_upload(stored_research) //dripstation edit

updateUsrDialog()

Expand Down
Loading

0 comments on commit 640bdfc

Please sign in to comment.