Ammunition can no longer be discounted in the uplink (#25654)

* Change disount on ammo, clean up code

* MARK

* Clarification

* Knuckledusters can discount

* Correction

* Moves the comment

* MARKs the nukie uplink as well

* Update code/datums/uplink_items/uplink_general.dm

Signed-off-by: DGamerL <108773801+DGamerL@users.noreply.github.com>

---------

Signed-off-by: DGamerL <108773801+DGamerL@users.noreply.github.com>
Co-authored-by: DGamerL <108773801+DGamerL@users.noreply.github.com>
This commit is contained in:
Daylight
2024-06-03 01:44:03 +00:00
committed by GitHub
co-authored by DGamerL
parent c709050945
commit ba8e082a5d
2 changed files with 168 additions and 125 deletions
+129 -107
View File
@@ -8,7 +8,6 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
var/newreference = 1
if(!length(uplink_items))
var/list/last = list()
for(var/path in GLOB.uplink_items)
var/datum/uplink_item/I = new path
@@ -18,9 +17,6 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
continue
if(length(I.excludefrom) && (U.uplink_type in I.excludefrom))
continue
if(I.last)
last += I
continue
if(!uplink_items[I.category])
uplink_items[I.category] = list()
@@ -29,12 +25,6 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
if(I.limited_stock < 0 && I.can_discount && I.item && I.cost > 5)
sales_items += I
for(var/datum/uplink_item/I in last)
if(!uplink_items[I.category])
uplink_items[I.category] = list()
uplink_items[I.category] += I
for(var/i in 1 to 3)
var/datum/uplink_item/I = pick_n_take(sales_items)
var/datum/uplink_item/A = new I.type
@@ -61,30 +51,45 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
return uplink_items
// You can change the order of the list by putting datums before/after one another OR
// you can use the last variable to make sure it appears last, well have the category appear last.
// You can change the order of the list by putting datums before/after one another
/datum/uplink_item
/// Name of the item in the uplink
var/name = "item name"
/// What category is the item listed under
var/category = "item category"
/// Description of the item in the uplink
var/desc = "Item Description"
var/reference = null
var/item = null
/// Used for discounts. Any unique string will do.
var/reference
/// What is spawned when we purchase this?
var/item
/// How many TC does this cost?
var/cost = 0
var/last = 0 // Appear last
/// Is what we're spawning abstract?
var/abstract = 0
var/list/uplinktypes = list() // Empty list means it is in all the uplink types. Otherwise place the uplink type here.
var/list/excludefrom = list() // Empty list does nothing. Place the name of uplink type you don't want this item to be available in here.
/// Empty list means it is in all the uplink types. Otherwise place the uplink type here.
var/list/uplinktypes = list()
/// Empty list does nothing. Place the name of uplink type you don't want this item to be available in here.
var/list/excludefrom = list()
/// Is this job locked?
var/list/job = null
/// This makes an item on the uplink only show up to the specified species
var/list/species = null
var/surplus = 100 //Chance of being included in the surplus crate (when pick() selects it)
/// Chance of being included in the surplus crate (when pick() selects it)
var/surplus = 100
/// Can this be sold at a discount?
var/can_discount = TRUE
var/limited_stock = -1 // Can you only buy so many? -1 allows for infinite purchases
var/hijack_only = FALSE //can this item be purchased only during hijackings?
/// Can you only buy so many? -1 allows for infinite purchases
var/limited_stock = -1
/// Can this item be purchased only during hijackings?
var/hijack_only = FALSE
/// Can you refund this in the uplink?
var/refundable = FALSE
var/refund_path = null // Alternative path for refunds, in case the item purchased isn't what is actually refunded (ie: holoparasites).
var/refund_amount // specified refund amount in case there needs to be a TC penalty for refunds.
/// Alternative path for refunds, in case the item purchased isn't what is actually refunded (ie: holoparasites).
var/refund_path = null
/// specified refund amount in case there needs to be a TC penalty for refunds.
var/refund_amount
/// Our special little snowflakes that have to be spawned in a different way than normal, like a surplus crate spawning a crate or contractor kits
var/uses_special_spawn = FALSE
@@ -159,14 +164,14 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
// UPLINK ITEMS
//
*/
//Work in Progress, job specific antag tools
//Discounts (dynamically filled above)
/datum/uplink_item/discounts
category = "Discounted Gear"
// DANGEROUS WEAPONS
////////////////////////////////////////
// MARK: DANGEROUS WEAPONS
////////////////////////////////////////
/datum/uplink_item/dangerous
category = "Highly Visible and Dangerous Weapons"
@@ -239,11 +244,14 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
item = /obj/item/grenade/turret
cost = 20
// Ammunition
////////////////////////////////////////
// MARK: AMMUNITION
////////////////////////////////////////
/datum/uplink_item/ammo
category = "Ammunition"
surplus = 40
surplus = 0 // Getting these in a discount or surplus is not a good time.
can_discount = FALSE
/datum/uplink_item/ammo/pistol
name = "Stechkin - 10mm Magazine"
@@ -251,7 +259,6 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
reference = "10MM"
item = /obj/item/ammo_box/magazine/m10mm
cost = 3
surplus = 0 // Miserable
/datum/uplink_item/ammo/pistolap
name = "Stechkin - 10mm Armour Piercing Magazine"
@@ -259,7 +266,6 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
reference = "10MMAP"
item = /obj/item/ammo_box/magazine/m10mm/ap
cost = 6
surplus = 0 // Miserable
/datum/uplink_item/ammo/pistolfire
name = "Stechkin - 10mm Incendiary Magazine"
@@ -267,7 +273,6 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
reference = "10MMFIRE"
item = /obj/item/ammo_box/magazine/m10mm/fire
cost = 9
surplus = 0 // Miserable
/datum/uplink_item/ammo/pistolhp
name = "Stechkin - 10mm Hollow Point Magazine"
@@ -275,7 +280,6 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
reference = "10MMHP"
item = /obj/item/ammo_box/magazine/m10mm/hp
cost = 7
surplus = 0 // Miserable
/datum/uplink_item/ammo/revolver
name = ".357 Revolver - Speedloader"
@@ -283,9 +287,10 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
reference = "357"
item = /obj/item/ammo_box/a357
cost = 15
surplus = 0 // Miserable
// STEALTHY WEAPONS
////////////////////////////////////////
// MARK: STEALTHY WEAPONS
////////////////////////////////////////
/datum/uplink_item/stealthy_weapons
category = "Stealthy and Inconspicuous Weapons"
@@ -381,9 +386,10 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
reference = "SKD"
item = /obj/item/melee/knuckleduster/syndie
cost = 10
can_discount = FALSE
// GRENADES AND EXPLOSIVES
////////////////////////////////////////
// MARK: GRENADES AND EXPLOSIVES
////////////////////////////////////////
/datum/uplink_item/explosives
category = "Grenades and Explosives"
@@ -451,7 +457,9 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
if(HAS_TRAIT(SSstation, STATION_TRAIT_CYBERNETIC_REVOLUTION))
cost *= 3
// STEALTHY TOOLS
////////////////////////////////////////
// MARK: STEALTHY TOOLS
////////////////////////////////////////
/datum/uplink_item/stealthy_tools
category = "Stealth and Camouflage Items"
@@ -569,7 +577,9 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
item = /obj/item/handheld_mirror
cost = 5
// DEVICE AND TOOLS
////////////////////////////////////////
// MARK: DEVICES AND TOOLS
////////////////////////////////////////
/datum/uplink_item/device_tools
category = "Devices and Tools"
@@ -629,7 +639,75 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
item = /obj/item/organ_extractor
cost = 20
//Space Suits and Hardsuits
/datum/uplink_item/device_tools/binary
name = "Binary Translator Key"
desc = "A key, that when inserted into a radio headset, allows you to listen to and talk with artificial intelligences and cybernetic organisms in binary. To talk on the binary channel, type :+ before your radio message."
reference = "BITK"
item = /obj/item/encryptionkey/binary
cost = 25
surplus = 75
/datum/uplink_item/device_tools/cipherkey
name = "Syndicate Encryption Key"
desc = "A key, that when inserted into a radio headset, allows you to listen to all station department channels as well as talk on an encrypted Syndicate channel."
reference = "SEK"
item = /obj/item/encryptionkey/syndicate
cost = 10 //Nowhere near as useful as the Binary Key!
surplus = 75
/datum/uplink_item/device_tools/hacked_module
name = "Hacked AI Upload Module"
desc = "When used with an upload console, this module allows you to upload priority laws to an artificial intelligence. Be careful with their wording, as artificial intelligences may look for loopholes to exploit."
reference = "HAI"
item = /obj/item/aiModule/syndicate
cost = 15
/datum/uplink_item/device_tools/powersink
name = "Power Sink"
desc = "When screwed to wiring attached to an electric grid, then activated, this large device places excessive load on the grid, causing a stationwide blackout. The sink cannot be carried because of its excessive size. Ordering this sends you a small beacon that will teleport the power sink to your location on activation."
reference = "PS"
item = /obj/item/radio/beacon/syndicate/power_sink
cost = 50
/datum/uplink_item/device_tools/singularity_beacon
name = "Power Beacon"
desc = "When screwed to wiring attached to an electric grid and activated, this large device pulls any \
active gravitational singularities. This will not work when the engine is still \
in containment. Because of its size, it cannot be carried. Ordering this \
sends you a small beacon that will teleport the larger beacon to your location upon activation."
reference = "SNGB"
item = /obj/item/radio/beacon/syndicate
cost = 10
surplus = 0
hijack_only = TRUE //This is an item only useful for a hijack traitor, as such, it should only be available in those scenarios.
can_discount = FALSE
/datum/uplink_item/device_tools/advpinpointer
name = "Advanced Pinpointer"
desc = "A pinpointer that tracks any specified coordinates, DNA string, high value item or the nuclear authentication disk."
reference = "ADVP"
item = /obj/item/pinpointer/advpinpointer
cost = 10
can_discount = FALSE
/datum/uplink_item/device_tools/ai_detector
name = "Artificial Intelligence Detector" // changed name in case newfriends thought it detected disguised ai's
desc = "A functional multitool that turns red when it detects an artificial intelligence watching it or its holder. Knowing when an artificial intelligence is watching you is useful for knowing when to maintain cover."
reference = "AID"
item = /obj/item/multitool/ai_detect
cost = 5
/datum/uplink_item/device_tools/jammer
name = "Radio Jammer"
desc = "When turned on this device will scramble any outgoing radio communications near you, making them hard to understand."
reference = "RJ"
item = /obj/item/jammer
cost = 20
////////////////////////////////////////
// MARK: SPACE SUITS AND HARDSUITS
////////////////////////////////////////
/datum/uplink_item/suits
category = "Space Suits and MODsuits"
surplus = 10 //I am setting this to 10 as there are a bunch of modsuit parts in here that should be weighted to 10. Suits and modsuits adjusted below.
@@ -712,73 +790,9 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
cost = 10
surplus = 10
/datum/uplink_item/device_tools/binary
name = "Binary Translator Key"
desc = "A key, that when inserted into a radio headset, allows you to listen to and talk with artificial intelligences and cybernetic organisms in binary. To talk on the binary channel, type :+ before your radio message."
reference = "BITK"
item = /obj/item/encryptionkey/binary
cost = 25
surplus = 75
/datum/uplink_item/device_tools/cipherkey
name = "Syndicate Encryption Key"
desc = "A key, that when inserted into a radio headset, allows you to listen to all station department channels as well as talk on an encrypted Syndicate channel."
reference = "SEK"
item = /obj/item/encryptionkey/syndicate
cost = 10 //Nowhere near as useful as the Binary Key!
surplus = 75
/datum/uplink_item/device_tools/hacked_module
name = "Hacked AI Upload Module"
desc = "When used with an upload console, this module allows you to upload priority laws to an artificial intelligence. Be careful with their wording, as artificial intelligences may look for loopholes to exploit."
reference = "HAI"
item = /obj/item/aiModule/syndicate
cost = 15
/datum/uplink_item/device_tools/powersink
name = "Power Sink"
desc = "When screwed to wiring attached to an electric grid, then activated, this large device places excessive load on the grid, causing a stationwide blackout. The sink cannot be carried because of its excessive size. Ordering this sends you a small beacon that will teleport the power sink to your location on activation."
reference = "PS"
item = /obj/item/radio/beacon/syndicate/power_sink
cost = 50
/datum/uplink_item/device_tools/singularity_beacon
name = "Power Beacon"
desc = "When screwed to wiring attached to an electric grid and activated, this large device pulls any \
active gravitational singularities. This will not work when the engine is still \
in containment. Because of its size, it cannot be carried. Ordering this \
sends you a small beacon that will teleport the larger beacon to your location upon activation."
reference = "SNGB"
item = /obj/item/radio/beacon/syndicate
cost = 10
surplus = 0
hijack_only = TRUE //This is an item only useful for a hijack traitor, as such, it should only be available in those scenarios.
can_discount = FALSE
/datum/uplink_item/device_tools/advpinpointer
name = "Advanced Pinpointer"
desc = "A pinpointer that tracks any specified coordinates, DNA string, high value item or the nuclear authentication disk."
reference = "ADVP"
item = /obj/item/pinpointer/advpinpointer
cost = 10
can_discount = FALSE
/datum/uplink_item/device_tools/ai_detector
name = "Artificial Intelligence Detector" // changed name in case newfriends thought it detected disguised ai's
desc = "A functional multitool that turns red when it detects an artificial intelligence watching it or its holder. Knowing when an artificial intelligence is watching you is useful for knowing when to maintain cover."
reference = "AID"
item = /obj/item/multitool/ai_detect
cost = 5
/datum/uplink_item/device_tools/jammer
name = "Radio Jammer"
desc = "When turned on this device will scramble any outgoing radio communications near you, making them hard to understand."
reference = "RJ"
item = /obj/item/jammer
cost = 20
// IMPLANTS
////////////////////////////////////////
// MARK: IMPLANTS
////////////////////////////////////////
/datum/uplink_item/bio_chips
category = "Bio-chips"
@@ -841,7 +855,9 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
item = /obj/item/bio_chip_implanter/stealth
cost = 45
// CYBERNETICS
////////////////////////////////////////
// MARK: CYBERNETICS
////////////////////////////////////////
/datum/uplink_item/cyber_implants
category = "Cybernetic Implants"
@@ -874,7 +890,9 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
cost = 20
// POINTLESS BADASSERY
////////////////////////////////////////
// MARK: POINTLESS BADASSERY
////////////////////////////////////////
/datum/uplink_item/badass
category = "(Pointless) Badassery"
@@ -924,6 +942,10 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
item = /obj/item/clothing/suit/storage/iaa/blackjacket/armored
cost = 3
////////////////////////////////////////
// MARK: BUNDLES AND TELECRYSTALS
////////////////////////////////////////
/datum/uplink_item/bundles_TC
category = "Bundles and Telecrystals"
surplus = 0
+39 -18
View File
@@ -1,6 +1,8 @@
// NUCLEAR AGENT ONLY GEAR
// DANGEROUS WEAPONS
////////////////////////////////////////
// MARK: DANGEROUS WEAPONS
////////////////////////////////////////
/datum/uplink_item/dangerous/aps
name = "Stechkin APS Pistol"
@@ -89,7 +91,9 @@
uplinktypes = list(UPLINK_TYPE_NUCLEAR, UPLINK_TYPE_SST)
surplus = 0
// SUPPORT AND MECHAS
////////////////////////////////////////
// MARK: SUPPORT AND MECHAS
////////////////////////////////////////
/datum/uplink_item/support
category = "Support and Mechanized Exosuits"
@@ -150,7 +154,9 @@
refund_path = /obj/item/antag_spawner/nuke_ops/borg_tele/saboteur
cost = 125
// AMMUNITION
////////////////////////////////////////
// MARK: AMMUNITION
////////////////////////////////////////
/datum/uplink_item/ammo/aps
name = "Stechkin APS - 10mm Magazine"
@@ -337,9 +343,9 @@
uplinktypes = list(UPLINK_TYPE_NUCLEAR, UPLINK_TYPE_SST)
surplus = 0
// STEALTHY WEAPONS
// EXPLOSIVES
////////////////////////////////////////
// MARK: EXPLOSIVES
////////////////////////////////////////
/datum/uplink_item/explosives/c4bag
name = "Bag of C-4 explosives"
@@ -387,7 +393,15 @@
uplinktypes = list(UPLINK_TYPE_NUCLEAR, UPLINK_TYPE_SST)
surplus = 35
// STEALTHY TOOLS
////////////////////////////////////////
// MARK: STEALTHY WEAPONS
////////////////////////////////////////
// There's no nukie only stealthy weapons right now, but if you want to add one, put it here.
////////////////////////////////////////
// MARK: STEALTHY TOOLS
////////////////////////////////////////
/datum/uplink_item/stealthy_tools/clownkit
name = "Honk Brand Infiltration Kit"
@@ -398,7 +412,9 @@
uplinktypes = list(UPLINK_TYPE_NUCLEAR, UPLINK_TYPE_SST)
surplus = 0
// DEVICES AND TOOLS
////////////////////////////////////////
// MARK: DEVICES AND TOOLS
////////////////////////////////////////
/datum/uplink_item/device_tools/diamond_drill
name = "Amplifying Diamond Tipped Thermal Safe Drill"
@@ -486,7 +502,9 @@
cost = 75
uplinktypes = list(UPLINK_TYPE_NUCLEAR, UPLINK_TYPE_SST)
// SPACE SUITS
////////////////////////////////////////
// MARK: SPACE SUITS
////////////////////////////////////////
/datum/uplink_item/suits/elite_nukie
name = "Elite Syndicate MODsuit"
@@ -509,7 +527,9 @@
excludefrom = list()
uplinktypes = list(UPLINK_TYPE_NUCLEAR, UPLINK_TYPE_SST)
// IMPLANTS
////////////////////////////////////////
// MARK: IMPLANTS
////////////////////////////////////////
/datum/uplink_item/bio_chips/krav_implant
name = "Krav Maga Implant"
@@ -582,7 +602,9 @@
surplus = 0
uplinktypes = list(UPLINK_TYPE_NUCLEAR, UPLINK_TYPE_SST)
// BUNDLES
////////////////////////////////////////
// MARK: BUNDLES
////////////////////////////////////////
/datum/uplink_item/bundles_TC/bulldog
name = "Bulldog Bundle"
@@ -628,10 +650,9 @@
cost = 90 // normally 115
uplinktypes = list(UPLINK_TYPE_NUCLEAR, UPLINK_TYPE_SST)
// ---------------------------------
// PRICES OVERRIDE FOR TRAITOR ITEMS
// ---------------------------------
////////////////////////////////////////
// MARK: PRICES OVERRIDE FOR TRAITOR ITEMS
////////////////////////////////////////
/datum/uplink_item/stealthy_weapons/cqc/nuke
reference = "NCQC"
@@ -679,9 +700,9 @@
excludefrom = list()
uplinktypes = list(UPLINK_TYPE_NUCLEAR, UPLINK_TYPE_SST)
// ---------------------------------
// NUKIE ONLY POINTLESS BADASSERY
// ---------------------------------
////////////////////////////////////////
// MARK: NUKIE ONLY POINTLESS BADASSERY
////////////////////////////////////////
/datum/uplink_item/badass/confettidrum
name = "Bulldog - 12g party Magazine"