diff --git a/code/datums/uplink_item.dm b/code/datums/uplink_item.dm
index 2c9b9142f56..a514f857945 100644
--- a/code/datums/uplink_item.dm
+++ b/code/datums/uplink_item.dm
@@ -228,33 +228,6 @@ var/list/uplink_items = list()
cost = 20
gamemodes = list("nuclear emergency")
-
-/datum/uplink_item/dangerous/ammo
- name = "Ammo-357"
- desc = "Seven additional rounds for the revolver. Reports indicate the presence of machinery aboard Nanotrasen space stations suitable for producing extra .357 cartridges."
- item = /obj/item/ammo_box/a357
- cost = 2
-
-/datum/uplink_item/dangerous/ammo/pistol
- name = "Ammo-10mm"
- desc = "An additional 8-round 10mm magazine for use in the Stetchkin pistol."
- item = /obj/item/ammo_box/magazine/m10mm
- cost = 1
-
-/datum/uplink_item/ammo/smg
- name = "Ammo-12mm"
- desc = "A 20-round 12mm magazine for use in the C-20r submachine gun."
- item = /obj/item/ammo_box/magazine/m12mm
- cost = 1
- gamemodes = list("nuclear emergency")
-
-/datum/uplink_item/ammo/machinegun
- name = "Ammo-7.62×51mm"
- desc = "A 50-round magazine of 7.62×51mm ammunition for use in the L6 SAW machinegun. By the time you need to use this, you'll already be on a pile of corpses."
- item = /obj/item/ammo_box/magazine/m762
- cost = 6
- gamemodes = list("nuclear emergency")
-
/datum/uplink_item/dangerous/crossbow
name = "Energy Crossbow"
desc = "A miniature energy crossbow that is small enough both to fit into a pocket and to slip into a backpack unnoticed by observers. Fires bolts tipped with toxin, a poisonous substance that is the product of a living organism. Stuns enemies for a short period of time. Recharges automatically."
@@ -294,6 +267,52 @@ var/list/uplink_items = list()
item = /obj/item/weapon/grenade/syndieminibomb
cost = 3
+/datum/uplink_item/dangerous/gygax
+ name = "Gygax Exosuit"
+ desc = "A lightweight exosuit, painted in a dark scheme. Its speed and equipment selection make it excellent for hit-and-run style attacks. \
+ This model lacks a method of space propulsion, and therefore it is advised to repair the mothership's teleporter if you wish to make use of it."
+ item = /obj/mecha/combat/gygax/dark/loaded
+ cost = 45
+ gamemodes = list("nuclear emergency")
+
+/datum/uplink_item/dangerous/mauler
+ name = "Mauler Exosuit"
+ desc = "A massive and incredibly deadly Syndicate exosuit. Features long-range targetting, thrust vectoring, and deployable smoke."
+ item = /obj/mecha/combat/marauder/mauler/loaded
+ cost = 70
+ gamemodes = list("nuclear emergency")
+
+// Ammunition
+
+/datum/uplink_item/ammo
+ category = "Ammunition"
+
+/datum/uplink_item/ammo/revolver
+ name = "Ammo-357"
+ desc = "A box that contains seven additional rounds for the revolver, made using an automatic lathe."
+ item = /obj/item/ammo_box/a357
+ cost = 2
+
+/datum/uplink_item/ammo/pistol
+ name = "Ammo-10mm"
+ desc = "An additional 8-round 10mm magazine for use in the Stetchkin pistol."
+ item = /obj/item/ammo_box/magazine/m10mm
+ cost = 1
+
+/datum/uplink_item/ammo/smg
+ name = "Ammo-12mm"
+ desc = "A 20-round 12mm magazine for use in the C-20r submachine gun."
+ item = /obj/item/ammo_box/magazine/m12mm
+ cost = 1
+ gamemodes = list("nuclear emergency")
+
+/datum/uplink_item/ammo/machinegun
+ name = "Ammo-7.62×51mm"
+ desc = "A 50-round magazine of 7.62×51mm ammunition for use in the L6 SAW machinegun. By the time you need to use this, you'll already be on a pile of corpses."
+ item = /obj/item/ammo_box/magazine/m762
+ cost = 6
+ gamemodes = list("nuclear emergency")
+
// STEALTHY WEAPONS
@@ -374,12 +393,6 @@ var/list/uplink_items = list()
item = /obj/item/weapon/dnascrambler
cost = 2
-/datum/uplink_item/stealthy_tools/mindslave
- name = "Mindslave Implant"
- desc = "A box containing an implanter filled with a mindslave implant that when injected into another person makes them loyal to you and your cause, unless of course they're already implanted by someone else. Loyalty ends if the implant is no longer in their system."
- item = /obj/item/weapon/storage/box/syndie_kit/mindslave
- cost = 5
-
// DEVICE AND TOOLS
/datum/uplink_item/device_tools
@@ -531,6 +544,17 @@ var/list/uplink_items = list()
item = /obj/item/weapon/storage/box/syndie_kit/imp_compress
cost = 4
+/datum/uplink_item/implants/mindslave
+ name = "Mindslave Implant"
+ desc = "A box containing an implanter filled with a mindslave implant that when injected into another person makes them loyal to you and your cause, unless of course they're already implanted by someone else. Loyalty ends if the implant is no longer in their system."
+ item = /obj/item/weapon/storage/box/syndie_kit/mindslave
+ cost = 5
+
+/datum/uplink_item/implants/adrenal
+ name = "Adrenal Implant"
+ desc = "An implant injected into the body, and later activated using a bodily gesture to inject a chemical cocktail, which has a mild healing effect along with removing all stuns and increasing his speed."
+ item = /obj/item/weapon/storage/box/syndie_kit/imp_adrenal
+ cost = 4
// POINTLESS BADASSERY
@@ -548,7 +572,7 @@ var/list/uplink_items = list()
desc = "A special deck of space-grade playing cards with a mono-molecular edge and metal reinforcement, making them lethal weapons both when wielded as a blade and when thrown. \
You can also play card games with them."
item = /obj/item/toy/cards/deck/syndicate
- cost = 2
+ cost = 1
/datum/uplink_item/badass/balloon
name = "For showing that you are The Boss"
diff --git a/code/game/gamemodes/nuclear/nuclear.dm b/code/game/gamemodes/nuclear/nuclear.dm
index f8497391637..7b1aa1fa56b 100644
--- a/code/game/gamemodes/nuclear/nuclear.dm
+++ b/code/game/gamemodes/nuclear/nuclear.dm
@@ -13,7 +13,7 @@ proc/issyndicate(mob/living/M as mob)
recommended_enemies = 4
uplink_welcome = "Corporate Backed Uplink Console:"
- uplink_uses = 40
+ uplink_uses = 55
var/const/agents_possible = 5 //If we ever need more syndicate agents.
var/const/waittime_l = 600 //lower bound on time before intercept arrives (in tenths of seconds)
@@ -210,7 +210,7 @@ proc/issyndicate(mob/living/M as mob)
synd_mob.equip_to_slot_or_del(new /obj/item/clothing/under/syndicate(synd_mob), slot_w_uniform)
synd_mob.equip_to_slot_or_del(new /obj/item/clothing/shoes/black(synd_mob), slot_shoes)
- synd_mob.equip_to_slot_or_del(new /obj/item/clothing/gloves/swat(synd_mob), slot_gloves)
+ synd_mob.equip_or_collect(new /obj/item/clothing/gloves/combat(synd_mob), slot_gloves)
synd_mob.equip_to_slot_or_del(new /obj/item/weapon/card/id/syndicate(synd_mob), slot_wear_id)
if(synd_mob.backbag == 2) synd_mob.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack(synd_mob), slot_back)
if(synd_mob.backbag == 3) synd_mob.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel_norm(synd_mob), slot_back)
@@ -232,10 +232,13 @@ proc/issyndicate(mob/living/M as mob)
switch(race)
if("Unathi")
new_suit.species_restricted = list("Unathi")
+ new_helmet.species_restricted = list("Unathi")
if("Tajaran")
new_suit.species_restricted = list("Tajaran")
+ new_helmet.species_restricted = list("Tajaran")
if("Skrell")
new_suit.species_restricted = list("Skrell")
+ new_helmet.species_restricted = list("Skrell")
if("Vox" || "Vox Armalis")
synd_mob.equip_to_slot_or_del(new /obj/item/clothing/mask/breath(synd_mob), slot_wear_mask)
synd_mob.equip_to_slot_or_del(new /obj/item/weapon/tank/nitrogen(synd_mob), slot_l_hand)
@@ -243,6 +246,7 @@ proc/issyndicate(mob/living/M as mob)
if (synd_mob.internals)
synd_mob.internals.icon_state = "internal1"
new_suit.species_restricted = list ("Vox", "Vox Armalis")
+ new_helmet.species_restricted = list ("Vox", "Vox Armalis")
synd_mob.equip_to_slot_or_del(new_suit, slot_wear_suit)
@@ -252,6 +256,7 @@ proc/issyndicate(mob/living/M as mob)
var/obj/item/weapon/implant/dexplosive/E = new/obj/item/weapon/implant/dexplosive(synd_mob)
E.imp_in = synd_mob
E.implanted = 1
+ synd_mob.faction |= "syndicate"
synd_mob.update_icons()
return 1
diff --git a/code/game/jobs/job/support.dm b/code/game/jobs/job/support.dm
index 6e64040b184..70e2ab4bbf5 100644
--- a/code/game/jobs/job/support.dm
+++ b/code/game/jobs/job/support.dm
@@ -87,18 +87,18 @@
equip(var/mob/living/carbon/human/H)
if(!H) return 0
- H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/hydroponics(H), slot_w_uniform)
- H.equip_to_slot_or_del(new /obj/item/clothing/shoes/black(H), slot_shoes)
- H.equip_to_slot_or_del(new /obj/item/clothing/gloves/botanic_leather(H), slot_gloves)
- H.equip_to_slot_or_del(new /obj/item/clothing/suit/apron(H), slot_wear_suit)
- H.equip_to_slot_or_del(new /obj/item/device/analyzer/plant_analyzer(H), slot_s_store)
- H.equip_to_slot_or_del(new /obj/item/device/pda/botanist(H), slot_wear_pda)
+ H.equip_or_collect(new /obj/item/clothing/under/rank/hydroponics(H), slot_w_uniform)
+ H.equip_or_collect(new /obj/item/clothing/shoes/black(H), slot_shoes)
+ H.equip_or_collect(new /obj/item/clothing/gloves/botanic_leather(H), slot_gloves)
+ H.equip_or_collect(new /obj/item/clothing/suit/apron(H), slot_wear_suit)
+ H.equip_or_collect(new /obj/item/device/analyzer/plant_analyzer(H), slot_s_store)
+ H.equip_or_collect(new /obj/item/device/pda/botanist(H), slot_wear_pda)
switch(H.backbag)
- if(1) H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/survival(H), slot_r_hand)
- if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack(H), slot_back)
- if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel_hyd(H), slot_back)
- if(4) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(H), slot_back)
- H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/survival(H.back), slot_in_backpack)
+ if(1) H.equip_or_collect(new /obj/item/weapon/storage/box/survival(H), slot_r_hand)
+ if(2) H.equip_or_collect(new /obj/item/weapon/storage/backpack(H), slot_back)
+ if(3) H.equip_or_collect(new /obj/item/weapon/storage/backpack/satchel_hyd(H), slot_back)
+ if(4) H.equip_or_collect(new /obj/item/weapon/storage/backpack/satchel(H), slot_back)
+ H.equip_or_collect(new /obj/item/weapon/storage/box/survival(H.back), slot_in_backpack)
return 1
diff --git a/code/game/mecha/combat/gygax.dm b/code/game/mecha/combat/gygax.dm
index a68fd42e0e5..d98b7378fcf 100644
--- a/code/game/mecha/combat/gygax.dm
+++ b/code/game/mecha/combat/gygax.dm
@@ -5,8 +5,8 @@
initial_icon = "gygax"
step_in = 3
dir_in = 1 //Facing North.
- health = 300
- deflect_chance = 15
+ health = 250
+ deflect_chance = 5
damage_absorption = list("brute"=0.75,"fire"=1,"bullet"=0.8,"laser"=0.7,"energy"=0.85,"bomb"=1)
max_temperature = 25000
infra_luminosity = 6
@@ -17,6 +17,7 @@
max_equip = 3
maxsize = 1
force = 10
+ step_energy_drain = 3
/obj/mecha/combat/gygax/loaded/New()
..()
@@ -27,25 +28,25 @@
return
/obj/mecha/combat/gygax/dark
- desc = "A lightweight exosuit used by Nanotrasen Death Squads. A significantly upgraded Gygax security mech."
+ desc = "A lightweight exosuit, painted in a dark scheme. This model appears to have some modifications."
name = "Dark Gygax"
icon_state = "darkgygax"
initial_icon = "darkgygax"
- health = 400
- deflect_chance = 25
+ health = 300
+ deflect_chance = 15
damage_absorption = list("brute"=0.6,"fire"=0.8,"bullet"=0.6,"laser"=0.5,"energy"=0.65,"bomb"=0.8)
- max_temperature = 45000
+ max_temperature = 35000
overload_coeff = 1
+ operation_req_access = list(access_syndicate)
wreckage = /obj/effect/decal/mecha_wreckage/gygax/dark
max_equip = 4
maxsize = 2
- step_energy_drain = 5
-/obj/mecha/combat/gygax/dark/New()
+/obj/mecha/combat/gygax/dark/loaded/New()
..()
- var/obj/item/mecha_parts/mecha_equipment/ME = new /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/scattershot
+ var/obj/item/mecha_parts/mecha_equipment/ME = new /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/carbine
ME.attach(src)
- ME = new /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/flashbang/clusterbang
+ ME = new /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/flashbang
ME.attach(src)
ME = new /obj/item/mecha_parts/mecha_equipment/teleporter
ME.attach(src)
diff --git a/code/game/mecha/combat/marauder.dm b/code/game/mecha/combat/marauder.dm
index 6e924e13ebb..c332603ab46 100644
--- a/code/game/mecha/combat/marauder.dm
+++ b/code/game/mecha/combat/marauder.dm
@@ -43,7 +43,23 @@
operation_req_access = list(access_syndicate)
wreckage = /obj/effect/decal/mecha_wreckage/mauler
-/obj/mecha/combat/marauder/New()
+/obj/mecha/combat/marauder/mauler/loaded/New()
+ ..()
+ var/obj/item/mecha_parts/mecha_equipment/ME = new /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/lmg(src)
+ ME.attach(src)
+ ME = new /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/scattershot(src)
+ ME.attach(src)
+ ME = new /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack(src)
+ ME.attach(src)
+ ME = new /obj/item/mecha_parts/mecha_equipment/tesla_energy_relay(src)
+ ME.attach(src)
+ ME = new /obj/item/mecha_parts/mecha_equipment/antiproj_armor_booster(src)
+ ME.attach(src)
+ src.smoke_system.set_up(3, 0, src)
+ src.smoke_system.attach(src)
+ return
+
+/obj/mecha/combat/marauder/loaded/New()
..()
var/obj/item/mecha_parts/mecha_equipment/ME = new /obj/item/mecha_parts/mecha_equipment/weapon/energy/pulse
ME.attach(src)
diff --git a/code/game/mecha/equipment/weapons/weapons.dm b/code/game/mecha/equipment/weapons/weapons.dm
index 282a4a88d9f..01d95855f8c 100644
--- a/code/game/mecha/equipment/weapons/weapons.dm
+++ b/code/game/mecha/equipment/weapons/weapons.dm
@@ -201,13 +201,45 @@
return
/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/carbine
- name = "\improper FNX-66 Carbine"
+ name = "FNX-66 Carbine"
icon_state = "mecha_carbine"
equip_cooldown = 5
- projectile = /obj/item/projectile/bullet/incendiary/mech
- projectiles = 12
+ projectile = /obj/item/projectile/bullet/incendiary/shell/dragonsbreath
+ fire_sound = 'sound/weapons/Gunshot.ogg'
+ projectiles = 24
projectile_energy_cost = 15
+ var/projectiles_per_shot = 1
+ var/deviation = 0.0
+ action(atom/target)
+ if(!action_checks(target)) return
+ var/turf/targloc = get_turf(target)
+ var/target_x = targloc.x
+ var/target_y = targloc.y
+ var/target_z = targloc.z
+ targloc = null
+ spawn for(var/i=1 to min(projectiles, projectiles_per_shot))
+ if(!chassis) break
+ var/turf/curloc = get_turf(chassis)
+ targloc = locate(target_x+GaussRandRound(deviation,1),target_y+GaussRandRound(deviation,1),target_z)
+ if (!targloc || !curloc)
+ continue
+ if (targloc == curloc)
+ continue
+
+ playsound(chassis, fire_sound, 50, 1)
+ var/obj/item/projectile/A = new projectile(curloc)
+ src.projectiles--
+ A.original = target
+ A.current = curloc
+ A.yo = targloc.y - curloc.y
+ A.xo = targloc.x - curloc.x
+ A.process()
+ sleep(2)
+ set_ready_state(0)
+ log_message("Fired from [src.name], targeting [target].")
+ do_after_cooldown()
+ return
/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/silenced
name = "\improper S.H.H. \"Quietus\" Carbine"
@@ -222,7 +254,7 @@
name = "LBX AC 10 \"Scattershot\""
icon_state = "mecha_scatter"
equip_cooldown = 20
- projectile = /obj/item/projectile/bullet/midbullet10
+ projectile = /obj/item/projectile/bullet/midbullet12
fire_sound = 'sound/weapons/Gunshot.ogg'
projectiles = 40
projectile_energy_cost = 25
@@ -263,7 +295,7 @@
equip_cooldown = 10
projectile = /obj/item/projectile/bullet/weakbullet
fire_sound = 'sound/weapons/Gunshot.ogg'
- projectiles = 50
+ projectiles = 300
projectile_energy_cost = 20
var/projectiles_per_shot = 3
var/deviation = 0.3
@@ -299,11 +331,11 @@
return
/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack
- name = "SRM-4 Missile Rack"
+ name = "SRM-8 Missile Rack"
icon_state = "mecha_missilerack"
projectile = /obj/item/missile
fire_sound = 'sound/effects/bang.ogg'
- projectiles = 4
+ projectiles = 8
projectile_energy_cost = 1000
equip_cooldown = 60
var/missile_speed = 2
@@ -331,7 +363,7 @@
throw_impact(atom/hit_atom)
if(primed)
- explosion(hit_atom,1,2,2)
+ explosion(hit_atom, 0, 0, 2, 4)
del(src)
else
..()
@@ -345,7 +377,7 @@
projectiles = 6
missile_speed = 1.5
projectile_energy_cost = 800
- equip_cooldown = 150
+ equip_cooldown = 60
var/det_time = 20
size=1
action(target)
diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm
index 114cdab88e2..3b58b753d86 100644
--- a/code/game/objects/items/toys.dm
+++ b/code/game/objects/items/toys.dm
@@ -927,9 +927,9 @@ obj/item/toy/cards/deck/syndicate
desc = "A deck of space-grade playing cards. They seem unusually rigid."
deckstyle = "syndicate"
card_hitsound = 'sound/weapons/bladeslice.ogg'
- card_force = 15
- card_throwforce = 15
- card_throw_speed = 6
+ card_force = 5
+ card_throwforce = 10
+ card_throw_speed = 3
card_throw_range = 20
card_attack_verb = list("attacked", "sliced", "diced", "slashed", "cut")
@@ -952,13 +952,18 @@ obj/item/toy/cards/deck/syndicate/black
/obj/item/toy/nuke/attack_self(mob/user)
if (cooldown < world.time)
- cooldown = world.time + 3000 //5 minutes
+ cooldown = world.time + 1800 //3 minutes
user.visible_message("[user] presses a button on [src]", "You activate [src], it plays a loud noise!", "You hear the click of a button.")
spawn(5) //gia said so
icon_state = "nuketoy"
- playsound(src, 'sound/machines/Alarm.ogg', 100, 0, surround = 0)
+ playsound(src, 'sound/machines/Alarm.ogg', 100, 0, 0)
sleep(135)
+ icon_state = "nuketoycool"
+ sleep(cooldown - world.time)
icon_state = "nuketoyidle"
+ else
+ var/timeleft = (cooldown - world.time)
+ user << "Nothing happens, and '[round(timeleft/10)]' appears on a small display."
/obj/item/toy/therapy_red
diff --git a/code/game/objects/items/weapons/implants/implant.dm b/code/game/objects/items/weapons/implants/implant.dm
index c174597cec2..5d2a35e4f21 100644
--- a/code/game/objects/items/weapons/implants/implant.dm
+++ b/code/game/objects/items/weapons/implants/implant.dm
@@ -405,7 +405,7 @@ the implant may become unstable and either pre-maturely inject the subject or si
/obj/item/weapon/implant/adrenalin
name = "adrenalin"
desc = "Removes all stuns and knockdowns."
- var/uses
+ var/uses = 3
get_data()
var/dat = {"
@@ -414,8 +414,8 @@ the implant may become unstable and either pre-maturely inject the subject or si
Life: Five days.
Important Notes: Illegal