Files
ElGitificador 9098648838 [NO GBP] Fixes syndicate surplus crates description (#94730)
## About The Pull Request

forgot to change these as well

## Why It's Good For The Game

fixes my fuck up. Also deleted a part of the description of the surplus
crate that referenced the now non-existing reputation climbing system,
and a part of the united surplus that could be misleading about whether
it worked via reputation or not.

## Changelog



🆑

fix: fixed syndi surplus crate desc not naming their new tc value
properly

/🆑

---------

Co-authored-by: san7890 <the@san7890.com>
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
2026-01-18 13:10:19 -05:00

172 lines
7.5 KiB
Plaintext

//All bundles and telecrystals
/datum/uplink_category/bundle
name = "Bundles"
weight = 10
/datum/uplink_item/bundles_tc
category = /datum/uplink_category/bundle
surplus = 0
cant_discount = TRUE
purchasable_from = parent_type::purchasable_from & ~UPLINK_SPY
/datum/uplink_item/bundles_tc/random
name = "Random Item"
desc = "Picking this will purchase a random item. Useful if you have some TC to spare or if you haven't decided on a strategy yet."
item = ABSTRACT_UPLINK_ITEM
cost = 0
cost_override_string = "Varies"
/datum/uplink_item/bundles_tc/random/purchase(mob/user, datum/uplink_handler/handler, atom/movable/source)
var/list/possible_items = list()
for(var/datum/uplink_item/uplink_item as anything in SStraitor.uplink_items)
if(src == uplink_item || !uplink_item.item)
continue
if(!handler.can_purchase_item(user, uplink_item))
continue
possible_items += uplink_item
if(possible_items.len)
var/datum/uplink_item/uplink_item = pick(possible_items)
log_uplink("[key_name(user)] purchased a random uplink item from [handler.owner]'s uplink with [handler.telecrystals] telecrystals remaining")
SSblackbox.record_feedback("tally", "traitor_random_uplink_items_gotten", 1, initial(uplink_item.name))
handler.purchase_item(user, uplink_item)
/datum/uplink_item/bundles_tc/telecrystal
name = "1 Raw Telecrystal"
desc = "A telecrystal in its rawest and purest form; can be utilized on active uplinks to increase their telecrystal count."
item = /obj/item/stack/telecrystal
cost = 1
// Don't add telecrystals to the purchase_log since
// it's just used to buy more items (including itself!)
purchase_log_vis = FALSE
purchasable_from = NONE
/datum/uplink_item/bundles_tc/bundle_a
name = "Syndi-kit Tactical"
desc = "Syndicate Bundles, also known as Syndi-Kits, are specialized groups of items that arrive in a plain box. \
These items are collectively worth more than 25 telecrystals, but you do not know which specialization \
you will receive. May contain discontinued and/or exotic items. \
The Syndicate will only provide one Syndi-Kit per agent."
item = /obj/item/storage/box/syndicate/bundle_a
cost = 20
stock_key = UPLINK_SHARED_STOCK_KITS
purchasable_from = ~(UPLINK_ALL_SYNDIE_OPS | UPLINK_SPY)
/datum/uplink_item/bundles_tc/bundle_b
name = "Syndi-kit Special"
desc = "Syndicate Bundles, also known as Syndi-Kits, are specialized groups of items that arrive in a plain box. \
In Syndi-kit Special, you will receive items used by famous syndicate agents of the past. \
Collectively worth more than 25 telecrystals, the syndicate loves a good throwback. \
The Syndicate will only provide one Syndi-Kit per agent."
item = /obj/item/storage/box/syndicate/bundle_b
cost = 20
stock_key = UPLINK_SHARED_STOCK_KITS
purchasable_from = ~(UPLINK_ALL_SYNDIE_OPS | UPLINK_SPY)
#define TC_VALUE_SURPLUS "%TC_VALUE_SURPLUS%"
/datum/uplink_item/bundles_tc/surplus
name = "Syndicate Surplus Crate"
desc = "A dusty crate from the back of the Syndicate warehouse delivered directly to you via Supply Pod. \
If the rumors are true, it will fill it's contents based on your current reputation. \
Contents are sorted to always be worth " + TC_VALUE_SURPLUS + " TC. The Syndicate will only provide one surplus item per agent."
item = /obj/structure/closet/crate // will be replaced in purchase()
cost = 20
purchasable_from = ~(UPLINK_ALL_SYNDIE_OPS | UPLINK_SPY)
stock_key = UPLINK_SHARED_STOCK_SURPLUS
/// Value of items inside the crate in TC
var/crate_tc_value = 40
/// crate that will be used for the surplus crate
var/crate_type = /obj/structure/closet/crate
/datum/uplink_item/bundles_tc/surplus/New()
. = ..()
desc = replacetext(desc, TC_VALUE_SURPLUS, crate_tc_value)
/// generates items that can go inside crates, edit this proc to change what items could go inside your specialized crate
/datum/uplink_item/bundles_tc/surplus/proc/generate_possible_items(mob/user, datum/uplink_handler/handler)
var/list/possible_items = list()
for(var/datum/uplink_item/uplink_item as anything in SStraitor.uplink_items)
if(src == uplink_item || !uplink_item.item)
continue
if(!handler.check_if_restricted(uplink_item))
continue
if(!uplink_item.surplus)
continue
if(handler.not_enough_reputation(uplink_item))
continue
possible_items += uplink_item
return possible_items
/// picks items from the list given to proc and generates a valid uplink item that is less or equal to the amount of TC it can spend
/datum/uplink_item/bundles_tc/surplus/proc/pick_possible_item(list/possible_items, tc_budget)
var/datum/uplink_item/uplink_item = pick(possible_items)
if(prob(100 - uplink_item.surplus))
return null
if(tc_budget < uplink_item.cost)
return null
return uplink_item
/// fills the crate that will be given to the traitor, edit this to change the crate and how the item is filled
/datum/uplink_item/bundles_tc/surplus/proc/fill_crate(obj/structure/closet/crate/surplus_crate, list/possible_items)
var/tc_budget = crate_tc_value
while(tc_budget)
var/datum/uplink_item/uplink_item = pick_possible_item(possible_items, tc_budget)
if(!uplink_item)
continue
tc_budget -= uplink_item.cost
new uplink_item.item(surplus_crate)
/// overwrites item spawning proc for surplus items to spawn an appropriate crate via a podspawn
/datum/uplink_item/bundles_tc/surplus/spawn_item(spawn_path, mob/user, datum/uplink_handler/handler, atom/movable/source)
var/obj/structure/closet/crate/surplus_crate = new crate_type()
if(!istype(surplus_crate))
CRASH("crate_type is not a crate")
var/list/possible_items = generate_possible_items(user, handler)
fill_crate(surplus_crate, possible_items)
podspawn(list(
"target" = get_turf(user),
"style" = /datum/pod_style/syndicate,
"spawn" = surplus_crate,
))
return source //For log icon
/datum/uplink_item/bundles_tc/surplus/united
name = "United Surplus Crate"
desc = "A shiny and large crate to be delivered directly to you via Supply Pod. It has an advanced locking mechanism with an anti-tampering protocol. \
It is recommended that you only attempt to open it by having another agent purchase a Surplus Crate Key. Unite and fight. \
Rumored to contain a valuable assortment of items based on your current reputation. Contents are sorted to always be worth " + TC_VALUE_SURPLUS + " TC. \
The Syndicate will only provide one surplus item per agent."
cost = 20
item = /obj/structure/closet/crate/secure/syndicrate
stock_key = UPLINK_SHARED_STOCK_SURPLUS
crate_tc_value = 100
crate_type = /obj/structure/closet/crate/secure/syndicrate
/// edited version of fill crate for super surplus to ensure it can only be unlocked with the syndicrate key
/datum/uplink_item/bundles_tc/surplus/united/fill_crate(obj/structure/closet/crate/secure/syndicrate/surplus_crate, list/possible_items)
if(!istype(surplus_crate))
return
var/tc_budget = crate_tc_value
while(tc_budget)
var/datum/uplink_item/uplink_item = pick_possible_item(possible_items, tc_budget)
if(!uplink_item)
continue
tc_budget -= uplink_item.cost
surplus_crate.unlock_contents += uplink_item.item
/datum/uplink_item/bundles_tc/surplus_key
name = "United Surplus Crate Key"
desc = "This inconscpicous device is actually a key that can open any United Surplus Crate. It can only be used once. \
Though initially designed to encourage cooperation, agents quickly discovered that you can turn the key to the crate by yourself. \
The Syndicate will only provide one surplus item per agent."
cost = 20
item = /obj/item/syndicrate_key
purchasable_from = ~(UPLINK_ALL_SYNDIE_OPS | UPLINK_SPY)
stock_key = UPLINK_SHARED_STOCK_SURPLUS
#undef TC_VALUE_SURPLUS