From 0a996b6491026d633657ad60f7c6c97b47fa6b6f Mon Sep 17 00:00:00 2001 From: ynot01 Date: Thu, 18 Aug 2022 00:15:57 -0400 Subject: [PATCH 01/42] ERT uplink init --- code/datums/components/uplink.dm | 19 +- code/datums/ert.dm | 7 + code/game/objects/items/stacks/bscrystal.dm | 39 +++ code/modules/admin/topic.dm | 8 + code/modules/admin/verbs/one_click_antag.dm | 117 +++++++ code/modules/antagonists/ert/ert.dm | 6 + code/modules/clothing/outfits/ert.dm | 6 + code/modules/uplink/uplink_devices.dm | 47 +++ code/modules/uplink/uplink_items.dm | 335 +++++++++++++++++++- tgui/packages/tgui/interfaces/NTUplink.js | 21 ++ 10 files changed, 599 insertions(+), 6 deletions(-) create mode 100644 tgui/packages/tgui/interfaces/NTUplink.js diff --git a/code/datums/components/uplink.dm b/code/datums/components/uplink.dm index 62fbf027507e..9e999e037893 100644 --- a/code/datums/components/uplink.dm +++ b/code/datums/components/uplink.dm @@ -12,6 +12,8 @@ GLOBAL_LIST_EMPTY(uplinks) /datum/component/uplink dupe_mode = COMPONENT_DUPE_UNIQUE var/name = "syndicate uplink" + var/js_ui = "Uplink" + var/obj/item/stack/currency = /obj/item/stack/telecrystal var/active = FALSE var/lockable = TRUE var/locked = TRUE @@ -53,7 +55,7 @@ GLOBAL_LIST_EMPTY(uplinks) RegisterSignal(parent, COMSIG_PEN_ROTATED, .proc/pen_rotation) GLOB.uplinks += src - uplink_items = get_uplink_items(_gamemode, TRUE, allow_restricted) + uplink_items = get_uplink_items(_gamemode, TRUE, allow_restricted, js_ui) if(_owner) owner = _owner @@ -87,7 +89,7 @@ GLOBAL_LIST_EMPTY(uplinks) purchase_log = null return ..() -/datum/component/uplink/proc/LoadTC(mob/user, obj/item/stack/telecrystal/TC, silent = FALSE) +/datum/component/uplink/proc/LoadTC(mob/user, obj/item/stack/TC, silent = FALSE) if(!silent) to_chat(user, span_notice("You slot [TC] into [parent] and charge its internal uplink.")) var/amt = TC.amount @@ -96,12 +98,12 @@ GLOBAL_LIST_EMPTY(uplinks) /datum/component/uplink/proc/set_gamemode(_gamemode) gamemode = _gamemode - uplink_items = get_uplink_items(gamemode, TRUE, allow_restricted) + uplink_items = get_uplink_items(gamemode, TRUE, allow_restricted, js_ui) /datum/component/uplink/proc/OnAttackBy(datum/source, obj/item/I, mob/user) if(!active) return //no hitting everyone/everything just to try to slot tcs in! - if(istype(I, /obj/item/stack/telecrystal)) + if(istype(I, currency)) LoadTC(user, I) return var/datum/component/refundable/R = I.GetComponent(/datum/component/refundable) @@ -129,7 +131,7 @@ GLOBAL_LIST_EMPTY(uplinks) active = TRUE ui = SStgui.try_update_ui(user, src, ui) if(!ui) - ui = new(user, src, "Uplink", name) + ui = new(user, src, js_ui, name) // This UI is only ever opened by one person, // and never is updated outside of user input. ui.set_autoupdate(FALSE) @@ -331,3 +333,10 @@ GLOBAL_LIST_EMPTY(uplinks) return explosion(T,1,2,3) qdel(parent) //Alternatively could brick the uplink. + + +/// NT Uplink +/datum/component/uplink/nanotrasen + name = "nanotrasen uplink" + js_ui = "NTUplink" + currency = /obj/item/stack/ore/bluespace_crystal/refined/nt diff --git a/code/datums/ert.dm b/code/datums/ert.dm index 80128ba03e36..aa9a9f855e53 100644 --- a/code/datums/ert.dm +++ b/code/datums/ert.dm @@ -11,6 +11,7 @@ var/mission = "Assist the station." var/teamsize = 5 var/polldesc + var/obj/item/uplinktype /datum/ert/New() if (!polldesc) @@ -109,6 +110,12 @@ rename_team = "CentCom Grand Admirals" polldesc = "a CentCom Grand Admiral" +/datum/ert/uplinked + leader_role = /datum/antagonist/ert/common/leader + roles = list(/datum/antagonist/ert/common) + rename_team = "Uplinked Emergency Response Team" + polldesc = "an Uplink-Equipped ERT" + /datum/ert/inquisition roles = list(/datum/antagonist/ert/chaplain/inquisitor, /datum/antagonist/ert/security/inquisitor, /datum/antagonist/ert/medic/inquisitor) leader_role = /datum/antagonist/ert/commander/inquisitor diff --git a/code/game/objects/items/stacks/bscrystal.dm b/code/game/objects/items/stacks/bscrystal.dm index bf942bb8e7e7..264b82e18de0 100644 --- a/code/game/objects/items/stacks/bscrystal.dm +++ b/code/game/objects/items/stacks/bscrystal.dm @@ -18,6 +18,45 @@ points = 0 refined_type = null +/obj/item/stack/ore/bluespace_crystal/refined/nt // NT's telecrystal + name = "warpcrystal" + desc = "The culmination of Nanotrasen's sacrifices in pursuing technological advancement. Highly top-secret." + materials = list(/datum/material/bluespace=MINERAL_MATERIAL_AMOUNT*2.5) // more potent + +/obj/item/stack/ore/bluespace_crystal/refined/nt/five + amount = 5 + +/obj/item/stack/ore/bluespace_crystal/refined/nt/twenty + amount = 20 + +/obj/item/stack/ore/bluespace_crystal/refined/nt/attack_self(mob/user) + if(!isliving(user)) + return + + var/mob/living/L = user + + var/turf/destination = get_teleport_loc(loc, L, rand(3,6)) // Gets 3-6 tiles in the user's direction + + if(!istype(destination)) + return + + L.visible_message(span_warning("[L] crushes [src]!"), span_danger("You crush [src]!")) + new /obj/effect/particle_effect/sparks(loc) + playsound(loc, "sparks", 50, 1) + + if(!do_teleport(L, destination, asoundin = 'sound/effects/phasein.ogg', channel = TELEPORT_CHANNEL_BLUESPACE)) + L.visible_message(span_warning("[src] refuses to be crushed by [L]! There must be something interfering!"), span_danger("[src] suddenly hardens in your hand! There must be something interfering!")) + return + + // Throws you one additional tile, giving it that cool "exit portal" effect and also throwing people very far if they are in space + L.throw_at(get_edge_target_turf(L, L.dir), 1, 3, spin = FALSE, diagonals_first = TRUE) + if(iscarbon(L)) + var/mob/living/carbon/C = L + // Half as debilitating than a bluespace crystal, as this is a precious resource you're using + C.adjust_disgust(15) + + use(1) + /obj/item/stack/ore/bluespace_crystal/Initialize() . = ..() pixel_x = rand(-5, 5) diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index 781db60b883d..ed38f586e464 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -175,6 +175,14 @@ else message_admins("[key_name_admin(usr)] tried to create a CentCom response team. Unfortunately, there were not enough candidates available.") log_admin("[key_name(usr)] failed to create a CentCom response team.") + if("centcom_custom") + message_admins("[key_name(usr)] is creating a Uplinked CentCom response team...") + if(src.makeUplinkEmergencyResponseTeam()) + message_admins("[key_name(usr)] created a Uplinked CentCom response team.") + log_admin("[key_name(usr)] created a Uplinked CentCom response team.") + else + message_admins("[key_name_admin(usr)] tried to create a Uplinked CentCom response team. Unfortunately, there were not enough candidates available.") + log_admin("[key_name(usr)] failed to create a Uplinked CentCom response team.") if("abductors") message_admins("[key_name(usr)] is creating an abductor team...") if(src.makeAbductorTeam()) diff --git a/code/modules/admin/verbs/one_click_antag.dm b/code/modules/admin/verbs/one_click_antag.dm index 331038f8d858..8c0f779cfbb1 100644 --- a/code/modules/admin/verbs/one_click_antag.dm +++ b/code/modules/admin/verbs/one_click_antag.dm @@ -20,6 +20,7 @@ Make Blob
Make Wizard (Requires Ghosts)
Make Nuke Team (Requires Ghosts)
+ Make Uplink CentCom Response Team (Requires Ghosts)
Make CentCom Response Team (Requires Ghosts)
Make Abductor Team (Requires Ghosts)
Make Revenant (Requires Ghost)
@@ -491,6 +492,122 @@ return +// Uplink-equipped Centcom Response Team +/datum/admins/proc/makeUplinkEmergencyResponseTeam(var/datum/ert/ertemplate = null) + if (ertemplate) + ertemplate = new ertemplate + else + ertemplate = new /datum/ert/uplinked + + var/list/settings = list( + "preview_callback" = CALLBACK(src, .proc/makeERTPreviewIcon), + "mainsettings" = list( + "template" = list("desc" = "Template", "type" = "datum", "path" = "/datum/ert/uplinked", "value" = "/datum/ert/uplinked"), + "uplink" = list("desc" = "Uplink Type", "type" = "datum", "path" = "/obj/item/ntuplink", "subtypesonly" = TRUE, "value" = ertemplate.uplinktype), + "teamsize" = list("desc" = "Team Size", "type" = "number", "value" = ertemplate.teamsize), + "mission" = list("desc" = "Mission", "type" = "string", "value" = ertemplate.mission), + "polldesc" = list("desc" = "Ghost poll description", "type" = "string", "value" = ertemplate.polldesc), + "enforce_human" = list("desc" = "Enforce human authority", "type" = "boolean", "value" = "[(CONFIG_GET(flag/enforce_human_authority) ? "Yes" : "No")]"), + "open_armory" = list("desc" = "Open armory doors", "type" = "boolean", "value" = "[(ertemplate.opendoors ? "Yes" : "No")]"), + "open_mechbay" = list("desc" = "Open Mech Bay", "type" = "boolean", "value" = "[(ertemplate.openmech ? "Yes" : "No")]"), + ) + ) + + var/list/prefreturn = presentpreflikepicker(usr,"Customize ERT", "Customize ERT", Button1="Ok", width = 600, StealFocus = 1,Timeout = 0, settings=settings) + + if (isnull(prefreturn)) + return FALSE + + if (prefreturn["button"] == 1) + var/list/prefs = settings["mainsettings"] + + ertemplate.uplinktype = prefs["uplink"]["value"] + ertemplate.teamsize = prefs["teamsize"]["value"] + ertemplate.mission = prefs["mission"]["value"] + ertemplate.polldesc = prefs["polldesc"]["value"] + ertemplate.enforce_human = prefs["enforce_human"]["value"] == "Yes" ? TRUE : FALSE + ertemplate.opendoors = prefs["open_armory"]["value"] == "Yes" ? TRUE : FALSE + ertemplate.openmech = prefs["open_mechbay"]["value"] == "Yes" ? TRUE : FALSE + + var/list/mob/dead/observer/candidates = pollGhostCandidates("Do you wish to be considered for [ertemplate.polldesc] ?", "deathsquad", null) + var/teamSpawned = FALSE + + if(candidates.len > 0) + //Pick the (un)lucky players + var/numagents = min(ertemplate.teamsize,candidates.len) + + //Create team + var/datum/team/ert/ert_team = new ertemplate.team + if(ertemplate.rename_team) + ert_team.name = ertemplate.rename_team + + //Asign team objective + var/datum/objective/missionobj = new + missionobj.team = ert_team + missionobj.explanation_text = ertemplate.mission + missionobj.completed = TRUE + ert_team.objectives += missionobj + ert_team.mission = missionobj + + var/list/spawnpoints = GLOB.emergencyresponseteamspawn + while(numagents && candidates.len) + if (numagents > spawnpoints.len) + numagents-- + continue // This guy's unlucky, not enough spawn points, we skip him. + var/spawnloc = spawnpoints[numagents] + var/mob/dead/observer/chosen_candidate = pick(candidates) + candidates -= chosen_candidate + if(!chosen_candidate.key) + continue + + //Spawn the body + var/mob/living/carbon/human/ERTOperative = new ertemplate.mobtype(spawnloc) + chosen_candidate.client.prefs.copy_to(ERTOperative) + ERTOperative.key = chosen_candidate.key + + if(ertemplate.enforce_human || !(ERTOperative.dna.species.changesource_flags & ERT_SPAWN)) // Don't want any exploding plasmemes + ERTOperative.set_species(/datum/species/human) + + //Give antag datum + var/datum/antagonist/ert/ert_antag + + if(numagents == 1) + ert_antag = new ertemplate.leader_role + else + ert_antag = ertemplate.roles[WRAP(numagents,1,length(ertemplate.roles) + 1)] + ert_antag = new ert_antag + + ERTOperative.mind.add_antag_datum(ert_antag,ert_team) + ERTOperative.mind.assigned_role = ert_antag.name + + // Equip uplink + var/obj/item/upl = new ertemplate.uplinktype + if(istype(upl)) + ERTOperative.equip_to_slot_or_del(upl, SLOT_IN_BACKPACK) + + //Logging and cleanup + //log_game("[key_name(ERTOperative)] has been selected as an [ert_antag.name]") | yogs - redundant + numagents-- + teamSpawned++ + + if (teamSpawned) + message_admins("[ertemplate.polldesc] has spawned with the mission: [ertemplate.mission]") + + //Open the Armory doors + if(ertemplate.opendoors) + for(var/obj/machinery/door/poddoor/ert/door in GLOB.airlocks) + INVOKE_ASYNC(door, /obj/machinery/door/poddoor.proc/open) + + //Open the Mech Bay + if(ertemplate.openmech) + for(var/obj/machinery/door/poddoor/deathsquad/door in GLOB.airlocks) + INVOKE_ASYNC(door, /obj/machinery/door/poddoor.proc/open) + return TRUE + else + return FALSE + + return + //Abductors /datum/admins/proc/makeAbductorTeam() new /datum/round_event/ghost_role/abductor diff --git a/code/modules/antagonists/ert/ert.dm b/code/modules/antagonists/ert/ert.dm index 5688591c3fd7..34ddcdcbc6c9 100644 --- a/code/modules/antagonists/ert/ert.dm +++ b/code/modules/antagonists/ert/ert.dm @@ -64,6 +64,12 @@ /datum/antagonist/ert/medic/red outfit = /datum/outfit/ert/medic/alert +/datum/antagonist/ert/common + outfit = /datum/outfit/ert + +/datum/antagonist/ert/common/leader + role = "ERT Commander" + /datum/antagonist/ert/commander role = "Commander" outfit = /datum/outfit/ert/commander diff --git a/code/modules/clothing/outfits/ert.dm b/code/modules/clothing/outfits/ert.dm index d39cbc6f973a..8ba55810a46a 100644 --- a/code/modules/clothing/outfits/ert.dm +++ b/code/modules/clothing/outfits/ert.dm @@ -1,11 +1,17 @@ /datum/outfit/ert name = "ERT Common" + id = /obj/item/card/id/ert + back = /obj/item/storage/backpack uniform = /obj/item/clothing/under/rank/centcom_officer shoes = /obj/item/clothing/shoes/combat/swat gloves = /obj/item/clothing/gloves/combat ears = /obj/item/radio/headset/headset_cent/alt implants = list(/obj/item/implant/mindshield) + backpack_contents = list( + /obj/item/clothing/mask/gas/sechailer=1, + /obj/item/tank/internals/oxygen/tactical=1 + ) /datum/outfit/ert/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) diff --git a/code/modules/uplink/uplink_devices.dm b/code/modules/uplink/uplink_devices.dm index add2cf4030f9..bfe0bb53f428 100644 --- a/code/modules/uplink/uplink_devices.dm +++ b/code/modules/uplink/uplink_devices.dm @@ -74,3 +74,50 @@ /obj/item/pen/uplink/Initialize(mapload, owner, tc_amount = 20) . = ..() AddComponent(/datum/component/uplink, owner, TRUE, FALSE, null, tc_amount) + +// NT Uplink +/obj/item/ntuplink + name = "\improper nanotrasen uplink" + icon = 'icons/obj/radio.dmi' + icon_state = "radio" + item_state = "walkietalkie" + desc = "A specialized uplink for authorized Nanotrasen use only." + lefthand_file = 'icons/mob/inhands/misc/devices_lefthand.dmi' + righthand_file = 'icons/mob/inhands/misc/devices_righthand.dmi' + dog_fashion = /datum/dog_fashion/back + + flags_1 = CONDUCT_1 + slot_flags = ITEM_SLOT_BELT + throw_speed = 3 + throw_range = 7 + w_class = WEIGHT_CLASS_SMALL + + var/wc_start = 20 // Starting warpcrystal amount + +/obj/item/ntuplink/Initialize(mapload, owner) + . = ..() + AddComponent(/datum/component/uplink/nanotrasen, owner, FALSE, TRUE, null, wc_start) + +/obj/item/ntuplink/official + name = "centcom official uplink" + wc_start = 5 + +/obj/item/ntuplink/amber + name = "amber ERT uplink" + wc_start = 10 + +/obj/item/ntuplink/blue + name = "blue ERT uplink" + wc_start = 20 + +/obj/item/ntuplink/red + name = "red ERT uplink" + wc_start = 30 + +/obj/item/ntuplink/death + name = "deathsquad uplink" + wc_start = 300 + +/obj/item/ntuplink/debug + name = "debug nanotrasen uplink" + wc_start = 9000 diff --git a/code/modules/uplink/uplink_items.dm b/code/modules/uplink/uplink_items.dm index c7d43af1f5ef..5d8373bad482 100644 --- a/code/modules/uplink/uplink_items.dm +++ b/code/modules/uplink/uplink_items.dm @@ -1,6 +1,6 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) -/proc/get_uplink_items(var/datum/game_mode/gamemode = null, allow_sales = TRUE, allow_restricted = TRUE) +/proc/get_uplink_items(var/datum/game_mode/gamemode = null, allow_sales = TRUE, allow_restricted = TRUE, uplink_type = "Uplink") var/list/filtered_uplink_items = list() var/list/sale_items = list() @@ -8,6 +8,8 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) var/datum/uplink_item/I = new path if(!I.item) continue + if(I.include_uplinks.len && !(uplink_type in I.include_uplinks)) + continue if(I.include_modes.len) if(!gamemode && SSticker.mode && !(SSticker.mode.type in I.include_modes)) continue @@ -94,6 +96,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) var/surplus = 100 // Chance of being included in the surplus crate. var/cant_discount = FALSE var/limited_stock = -1 //Setting this above zero limits how many times this item can be bought by the same traitor in a round, -1 is unlimited + var/list/include_uplinks = list("Uplink") // Uplink types this is in var/list/include_modes = list() // Game modes to allow this item in. var/list/exclude_modes = list() // Game modes to disallow this item from. var/list/restricted_roles = list() //If this uplink item is only available to certain roles. Roles are dependent on the frequency chip or stored ID. @@ -2297,3 +2300,333 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) item = /obj/item/stamp/syndiround cost = 1 illegal_tech = FALSE + +/// NT Uplink items +/datum/uplink_item/nt + category = "Warpcrystals" + surplus = 0 // Chance of being included in the surplus crate. + include_uplinks = list("NTUplink") + illegal_tech = FALSE + +/datum/uplink_item/nt/telecrystal + name = "1 Raw Warpcrystal" + desc = "A warpcrystal in its rawest and purest form; can be utilized on active uplinks to increase their warpcrystal count." + item = /obj/item/stack/ore/bluespace_crystal/refined/nt + cost = 1 + purchase_log_vis = FALSE + +/datum/uplink_item/nt/telecrystal/five + name = "5 Raw Warpcrystals" + desc = "Five warpcrystals in their rawest and purest form; can be utilized on active uplinks to increase their warpcrystal count." + item = /obj/item/stack/ore/bluespace_crystal/refined/nt/five + cost = 5 + +/datum/uplink_item/nt/telecrystal/twenty + name = "20 Raw Warpcrystals" + desc = "Twenty warpcrystals in their rawest and purest form; can be utilized on active uplinks to increase their warpcrystal count." + item = /obj/item/stack/ore/bluespace_crystal/refined/nt/twenty + cost = 20 + +/datum/uplink_item/nt/energy_weps + category = "Energy Weapons" + +/datum/uplink_item/nt/energy_weps/egun + name = "Energy Gun" + desc = "A standard energy gun with disable and laser modes equipped." + item = /obj/item/gun/energy/e_gun + cost = 3 + +/datum/uplink_item/nt/energy_weps/tac_egun + name = "Tactical Energy Gun" + desc = "A military-grade augmented energy gun, fitted with a tasing mode." + item = /obj/item/gun/energy/e_gun/stun + cost = 8 + +/datum/uplink_item/nt/energy_weps/m1911 + name = "Spur" + desc = "A legendary slowly self-charging pistol with massive recoil that deals more damage the more charge it has." + item = /obj/item/gun/energy/polarstar/spur + cost = 10 + +/datum/uplink_item/nt/energy_weps/pulsecarbine + name = "Pulse Carbine" + desc = "A severely lethal energy carbine that fires additionaly fires pulse rounds. Must be recharged instead of reloaded." + item = /obj/item/gun/energy/pulse/carbine + cost = 45 + +/datum/uplink_item/nt/energy_weps/pulsepistol + name = "Pulse Pistol" + desc = "A severely lethal but compact version of the Pulse Carbine design. Holds significantly less charge. \ + Must be recharged instead of reloaded." + item = /obj/item/gun/energy/pulse/pistol + cost = 35 + +/datum/uplink_item/nt/energy_weps/pulsedestroyer + name = "Pulse Destroyer" + desc = "LOG-ENTRY ERROR. DEATH. DEATH. DEATH. KILL. DESTROY. NONE LEFT ALIVE." + item = /obj/item/gun/energy/pulse/destroyer + cost = 100 + +/datum/uplink_item/nt/ball_weps + category = "Ballistic Weapons" + +/datum/uplink_item/nt/ball_weps/boarder + name = "NT-ARG 'Boarder'" + desc = "A heavy-damage 3-round burst assault rifle. Chambered in 5.56mm." + item = /obj/item/gun/ballistic/automatic/ar + cost = 18 + +/datum/uplink_item/nt/ball_weps/saber + name = "NT-SABR 'Saber' SMG" + desc = "A low-damage 3-round burst SMG. Chambered in 9mm." + item = /obj/item/gun/ballistic/automatic/proto/unrestricted + cost = 7 + +/datum/uplink_item/nt/ball_weps/tommygun + name = "WT-550 Automatic Rifle" + desc = "A classic 2-round burst rifle with a number of ammo options. Chambered in 4.6x30mm." + item = /obj/item/gun/ballistic/automatic/wt550 + cost = 5 + +/datum/uplink_item/nt/ball_weps/m1911 + name = "M1911" + desc = "A classic .45 sidearm with a small magazine capacity." + item = /obj/item/gun/ballistic/automatic/pistol/m1911 + cost = 3 + +/datum/uplink_item/nt/ball_weps/tommygun + name = "Thompson SMG" + desc = "An archaic but incredibly effective high-capacity 4-round burst SMG. Can't fit in backpacks." + item = /obj/item/gun/ballistic/automatic/tommygun + cost = 12 + +/datum/uplink_item/nt/ammo + category = "Ammunition" + +/datum/uplink_item/nt/ammo/recharger + name = "Weapon Recharger" + desc = "Standard issue energy weapon recharger. Must be anchored in an APC-powered area." + item = /obj/machinery/recharger + cost = 5 + +/datum/uplink_item/nt/ammo/carbine + name = "5.56mm Toploader Magazine" + desc = "An additional 30-round 5.56mm magazine; suitable for use with the NT-ARG." + item = /obj/item/ammo_box/magazine/m556 + cost = 4 + +/datum/uplink_item/nt/ammo/tommyammo + name = ".45 Drum Magazine" + desc = "An additional 50-round .45 drum magazine; suitable for use with the Thompson SMG." + item = /obj/item/ammo_box/magazine/tommygunm45 + cost = 4 + +/datum/uplink_item/nt/ammo/m45ammo + name = ".45 Handgun Magazine" + desc = "An additional 21-round 9mm magazine; suitable for use with the M1911." + item = /obj/item/ammo_box/magazine/m45 + cost = 1 + +/datum/uplink_item/nt/ammo/saberammo + name = "9mm Magazine" + desc = "An additional 21-round 9mm magazine; suitable for use with the Saber SMG." + item = /obj/item/ammo_box/magazine/smgm9mm + cost = 1 + +/datum/uplink_item/nt/ammo/wt + name = "4.6x30mm Magazine" + desc = "An additional 22-round 4.6x30mm magazine; suitable for use with the WT-550." + item = /obj/item/ammo_box/magazine/smgm9mm + cost = 1 + +/datum/uplink_item/nt/ammo/wtap + name = "4.6x30mm AP Magazine" + desc = "An additional 22-round 4.6x30mm magazine loaded with armor piercing rounds; suitable for use with the WT-550." + item = /obj/item/ammo_box/magazine/wt550m9/wtap + cost = 2 + +/datum/uplink_item/nt/ammo/wtic + name = "4.6x30mm Incendiary Magazine" + desc = "An additional 22-round 4.6x30mm magazine loaded with incendiary rounds; suitable for use with the WT-550." + item = /obj/item/ammo_box/magazine/wt550m9/wtic + cost = 2 + +/datum/uplink_item/nt/ammo/wtr + name = "4.6x30mm Rubber Shot Magazine" + desc = "An additional 22-round 4.6x30mm magazine loaded with less lethal rounds; suitable for use with the WT-550." + item = /obj/item/ammo_box/magazine/wt550m9/wtr + cost = 1 + +/datum/uplink_item/nt/cqc + category = "Close Quarters Combat" + +/datum/uplink_item/nt/cqc/esword + name = "Energy Sword" + desc = "The energy sword is an edged weapon with a blade of pure energy. The sword is small enough to be \ + pocketed when inactive." + item = /obj/item/melee/transforming/energy/sword/saber + cost = 8 + +/datum/uplink_item/nt/cqc/sblade + name = "Switchblade" + desc = "A less flashy but surprisingly robust pocket knife." + item = /obj/item/switchblade + cost = 1 + +/datum/uplink_item/nt/cqc/cqc + name = "CQC Manual" + desc = "A manual that teaches a single user tactical Close-Quarters Combat before self-destructing." + item = /obj/item/book/granter/martial/cqc + cost = 13 + +/datum/uplink_item/nt/cqc/stunbaton + name = "Stun Baton" + desc = "A robust charged baton that will swiftly take down most criminals." + item = /obj/item/melee/baton/loaded + cost = 1 + +/datum/uplink_item/nt/cqc/telebaton + name = "Telescopic Baton" + desc = "A foldable baton that doesn't run on charge. Takes more hits to down, but swings faster." + item = /obj/item/melee/classic_baton/telescopic + cost = 1 + +/datum/uplink_item/nt/cqc/flash + name = "Flash" + desc = "A bright flashing device that can disable silicons and blind humans." + item = /obj/item/assembly/flash + cost = 1 + +/datum/uplink_item/nt/support + category = "Support" + +/datum/uplink_item/nt/support/c4 + name = "Composition C-4" + desc = "C-4 is plastic explosive of the common variety Composition C. You can use it to breach walls, disrupt equipment, or connect \ + an assembly to it in order to alter the way it detonates. It can be attached to almost all objects and has a modifiable timer with a \ + minimum setting of 10 seconds." + item = /obj/item/grenade/plastic/c4 + cost = 1 + +/datum/uplink_item/nt/support/medkit + name = "Medic Kit" + desc = "A station-standard medical kit. Stocked with sutures, regenerative mesh, medical gauze, \ + a health analyzer, and an epinephrine pen." + item = /obj/item/storage/firstaid/regular + cost = 1 + +/datum/uplink_item/nt/support/advmedkit + name = "Tactical Combat Medic Kit" + desc = "Included is a combat stimulant injector \ + for rapid healing, a medical night vision HUD for quick identification of injured personnel, \ + and other supplies helpful for a field medic." + item = /obj/item/storage/firstaid/tactical + cost = 4 + +/datum/uplink_item/nt/support/toolbelt + name = "Full Toolbelt" + desc = "Comes pre-stocked with every engineering tool you'll ever need." + item = /obj/item/storage/belt/utility/full/engi + cost = 4 + +/datum/uplink_item/nt/support/rcd + name = "Rapid Construction Device" + desc = "Standard RCD that can repair or destroy structures very quickly. Holds up to 160 matter units." + item = /obj/item/construction/rcd/loaded + cost = 3 + +/datum/uplink_item/nt/support/combatrcd + name = "Industrial RCD" + desc = "Heavy combat RCD that holds up to 500 matter units." + item = /obj/item/construction/rcd/combat + cost = 8 + +/datum/uplink_item/nt/support/rcdammo + name = "Compressed Matter Cartridge" + desc = "Highly compressed matter that restores 160 matter units on an RCD." + item = /obj/item/rcd_ammo + cost = 1 + +/datum/uplink_item/nt/support/foamnades + name = "Box of Smart Metal Foam Grenades" + desc = "A box of 7 smart metal foam grenades to patch hull breaches with." + item = /obj/item/storage/box/smart_metal_foam + cost = 1 + +/datum/uplink_item/nt/hardsuit + category = "Hardsuits" + +/datum/uplink_item/nt/hardsuit/cmd + name = "ERT Commander Hardsuit" + desc = "Show them who's boss." + item = /obj/item/clothing/suit/space/hardsuit/ert + cost = 5 + +/datum/uplink_item/nt/hardsuit/sec + name = "ERT Security Hardsuit" + desc = "Make them fear the long arm of law." + item = /obj/item/clothing/suit/space/hardsuit/ert/sec + cost = 5 + +/datum/uplink_item/nt/hardsuit/engi + name = "ERT Engineering Hardsuit" + desc = "HOW DID YOU DELAMINATE THE SM 5 MINUTES IN?" + item = /obj/item/clothing/suit/space/hardsuit/ert/engi + cost = 5 + +/datum/uplink_item/nt/hardsuit/med + name = "ERT Medical Hardsuit" + desc = "Dying is illegal." + item = /obj/item/clothing/suit/space/hardsuit/ert/med + cost = 5 + +/datum/uplink_item/nt/gear + category = "Other Gear" + +/datum/uplink_item/nt/gear/secbelt + name = "Stocked Security Belt" + desc = "Standard issue security gear, all in a stylish belt." + item = /obj/item/storage/belt/security/full + cost = 2 + +/datum/uplink_item/nt/gear/flashbangs + name = "Box of Flashbangs" + desc = "A box of 7 flashbangs to make the crew hate you." + item = /obj/item/storage/box/flashbangs + cost = 2 + +/datum/uplink_item/nt/gear/handcuffs + name = "Box of Handcuffs" + desc = "A box of 7 pairs of handcuffs to keep prisoners in line." + item = /obj/item/storage/box/handcuffs + cost = 1 + +/datum/uplink_item/nt/gear/sechud + name = "Security HUDglasses" + desc = "A pair of sunglasses fitted with a security HUD." + item = /obj/item/clothing/glasses/hud/security/sunglasses + cost = 1 + +/datum/uplink_item/nt/gear/medhud + name = "Medical HUDglasses" + desc = "A pair of sunglasses fitted with a medical HUD." + item = /obj/item/clothing/glasses/hud/health/sunglasses + cost = 1 + +/datum/uplink_item/nt/gear/mesonhud + name = "Meson Sunglasses" + desc = "A pair of sunglasses fitted with meson technology." + item = /obj/item/clothing/glasses/meson/sunglasses + cost = 1 + +/datum/uplink_item/nt/gear/thermalhud + name = "Optical Thermal Scanner" + desc = "A pair of goggles that provide thermal scanning vision through walls." + item = /obj/item/clothing/glasses/thermal + cost = 4 + +/datum/uplink_item/nt/gear/ntstamp + name = "CentCom Official Stamp" + desc = "To let them know you're the real deal." + item = /obj/item/stamp/cent + cost = 1 diff --git a/tgui/packages/tgui/interfaces/NTUplink.js b/tgui/packages/tgui/interfaces/NTUplink.js new file mode 100644 index 000000000000..e30a083b0562 --- /dev/null +++ b/tgui/packages/tgui/interfaces/NTUplink.js @@ -0,0 +1,21 @@ +import { GenericUplink } from './Uplink'; +import { useBackend } from '../backend'; +import { Window } from '../layouts'; + +export const NTUplink = (props, context) => { + const { data } = useBackend(context); + const { telecrystals } = data; + return ( + + + + + + ); +}; From 277e173726291429086e808c9b9c171c62100ffa Mon Sep 17 00:00:00 2001 From: ynot01 Date: Thu, 18 Aug 2022 00:33:50 -0400 Subject: [PATCH 02/42] add oxy tank to ert backpack --- code/modules/clothing/outfits/ert.dm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/code/modules/clothing/outfits/ert.dm b/code/modules/clothing/outfits/ert.dm index 8ba55810a46a..fdebc2af3265 100644 --- a/code/modules/clothing/outfits/ert.dm +++ b/code/modules/clothing/outfits/ert.dm @@ -10,7 +10,8 @@ implants = list(/obj/item/implant/mindshield) backpack_contents = list( /obj/item/clothing/mask/gas/sechailer=1, - /obj/item/tank/internals/oxygen/tactical=1 + /obj/item/tank/internals/oxygen/tactical=1, + /obj/item/tank/internals/emergency_oxygen/double=1, ) From 37bb4f1b9fe2e3568c05ed2a7fa8c33e5dc6196d Mon Sep 17 00:00:00 2001 From: ynot01 Date: Thu, 18 Aug 2022 00:38:50 -0400 Subject: [PATCH 03/42] add ds hardsuits & fix m1911 mag --- code/modules/uplink/uplink_items.dm | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/code/modules/uplink/uplink_items.dm b/code/modules/uplink/uplink_items.dm index 5d8373bad482..81e2f61fc32a 100644 --- a/code/modules/uplink/uplink_items.dm +++ b/code/modules/uplink/uplink_items.dm @@ -2423,7 +2423,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) /datum/uplink_item/nt/ammo/m45ammo name = ".45 Handgun Magazine" - desc = "An additional 21-round 9mm magazine; suitable for use with the M1911." + desc = "An additional 8-round .45 magazine; suitable for use with the M1911." item = /obj/item/ammo_box/magazine/m45 cost = 1 @@ -2580,6 +2580,25 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) item = /obj/item/clothing/suit/space/hardsuit/ert/med cost = 5 +/datum/uplink_item/nt/hardsuit/med + name = "ERT Medical Hardsuit" + desc = "Dying is illegal." + item = /obj/item/clothing/suit/space/hardsuit/ert/med + cost = 5 + +/datum/uplink_item/nt/hardsuit/ds + name = "MK.III SWAT Suit" + desc = "A prototype hardsuit. Incredibly robust." + item = /obj/item/clothing/suit/space/hardsuit/deathsquad + cost = 100 + +/datum/uplink_item/nt/hardsuit/dsshield + name = "MK.III Shielded SWAT Suit" + desc = "A prototype hardsuit with shielding protection. Incredibly robust." + item = /obj/item/clothing/suit/space/hardsuit/shielded/swat + cost = 150 + + /datum/uplink_item/nt/gear category = "Other Gear" From b3c181a33114c43a9a664dd74240201cf03e4a62 Mon Sep 17 00:00:00 2001 From: ynot01 Date: Thu, 18 Aug 2022 00:43:10 -0400 Subject: [PATCH 04/42] set to just "Commander" --- code/modules/antagonists/ert/ert.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/antagonists/ert/ert.dm b/code/modules/antagonists/ert/ert.dm index 34ddcdcbc6c9..de9aa5220cf0 100644 --- a/code/modules/antagonists/ert/ert.dm +++ b/code/modules/antagonists/ert/ert.dm @@ -68,7 +68,7 @@ outfit = /datum/outfit/ert /datum/antagonist/ert/common/leader - role = "ERT Commander" + role = "Commander" /datum/antagonist/ert/commander role = "Commander" From a382c5c83db9db9e00d42b1513cda86253728fec Mon Sep 17 00:00:00 2001 From: ynot01 Date: Thu, 18 Aug 2022 00:56:57 -0400 Subject: [PATCH 05/42] adds eshield, teleshield, and ds mask to uplink --- code/modules/uplink/uplink_items.dm | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/code/modules/uplink/uplink_items.dm b/code/modules/uplink/uplink_items.dm index 81e2f61fc32a..fc4f88368d0a 100644 --- a/code/modules/uplink/uplink_items.dm +++ b/code/modules/uplink/uplink_items.dm @@ -2467,6 +2467,12 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) item = /obj/item/melee/transforming/energy/sword/saber cost = 8 +/datum/uplink_item/nt/cqc/eshield + name = "Energy Shield" + desc = "A shield that blocks all energy projectiles but is useless against physical attacks." + item = /obj/item/shield/energy + cost = 16 + /datum/uplink_item/nt/cqc/sblade name = "Switchblade" desc = "A less flashy but surprisingly robust pocket knife." @@ -2479,6 +2485,12 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) item = /obj/item/book/granter/martial/cqc cost = 13 +/datum/uplink_item/nt/cqc/teleshield + name = "Telescopic Shield" + desc = "A foldable shield that blocks half of all attacks when active but can break." + item = /obj/item/shield/riot/tele + cost = 3 + /datum/uplink_item/nt/cqc/stunbaton name = "Stun Baton" desc = "A robust charged baton that will swiftly take down most criminals." @@ -2644,6 +2656,14 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) item = /obj/item/clothing/glasses/thermal cost = 4 +/datum/uplink_item/nt/gear/dsmask + name = "MK.II SWAT mask" + desc = "A strange mask that encrypts your voice so that only others wearing the mask can understand you, \ + but you won't be able to understand anyone who isn't wearing the mask. \ + Why would anyone spend this much on a mask?" + item = /obj/item/clothing/mask/gas/sechailer/swat/encrypted + cost = 10 + /datum/uplink_item/nt/gear/ntstamp name = "CentCom Official Stamp" desc = "To let them know you're the real deal." From 2761cded05c3ac423263ccb8653592fd6276f6b9 Mon Sep 17 00:00:00 2001 From: ynot01 Date: Thu, 18 Aug 2022 01:05:59 -0400 Subject: [PATCH 06/42] add medbeam gun, remove duplicate --- code/modules/uplink/uplink_items.dm | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/code/modules/uplink/uplink_items.dm b/code/modules/uplink/uplink_items.dm index fc4f88368d0a..c06653b13850 100644 --- a/code/modules/uplink/uplink_items.dm +++ b/code/modules/uplink/uplink_items.dm @@ -2535,6 +2535,13 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) item = /obj/item/storage/firstaid/tactical cost = 4 +/datum/uplink_item/nt/support/medbeam + name = "Medbeam Gun" + desc = "A wonder of Nanotrasen engineering, the Medbeam gun, or Medi-Gun enables a medic to keep his fellow \ + officers in the fight, even while under fire. Don't cross the streams!" + item = /obj/item/gun/medbeam + cost = 8 + /datum/uplink_item/nt/support/toolbelt name = "Full Toolbelt" desc = "Comes pre-stocked with every engineering tool you'll ever need." @@ -2592,12 +2599,6 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) item = /obj/item/clothing/suit/space/hardsuit/ert/med cost = 5 -/datum/uplink_item/nt/hardsuit/med - name = "ERT Medical Hardsuit" - desc = "Dying is illegal." - item = /obj/item/clothing/suit/space/hardsuit/ert/med - cost = 5 - /datum/uplink_item/nt/hardsuit/ds name = "MK.III SWAT Suit" desc = "A prototype hardsuit. Incredibly robust." From 1b781c92e234e75e101ee0863ef2c18dfffe8531 Mon Sep 17 00:00:00 2001 From: ynot01 Date: Thu, 18 Aug 2022 01:09:23 -0400 Subject: [PATCH 07/42] restrict discounts & limit stock --- code/modules/uplink/uplink_items.dm | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/code/modules/uplink/uplink_items.dm b/code/modules/uplink/uplink_items.dm index c06653b13850..add7ec2025e5 100644 --- a/code/modules/uplink/uplink_items.dm +++ b/code/modules/uplink/uplink_items.dm @@ -2341,6 +2341,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) desc = "A military-grade augmented energy gun, fitted with a tasing mode." item = /obj/item/gun/energy/e_gun/stun cost = 8 + limited_stock = 2 /datum/uplink_item/nt/energy_weps/m1911 name = "Spur" @@ -2353,6 +2354,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) desc = "A severely lethal energy carbine that fires additionaly fires pulse rounds. Must be recharged instead of reloaded." item = /obj/item/gun/energy/pulse/carbine cost = 45 + cant_discount = TRUE /datum/uplink_item/nt/energy_weps/pulsepistol name = "Pulse Pistol" @@ -2360,12 +2362,14 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) Must be recharged instead of reloaded." item = /obj/item/gun/energy/pulse/pistol cost = 35 + cant_discount = TRUE /datum/uplink_item/nt/energy_weps/pulsedestroyer name = "Pulse Destroyer" desc = "LOG-ENTRY ERROR. DEATH. DEATH. DEATH. KILL. DESTROY. NONE LEFT ALIVE." item = /obj/item/gun/energy/pulse/destroyer cost = 100 + cant_discount = TRUE /datum/uplink_item/nt/ball_weps category = "Ballistic Weapons" @@ -2375,6 +2379,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) desc = "A heavy-damage 3-round burst assault rifle. Chambered in 5.56mm." item = /obj/item/gun/ballistic/automatic/ar cost = 18 + limited_stock = 1 /datum/uplink_item/nt/ball_weps/saber name = "NT-SABR 'Saber' SMG" @@ -2399,6 +2404,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) desc = "An archaic but incredibly effective high-capacity 4-round burst SMG. Can't fit in backpacks." item = /obj/item/gun/ballistic/automatic/tommygun cost = 12 + limited_stock = 1 /datum/uplink_item/nt/ammo category = "Ammunition" @@ -2604,13 +2610,14 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) desc = "A prototype hardsuit. Incredibly robust." item = /obj/item/clothing/suit/space/hardsuit/deathsquad cost = 100 + cant_discount = TRUE /datum/uplink_item/nt/hardsuit/dsshield name = "MK.III Shielded SWAT Suit" desc = "A prototype hardsuit with shielding protection. Incredibly robust." item = /obj/item/clothing/suit/space/hardsuit/shielded/swat cost = 150 - + cant_discount = TRUE /datum/uplink_item/nt/gear category = "Other Gear" From bd044e8fe24ff13ddea6e6569f69109c406bcc13 Mon Sep 17 00:00:00 2001 From: ynot01 Date: Thu, 18 Aug 2022 01:11:24 -0400 Subject: [PATCH 08/42] fix wt dupe --- code/modules/uplink/uplink_items.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/uplink/uplink_items.dm b/code/modules/uplink/uplink_items.dm index add7ec2025e5..53d291fa3346 100644 --- a/code/modules/uplink/uplink_items.dm +++ b/code/modules/uplink/uplink_items.dm @@ -2387,7 +2387,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) item = /obj/item/gun/ballistic/automatic/proto/unrestricted cost = 7 -/datum/uplink_item/nt/ball_weps/tommygun +/datum/uplink_item/nt/ball_weps/wtrifle name = "WT-550 Automatic Rifle" desc = "A classic 2-round burst rifle with a number of ammo options. Chambered in 4.6x30mm." item = /obj/item/gun/ballistic/automatic/wt550 From d80349273739150710725c69b7765a4e066865c4 Mon Sep 17 00:00:00 2001 From: ynot01 Date: Thu, 18 Aug 2022 01:13:00 -0400 Subject: [PATCH 09/42] makes the tommygun wildly inaccurate --- code/modules/projectiles/ammunition/ballistic/smg.dm | 3 +++ code/modules/projectiles/boxes_magazines/external/smg.dm | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/code/modules/projectiles/ammunition/ballistic/smg.dm b/code/modules/projectiles/ammunition/ballistic/smg.dm index 89732b5836df..7a758d18704e 100644 --- a/code/modules/projectiles/ammunition/ballistic/smg.dm +++ b/code/modules/projectiles/ammunition/ballistic/smg.dm @@ -28,3 +28,6 @@ desc = "A .45 bullet casing." caliber = ".45" projectile_type = /obj/item/projectile/bullet/c45 + +/obj/item/ammo_casing/c45/tommy + variance = 30 diff --git a/code/modules/projectiles/boxes_magazines/external/smg.dm b/code/modules/projectiles/boxes_magazines/external/smg.dm index 8632ea82b87e..a47dcfec1d97 100644 --- a/code/modules/projectiles/boxes_magazines/external/smg.dm +++ b/code/modules/projectiles/boxes_magazines/external/smg.dm @@ -128,6 +128,6 @@ /obj/item/ammo_box/magazine/tommygunm45 name = "drum magazine (.45)" icon_state = "drum45" - ammo_type = /obj/item/ammo_casing/c45 + ammo_type = /obj/item/ammo_casing/c45/tommy caliber = ".45" max_ammo = 50 From fa7ca9a706af657b896593c112c61e98c712f64f Mon Sep 17 00:00:00 2001 From: ynot01 Date: Thu, 18 Aug 2022 01:14:05 -0400 Subject: [PATCH 10/42] tommy cheaper cause inaccurate also desc --- code/modules/uplink/uplink_items.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/uplink/uplink_items.dm b/code/modules/uplink/uplink_items.dm index 53d291fa3346..f8378ba171d6 100644 --- a/code/modules/uplink/uplink_items.dm +++ b/code/modules/uplink/uplink_items.dm @@ -2401,9 +2401,9 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) /datum/uplink_item/nt/ball_weps/tommygun name = "Thompson SMG" - desc = "An archaic but incredibly effective high-capacity 4-round burst SMG. Can't fit in backpacks." + desc = "An archaic but incredibly effective high-capacity 4-round burst SMG. Wildly inaccurate. Can't fit in backpacks." item = /obj/item/gun/ballistic/automatic/tommygun - cost = 12 + cost = 9 limited_stock = 1 /datum/uplink_item/nt/ammo From f9e67d9001e9ac50fc7a1214e205a82b85e684c2 Mon Sep 17 00:00:00 2001 From: ynot01 Date: Thu, 18 Aug 2022 01:15:43 -0400 Subject: [PATCH 11/42] lets you have two tommy guns MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit miss me with that ‘weapon accuracy’ shit. im shooting everything. im laying down cover fire. im shooting the walls. im shooting my teammates. im shooting myself. my accuracy is 100% yall just dont know what im aiming at --- code/modules/uplink/uplink_items.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/uplink/uplink_items.dm b/code/modules/uplink/uplink_items.dm index f8378ba171d6..ee680fdb6583 100644 --- a/code/modules/uplink/uplink_items.dm +++ b/code/modules/uplink/uplink_items.dm @@ -2404,7 +2404,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) desc = "An archaic but incredibly effective high-capacity 4-round burst SMG. Wildly inaccurate. Can't fit in backpacks." item = /obj/item/gun/ballistic/automatic/tommygun cost = 9 - limited_stock = 1 + limited_stock = 2 // SAY HELLO TO MY LITTLE FRIEND /datum/uplink_item/nt/ammo category = "Ammunition" From 749cb49e5c6653ff969bd61af7a91c2050f5ddeb Mon Sep 17 00:00:00 2001 From: ynot01 Date: Thu, 18 Aug 2022 01:18:15 -0400 Subject: [PATCH 12/42] makes toolbelt 1 wc --- code/modules/uplink/uplink_items.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/uplink/uplink_items.dm b/code/modules/uplink/uplink_items.dm index ee680fdb6583..e2034f353a27 100644 --- a/code/modules/uplink/uplink_items.dm +++ b/code/modules/uplink/uplink_items.dm @@ -2552,7 +2552,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) name = "Full Toolbelt" desc = "Comes pre-stocked with every engineering tool you'll ever need." item = /obj/item/storage/belt/utility/full/engi - cost = 4 + cost = 1 /datum/uplink_item/nt/support/rcd name = "Rapid Construction Device" From 34a7c3f9709ab8dc8d7896534d8a0705a382c2ec Mon Sep 17 00:00:00 2001 From: ynot01 Date: Thu, 18 Aug 2022 01:21:08 -0400 Subject: [PATCH 13/42] makes tommy actually inaccurate --- code/modules/projectiles/ammunition/ballistic/smg.dm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/code/modules/projectiles/ammunition/ballistic/smg.dm b/code/modules/projectiles/ammunition/ballistic/smg.dm index 7a758d18704e..b8500a5510b1 100644 --- a/code/modules/projectiles/ammunition/ballistic/smg.dm +++ b/code/modules/projectiles/ammunition/ballistic/smg.dm @@ -30,4 +30,5 @@ projectile_type = /obj/item/projectile/bullet/c45 /obj/item/ammo_casing/c45/tommy - variance = 30 +/obj/item/ammo_casing/c45/tommy/Initialize() + variance = rand(-30,30) From 164403dc466d97eecb9e5025a27724d5be53051c Mon Sep 17 00:00:00 2001 From: ynot01 Date: Thu, 18 Aug 2022 01:26:20 -0400 Subject: [PATCH 14/42] poke turdis --- code/modules/uplink/uplink_items.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/uplink/uplink_items.dm b/code/modules/uplink/uplink_items.dm index e2034f353a27..a25915ca5510 100644 --- a/code/modules/uplink/uplink_items.dm +++ b/code/modules/uplink/uplink_items.dm @@ -2676,4 +2676,4 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) name = "CentCom Official Stamp" desc = "To let them know you're the real deal." item = /obj/item/stamp/cent - cost = 1 + cost = 1 From 884829fb47db84c55b2ac0638a8981dc25f2f90e Mon Sep 17 00:00:00 2001 From: ynot01 Date: Thu, 18 Aug 2022 01:42:00 -0400 Subject: [PATCH 15/42] fixes --- code/modules/projectiles/ammunition/ballistic/smg.dm | 1 + code/modules/uplink/uplink_items.dm | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/code/modules/projectiles/ammunition/ballistic/smg.dm b/code/modules/projectiles/ammunition/ballistic/smg.dm index b8500a5510b1..b70b5fea6155 100644 --- a/code/modules/projectiles/ammunition/ballistic/smg.dm +++ b/code/modules/projectiles/ammunition/ballistic/smg.dm @@ -31,4 +31,5 @@ /obj/item/ammo_casing/c45/tommy /obj/item/ammo_casing/c45/tommy/Initialize() + . = ..() variance = rand(-30,30) diff --git a/code/modules/uplink/uplink_items.dm b/code/modules/uplink/uplink_items.dm index a25915ca5510..ed33f31f3645 100644 --- a/code/modules/uplink/uplink_items.dm +++ b/code/modules/uplink/uplink_items.dm @@ -2442,7 +2442,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) /datum/uplink_item/nt/ammo/wt name = "4.6x30mm Magazine" desc = "An additional 22-round 4.6x30mm magazine; suitable for use with the WT-550." - item = /obj/item/ammo_box/magazine/smgm9mm + item = /obj/item/ammo_box/magazine/wt550m9 cost = 1 /datum/uplink_item/nt/ammo/wtap From 1942343ca6014de3df6ecbf2e7c203244306f747 Mon Sep 17 00:00:00 2001 From: ynot01 Date: Thu, 18 Aug 2022 01:46:13 -0400 Subject: [PATCH 16/42] adds ap and incen saber ammo --- code/modules/uplink/uplink_items.dm | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/code/modules/uplink/uplink_items.dm b/code/modules/uplink/uplink_items.dm index ed33f31f3645..2b489081d76c 100644 --- a/code/modules/uplink/uplink_items.dm +++ b/code/modules/uplink/uplink_items.dm @@ -2439,6 +2439,18 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) item = /obj/item/ammo_box/magazine/smgm9mm cost = 1 +/datum/uplink_item/nt/ammo/saberammoap + name = "9mm AP Magazine" + desc = "An additional 21-round 9mm magazine with armor piercing rounds; suitable for use with the Saber SMG." + item = /obj/item/ammo_box/magazine/smgm9mm/ap + cost = 2 + +/datum/uplink_item/nt/ammo/saberammoin + name = "9mm Incendiary Magazine" + desc = "An additional 21-round 9mm magazine loaded loaded with incendiary rounds; suitable for use with the Saber SMG." + item = /obj/item/ammo_box/magazine/smgm9mm/fire + cost = 1 + /datum/uplink_item/nt/ammo/wt name = "4.6x30mm Magazine" desc = "An additional 22-round 4.6x30mm magazine; suitable for use with the WT-550." From 3674eca675a182a8b92bfe0b9c8d37e1b57330f7 Mon Sep 17 00:00:00 2001 From: ynot01 Date: Thu, 18 Aug 2022 02:01:39 -0400 Subject: [PATCH 17/42] add laser rifle, cap eguns --- code/modules/uplink/uplink_items.dm | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/code/modules/uplink/uplink_items.dm b/code/modules/uplink/uplink_items.dm index 2b489081d76c..8faf00184030 100644 --- a/code/modules/uplink/uplink_items.dm +++ b/code/modules/uplink/uplink_items.dm @@ -2335,6 +2335,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) desc = "A standard energy gun with disable and laser modes equipped." item = /obj/item/gun/energy/e_gun cost = 3 + limited_stock = 3 /datum/uplink_item/nt/energy_weps/tac_egun name = "Tactical Energy Gun" @@ -2343,6 +2344,13 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) cost = 8 limited_stock = 2 +/datum/uplink_item/nt/energy_weps/tac_egun + name = "Laser Rifle" + desc = "An abnormality in energy weaponry. Chambers a laser magazine which can be recharged externally." + item = /obj/item/gun/ballistic/automatic/laser + cost = 8 + limited_stock = 1 + /datum/uplink_item/nt/energy_weps/m1911 name = "Spur" desc = "A legendary slowly self-charging pistol with massive recoil that deals more damage the more charge it has." @@ -2415,6 +2423,12 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) item = /obj/machinery/recharger cost = 5 +/datum/uplink_item/nt/ammo/recharger + name = "Power Pack" + desc = "An additional 20-round laser magazine; suitable for use with the laser rifle." + item = /obj/item/ammo_box/magazine/recharge + cost = 5 + /datum/uplink_item/nt/ammo/carbine name = "5.56mm Toploader Magazine" desc = "An additional 30-round 5.56mm magazine; suitable for use with the NT-ARG." From 28ed8854fc55a57fb0a4b5d3a290e9ce95843cb8 Mon Sep 17 00:00:00 2001 From: ynot01 Date: Thu, 18 Aug 2022 02:06:06 -0400 Subject: [PATCH 18/42] ds get a little more --- code/modules/uplink/uplink_devices.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/uplink/uplink_devices.dm b/code/modules/uplink/uplink_devices.dm index bfe0bb53f428..7888ad930e9c 100644 --- a/code/modules/uplink/uplink_devices.dm +++ b/code/modules/uplink/uplink_devices.dm @@ -116,7 +116,7 @@ /obj/item/ntuplink/death name = "deathsquad uplink" - wc_start = 300 + wc_start = 350 /obj/item/ntuplink/debug name = "debug nanotrasen uplink" From 8af8ae7bbfb27ada103a492476a5b6d3e4534a54 Mon Sep 17 00:00:00 2001 From: ynot01 Date: Thu, 18 Aug 2022 02:14:35 -0400 Subject: [PATCH 19/42] reduce industrial RCD price to 5WC --- code/modules/uplink/uplink_items.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/uplink/uplink_items.dm b/code/modules/uplink/uplink_items.dm index 8faf00184030..45d36a2f2625 100644 --- a/code/modules/uplink/uplink_items.dm +++ b/code/modules/uplink/uplink_items.dm @@ -2590,7 +2590,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) name = "Industrial RCD" desc = "Heavy combat RCD that holds up to 500 matter units." item = /obj/item/construction/rcd/combat - cost = 8 + cost = 5 /datum/uplink_item/nt/support/rcdammo name = "Compressed Matter Cartridge" From a2ab0a555038f4543a4ea2a8c6702d160b7861e0 Mon Sep 17 00:00:00 2001 From: ynot01 Date: Thu, 18 Aug 2022 02:19:06 -0400 Subject: [PATCH 20/42] reduce RCD to 2 and combat RCD to 4 --- code/modules/uplink/uplink_items.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/uplink/uplink_items.dm b/code/modules/uplink/uplink_items.dm index 45d36a2f2625..9823456143fd 100644 --- a/code/modules/uplink/uplink_items.dm +++ b/code/modules/uplink/uplink_items.dm @@ -2584,13 +2584,13 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) name = "Rapid Construction Device" desc = "Standard RCD that can repair or destroy structures very quickly. Holds up to 160 matter units." item = /obj/item/construction/rcd/loaded - cost = 3 + cost = 2 /datum/uplink_item/nt/support/combatrcd name = "Industrial RCD" desc = "Heavy combat RCD that holds up to 500 matter units." item = /obj/item/construction/rcd/combat - cost = 5 + cost = 4 /datum/uplink_item/nt/support/rcdammo name = "Compressed Matter Cartridge" From e04ec998c75ae9afea978482cc547fb8f101c656 Mon Sep 17 00:00:00 2001 From: ynot01 Date: Thu, 18 Aug 2022 02:19:45 -0400 Subject: [PATCH 21/42] reduce medbeam by 1 and limit stock --- code/modules/uplink/uplink_items.dm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/code/modules/uplink/uplink_items.dm b/code/modules/uplink/uplink_items.dm index 9823456143fd..5fcdcad3f6a0 100644 --- a/code/modules/uplink/uplink_items.dm +++ b/code/modules/uplink/uplink_items.dm @@ -2572,7 +2572,8 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) desc = "A wonder of Nanotrasen engineering, the Medbeam gun, or Medi-Gun enables a medic to keep his fellow \ officers in the fight, even while under fire. Don't cross the streams!" item = /obj/item/gun/medbeam - cost = 8 + cost = 7 + limited_stock = 1 /datum/uplink_item/nt/support/toolbelt name = "Full Toolbelt" From 1c0e557d39a1435399c536e31355a2cfd987d912 Mon Sep 17 00:00:00 2001 From: ynot01 Date: Thu, 18 Aug 2022 02:26:11 -0400 Subject: [PATCH 22/42] ERT leader gets 5 extra WC --- code/modules/antagonists/ert/ert.dm | 1 + code/modules/clothing/outfits/ert.dm | 7 +++++++ 2 files changed, 8 insertions(+) diff --git a/code/modules/antagonists/ert/ert.dm b/code/modules/antagonists/ert/ert.dm index de9aa5220cf0..375d816942e7 100644 --- a/code/modules/antagonists/ert/ert.dm +++ b/code/modules/antagonists/ert/ert.dm @@ -69,6 +69,7 @@ /datum/antagonist/ert/common/leader role = "Commander" + outfit = /datum/outfit/ert/commonleader /datum/antagonist/ert/commander role = "Commander" diff --git a/code/modules/clothing/outfits/ert.dm b/code/modules/clothing/outfits/ert.dm index fdebc2af3265..58eafb1cb21b 100644 --- a/code/modules/clothing/outfits/ert.dm +++ b/code/modules/clothing/outfits/ert.dm @@ -14,6 +14,13 @@ /obj/item/tank/internals/emergency_oxygen/double=1, ) +/datum/outfit/ert/commonleader + backpack_contents = list( + /obj/item/clothing/mask/gas/sechailer=1, + /obj/item/tank/internals/oxygen/tactical=1, + /obj/item/tank/internals/emergency_oxygen/double=1, + /obj/item/stack/ore/bluespace_crystal/refined/nt/five=1 + ) /datum/outfit/ert/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) if(visualsOnly) From 37e5a2653eeba5ff71ff329f9edd7acf5ef4b320 Mon Sep 17 00:00:00 2001 From: ynot01 Date: Thu, 18 Aug 2022 02:28:29 -0400 Subject: [PATCH 23/42] leader gets fancy hat --- code/modules/clothing/outfits/ert.dm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/code/modules/clothing/outfits/ert.dm b/code/modules/clothing/outfits/ert.dm index 58eafb1cb21b..3d64e755a606 100644 --- a/code/modules/clothing/outfits/ert.dm +++ b/code/modules/clothing/outfits/ert.dm @@ -9,14 +9,15 @@ ears = /obj/item/radio/headset/headset_cent/alt implants = list(/obj/item/implant/mindshield) backpack_contents = list( - /obj/item/clothing/mask/gas/sechailer=1, + /obj/item/clothing/mask/gas/sechailer/swat=1, /obj/item/tank/internals/oxygen/tactical=1, /obj/item/tank/internals/emergency_oxygen/double=1, ) /datum/outfit/ert/commonleader + hat = /obj/item/clothing/head/beret/sec backpack_contents = list( - /obj/item/clothing/mask/gas/sechailer=1, + /obj/item/clothing/mask/gas/sechailer/swat=1, /obj/item/tank/internals/oxygen/tactical=1, /obj/item/tank/internals/emergency_oxygen/double=1, /obj/item/stack/ore/bluespace_crystal/refined/nt/five=1 From a5895619dcc8a50cf8c4e48310cbf748d38086fe Mon Sep 17 00:00:00 2001 From: ynot01 Date: Thu, 18 Aug 2022 02:34:50 -0400 Subject: [PATCH 24/42] Update ert.dm --- code/modules/clothing/outfits/ert.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/clothing/outfits/ert.dm b/code/modules/clothing/outfits/ert.dm index 3d64e755a606..afc6111fead4 100644 --- a/code/modules/clothing/outfits/ert.dm +++ b/code/modules/clothing/outfits/ert.dm @@ -15,7 +15,7 @@ ) /datum/outfit/ert/commonleader - hat = /obj/item/clothing/head/beret/sec + head = /obj/item/clothing/head/beret/sec backpack_contents = list( /obj/item/clothing/mask/gas/sechailer/swat=1, /obj/item/tank/internals/oxygen/tactical=1, From 8bfa8d93c5548e14193e80203dfafa7a3fcee7d9 Mon Sep 17 00:00:00 2001 From: ynot01 Date: Thu, 18 Aug 2022 02:36:49 -0400 Subject: [PATCH 25/42] fix laser rifle overwriting tac eguns --- code/modules/uplink/uplink_items.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/uplink/uplink_items.dm b/code/modules/uplink/uplink_items.dm index 5fcdcad3f6a0..2e48512c822e 100644 --- a/code/modules/uplink/uplink_items.dm +++ b/code/modules/uplink/uplink_items.dm @@ -2344,7 +2344,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) cost = 8 limited_stock = 2 -/datum/uplink_item/nt/energy_weps/tac_egun +/datum/uplink_item/nt/energy_weps/laserrifle name = "Laser Rifle" desc = "An abnormality in energy weaponry. Chambers a laser magazine which can be recharged externally." item = /obj/item/gun/ballistic/automatic/laser From 82ecd35b71632bd2d1a934fa67ef3eba60c49d5a Mon Sep 17 00:00:00 2001 From: ynot01 Date: Thu, 18 Aug 2022 02:46:17 -0400 Subject: [PATCH 26/42] set default uplink type --- code/datums/ert.dm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/code/datums/ert.dm b/code/datums/ert.dm index aa9a9f855e53..ea3464b78409 100644 --- a/code/datums/ert.dm +++ b/code/datums/ert.dm @@ -11,7 +11,9 @@ var/mission = "Assist the station." var/teamsize = 5 var/polldesc - var/obj/item/uplinktype + + // this can be safely set as default because it doesnt do anything unless specifically making uplinked ERT + var/obj/item/uplinktype = /obj/item/ntuplink/official /datum/ert/New() if (!polldesc) From e2518261cad44fd363c39e5b0af7f19ae9318745 Mon Sep 17 00:00:00 2001 From: ynot01 Date: Thu, 18 Aug 2022 12:47:06 -0400 Subject: [PATCH 27/42] add mini e gun --- code/modules/uplink/uplink_items.dm | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/code/modules/uplink/uplink_items.dm b/code/modules/uplink/uplink_items.dm index 2e48512c822e..59abc6049bd6 100644 --- a/code/modules/uplink/uplink_items.dm +++ b/code/modules/uplink/uplink_items.dm @@ -2344,6 +2344,13 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) cost = 8 limited_stock = 2 +/datum/uplink_item/nt/energy_weps/mini_egun + name = "Miniature Energy Gun" + desc = "A smaller model of the standard energy gun that holds much less charge." + item = /obj/item/gun/energy/e_gun + cost = 1 + limited_stock = 1 + /datum/uplink_item/nt/energy_weps/laserrifle name = "Laser Rifle" desc = "An abnormality in energy weaponry. Chambers a laser magazine which can be recharged externally." From 7cd467e0825d410c35f0bc3d977477dae950be01 Mon Sep 17 00:00:00 2001 From: ynot01 Date: Thu, 18 Aug 2022 12:58:25 -0400 Subject: [PATCH 28/42] add nt mantis blades --- code/game/objects/items/storage/briefcase.dm | 10 +++++++++- code/modules/surgery/organs/augments_arms.dm | 8 ++++++++ code/modules/surgery/organs/autosurgeon.dm | 8 ++++++++ code/modules/uplink/uplink_items.dm | 6 ++++++ 4 files changed, 31 insertions(+), 1 deletion(-) diff --git a/code/game/objects/items/storage/briefcase.dm b/code/game/objects/items/storage/briefcase.dm index 9d06eb809830..b4c6bdba880c 100644 --- a/code/game/objects/items/storage/briefcase.dm +++ b/code/game/objects/items/storage/briefcase.dm @@ -53,4 +53,12 @@ /obj/item/storage/briefcase/syndie_mantis/PopulateContents() ..() new /obj/item/autosurgeon/organ/syndicate/syndie_mantis(src) - new /obj/item/autosurgeon/organ/syndicate/syndie_mantis/l(src) \ No newline at end of file + new /obj/item/autosurgeon/organ/syndicate/syndie_mantis/l(src) + +/obj/item/storage/briefcase/nt_mantis + desc = "A sleek briefcase. It has the letters H.E.P.H.A.E.S.T.U.S. on it" + +/obj/item/storage/briefcase/syndie_mantis/PopulateContents() + ..() + new /obj/item/autosurgeon/nt_mantis(src) + new /obj/item/autosurgeon/nt_mantis/l(src) diff --git a/code/modules/surgery/organs/augments_arms.dm b/code/modules/surgery/organs/augments_arms.dm index ea1fc90b7c55..3c541123e764 100644 --- a/code/modules/surgery/organs/augments_arms.dm +++ b/code/modules/surgery/organs/augments_arms.dm @@ -387,6 +387,14 @@ zone = BODY_ZONE_L_ARM syndicate_implant = TRUE +/obj/item/organ/cyberimp/arm/nt_mantis + name = "H.E.P.H.A.E.S.T.U.S. mantis blade implants" + desc = "Retractable arm-blade implants to get you out of a pinch. Wielding two will let you double-attack." + contents = newlist(/obj/item/mantis/blade/NT) + +/obj/item/organ/cyberimp/arm/nt_mantis/l + zone = BODY_ZONE_L_ARM + /obj/item/organ/cyberimp/arm/power_cord name = "power cord implant" desc = "An internal power cord hooked up to a battery. Useful if you run on volts." diff --git a/code/modules/surgery/organs/autosurgeon.dm b/code/modules/surgery/organs/autosurgeon.dm index d705734cfaf4..5dfeab85637a 100644 --- a/code/modules/surgery/organs/autosurgeon.dm +++ b/code/modules/surgery/organs/autosurgeon.dm @@ -107,6 +107,14 @@ uses = 1 starting_organ = /obj/item/organ/cyberimp/arm/syndie_mantis/l +/obj/item/autosurgeon/nt_mantis + uses = 1 + starting_organ = /obj/item/organ/cyberimp/arm/nt_mantis + +/obj/item/autosurgeon/nt_mantis/l + uses = 1 + starting_organ = /obj/item/organ/cyberimp/arm/nt_mantis/l + /obj/item/autosurgeon/plasmavessel //Yogs Start: Just an autosurgeon with a plasma vessel in it, used in /obj/item/storage/box/syndie_kit/xeno_organ_kit uses = 3 starting_organ = /obj/item/organ/alien/plasmavessel //Yogs End diff --git a/code/modules/uplink/uplink_items.dm b/code/modules/uplink/uplink_items.dm index 59abc6049bd6..a62fe5dd6f6c 100644 --- a/code/modules/uplink/uplink_items.dm +++ b/code/modules/uplink/uplink_items.dm @@ -2512,6 +2512,12 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) item = /obj/item/shield/energy cost = 16 +/datum/uplink_item/nt/cqc/ntmantisblade + name = "H.E.P.H.A.E.S.T.U.S. Mantis Blades" + desc = "A pair of retractable arm-blade implants. Activating both will let you double-attack." + item = /obj/item/storage/briefcase/nt_mantis + cost = 10 + /datum/uplink_item/nt/cqc/sblade name = "Switchblade" desc = "A less flashy but surprisingly robust pocket knife." From e6ebbbe9551835f9afe4edc018460983b78335bc Mon Sep 17 00:00:00 2001 From: ynot01 Date: Thu, 18 Aug 2022 13:30:00 -0400 Subject: [PATCH 29/42] fix nt mantis --- code/game/objects/items/storage/briefcase.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/items/storage/briefcase.dm b/code/game/objects/items/storage/briefcase.dm index b4c6bdba880c..a01978218bc2 100644 --- a/code/game/objects/items/storage/briefcase.dm +++ b/code/game/objects/items/storage/briefcase.dm @@ -58,7 +58,7 @@ /obj/item/storage/briefcase/nt_mantis desc = "A sleek briefcase. It has the letters H.E.P.H.A.E.S.T.U.S. on it" -/obj/item/storage/briefcase/syndie_mantis/PopulateContents() +/obj/item/storage/briefcase/nt_mantis/PopulateContents() ..() new /obj/item/autosurgeon/nt_mantis(src) new /obj/item/autosurgeon/nt_mantis/l(src) From f4c44cbfdfa2f4b47f51e1db4beaf15598e8ccf5 Mon Sep 17 00:00:00 2001 From: ynot01 Date: Thu, 18 Aug 2022 19:44:40 -0400 Subject: [PATCH 30/42] efficiency or something --- code/modules/admin/verbs/one_click_antag.dm | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/code/modules/admin/verbs/one_click_antag.dm b/code/modules/admin/verbs/one_click_antag.dm index 8c0f779cfbb1..10dd710df567 100644 --- a/code/modules/admin/verbs/one_click_antag.dm +++ b/code/modules/admin/verbs/one_click_antag.dm @@ -603,10 +603,8 @@ for(var/obj/machinery/door/poddoor/deathsquad/door in GLOB.airlocks) INVOKE_ASYNC(door, /obj/machinery/door/poddoor.proc/open) return TRUE - else - return FALSE - return + return FALSE //Abductors /datum/admins/proc/makeAbductorTeam() From f3570fbc26fb30b5678c5e880c830ace0e97eccc Mon Sep 17 00:00:00 2001 From: ynot01 Date: Thu, 18 Aug 2022 21:36:29 -0400 Subject: [PATCH 31/42] actually mini --- code/modules/uplink/uplink_items.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/uplink/uplink_items.dm b/code/modules/uplink/uplink_items.dm index a62fe5dd6f6c..86d52d76dffa 100644 --- a/code/modules/uplink/uplink_items.dm +++ b/code/modules/uplink/uplink_items.dm @@ -2347,7 +2347,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) /datum/uplink_item/nt/energy_weps/mini_egun name = "Miniature Energy Gun" desc = "A smaller model of the standard energy gun that holds much less charge." - item = /obj/item/gun/energy/e_gun + item = /obj/item/gun/energy/e_gun/mini cost = 1 limited_stock = 1 From 01beea07cab9816d1a5938b5e1404d315ddc9f61 Mon Sep 17 00:00:00 2001 From: ynot01 Date: Thu, 18 Aug 2022 23:45:29 -0400 Subject: [PATCH 32/42] lower mantis to 7 --- code/modules/uplink/uplink_items.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/uplink/uplink_items.dm b/code/modules/uplink/uplink_items.dm index 86d52d76dffa..58a4c111abb7 100644 --- a/code/modules/uplink/uplink_items.dm +++ b/code/modules/uplink/uplink_items.dm @@ -2516,7 +2516,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) name = "H.E.P.H.A.E.S.T.U.S. Mantis Blades" desc = "A pair of retractable arm-blade implants. Activating both will let you double-attack." item = /obj/item/storage/briefcase/nt_mantis - cost = 10 + cost = 7 /datum/uplink_item/nt/cqc/sblade name = "Switchblade" From 7c15889b7bac3818f8c7099f13b00b7f553d8dec Mon Sep 17 00:00:00 2001 From: ynot01 Date: Mon, 22 Aug 2022 07:38:48 -0400 Subject: [PATCH 33/42] add armors --- code/modules/uplink/uplink_items.dm | 38 ++++++++++++++++++++++++++++- 1 file changed, 37 insertions(+), 1 deletion(-) diff --git a/code/modules/uplink/uplink_items.dm b/code/modules/uplink/uplink_items.dm index 58a4c111abb7..78c965635c55 100644 --- a/code/modules/uplink/uplink_items.dm +++ b/code/modules/uplink/uplink_items.dm @@ -2619,7 +2619,43 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) cost = 1 /datum/uplink_item/nt/hardsuit - category = "Hardsuits" + category = "Armor & Hardsuits" + +/datum/uplink_item/nt/hardsuit/armor + name = "Armor Vest" + desc = "A standard issue security armor vest." + item = /obj/item/clothing/suit/armor/vest + cost = 1 + +/datum/uplink_item/nt/hardsuit/helmet + name = "Helmet" + desc = "A standard issue security helmet. Can have a seclite attached." + item = /obj/item/clothing/head/helmet + cost = 1 + +/datum/uplink_item/nt/hardsuit/helmet + name = "Bulletproof Armor Vest" + desc = "An armor vest that is extremely robust against ballistics but weak to everything else." + item = /obj/item/clothing/suit/armor/bulletproof + cost = 1 + +/datum/uplink_item/nt/hardsuit/helmet + name = "Bulletproof Helmet" + desc = "A helmet that is extremely robust against ballistics but weak to everything else." + item = /obj/item/clothing/head/helmet + cost = 1 + +/datum/uplink_item/nt/hardsuit/helmet + name = "Riot Suit" + desc = "A bulky suit that protects you againt melee attacks but not much else." + item = /obj/item/clothing/suit/armor/riot + cost = 1 + +/datum/uplink_item/nt/hardsuit/helmet + name = "Riot Helmet" + desc = "A helmet that protects you againt melee attacks but not much else." + item = /obj/item/clothing/head/helmet/riot + cost = 1 /datum/uplink_item/nt/hardsuit/cmd name = "ERT Commander Hardsuit" From cf9b8e21067825bcfd5d7eb04b06ef5fccf3ef2d Mon Sep 17 00:00:00 2001 From: ynot01 Date: Mon, 22 Aug 2022 07:40:47 -0400 Subject: [PATCH 34/42] update teleshield desc --- code/modules/uplink/uplink_items.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/uplink/uplink_items.dm b/code/modules/uplink/uplink_items.dm index 78c965635c55..a06c1112ac2f 100644 --- a/code/modules/uplink/uplink_items.dm +++ b/code/modules/uplink/uplink_items.dm @@ -2532,7 +2532,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) /datum/uplink_item/nt/cqc/teleshield name = "Telescopic Shield" - desc = "A foldable shield that blocks half of all attacks when active but can break." + desc = "A foldable shield that blocks attacks when active but can break." item = /obj/item/shield/riot/tele cost = 3 From de076d703f22ac14a58e128e70cc6756292b6929 Mon Sep 17 00:00:00 2001 From: ynot01 Date: Mon, 22 Aug 2022 07:44:14 -0400 Subject: [PATCH 35/42] add bowman --- code/game/objects/items/devices/radio/headset.dm | 10 ++++++++++ code/modules/uplink/uplink_items.dm | 6 ++++++ 2 files changed, 16 insertions(+) diff --git a/code/game/objects/items/devices/radio/headset.dm b/code/game/objects/items/devices/radio/headset.dm index 71ff1e7f1a87..109659ceb940 100644 --- a/code/game/objects/items/devices/radio/headset.dm +++ b/code/game/objects/items/devices/radio/headset.dm @@ -260,6 +260,16 @@ GLOBAL_LIST_INIT(channel_tokens, list( /obj/item/radio/headset/headset_cent/alt keyslot = new /obj/item/encryptionkey/heads/captain +/obj/item/radio/headset/headset_cent/bowman // No captain key + name = "\improper CentCom bowman headset" + desc = "A headset especially for emergency response personnel. Protects ears from flashbangs." + icon_state = "cent_headset_alt" + item_state = "cent_headset_alt" + +/obj/item/radio/headset/headset_cent/bowman/ComponentInitialize() + . = ..() + AddComponent(/datum/component/wearertargeting/earprotection, list(SLOT_EARS)) + /obj/item/radio/headset/headset_cent/commander name = "\improper CentCom bowman headset" desc = "A headset especially for emergency response personnel. Protects ears from flashbangs." diff --git a/code/modules/uplink/uplink_items.dm b/code/modules/uplink/uplink_items.dm index a06c1112ac2f..f25015fa238a 100644 --- a/code/modules/uplink/uplink_items.dm +++ b/code/modules/uplink/uplink_items.dm @@ -2716,6 +2716,12 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) item = /obj/item/storage/box/handcuffs cost = 1 +/datum/uplink_item/nt/gear/sechud + name = "Bowman Headset" + desc = "A headset specially crafted to protect your ears from any damage, including flashbangs." + item = /obj/item/radio/headset/headset_cent/bowman + cost = 1 + /datum/uplink_item/nt/gear/sechud name = "Security HUDglasses" desc = "A pair of sunglasses fitted with a security HUD." From bc9e2672aa592ff22cff0b66566cf1b2944ebdfd Mon Sep 17 00:00:00 2001 From: ynot01 Date: Mon, 22 Aug 2022 07:44:54 -0400 Subject: [PATCH 36/42] fix paths --- code/modules/uplink/uplink_items.dm | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/code/modules/uplink/uplink_items.dm b/code/modules/uplink/uplink_items.dm index f25015fa238a..2e4228ecefab 100644 --- a/code/modules/uplink/uplink_items.dm +++ b/code/modules/uplink/uplink_items.dm @@ -2633,25 +2633,25 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) item = /obj/item/clothing/head/helmet cost = 1 -/datum/uplink_item/nt/hardsuit/helmet +/datum/uplink_item/nt/hardsuit/bulletvest name = "Bulletproof Armor Vest" desc = "An armor vest that is extremely robust against ballistics but weak to everything else." item = /obj/item/clothing/suit/armor/bulletproof cost = 1 -/datum/uplink_item/nt/hardsuit/helmet +/datum/uplink_item/nt/hardsuit/bullethelmet name = "Bulletproof Helmet" desc = "A helmet that is extremely robust against ballistics but weak to everything else." item = /obj/item/clothing/head/helmet cost = 1 -/datum/uplink_item/nt/hardsuit/helmet +/datum/uplink_item/nt/hardsuit/riotvest name = "Riot Suit" desc = "A bulky suit that protects you againt melee attacks but not much else." item = /obj/item/clothing/suit/armor/riot cost = 1 -/datum/uplink_item/nt/hardsuit/helmet +/datum/uplink_item/nt/hardsuit/riothelmet name = "Riot Helmet" desc = "A helmet that protects you againt melee attacks but not much else." item = /obj/item/clothing/head/helmet/riot @@ -2716,7 +2716,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) item = /obj/item/storage/box/handcuffs cost = 1 -/datum/uplink_item/nt/gear/sechud +/datum/uplink_item/nt/gear/bowman name = "Bowman Headset" desc = "A headset specially crafted to protect your ears from any damage, including flashbangs." item = /obj/item/radio/headset/headset_cent/bowman From 64061ab35cea6181f73f8d281e552923ffd75a05 Mon Sep 17 00:00:00 2001 From: ynot01 Date: Mon, 22 Aug 2022 07:52:54 -0400 Subject: [PATCH 37/42] add poster box --- code/game/objects/items/storage/uplink_kits.dm | 8 ++++++++ code/modules/uplink/uplink_items.dm | 6 ++++++ 2 files changed, 14 insertions(+) diff --git a/code/game/objects/items/storage/uplink_kits.dm b/code/game/objects/items/storage/uplink_kits.dm index 019d6e33f43f..cfc1ce6ef437 100644 --- a/code/game/objects/items/storage/uplink_kits.dm +++ b/code/game/objects/items/storage/uplink_kits.dm @@ -634,3 +634,11 @@ /obj/item/storage/box/syndie_kit/bee_grenades/PopulateContents() for(var/i in 1 to 3) new /obj/item/grenade/spawnergrenade/buzzkill(src) + +/obj/item/storage/box/official_posters + name = "poster box" + desc = "A box filled with posters." + +/obj/item/storage/box/official_posters/PopulateContents() + for(var/i in 1 to 7) + new /obj/item/poster/random_official(src) diff --git a/code/modules/uplink/uplink_items.dm b/code/modules/uplink/uplink_items.dm index 2e4228ecefab..ff5bb81b5198 100644 --- a/code/modules/uplink/uplink_items.dm +++ b/code/modules/uplink/uplink_items.dm @@ -2759,3 +2759,9 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) desc = "To let them know you're the real deal." item = /obj/item/stamp/cent cost = 1 + +/datum/uplink_item/nt/gear/ntposters + name = "Box of Posters" + desc = "A box of Nanotrasen-approved posters to boost crew morale." + item = /obj/item/storage/box/official_posters + cost = 1 From e6ed9bfaad9e2bbf3efa85d0fb1bde9cab4acc1c Mon Sep 17 00:00:00 2001 From: ynot01 Date: Wed, 24 Aug 2022 18:04:37 -0400 Subject: [PATCH 38/42] Update uplink_items.dm --- code/modules/uplink/uplink_items.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/uplink/uplink_items.dm b/code/modules/uplink/uplink_items.dm index ff5bb81b5198..d1a6dbacfbf4 100644 --- a/code/modules/uplink/uplink_items.dm +++ b/code/modules/uplink/uplink_items.dm @@ -2430,7 +2430,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) item = /obj/machinery/recharger cost = 5 -/datum/uplink_item/nt/ammo/recharger +/datum/uplink_item/nt/ammo/powerpack name = "Power Pack" desc = "An additional 20-round laser magazine; suitable for use with the laser rifle." item = /obj/item/ammo_box/magazine/recharge From 62f324acfcdc675eafe077dc586ee5d68f58951b Mon Sep 17 00:00:00 2001 From: ynot01 Date: Wed, 24 Aug 2022 18:05:36 -0400 Subject: [PATCH 39/42] lower recharger cost to 2 WC --- code/modules/uplink/uplink_items.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/uplink/uplink_items.dm b/code/modules/uplink/uplink_items.dm index d1a6dbacfbf4..b8131fe54ed0 100644 --- a/code/modules/uplink/uplink_items.dm +++ b/code/modules/uplink/uplink_items.dm @@ -2428,7 +2428,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) name = "Weapon Recharger" desc = "Standard issue energy weapon recharger. Must be anchored in an APC-powered area." item = /obj/machinery/recharger - cost = 5 + cost = 2 /datum/uplink_item/nt/ammo/powerpack name = "Power Pack" From 8ab26b4147e2a2c3b3faf947b8ef49fe107eb803 Mon Sep 17 00:00:00 2001 From: ynot01 Date: Tue, 30 Aug 2022 07:14:12 -0400 Subject: [PATCH 40/42] add exclusivity to ert commander hardsuit --- code/modules/antagonists/ert/ert.dm | 1 + code/modules/uplink/uplink_items.dm | 1 + 2 files changed, 2 insertions(+) diff --git a/code/modules/antagonists/ert/ert.dm b/code/modules/antagonists/ert/ert.dm index 375d816942e7..f3420e67fe50 100644 --- a/code/modules/antagonists/ert/ert.dm +++ b/code/modules/antagonists/ert/ert.dm @@ -68,6 +68,7 @@ outfit = /datum/outfit/ert /datum/antagonist/ert/common/leader + name = "Emergency Response Commander" role = "Commander" outfit = /datum/outfit/ert/commonleader diff --git a/code/modules/uplink/uplink_items.dm b/code/modules/uplink/uplink_items.dm index b8131fe54ed0..6beadb83315b 100644 --- a/code/modules/uplink/uplink_items.dm +++ b/code/modules/uplink/uplink_items.dm @@ -2662,6 +2662,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) desc = "Show them who's boss." item = /obj/item/clothing/suit/space/hardsuit/ert cost = 5 + restricted_roles = list("Emergency Response Commander") /datum/uplink_item/nt/hardsuit/sec name = "ERT Security Hardsuit" From 4e33f395980ae7545327187028596884a6c20b34 Mon Sep 17 00:00:00 2001 From: ynot01 Date: Tue, 30 Aug 2022 11:04:16 -0400 Subject: [PATCH 41/42] fixes stupid tommygun code --- code/modules/projectiles/ammunition/ballistic/smg.dm | 5 ----- code/modules/projectiles/guns/ballistic/automatic.dm | 1 + 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/code/modules/projectiles/ammunition/ballistic/smg.dm b/code/modules/projectiles/ammunition/ballistic/smg.dm index b70b5fea6155..89732b5836df 100644 --- a/code/modules/projectiles/ammunition/ballistic/smg.dm +++ b/code/modules/projectiles/ammunition/ballistic/smg.dm @@ -28,8 +28,3 @@ desc = "A .45 bullet casing." caliber = ".45" projectile_type = /obj/item/projectile/bullet/c45 - -/obj/item/ammo_casing/c45/tommy -/obj/item/ammo_casing/c45/tommy/Initialize() - . = ..() - variance = rand(-30,30) diff --git a/code/modules/projectiles/guns/ballistic/automatic.dm b/code/modules/projectiles/guns/ballistic/automatic.dm index 633418ed4441..dc5b671ba90d 100644 --- a/code/modules/projectiles/guns/ballistic/automatic.dm +++ b/code/modules/projectiles/guns/ballistic/automatic.dm @@ -197,6 +197,7 @@ fire_sound = 'sound/weapons/gunshot_smg.ogg' can_suppress = FALSE burst_size = 4 + spread = 30 fire_delay = 1 bolt_type = BOLT_TYPE_OPEN From 7d340e15c39c287908dd74b346337dbcbd804395 Mon Sep 17 00:00:00 2001 From: ynot01 Date: Tue, 30 Aug 2022 13:41:06 -0400 Subject: [PATCH 42/42] Update smg.dm --- code/modules/projectiles/boxes_magazines/external/smg.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/projectiles/boxes_magazines/external/smg.dm b/code/modules/projectiles/boxes_magazines/external/smg.dm index a47dcfec1d97..8632ea82b87e 100644 --- a/code/modules/projectiles/boxes_magazines/external/smg.dm +++ b/code/modules/projectiles/boxes_magazines/external/smg.dm @@ -128,6 +128,6 @@ /obj/item/ammo_box/magazine/tommygunm45 name = "drum magazine (.45)" icon_state = "drum45" - ammo_type = /obj/item/ammo_casing/c45/tommy + ammo_type = /obj/item/ammo_casing/c45 caliber = ".45" max_ammo = 50