From 1939d44478a91a57bc2214ed62bc2b3f20d920f4 Mon Sep 17 00:00:00 2001 From: Sishen Date: Sat, 25 Jul 2020 01:05:38 -0600 Subject: [PATCH 1/5] removes a lot of shit from IAA --- .../antagonists/traitor/IAA/internal_affairs.dm | 2 +- code/modules/uplink/uplink_items/uplink_bundles.dm | 7 ++++--- .../modules/uplink/uplink_items/uplink_dangerous.dm | 13 +++++++------ .../uplink/uplink_items/uplink_explosives.dm | 4 +++- code/modules/uplink/uplink_items/uplink_roles.dm | 3 +++ 5 files changed, 18 insertions(+), 11 deletions(-) diff --git a/code/modules/antagonists/traitor/IAA/internal_affairs.dm b/code/modules/antagonists/traitor/IAA/internal_affairs.dm index 19144d67c9..c1987c4a19 100644 --- a/code/modules/antagonists/traitor/IAA/internal_affairs.dm +++ b/code/modules/antagonists/traitor/IAA/internal_affairs.dm @@ -236,7 +236,7 @@ to_chat(owner.current, "By no means reveal that you, or any other NT employees, are undercover agents.") else to_chat(owner.current, "Your target is suspected of [crime], and you have been tasked with eliminating them by any means necessary to avoid a costly and embarrassing public trial.") - to_chat(owner.current, "While you have a license to kill, unneeded property damage or loss of employee life will lead to your contract being terminated.") + to_chat(owner.current, "While you have a license to kill, unneeded property damage or loss of employee life will lead to your contract being terminated.") to_chat(owner.current, "For the sake of plausible deniability, you have been equipped with an array of captured Syndicate weaponry available via uplink.") to_chat(owner.current, "By no means reveal that you, or any other NT employees, are undercover agents.") diff --git a/code/modules/uplink/uplink_items/uplink_bundles.dm b/code/modules/uplink/uplink_items/uplink_bundles.dm index d40e2fcbda..4f9a66eecd 100644 --- a/code/modules/uplink/uplink_items/uplink_bundles.dm +++ b/code/modules/uplink/uplink_items/uplink_bundles.dm @@ -50,7 +50,7 @@ Combines with all martial arts, but the user will be unable to bring themselves to use guns, nor remove the armbands." item = /obj/item/storage/box/syndie_kit/northstar cost = 20 - exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops, /datum/game_mode/traitor/internal_affairs) /datum/uplink_item/suits/infiltrator_bundle name = "Insidious Infiltration Gear Case" @@ -117,7 +117,7 @@ you will receive. May contain discontinued and/or exotic items." item = /obj/item/storage/box/syndicate cost = 20 - exclude_modes = list(/datum/game_mode/nuclear) + exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/traitor/internal_affairs) cant_discount = TRUE /datum/uplink_item/bundles_TC/surplus @@ -127,7 +127,7 @@ item = /obj/structure/closet/crate cost = 20 player_minimum = 25 - exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops, /datum/game_mode/traitor/internal_affairs) cant_discount = TRUE var/starting_crate_value = 50 @@ -184,6 +184,7 @@ item = /obj/effect/gibspawner/generic // non-tangible item because techwebs use this path to determine illegal tech cost = 0 cant_discount = TRUE + exclude_modes = list(/datum/game_mode/traitor/internal_affairs) /datum/uplink_item/bundles_TC/random/purchase(mob/user, datum/component/uplink/U) var/list/uplink_items = U.uplink_items diff --git a/code/modules/uplink/uplink_items/uplink_dangerous.dm b/code/modules/uplink/uplink_items/uplink_dangerous.dm index 7d96390115..e068094776 100644 --- a/code/modules/uplink/uplink_items/uplink_dangerous.dm +++ b/code/modules/uplink/uplink_items/uplink_dangerous.dm @@ -21,7 +21,7 @@ item = /obj/item/storage/box/syndie_kit/revolver cost = 13 surplus = 50 - exclude_modes = list(/datum/game_mode/nuclear/clown_ops) + exclude_modes = list(/datum/game_mode/nuclear/clown_ops, /datum/game_mode/traitor/internal_affairs) /datum/uplink_item/dangerous/rawketlawnchair name = "84mm Rocket Propelled Grenade Launcher" @@ -112,7 +112,7 @@ item = /obj/item/dualsaber player_minimum = 25 cost = 16 - exclude_modes = list(/datum/game_mode/nuclear/clown_ops) + exclude_modes = list(/datum/game_mode/nuclear/clown_ops, /datum/game_mode/traitor/internal_affairs) /datum/uplink_item/dangerous/doublesword/get_discount() return pick(4;0.8,2;0.65,1;0.5) @@ -123,7 +123,7 @@ pocketed when inactive. Activating it produces a loud, distinctive noise." item = /obj/item/melee/transforming/energy/sword/saber cost = 8 - exclude_modes = list(/datum/game_mode/nuclear/clown_ops) + exclude_modes = list(/datum/game_mode/nuclear/clown_ops, /datum/game_mode/traitor/internal_affairs) /datum/uplink_item/dangerous/shield name = "Energy Shield" @@ -141,7 +141,7 @@ However, due to the size of the blade and obvious nature of the sheath, the weapon stands out as being obviously nefarious." item = /obj/item/storage/belt/sabre/rapier cost = 8 - exclude_modes = list(/datum/game_mode/nuclear/clown_ops) + exclude_modes = list(/datum/game_mode/nuclear/clown_ops, /datum/game_mode/traitor/internal_affairs) /datum/uplink_item/dangerous/flamethrower name = "Flamethrower" @@ -180,7 +180,7 @@ refundable = TRUE cant_discount = TRUE surplus = 0 - exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops, /datum/game_mode/traitor/internal_affairs) player_minimum = 25 restricted = TRUE refund_path = /obj/item/guardiancreator/tech/choose/traitor @@ -211,6 +211,7 @@ deal extra damage and hit targets further. Use a screwdriver to take out any attached tanks." item = /obj/item/melee/powerfist cost = 8 + exclude_modes = list(/datum/game_mode/traitor/internal_affairs) /datum/uplink_item/dangerous/sniper name = "Sniper Rifle" @@ -250,4 +251,4 @@ darts effective at incapacitating a target." item = /obj/item/gun/ballistic/automatic/toy/pistol/riot cost = 3 - surplus = 10 \ No newline at end of file + surplus = 10 diff --git a/code/modules/uplink/uplink_items/uplink_explosives.dm b/code/modules/uplink/uplink_items/uplink_explosives.dm index c52651fee9..6cc1c9fe05 100644 --- a/code/modules/uplink/uplink_items/uplink_explosives.dm +++ b/code/modules/uplink/uplink_items/uplink_explosives.dm @@ -58,6 +58,7 @@ item = /obj/item/storage/backpack/duffelbag/syndie/x4 cost = 4 // cant_discount = TRUE + exclude_modes = list(/datum/game_mode/traitor/internal_affairs) /datum/uplink_item/explosives/clown_bomb_clownops name = "Clown Bomb" @@ -123,6 +124,7 @@ be defused, and some crew may attempt to do so." item = /obj/item/sbeacondrop/bomb cost = 11 + exclude_modes = list(/datum/game_mode/traitor/internal_affairs) /datum/uplink_item/explosives/syndicate_detonator name = "Syndicate Detonator" @@ -140,7 +142,7 @@ in addition to dealing high amounts of damage to nearby personnel." item = /obj/item/grenade/syndieminibomb cost = 6 - exclude_modes = list(/datum/game_mode/nuclear/clown_ops) + exclude_modes = list(/datum/game_mode/nuclear/clown_ops, /datum/game_mode/traitor/internal_affairs) /datum/uplink_item/explosives/tearstache name = "Teachstache Grenade" diff --git a/code/modules/uplink/uplink_items/uplink_roles.dm b/code/modules/uplink/uplink_items/uplink_roles.dm index da25cf5298..3e42433f1c 100644 --- a/code/modules/uplink/uplink_items/uplink_roles.dm +++ b/code/modules/uplink/uplink_items/uplink_roles.dm @@ -30,6 +30,7 @@ item = /obj/item/gun/blastcannon cost = 14 //High cost because of the potential for extreme damage in the hands of a skilled gas masked scientist. restricted_roles = list("Research Director", "Scientist") + exclude_modes = list(/datum/game_mode/traitor/internal_affairs) /datum/uplink_item/role_restricted/alientech name = "Alien Research Disk" @@ -92,6 +93,7 @@ player_minimum = 20 refundable = TRUE restricted_roles = list("Chaplain") + exclude_modes = list(/datum/game_mode/traitor/internal_affairs) /datum/uplink_item/role_restricted/arcane_tome name = "Arcane Tome" @@ -101,6 +103,7 @@ player_minimum = 20 refundable = TRUE restricted_roles = list("Chaplain") + exclude_modes = list(/datum/game_mode/traitor/internal_affairs) /datum/uplink_item/role_restricted/explosive_hot_potato name = "Exploding Hot Potato" From 42b6944761539b4c0a567d4840962bed8dfbeef1 Mon Sep 17 00:00:00 2001 From: Sishen Date: Sat, 25 Jul 2020 01:54:58 -0600 Subject: [PATCH 2/5] Update internal_affairs.dm --- .../traitor/IAA/internal_affairs.dm | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/code/modules/antagonists/traitor/IAA/internal_affairs.dm b/code/modules/antagonists/traitor/IAA/internal_affairs.dm index c1987c4a19..74fb224b85 100644 --- a/code/modules/antagonists/traitor/IAA/internal_affairs.dm +++ b/code/modules/antagonists/traitor/IAA/internal_affairs.dm @@ -226,18 +226,20 @@ add_objective(escape_objective) /datum/antagonist/traitor/internal_affairs/proc/greet_iaa() - var/crime = pick("distribution of contraband" , "unauthorized erotic action on duty", "embezzlement", "piloting under the influence", "dereliction of duty", "syndicate collaboration", "mutiny", "multiple homicides", "corporate espionage", "receiving bribes", "malpractice", "worship of prohibited life forms", "possession of profane texts", "murder", "arson", "insulting their manager", "grand theft", "conspiracy", "attempting to unionize", "vandalism", "gross incompetence") + var/crime = pick("distribution of contraband" , "embezzlement", "piloting under the influence", "dereliction of duty", "syndicate collaboration", "mutiny", "multiple homicides", "corporate espionage", "receiving bribes", "malpractice", "worship of prohibited life forms", "possession of profane texts", "murder", "arson", "insulting their manager", "grand theft", "conspiracy", "attempting to unionize", "vandalism", "gross incompetence") to_chat(owner.current, "You are the [special_role].") if(syndicate) - to_chat(owner.current, "Your target has been framed for [crime], and you have been tasked with eliminating them to prevent them defending themselves in court.") - to_chat(owner.current, "Any damage you cause will be a further embarrassment to Nanotrasen, so you have no limits on collateral damage.") - to_chat(owner.current, " You have been provided with a standard uplink to accomplish your task. ") - to_chat(owner.current, "By no means reveal that you, or any other NT employees, are undercover agents.") + to_chat(owner.current, "GREAT LEADER IS DEAD. NANOTRASEN MUST FALL.") + to_chat(owner.current, "Your have infiltrated this vessel to cause chaos and assassinate targets known to have conspired against the Syndicate.") + to_chat(owner.current, "Any damage you cause will be a further embarrassment to Nanotrasen, so you have no limits on collateral damage.") + to_chat(owner.current, "You have been provided with a standard uplink to accomplish your task. ") + to_chat(owner.current, "By no means reveal that you are a Syndicate agent. By no means reveal that your targets are being hunted.") else - to_chat(owner.current, "Your target is suspected of [crime], and you have been tasked with eliminating them by any means necessary to avoid a costly and embarrassing public trial.") - to_chat(owner.current, "While you have a license to kill, unneeded property damage or loss of employee life will lead to your contract being terminated.") - to_chat(owner.current, "For the sake of plausible deniability, you have been equipped with an array of captured Syndicate weaponry available via uplink.") + to_chat(owner.current, "CAUTION: Your legal status as a citizen of NanoTrasen will be permanently revoked upon completion of your first contract.") + to_chat(owner.current, "Your target has been suspected of [crime], and must be removed from this plane.") + to_chat(owner.current, "While you have a license to kill, you are to eliminate your targets with no collateral or unrelated deaths.") + to_chat(owner.current, "For the sake of plausable deniability, you have been equipped with captured Syndicate equipment via uplink.") to_chat(owner.current, "By no means reveal that you, or any other NT employees, are undercover agents.") to_chat(owner.current, "Finally, watch your back. Your target has friends in high places, and intel suggests someone may have taken out a contract of their own to protect them.") From 27aba092e0b755e0e7ff51dcde7665b2f0792cb8 Mon Sep 17 00:00:00 2001 From: Sishen Date: Mon, 27 Jul 2020 08:20:03 -0600 Subject: [PATCH 3/5] aaaaaaaaaa --- code/datums/components/uplink.dm | 6 ++++++ code/game/objects/items/granters.dm | 17 +++++++++++++++++ .../antagonists/traitor/IAA/internal_affairs.dm | 2 +- .../uplink/uplink_items/uplink_bundles.dm | 2 +- .../uplink/uplink_items/uplink_stealth.dm | 10 ++++++++++ 5 files changed, 35 insertions(+), 2 deletions(-) diff --git a/code/datums/components/uplink.dm b/code/datums/components/uplink.dm index 46ba5dc93b..2270ecc090 100644 --- a/code/datums/components/uplink.dm +++ b/code/datums/components/uplink.dm @@ -102,6 +102,12 @@ GLOBAL_LIST_EMPTY(uplinks) return //no hitting everyone/everything just to try to slot tcs in! if(istype(I, /obj/item/stack/telecrystal)) LoadTC(user, I) + if(active) + var/datum/component/uplink/hidden_uplink = I.GetComponent(/datum/component/uplink) + var/amt = hidden_uplink.telecrystals + hidden_uplink.telecrystals -= amt + src.telecrystals += amt + to_chat(user, "You connect the [I] to your uplink, siphoning [amt] telecrystals before quickly undoing the connection.") for(var/category in uplink_items) for(var/item in uplink_items[category]) var/datum/uplink_item/UI = uplink_items[category][item] diff --git a/code/game/objects/items/granters.dm b/code/game/objects/items/granters.dm index 4ad71f7c46..aa1c7ff6a2 100644 --- a/code/game/objects/items/granters.dm +++ b/code/game/objects/items/granters.dm @@ -477,6 +477,23 @@ name = "empty scroll" icon_state = "blankscroll" +/obj/item/book/granter/martial/krav_maga + martial = /datum/martial_art/krav_maga + name = "parchment scroll" + martialname = "krav maga" + desc = "A worn parchment scrap written in an ancient language. Somehow you can still understand the lessons!" + greet = "You have learned the ancient martial art of Krav Maga. You have special attacks with which to take down your foes." + icon = 'icons/obj/wizard.dmi' + icon_state ="scroll2" + remarks = list("Sweep the legs...", "Chop the throat...", "Punch the lungs...", "Get the gold...", "Where are my sick gloves..?") + +/obj/item/book/granter/martial/krav_maga/onlearned(mob/living/carbon/user) + ..() + if(oneuse == TRUE) + desc = "It's completely blank." + name = "empty scroll" + icon_state = "blankscroll" + // I did not include mushpunch's grant, it is not a book and the item does it just fine. diff --git a/code/modules/antagonists/traitor/IAA/internal_affairs.dm b/code/modules/antagonists/traitor/IAA/internal_affairs.dm index 74fb224b85..cf8169eeba 100644 --- a/code/modules/antagonists/traitor/IAA/internal_affairs.dm +++ b/code/modules/antagonists/traitor/IAA/internal_affairs.dm @@ -193,7 +193,7 @@ if(syndicate) fail_msg += " You no longer have permission to die. " else - fail_msg += " The truth could still slip out! Cease any terrorist actions as soon as possible, unneeded property damage or loss of employee life will lead to your contract being terminated." + fail_msg += " The truth could still slip out! Cease any terrorist actions as soon as possible, unneeded property damage or loss of employee life will lead to great shame." reinstate_escape_objective(owner) last_man_standing = FALSE to_chat(owner.current, fail_msg) diff --git a/code/modules/uplink/uplink_items/uplink_bundles.dm b/code/modules/uplink/uplink_items/uplink_bundles.dm index 4f9a66eecd..fbeaee8939 100644 --- a/code/modules/uplink/uplink_items/uplink_bundles.dm +++ b/code/modules/uplink/uplink_items/uplink_bundles.dm @@ -163,7 +163,7 @@ /datum/uplink_item/bundles_TC/reroll name = "Renegotiate Contract" - desc = "Selecting this will inform the syndicate that you wish to change employers. Can only be done once; no take-backs." + desc = "Selecting this will inform your employers that you wish for new objectives. Can only be done once; no take-backs." item = /obj/effect/gibspawner/generic cost = 0 cant_discount = TRUE diff --git a/code/modules/uplink/uplink_items/uplink_stealth.dm b/code/modules/uplink/uplink_items/uplink_stealth.dm index b4933b30ba..8cbc1965dc 100644 --- a/code/modules/uplink/uplink_items/uplink_stealth.dm +++ b/code/modules/uplink/uplink_items/uplink_stealth.dm @@ -65,6 +65,16 @@ surplus = 0 exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) +/datum/uplink_item/stealthy_weapons/martialartsthree + name = "Krav Maga Scroll" + desc = "This scroll contains the secrets of an ancient martial arts technique. You will gain special unarmed attacks for \ + stealthy takedowns." + item = /obj/item/book/granter/martial/krav_maga + cost = 16 + player_minimum = 30 + surplus = 0 + include_modes = list(/datum/game_mode/traitor/internal_affairs) + /datum/uplink_item/stealthy_weapons/crossbow name = "Miniature Energy Crossbow" desc = "A short bow mounted across a tiller in miniature. Small enough to \ From 0d85f0553be7768fd683898d0a5b514e9afcb2e2 Mon Sep 17 00:00:00 2001 From: Sishen Date: Tue, 28 Jul 2020 09:30:26 -0600 Subject: [PATCH 4/5] bumps krav down to 25, only give martyr to syndie iaa --- code/modules/antagonists/traitor/IAA/internal_affairs.dm | 6 +++--- code/modules/uplink/uplink_items/uplink_stealth.dm | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/code/modules/antagonists/traitor/IAA/internal_affairs.dm b/code/modules/antagonists/traitor/IAA/internal_affairs.dm index cf8169eeba..ff012e556a 100644 --- a/code/modules/antagonists/traitor/IAA/internal_affairs.dm +++ b/code/modules/antagonists/traitor/IAA/internal_affairs.dm @@ -167,10 +167,10 @@ return if(last_man_standing) if(syndicate) - to_chat(owner.current," All the loyalist agents are dead, and no more is required of you. Die a glorious death, agent. ") + to_chat(owner.current,"All the suspected agents are dead, and no more is required of you. Die a glorious death, agent.") + replace_escape_objective(owner) else - to_chat(owner.current," All the other agents are dead, and you're the last loose end. Stage a Syndicate terrorist attack to cover up for today's events. You no longer have any limits on collateral damage.") - replace_escape_objective(owner) + to_chat(owner.current,"All the other agents are dead. You have done us all a great service and shall be honorably exiled upon returning to base.") /datum/antagonist/traitor/internal_affairs/proc/iaa_process() if(owner&&owner.current&&owner.current.stat!=DEAD) diff --git a/code/modules/uplink/uplink_items/uplink_stealth.dm b/code/modules/uplink/uplink_items/uplink_stealth.dm index 8cbc1965dc..dafd948665 100644 --- a/code/modules/uplink/uplink_items/uplink_stealth.dm +++ b/code/modules/uplink/uplink_items/uplink_stealth.dm @@ -71,7 +71,7 @@ stealthy takedowns." item = /obj/item/book/granter/martial/krav_maga cost = 16 - player_minimum = 30 + player_minimum = 25 surplus = 0 include_modes = list(/datum/game_mode/traitor/internal_affairs) From 7fa5ccbd0e114bb134f9be7b01624b35ee389eb9 Mon Sep 17 00:00:00 2001 From: Sishen Date: Wed, 29 Jul 2020 16:14:01 -0600 Subject: [PATCH 5/5] fixes slapping uplinks with non uplink items giving runtimes --- code/datums/components/uplink.dm | 13 ++++++++----- code/game/objects/items/granters.dm | 2 +- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/code/datums/components/uplink.dm b/code/datums/components/uplink.dm index 2270ecc090..d27cd10c66 100644 --- a/code/datums/components/uplink.dm +++ b/code/datums/components/uplink.dm @@ -103,11 +103,14 @@ GLOBAL_LIST_EMPTY(uplinks) if(istype(I, /obj/item/stack/telecrystal)) LoadTC(user, I) if(active) - var/datum/component/uplink/hidden_uplink = I.GetComponent(/datum/component/uplink) - var/amt = hidden_uplink.telecrystals - hidden_uplink.telecrystals -= amt - src.telecrystals += amt - to_chat(user, "You connect the [I] to your uplink, siphoning [amt] telecrystals before quickly undoing the connection.") + if(I.GetComponent(/datum/component/uplink)) + var/datum/component/uplink/hidden_uplink = I.GetComponent(/datum/component/uplink) + var/amt = hidden_uplink.telecrystals + hidden_uplink.telecrystals -= amt + src.telecrystals += amt + to_chat(user, "You connect the [I] to your uplink, siphoning [amt] telecrystals before quickly undoing the connection.") + else + return for(var/category in uplink_items) for(var/item in uplink_items[category]) var/datum/uplink_item/UI = uplink_items[category][item] diff --git a/code/game/objects/items/granters.dm b/code/game/objects/items/granters.dm index aa1c7ff6a2..1554142c8c 100644 --- a/code/game/objects/items/granters.dm +++ b/code/game/objects/items/granters.dm @@ -488,7 +488,7 @@ remarks = list("Sweep the legs...", "Chop the throat...", "Punch the lungs...", "Get the gold...", "Where are my sick gloves..?") /obj/item/book/granter/martial/krav_maga/onlearned(mob/living/carbon/user) - ..() + . = ..() if(oneuse == TRUE) desc = "It's completely blank." name = "empty scroll"