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)