[MIRROR] Rebalances some things about progression traitors and adds some uplink items. [MDB IGNORE] (#11178)

* Rebalances some things about progression traitors and adds some uplink items.

* Rebalances some things about progression traitors and adds some uplink items.

Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
This commit is contained in:
SkyratBot
2022-02-01 16:02:13 +01:00
committed by GitHub
parent 9486a24081
commit b5a3b3308d
15 changed files with 120 additions and 41 deletions
@@ -21,9 +21,8 @@
progression_minimum = 30 MINUTES
//this is a prototype so this progression is for all basic level kill objectives
progression_reward = list(5 MINUTES, 7 MINUTES)
telecrystal_reward = list(2, 4)
progression_reward = 2 MINUTES
telecrystal_reward = list(1, 2)
// The code below is for limiting how often you can get this objective. You will get this objective at a maximum of maximum_objectives_in_period every objective_period
/// The objective period at which we consider if it is an 'objective'. Set to 0 to accept all objectives.
@@ -52,8 +51,8 @@
var/obj/item/paper/calling_card/card
/datum/traitor_objective/assassinate/calling_card/heads_of_staff
progression_reward = list(7 MINUTES, 10 MINUTES)
telecrystal_reward = list(4, 8)
progression_reward = 4 MINUTES
telecrystal_reward = list(3, 4)
heads_of_staff = TRUE
@@ -67,8 +66,8 @@
var/obj/item/bodypart/head/behead_goal
/datum/traitor_objective/assassinate/behead/heads_of_staff
progression_reward = list(7 MINUTES, 15 MINUTES)
telecrystal_reward = list(4, 8)
progression_reward = 4 MINUTES
telecrystal_reward = list(3, 4)
heads_of_staff = TRUE
@@ -4,7 +4,7 @@
progression_minimum = 20 MINUTES
progression_reward = 5 MINUTES
telecrystal_reward = list(2, 4)
telecrystal_reward = 0
var/list/possible_items = list()
/// The current target item that we are stealing.
@@ -20,7 +20,7 @@
progression_minimum = 10 MINUTES
progression_maximum = 35 MINUTES
progression_reward = list(5 MINUTES, 10 MINUTES)
telecrystal_reward = list(2, 4)
telecrystal_reward = 1
possible_items = list(
/datum/objective_item/steal/low_risk/bartender_shotgun,
@@ -31,7 +31,7 @@
/datum/traitor_objective/destroy_item/very_risky
progression_minimum = 40 MINUTES
progression_reward = 15 MINUTES
telecrystal_reward = list(4, 6)
telecrystal_reward = 3
possible_items = list(
/datum/objective_item/steal/blackbox,
@@ -9,6 +9,8 @@
/// Checks whether we have sent the card to the traitor yet.
var/sent_accesscard = FALSE
/// Battlecruiser team that we get assigned to
var/datum/team/battlecruiser/team
/datum/traitor_objective/final/battlecruiser/generate_objective(datum/mind/generating_for, list/possible_duplicates)
if(!can_take_final_objective())
@@ -25,6 +27,17 @@
return TRUE
/datum/traitor_objective/final/battlecruiser/on_objective_taken(mob/user)
. = ..()
team = new()
var/obj/machinery/nuclearbomb/selfdestruct/nuke = locate() in GLOB.nuke_list
if(nuke.r_code == "ADMIN")
nuke.r_code = random_nukecode()
team.nuke = nuke
team.update_objectives()
handler.owner.add_antag_datum(/datum/antagonist/battlecruiser/ally, team)
/datum/traitor_objective/final/battlecruiser/generate_ui_buttons(mob/user)
var/list/buttons = list()
if(!sent_accesscard)
@@ -38,10 +51,12 @@
if(sent_accesscard)
return
sent_accesscard = TRUE
var/obj/item/card/emag/battlecruiser/emag_card = new()
emag_card.team = team
podspawn(list(
"target" = get_turf(user),
"style" = STYLE_SYNDICATE,
"spawn" = /obj/item/card/emag/battlecruiser,
"spawn" = emag_card,
))
#undef MIN_GHOSTS_FOR_BATTLECRUISER
@@ -11,7 +11,7 @@
/datum/traitor_objective/kill_pet
name = "Kill the %DEPARTMENT HEAD%'s beloved %PET%"
description = "The %DEPARTMENT HEAD% has particularly annoyed us by sending us spam emails and we want their %PET% dead to show them what happens when they cross us. "
telecrystal_reward = list(1, 3)
telecrystal_reward = list(1, 2)
progression_reward = list(3 MINUTES, 6 MINUTES)
@@ -40,7 +40,7 @@
/datum/traitor_objective/kill_pet/high_risk
progression_minimum = 25 MINUTES
progression_reward = list(14 MINUTES, 18 MINUTES)
telecrystal_reward = list(3, 5)
telecrystal_reward = list(2, 3)
limited_to_department_head = FALSE
possible_heads = list(
@@ -51,7 +51,7 @@ GLOBAL_DATUM_INIT(steal_item_handler, /datum/objective_item_handler, new())
progression_minimum = 20 MINUTES
progression_reward = 5 MINUTES
telecrystal_reward = list(2, 4)
telecrystal_reward = 0
var/list/possible_items = list()
/// The current target item that we are stealing.
@@ -76,7 +76,7 @@ GLOBAL_DATUM_INIT(steal_item_handler, /datum/objective_item_handler, new())
progression_maximum = 20 MINUTES
progression_reward = list(5 MINUTES, 10 MINUTES)
telecrystal_reward = 2
telecrystal_reward = 0
possible_items = list(
/datum/objective_item/steal/low_risk/techboard/borgupload,
/datum/objective_item/steal/low_risk/techboard/aiupload,
@@ -87,7 +87,7 @@ GLOBAL_DATUM_INIT(steal_item_handler, /datum/objective_item_handler, new())
progression_minimum = 10 MINUTES
progression_maximum = 35 MINUTES
progression_reward = list(5 MINUTES, 10 MINUTES)
telecrystal_reward = 2
telecrystal_reward = 0
possible_items = list(
/datum/objective_item/steal/low_risk/cargo_budget,
@@ -97,7 +97,7 @@ GLOBAL_DATUM_INIT(steal_item_handler, /datum/objective_item_handler, new())
/datum/traitor_objective/steal_item/somewhat_risky
progression_minimum = 20 MINUTES
progression_reward = 5 MINUTES
telecrystal_reward = list(2, 3)
telecrystal_reward = 1
possible_items = list(
/datum/objective_item/steal/magboots,
@@ -110,7 +110,7 @@ GLOBAL_DATUM_INIT(steal_item_handler, /datum/objective_item_handler, new())
/datum/traitor_objective/steal_item/risky
progression_minimum = 30 MINUTES
progression_reward = 13 MINUTES
telecrystal_reward = list(3, 5)
telecrystal_reward = 2
possible_items = list(
/datum/objective_item/steal/reflector,
@@ -122,7 +122,7 @@ GLOBAL_DATUM_INIT(steal_item_handler, /datum/objective_item_handler, new())
/datum/traitor_objective/steal_item/very_risky
progression_minimum = 40 MINUTES
progression_reward = 17 MINUTES
telecrystal_reward = list(4, 7)
telecrystal_reward = 3
possible_items = list(
/datum/objective_item/steal/hoslaser,
@@ -134,7 +134,7 @@ GLOBAL_DATUM_INIT(steal_item_handler, /datum/objective_item_handler, new())
/datum/traitor_objective/steal_item/most_risky
progression_minimum = 50 MINUTES
progression_reward = 25 MINUTES
telecrystal_reward = list(8, 12)
telecrystal_reward = 5
possible_items = list(
/datum/objective_item/steal/nukedisc,
@@ -65,7 +65,8 @@
if(length(to_purchase.restricted_species) && !(assigned_species in to_purchase.restricted_species))
return FALSE
var/stock = item_stock[to_purchase] || INFINITY
var/current_stock = item_stock[to_purchase]
var/stock = current_stock != null? current_stock : INFINITY
if(telecrystals < to_purchase.cost || stock <= 0 || (has_progression && progression_points < to_purchase.progression_minimum))
return FALSE
@@ -75,13 +76,13 @@
if(!can_purchase_item(user, to_purchase))
return
if(to_purchase.limited_stock != -1 && !(to_purchase.type in item_stock))
if(to_purchase.limited_stock != -1 && !(to_purchase in item_stock))
item_stock[to_purchase] = to_purchase.limited_stock
telecrystals -= to_purchase.cost
to_purchase.purchase(user, src)
if(to_purchase.type in item_stock)
if(to_purchase in item_stock)
item_stock[to_purchase] -= 1
SSblackbox.record_feedback("nested tally", "traitor_uplink_items_bought", 1, list("[initial(to_purchase.name)]", "[to_purchase.cost]"))
@@ -154,6 +154,10 @@
to_chat(owner, span_big("You are a [name]!"))
owner.announce_objectives()
/datum/antagonist/battlecruiser/ally
name = "Battlecruiser Ally"
show_to_ghosts = FALSE
/datum/antagonist/battlecruiser/captain
name = "Battlecruiser Captain"
antag_hud_name = "battlecruiser_lead"
@@ -139,7 +139,7 @@
* Summons the SBC Starfury, a large syndicate battlecruiser, in Deep Space.
* It can be piloted into the station's area.
*/
/proc/summon_battlecruiser()
/proc/summon_battlecruiser(datum/team/battlecruiser/team)
var/list/candidates = poll_ghost_candidates("Do you wish to be considered for battlecruiser crew?", ROLE_TRAITOR)
shuffle_inplace(candidates)
@@ -158,12 +158,13 @@
if(!ship.load(battlecruiser_loading_turf))
CRASH("Loading battlecruiser ship failed!")
var/datum/team/battlecruiser/team = new()
var/obj/machinery/nuclearbomb/selfdestruct/nuke = locate() in GLOB.nuke_list
if(nuke.r_code == "ADMIN")
nuke.r_code = random_nukecode()
team.nuke = nuke
team.update_objectives()
if(!team)
team = new()
var/obj/machinery/nuclearbomb/selfdestruct/nuke = locate() in GLOB.nuke_list
if(nuke.r_code == "ADMIN")
nuke.r_code = random_nukecode()
team.nuke = nuke
team.update_objectives()
for(var/turf/open/spawned_turf as anything in ship.get_affected_turfs(battlecruiser_loading_turf)) //not as anything to filter out closed turfs
for(var/obj/effect/mob_spawn/ghost_role/human/syndicate/battlecruiser/spawner in spawned_turf)
@@ -626,13 +626,6 @@
cost = 15
purchasable_from = UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS
/datum/uplink_item/suits/noslip
name = "MODsuit Anti-Slip Module"
desc = "A MODsuit module preventing the user from slipping on water."
item = /obj/item/mod/module/noslip
cost = 4
purchasable_from = UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS
/datum/uplink_item/suits/paint
name = "MODsuit Funny Paint Kit"
desc = "A highly advanced piece of technology that will change the theme \
@@ -92,3 +92,37 @@
item = /obj/item/clothing/shoes/chameleon/noslip
cost = 2
purchasable_from = ~(UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS)
// High progression cost
/datum/uplink_item/stealthy_tools/telecomm_blackout
name = "Disable Telecomms"
desc = "When purchased, a virus will be uploaded to the telecommunication processing servers to temporarily disable themselves."
item = /obj/effect/gibspawner/generic
surplus = 0
progression_minimum = 30 MINUTES
limited_stock = 1
cost = 4
restricted = TRUE
purchasable_from = ~(UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS)
/datum/uplink_item/stealthy_tools/telecomm_blackout/spawn_item(spawn_path, mob/user, datum/uplink_handler/uplink_handler, atom/movable/source)
var/datum/round_event_control/event = locate(/datum/round_event_control/communications_blackout) in SSevents.control
event.runEvent()
return source //For log icon
/datum/uplink_item/stealthy_tools/blackout
name = "Trigger Stationwide Blackout"
desc = "When purchased, a virus will be uploaded to the engineering processing servers to force a routine power grid check, forcing all APCs on the station to be temporarily disabled."
item = /obj/effect/gibspawner/generic
surplus = 0
progression_minimum = 40 MINUTES
limited_stock = 1
cost = 6
restricted = TRUE
purchasable_from = ~(UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS)
/datum/uplink_item/stealthy_tools/blackout/spawn_item(spawn_path, mob/user, datum/uplink_handler/uplink_handler, atom/movable/source)
var/datum/round_event_control/event = locate(/datum/round_event_control/grid_check) in SSevents.control
event.runEvent()
return source //For log icon
+19
View File
@@ -49,3 +49,22 @@
item = /obj/item/mod/module/visor/night
progression_minimum = 20 MINUTES
cost = 2
// Very high progression cost
/datum/uplink_item/suits/modsuit/elite_traitor
name = "Elite Syndicate MODsuit"
desc = "An upgraded, elite version of the Syndicate MODsuit. It features fireproofing, and also \
provides the user with superior armor and mobility compared to the standard Syndicate MODsuit."
item = /obj/item/mod/control/pre_equipped/elite
// This one costs more than the nuke op counterpart
purchasable_from = ~(UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS)
progression_minimum = 90 MINUTES
cost = 16
/datum/uplink_item/suits/noslip
name = "MODsuit Anti-Slip Module"
desc = "A MODsuit module preventing the user from slipping on water."
item = /obj/item/mod/module/noslip
progression_minimum = 90 MINUTES
cost = 4