diff --git a/code/datums/uplink_item.dm b/code/datums/uplink_item.dm
index 9006433602a..d0f18a140ca 100644
--- a/code/datums/uplink_item.dm
+++ b/code/datums/uplink_item.dm
@@ -323,18 +323,18 @@ var/list/uplink_items = list()
cost = 18
gamemodes = list("nuclear emergency")
-/datum/uplink_item/ammo/bullstun
- name = "Drum Magazine - 12g Stun Slug"
- desc = "An additional 8-round stun slug magazine for use in the Bulldog shotgun. Saying that they're non-lethal would be lying."
+/datum/uplink_item/ammo/bullbuck
+ name = "Drum Magazine - 12g buckshot"
+ desc = "An additional 8-round buckshot magazine for use in the Bulldog shotgun. Front towards enemy."
item = /obj/item/ammo_box/magazine/m12g
cost = 2
gamemodes = list("nuclear emergency")
-/datum/uplink_item/ammo/bullbuck
- name = "Drum Magazine - 12g Buckshot"
- desc = "An alternative 8-round buckshot magazine for use in the Bulldog shotgun. Front towards enemy."
- item = /obj/item/ammo_box/magazine/m12g/buckshot
- cost = 2
+/datum/uplink_item/ammo/bullstun
+ name = "Drum Magazine - 12g Stun Slug"
+ desc = "An alternative 8-round stun slug magazine for use in the Bulldog shotgun. Saying that they're completely non-lethal would be lying."
+ item = /obj/item/ammo_box/magazine/m12g/stun
+ cost = 3
gamemodes = list("nuclear emergency")
/datum/uplink_item/ammo/bulldragon
diff --git a/code/game/gamemodes/nuclear/nuclear.dm b/code/game/gamemodes/nuclear/nuclear.dm
index 8c8974dcc02..47493adab52 100644
--- a/code/game/gamemodes/nuclear/nuclear.dm
+++ b/code/game/gamemodes/nuclear/nuclear.dm
@@ -278,9 +278,6 @@ proc/issyndicate(mob/living/M as mob)
U.hidden_uplink.uses = 20
synd_mob.equip_to_slot_or_del(U, slot_in_backpack)
- var/obj/item/clothing/suit/space/rig/syndi/new_suit = new(synd_mob)
- var/obj/item/clothing/head/helmet/space/rig/syndi/new_helmet = new(synd_mob)
-
if(synd_mob.species)
/*
@@ -293,28 +290,12 @@ proc/issyndicate(mob/living/M as mob)
var/race = synd_mob.species.name
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/clothing/mask/gas/syndicate(synd_mob), slot_wear_mask)
synd_mob.equip_to_slot_or_del(new /obj/item/weapon/tank/nitrogen(synd_mob), slot_l_hand)
synd_mob.internal = synd_mob.l_hand
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)
- synd_mob.equip_to_slot_or_del(new_helmet, slot_head)
-
var/obj/item/weapon/implant/dexplosive/E = new/obj/item/weapon/implant/dexplosive(synd_mob)
E.imp_in = synd_mob
diff --git a/code/game/objects/items/weapons/melee/energy.dm b/code/game/objects/items/weapons/melee/energy.dm
index e117cbaf0f2..27f233e75b3 100644
--- a/code/game/objects/items/weapons/melee/energy.dm
+++ b/code/game/objects/items/weapons/melee/energy.dm
@@ -50,7 +50,7 @@
edge = 1
/obj/item/weapon/melee/energy/sword/cyborg
- var/hitcost = 500
+ var/hitcost = 250
/obj/item/weapon/melee/energy/sword/cyborg/attack(mob/M, var/mob/living/silicon/robot/R)
if(R.cell)
diff --git a/code/game/objects/items/weapons/power_cells.dm b/code/game/objects/items/weapons/power_cells.dm
index cbaa53c0b54..841a3c0c12b 100644
--- a/code/game/objects/items/weapons/power_cells.dm
+++ b/code/game/objects/items/weapons/power_cells.dm
@@ -119,3 +119,19 @@
rating = 3
m_amt = 0
g_amt = 0
+
+/obj/item/weapon/stock_parts/cell/emproof
+ name = "\improper EMP-proof cell"
+ desc = "An EMP-proof cell."
+ maxcharge = 5000
+ rating = 2
+
+/obj/item/weapon/stock_parts/cell/emproof/empty/New()
+ ..()
+ charge = 0
+
+/obj/item/weapon/stock_parts/cell/emproof/emp_act(severity)
+ return
+
+/obj/item/weapon/stock_parts/cell/emproof/corrupt()
+ return
\ No newline at end of file
diff --git a/code/game/objects/structures/crates_lockers/closets/syndicate.dm b/code/game/objects/structures/crates_lockers/closets/syndicate.dm
index 01fceded7e6..09dcc02bafd 100644
--- a/code/game/objects/structures/crates_lockers/closets/syndicate.dm
+++ b/code/game/objects/structures/crates_lockers/closets/syndicate.dm
@@ -13,8 +13,7 @@
..()
sleep(2)
new /obj/item/clothing/under/syndicate(src)
- new /obj/item/clothing/suit/armor/vest(src)
- new /obj/item/clothing/head/helmet/swat/syndicate(src)
+ new /obj/item/clothing/shoes/black(src)
new /obj/item/ammo_box/magazine/m10mm(src)
new /obj/item/weapon/storage/belt/military(src)
new /obj/item/weapon/crowbar/red(src)
@@ -26,8 +25,10 @@
/obj/structure/closet/syndicate/suits/New()
..()
sleep(2)
- new /obj/item/weapon/tank/jetpack/oxygen/harness(src)
+ new /obj/item/clothing/head/helmet/space/rig/syndi(src)
new /obj/item/clothing/mask/gas/syndicate(src)
+ new /obj/item/clothing/suit/space/rig/syndi(src)
+ new /obj/item/weapon/tank/jetpack/oxygen/harness(src)
new /obj/item/clothing/shoes/magboots/syndie(src)
/obj/structure/closet/syndicate/nuclear
diff --git a/code/modules/clothing/spacesuits/rig.dm b/code/modules/clothing/spacesuits/rig.dm
index af296490df3..d93863276ec 100644
--- a/code/modules/clothing/spacesuits/rig.dm
+++ b/code/modules/clothing/spacesuits/rig.dm
@@ -365,44 +365,89 @@
//Syndicate rig
/obj/item/clothing/head/helmet/space/rig/syndi
name = "blood-red hardsuit helmet"
- desc = "An advanced helmet designed for work in special operations. Property of Gorlex Marauders."
- icon_state = "rig0-syndie"
+ desc = "A dual-mode advanced helmet designed for work in special operations. It is in travel mode. Property of Gorlex Marauders."
+ icon_state = "hardsuit1-syndi"
item_state = "syndie_helm"
- _color = "syndie"
+ _color = "syndi"
armor = list(melee = 60, bullet = 50, laser = 30, energy = 15, bomb = 35, bio = 100, rad = 50)
- siemens_coefficient = 0.6
- var/obj/machinery/camera/camera
- species_restricted = list("exclude","Unathi","Tajaran","Skrell","Vox")
+ on = 1
+ action_button_name = "Toggle Helmet Mode"
+ icon_action_button = "Action_hardsuit1-syndi"
+ species_restricted = null
+ sprite_sheets = null
+/obj/item/clothing/head/helmet/space/rig/syndi/update_icon()
+ icon_state = "hardsuit[on]-[_color]"
/obj/item/clothing/head/helmet/space/rig/syndi/attack_self(mob/user)
- if(camera)
- ..(user)
+ if(!isturf(user.loc))
+ user << "You cannot toggle your helmet while in this [user.loc]" //To prevent some lighting anomalities.
+ return
+ on = !on
+ if(on)
+ user << "You switch your helmet to travel mode."
+ name = "blood-red hardsuit helmet"
+ desc = "A dual-mode advanced helmet designed for work in special operations. It is in travel mode. Property of Gorlex Marauders."
+ flags = HEADCOVERSEYES | BLOCKHAIR | HEADCOVERSMOUTH | STOPSPRESSUREDMAGE
+ flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE
+ cold_protection = HEAD
+ user.AddLuminosity(brightness_on)
else
- camera = new /obj/machinery/camera(src)
- camera.network = list("NukeOps")
- cameranet.removeCamera(camera)
- camera.c_tag = user.name
- user << "\blue User scanned as [camera.c_tag]. Camera activated."
+ user << "You switch your helmet to combat mode."
+ name = "blood-red hardsuit helmet (combat)"
+ desc = "A dual-mode advanced helmet designed for work in special operations. It is in combat mode. Property of Gorlex Marauders."
+ flags = BLOCKHAIR
+ flags_inv = HIDEEARS
+ cold_protection = null
+ user.AddLuminosity(-brightness_on)
-/obj/item/clothing/head/helmet/space/rig/syndi/examine()
- ..()
- if(get_dist(usr,src) <= 1)
- usr << "This helmet has a built-in camera. It's [camera ? "" : "in"]active."
+ update_icon()
+ playsound(src.loc, 'sound/mecha/mechmove03.ogg', 50, 1)
+ user.update_inv_head()
/obj/item/clothing/suit/space/rig/syndi
- icon_state = "rig-syndie"
name = "blood-red hardsuit"
- desc = "An advanced suit that protects against injuries during special operations. Property of Gorlex Marauders."
+ desc = "A dual-mode advanced hardsuit designed for work in special operations. It is in travel mode. Property of Gorlex Marauders."
+ icon_state = "hardsuit1-syndi"
item_state = "syndie_hardsuit"
+ _color = "syndi"
slowdown = 1
w_class = 3
+ var/on = 1
+ action_button_name = "Toggle Hardsuit Mode"
+ icon_action_button = "Action_hardsuit1-syndi"
armor = list(melee = 60, bullet = 50, laser = 30, energy = 15, bomb = 35, bio = 100, rad = 50)
- allowed = list(/obj/item/weapon/gun,/obj/item/ammo_box/magazine,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/melee/energy/sword,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank)
- siemens_coefficient = 0.6
- species_restricted = list("exclude","Unathi","Tajaran","Skrell","Vox")
+ allowed = list(/obj/item/weapon/gun,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/melee/energy/sword,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank)
+ species_restricted = null
sprite_sheets = null
+/obj/item/clothing/suit/space/rig/syndi/update_icon()
+ icon_state = "hardsuit[on]-[_color]"
+
+/obj/item/clothing/suit/space/rig/syndi/attack_self(mob/user)
+ on = !on
+ if(on)
+ user << "You switch your hardsuit to travel mode."
+ name = "blood-red hardsuit helmet"
+ desc = "A dual-mode advanced hardsuit designed for work in special operations. It is in travel mode. Property of Gorlex Marauders."
+ slowdown = 1
+ flags = STOPSPRESSUREDMAGE
+ flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT
+ cold_protection = UPPER_TORSO | LOWER_TORSO | LEGS | FEET | ARMS | HANDS
+ else
+ user << "You switch your hardsuit to combat mode."
+ name = "blood-red hardsuit helmet (combat)"
+ desc = "A dual-mode advanced hardsuit designed for work in special operations. It is in combat mode. Property of Gorlex Marauders."
+ slowdown = 0
+ flags = BLOCKHAIR
+ flags_inv = null
+ cold_protection = null
+
+ update_icon()
+ playsound(src.loc, 'sound/mecha/mechmove03.ogg', 50, 1)
+ user.update_inv_wear_suit()
+ user.update_inv_w_uniform()
+
//Wizard Rig
/obj/item/clothing/head/helmet/space/rig/wizard
name = "gem-encrusted hardsuit helmet"
diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm
index 78fa731e685..0ac77e3d739 100644
--- a/code/modules/mob/living/silicon/robot/robot_modules.dm
+++ b/code/modules/mob/living/silicon/robot/robot_modules.dm
@@ -332,8 +332,7 @@
src.modules += new /obj/item/device/flash/cyborg(src)
src.modules += new /obj/item/device/flashlight(src)
src.modules += new /obj/item/weapon/melee/energy/sword/cyborg(src)
- src.modules += new /obj/item/weapon/gun/energy/printer(src)
- src.modules += new /obj/item/weapon/gun/projectile/revolver/grenadelauncher/multi/cyborg(src)
+ src.modules += new /obj/item/weapon/gun/energy/kinetic_accelerator/crossbow/large/cyborg(src)
src.modules += new /obj/item/weapon/card/emag(src)
src.modules += new /obj/item/weapon/tank/jetpack/carbondioxide(src)
src.modules += new /obj/item/weapon/crowbar(src)
diff --git a/code/modules/projectiles/ammunition/magazines.dm b/code/modules/projectiles/ammunition/magazines.dm
index 9e333f5c82a..eaca720e21a 100644
--- a/code/modules/projectiles/ammunition/magazines.dm
+++ b/code/modules/projectiles/ammunition/magazines.dm
@@ -180,10 +180,10 @@
icon_state = "[initial(icon_state)]-[round(ammo_count(),10)]"
/obj/item/ammo_box/magazine/m12g
- name = "shotgun magazine (12g taser slugs)"
- icon_state = "m12gs"
+ name = "shotgun magazine (12g buckshot)"
+ icon_state = "m12gb"
+ ammo_type = "/obj/item/ammo_casing/shotgun/buckshot"
origin_tech = "combat=3;syndicate=1"
- ammo_type = "/obj/item/ammo_casing/shotgun/stunslug"
caliber = "shotgun"
max_ammo = 8
@@ -192,10 +192,10 @@
icon_state = "[initial(icon_state)]-[Ceiling(ammo_count(0)/8)*8]"
-/obj/item/ammo_box/magazine/m12g/buckshot
- name = "shotgun magazine (12g buckshot)"
- icon_state = "m12gb"
- ammo_type = "/obj/item/ammo_casing/shotgun/buckshot"
+/obj/item/ammo_box/magazine/m12g/stun
+ name = "shotgun magazine (12g taser slugs)"
+ icon_state = "m12gs"
+ ammo_type = "/obj/item/ammo_casing/shotgun/stunslug"
/obj/item/ammo_box/magazine/m12g/dragon
diff --git a/code/modules/projectiles/guns/energy.dm b/code/modules/projectiles/guns/energy.dm
index b3bb07066e6..939304a4441 100644
--- a/code/modules/projectiles/guns/energy.dm
+++ b/code/modules/projectiles/guns/energy.dm
@@ -11,9 +11,8 @@
var/modifystate
emp_act(severity)
- power_supply.use(round(power_supply.maxcharge / severity))
+ power_supply.use(round(power_supply.charge / severity))
update_icon()
- ..()
New()
diff --git a/code/modules/projectiles/guns/energy/special.dm b/code/modules/projectiles/guns/energy/special.dm
index db58dedb0ea..c6dd42292d6 100644
--- a/code/modules/projectiles/guns/energy/special.dm
+++ b/code/modules/projectiles/guns/energy/special.dm
@@ -229,7 +229,7 @@ modules/mob/living/carbon/human/life.dm if you die, you will be zoomed out.
projectile_type = "/obj/item/projectile/kinetic"
fire_sound = 'sound/weapons/Kenetic_accel.ogg'
charge_cost = 5000
- cell_type = "/obj/item/weapon/stock_parts/cell/crap"
+ cell_type = "/obj/item/weapon/stock_parts/cell/emproof"
var/overheat = 0
var/recent_reload = 1
@@ -240,6 +240,9 @@ modules/mob/living/carbon/human/life.dm if you die, you will be zoomed out.
recent_reload = 0
..()
+/obj/item/weapon/gun/energy/kinetic_accelerator/emp_act(severity)
+ return
+
/obj/item/weapon/gun/energy/kinetic_accelerator/attack_self(var/mob/living/user/L)
if(overheat || recent_reload)
return
@@ -274,6 +277,11 @@ modules/mob/living/carbon/human/life.dm if you die, you will be zoomed out.
silenced = 0
projectile_type = "/obj/item/projectile/energy/bolt/large"
+/obj/item/weapon/gun/energy/kinetic_accelerator/crossbow/large/cyborg
+ desc = "One and done!"
+ icon_state = "crossbowlarge"
+ origin_tech = null
+ m_amt = 0
/obj/item/weapon/gun/energy/disabler
name = "disabler"
diff --git a/icons/mob/head.dmi b/icons/mob/head.dmi
index 944bd928e1e..84fca7e8f90 100644
Binary files a/icons/mob/head.dmi and b/icons/mob/head.dmi differ
diff --git a/icons/mob/suit.dmi b/icons/mob/suit.dmi
index b111df54f9d..520624e3903 100644
Binary files a/icons/mob/suit.dmi and b/icons/mob/suit.dmi differ
diff --git a/icons/obj/chemical.dmi b/icons/obj/chemical.dmi
index e0e70b2736a..584ee26023e 100644
Binary files a/icons/obj/chemical.dmi and b/icons/obj/chemical.dmi differ
diff --git a/icons/obj/clothing/hats.dmi b/icons/obj/clothing/hats.dmi
index dd1bcd3e70f..d2eafbe18e3 100644
Binary files a/icons/obj/clothing/hats.dmi and b/icons/obj/clothing/hats.dmi differ
diff --git a/icons/obj/clothing/suits.dmi b/icons/obj/clothing/suits.dmi
index 943095ad7b0..7fd23898498 100644
Binary files a/icons/obj/clothing/suits.dmi and b/icons/obj/clothing/suits.dmi differ
diff --git a/maps/cyberiad.dmm b/maps/cyberiad.dmm
index 7593acf08e4..e8f77f02b7d 100644
--- a/maps/cyberiad.dmm
+++ b/maps/cyberiad.dmm
@@ -9059,7 +9059,7 @@
"dsk" = (/obj/item/weapon/storage/box/syringes,/obj/item/device/assembly/igniter,/obj/item/device/assembly/igniter,/obj/item/device/assembly/igniter,/obj/item/device/assembly/igniter,/obj/item/device/assembly/timer,/obj/item/device/assembly/timer,/obj/item/device/assembly/timer,/obj/item/device/assembly/timer,/obj/item/weapon/grenade/chem_grenade/large,/obj/item/weapon/grenade/chem_grenade/large,/obj/item/weapon/grenade/chem_grenade/large,/obj/item/weapon/grenade/chem_grenade/large,/obj/item/weapon/gun/syringe/rapidsyringe,/obj/item/weapon/reagent_containers/spray/chemsprayer,/obj/structure/closet,/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/admin)
"dsl" = (/turf/space,/turf/unsimulated/wall{dir = 2; icon = 'icons/turf/shuttle.dmi'; icon_state = "diagonalWall3"},/area/admin)
"dsm" = (/obj/structure/rack,/obj/item/ammo_box/magazine/m10mm,/obj/item/ammo_box/magazine/m10mm,/obj/item/ammo_box/magazine/m10mm,/obj/item/ammo_box/magazine/m10mm,/obj/item/ammo_box/magazine/m10mm,/obj/item/ammo_box/magazine/m10mm,/obj/item/weapon/gun/projectile/automatic/pistol,/obj/item/weapon/gun/projectile/automatic/pistol{pixel_x = 3; pixel_y = -3},/obj/item/weapon/suppressor,/obj/item/weapon/suppressor{pixel_x = 3; pixel_y = -3},/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/admin)
-"dsn" = (/obj/structure/rack,/obj/item/ammo_box/magazine/m12g,/obj/item/ammo_box/magazine/m12g,/obj/item/ammo_box/magazine/m12g/buckshot,/obj/item/ammo_box/magazine/m12g/buckshot,/obj/item/ammo_box/magazine/m12g/dragon,/obj/item/ammo_box/magazine/m12g/dragon,/obj/item/weapon/gun/projectile/automatic/bulldog,/obj/item/weapon/gun/projectile/automatic/bulldog{pixel_x = 3; pixel_y = -3},/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/admin)
+"dsn" = (/obj/structure/rack,/obj/item/ammo_box/magazine/m12g,/obj/item/ammo_box/magazine/m12g,/obj/item/ammo_box/magazine/m12g/stun,/obj/item/ammo_box/magazine/m12g/stun,/obj/item/ammo_box/magazine/m12g/dragon,/obj/item/ammo_box/magazine/m12g/dragon,/obj/item/weapon/gun/projectile/automatic/bulldog,/obj/item/weapon/gun/projectile/automatic/bulldog{pixel_x = 3; pixel_y = -3},/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/admin)
"dso" = (/obj/structure/rack,/obj/item/ammo_box/magazine/smgm45,/obj/item/ammo_box/magazine/smgm45,/obj/item/ammo_box/magazine/smgm45,/obj/item/ammo_box/magazine/smgm45,/obj/item/ammo_box/magazine/smgm45,/obj/item/ammo_box/magazine/smgm45,/obj/item/weapon/gun/projectile/automatic/c20r,/obj/item/weapon/gun/projectile/automatic/c20r{pixel_x = 3; pixel_y = -3},/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/admin)
"dsp" = (/obj/structure/rack,/obj/item/ammo_box/magazine/m75,/obj/item/ammo_box/magazine/m75,/obj/item/ammo_box/magazine/m75,/obj/item/ammo_box/magazine/m75,/obj/item/ammo_box/magazine/m75,/obj/item/ammo_box/magazine/m75,/obj/item/weapon/gun/projectile/automatic/gyropistol,/obj/item/weapon/gun/projectile/automatic/gyropistol{pixel_x = 3; pixel_y = -3},/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/admin)
"dsq" = (/obj/structure/rack,/obj/item/ammo_box/magazine/m50,/obj/item/ammo_box/magazine/m50,/obj/item/ammo_box/magazine/m50,/obj/item/ammo_box/magazine/m50,/obj/item/ammo_box/magazine/m50,/obj/item/ammo_box/magazine/m50,/obj/item/weapon/gun/projectile/automatic/deagle,/obj/item/weapon/gun/projectile/automatic/deagle{pixel_x = 3; pixel_y = -3},/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/admin)