mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-15 18:14:22 +01:00
9098648838
## 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>
172 lines
7.5 KiB
Plaintext
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
|