diff --git a/code/datums/uplink_item.dm b/code/datums/uplink_item.dm index 67867b4049a..5f6a6b18706 100644 --- a/code/datums/uplink_item.dm +++ b/code/datums/uplink_item.dm @@ -177,6 +177,12 @@ var/list/uplink_items = list() cost = 70 gamemodes = list(/datum/game_mode/nuclear) +/datum/uplink_item/dangerous/syndieborg + name = "Syndicate Cyborg" + desc = "A cyborg designed and programmed for systematic extermination of non-Syndicate personnel." + item = /obj/item/weapon/syndieborg_teleport + cost = 20 + gamemodes = list(/datum/game_mode/nuclear) // AMMUNITION @@ -373,18 +379,11 @@ var/list/uplink_items = list() /datum/uplink_item/device_tools/syndicate_bomb name = "Syndicate Bomb" - desc = "The Syndicate Bomb has an adjustable timer with a minimum setting of 60 seconds. Ordering the bomb sends you a small beacon, which will teleport the explosive to your location when you activate it. \ - You can wrench the bomb down to prevent removal. The crew may attempt to defuse the bomb." + desc = "The Syndicate Bomb has an adjustable timer with a minimum setting of 30 seconds. Ordering the bomb sends you a small beacon, which will teleport the explosive to your location when you activate it. \ + You can wrench the bomb down to prevent removal. The crew may defuse the bomb." item = /obj/item/device/sbeacondrop/bomb cost = 5 -/datum/uplink_item/device_tools/syndicate_detonator - name = "Syndicate Detonator" - desc = "The Syndicate Detonator is a companion device to the Syndicate Bomb. Simply press the included button and an encrypted radio frequency will instruct all live syndicate bombs to detonate. \ - Useful for when speed matters or you wish to synchronize multiple bomb blasts. Be sure to stand clear of the blast radius before using the detonator." - item = /obj/item/device/syndicatedetonator - cost = 1 - /datum/uplink_item/device_tools/teleporter name = "Teleporter Circuit Board" desc = "A printed circuit board that completes the teleporter onboard the mothership. Advise you test fire the teleporter before entering it, as malfunctions can occur." diff --git a/code/game/gamemodes/nuclear/syndieborg.dm b/code/game/gamemodes/nuclear/syndieborg.dm new file mode 100644 index 00000000000..f7c5b8a63d4 --- /dev/null +++ b/code/game/gamemodes/nuclear/syndieborg.dm @@ -0,0 +1,26 @@ +/obj/item/weapon/syndieborg_teleport + name = "Syndicate Cyborg Teleporter" + desc = "A single-use teleporter used to deploy a Syndicate Cyborg on the field." + icon = 'icons/obj/device.dmi' + icon_state = "locator" + throw_speed = 1 + throw_range = 5 + w_class = 1.0 + var/used = 0 + +/obj/item/weapon/syndieborg_teleport/attack_self(mob/user as mob) + if(used) + user << "The teleporter is out of power." + var/list/borg_candicates = get_candidates(BE_OPERATIVE) + if(borg_candicates.len > 0) + used = 1 + var/client/C = pick(borg_candicates) + var/datum/effect/effect/system/spark_spread/S = new /datum/effect/effect/system/spark_spread + S.set_up(4, 1, src) + S.start() + var/mob/living/silicon/robot/R = new /mob/living/silicon/robot/syndicate(loc) + R.key = C.key + ticker.mode.traitors += R.mind + R.mind.special_role = "syndicate" + else + user << "Unable to connect to Syndicate Command. Please wait and try again later." diff --git a/code/game/objects/items/devices/radio/radio.dm b/code/game/objects/items/devices/radio/radio.dm index 34ea1dd09b8..b2704ed3902 100644 --- a/code/game/objects/items/devices/radio/radio.dm +++ b/code/game/objects/items/devices/radio/radio.dm @@ -16,7 +16,6 @@ var/GLOBAL_RADIO_TYPE = 1 // radio type to use var/canhear_range = 3 // the range which mobs can hear this radio from var/obj/item/device/radio/patch_link = null var/datum/wires/radio/wires = null - var/prison_radio = 0 var/b_stat = 0 var/broadcasting = 0 var/listening = 1 @@ -27,7 +26,7 @@ var/GLOBAL_RADIO_TYPE = 1 // radio type to use var/maxf = 1499 var/emped = 0 //Highjacked to track the number of consecutive EMPs on the radio, allowing consecutive EMP's to stack properly. // "Example" = FREQ_LISTENING|FREQ_BROADCASTING - flags = CONDUCT + flags = FPRINT | CONDUCT | TABLEPASS slot_flags = SLOT_BELT throw_speed = 2 throw_range = 9 @@ -50,8 +49,6 @@ var/GLOBAL_RADIO_TYPE = 1 // radio type to use /obj/item/device/radio/New() wires = new(src) - if(prison_radio) - wires.CutWireIndex(WIRE_TRANSMIT) secure_radio_connections = new ..() if(radio_controller) @@ -481,17 +478,17 @@ var/GLOBAL_RADIO_TYPE = 1 // radio type to use freq_text = "#unkn" if(COMM_FREQ) freq_text = "Command" - if(SCI_FREQ) + if(1351) freq_text = "Science" - if(MED_FREQ) + if(1355) freq_text = "Medical" - if(ENG_FREQ) + if(1357) freq_text = "Engineering" if(SEC_FREQ) freq_text = "Security" - if(SERV_FREQ) + if(1349) freq_text = "Service" - if(SUPP_FREQ) + if(1347) freq_text = "Supply" //There's probably a way to use the list var of channels in code\game\communications.dm to make the dept channels non-hardcoded, but I wasn't in an experimentive mood. --NEO @@ -505,20 +502,10 @@ var/GLOBAL_RADIO_TYPE = 1 // radio type to use part_a = "" else if (display_freq==COMM_FREQ) part_a = "" - else if (display_freq==SCI_FREQ) - part_a = "" - else if (display_freq==MED_FREQ) - part_a = "" - else if (display_freq==ENG_FREQ) - part_a = "" else if (display_freq==SEC_FREQ) part_a = "" - else if (display_freq==SERV_FREQ) - part_a = "" - else if (display_freq==SUPP_FREQ) - part_a = "" - else if (display_freq==DSQUAD_FREQ) - part_a = "" + else if (display_freq in DEPT_FREQS) + part_a = "" var/quotedmsg = M.say_quote(message) @@ -707,6 +694,13 @@ var/GLOBAL_RADIO_TYPE = 1 // radio type to use /obj/item/device/radio/borg var/obj/item/device/encryptionkey/keyslot = null//Borg radios can handle a single encryption key +/obj/item/device/radio/borg/syndicate + syndie = 1 + keyslot = new /obj/item/device/encryptionkey/syndicate +/obj/item/device/radio/borg/syndicate/New() + ..() + set_frequency(SYND_FREQ) + /obj/item/device/radio/borg/attackby(obj/item/weapon/W as obj, mob/user as mob) // ..() user.set_machine(src) diff --git a/code/game/objects/items/weapons/melee/energy.dm b/code/game/objects/items/weapons/melee/energy.dm index e318eaa2d89..2b2c365a4bf 100644 --- a/code/game/objects/items/weapons/melee/energy.dm +++ b/code/game/objects/items/weapons/melee/energy.dm @@ -1,5 +1,6 @@ /obj/item/weapon/melee/energy var/active = 0 + flags = FPRINT | TABLEPASS /obj/item/weapon/melee/energy/suicide_act(mob/user) viewers(user) << pick("\red [user] is slitting \his stomach open with the [src.name]! It looks like \he's trying to commit seppuku.", \ @@ -18,7 +19,7 @@ throw_speed = 1 throw_range = 5 w_class = 3.0 - flags = CONDUCT | NOSHIELD + flags = FPRINT | CONDUCT | NOSHIELD | TABLEPASS origin_tech = "combat=3" attack_verb = list("attacked", "chopped", "cleaved", "torn", "cut") @@ -52,7 +53,7 @@ throw_speed = 1 throw_range = 5 w_class = 2.0 - flags = NOSHIELD + flags = FPRINT | TABLEPASS | NOSHIELD origin_tech = "magnets=3;syndicate=4" attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") var/hacked = 0 @@ -129,6 +130,19 @@ else user << "It's already fabulous!" +/obj/item/weapon/melee/energy/sword/cyborg + var/hitcost = 500 + +/obj/item/weapon/melee/energy/sword/cyborg/attack(mob/M, var/mob/living/silicon/robot/R) + if(R.cell) + var/obj/item/weapon/cell/C = R.cell + if(active && !(C.use(hitcost))) + attack_self() + R << "It's out of charge!" + return + C.use(hitcost) + ..() + return /obj/item/weapon/melee/energy/sword/pirate name = "energy cutlass" @@ -143,8 +157,6 @@ New() item_color = "red" - - /obj/item/weapon/melee/energy/blade name = "energy blade" desc = "A concentrated beam of energy in the shape of a blade. Very stylish... and lethal." @@ -154,7 +166,7 @@ throw_speed = 1 throw_range = 1 w_class = 4.0//So you can't hide it in your pocket or some such. - flags = NOSHIELD + flags = FPRINT | TABLEPASS | NOSHIELD attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") var/datum/effect/effect/system/spark_spread/spark_system diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 7a234920db6..2831830329a 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -60,7 +60,7 @@ -/mob/living/silicon/robot/New(loc,var/syndie = 0) +/mob/living/silicon/robot/New(loc) spark_system = new /datum/effect/effect/system/spark_spread() spark_system.set_up(5, 0, src) spark_system.attach(src) @@ -76,17 +76,6 @@ cell.maxcharge = 7500 cell.charge = 7500 - if(syndie) - laws = new /datum/ai_laws/antimov() - lawupdate = 0 - scrambledcodes = 1 - cell.maxcharge = 25000 - cell.charge = 25000 - module = new /obj/item/weapon/robot_module/syndicate(src) - hands.icon_state = "standard" - icon_state = "secborg" - modtype = "Synd" - else laws = new /datum/ai_laws/asimov() connected_ai = select_active_ai_with_fewest_borgs() if(connected_ai) @@ -292,12 +281,24 @@ /mob/living/silicon/robot/ex_act(severity) - ..() + if(!blinded) + flick("flash", flash) + + if (stat == 2 && client) + gib() + return + + else if (stat == 2 && !client) + del(src) + return switch(severity) if(1.0) - gib() - return + if (stat != 2) + adjustBruteLoss(100) + adjustFireLoss(100) + gib() + return if(2.0) if (stat != 2) adjustBruteLoss(60) @@ -306,7 +307,7 @@ if (stat != 2) adjustBruteLoss(30) - return + updatehealth() /mob/living/silicon/robot/meteorhit(obj/O as obj) @@ -591,6 +592,7 @@ M.put_in_active_hand(G) + grabbed_by += G G.synch() playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1) for(var/mob/O in viewers(src, null)) @@ -706,7 +708,8 @@ playsound(loc, M.attack_sound, 50, 1, 1) for(var/mob/O in viewers(src, null)) O.show_message("\red [M] [M.attacktext] [src]!", 1) - add_logs(M, src, "attacked", admin=0) + M.attack_log += text("\[[time_stamp()]\] attacked [src.name] ([src.ckey])") + src.attack_log += text("\[[time_stamp()]\] was attacked by [M.name] ([M.ckey])") var/damage = rand(M.melee_damage_lower, M.melee_damage_upper) adjustBruteLoss(damage) updatehealth() @@ -787,6 +790,9 @@ if(icon_state =="Miner" || icon_state =="Miner+j") overlays.Cut() overlays += "eyes-Miner" + if(icon_state =="syndie_bloodhound") + overlays.Cut() + overlays+= "eyes-syndie_bloodhound" else overlays -= "eyes" @@ -958,10 +964,6 @@ return /mob/living/silicon/robot/proc/self_destruct() - if(emagged) - explosion(src.loc,1,2,4,flame_range = 2) - else - explosion(src.loc,-1,0,2) gib() return @@ -1062,3 +1064,18 @@ cell.loc = T cell = null del(src) + +/mob/living/silicon/robot/syndicate + icon_state = "syndie_bloodhound" + lawupdate = 0 + scrambledcodes = 1 + modtype = "Synd" + +/mob/living/silicon/robot/syndicate/New(loc) + ..() + cell.maxcharge = 25000 + cell.charge = 25000 + updatename("Syndicate") + radio = new /obj/item/device/radio/borg/syndicate(src) + module = new /obj/item/weapon/robot_module/syndicate(src) + laws = new /datum/ai_laws/syndicate_override() diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm index 69b24f68207..4866d00e555 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules.dm @@ -4,7 +4,7 @@ icon_state = "std_module" w_class = 100.0 item_state = "electronic" - flags = CONDUCT + flags = FPRINT|TABLEPASS | CONDUCT var/list/modules = list() var/obj/item/emag = null @@ -147,9 +147,9 @@ New() ..() modules += new /obj/item/weapon/soap/nanotrasen(src) - modules += new /obj/item/weapon/storage/bag/trash/cyborg(src) - modules += new /obj/item/weapon/mop/cyborg(src) - modules += new /obj/item/device/lightreplacer/cyborg(src) + modules += new /obj/item/weapon/storage/bag/trash(src) + modules += new /obj/item/weapon/mop(src) + modules += new /obj/item/device/lightreplacer(src) emag = new /obj/item/weapon/reagent_containers/spray(src) emag.reagents.add_reagent("lube", 250) @@ -204,6 +204,8 @@ name = "syndicate robot module" New() - modules += new /obj/item/weapon/melee/energy/sword(src) - modules += new /obj/item/weapon/gun/energy/pulse_rifle/destroyer(src) - modules += new /obj/item/weapon/card/emag(src) \ No newline at end of file + modules += new /obj/item/weapon/melee/energy/sword/cyborg(src) + modules += new /obj/item/weapon/gun/energy/crossbow/cyborg(src) + modules += new /obj/item/weapon/card/emag(src) + modules += new /obj/item/weapon/gun/energy/laser/cyborg(src) + modules += new /obj/item/weapon/tank/jetpack/carbondioxide(src) \ No newline at end of file diff --git a/code/modules/projectiles/guns/energy/stun.dm b/code/modules/projectiles/guns/energy/stun.dm index 3efe6ee88b4..cea545c6464 100644 --- a/code/modules/projectiles/guns/energy/stun.dm +++ b/code/modules/projectiles/guns/energy/stun.dm @@ -93,8 +93,19 @@ update_icon() return - - +/obj/item/weapon/gun/energy/crossbow/cyborg/process() + ..() + return +/obj/item/weapon/gun/energy/crossbow/cyborg/process_chambered() + if(in_chamber) + return 1 + if(isrobot(src.loc)) + var/mob/living/silicon/robot/R = src.loc + if(R && R.cell) + R.cell.use(100) + in_chamber = new /obj/item/projectile/energy/bolt(src) + return 1 + return 0 /obj/item/weapon/gun/energy/crossbow/largecrossbow name = "Energy Crossbow" diff --git a/icons/mob/robots.dmi b/icons/mob/robots.dmi index b922b783f13..82e4f1c4ace 100644 Binary files a/icons/mob/robots.dmi and b/icons/mob/robots.dmi differ diff --git a/maps/tgstation.2.1.2.dmm b/maps/tgstation.2.1.2.dmm index 83bd516a89d..bc6970a7c55 100644 --- a/maps/tgstation.2.1.2.dmm +++ b/maps/tgstation.2.1.2.dmm @@ -8252,6 +8252,7 @@ "dcJ" = (/obj/machinery/door/airlock/maintenance{name = "Disposal Access"; req_access_txt = "12"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating,/area/maintenance/disposal) "dcK" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating,/area/maintenance/disposal) "dcL" = (/obj/structure/table/woodentable,/obj/item/device/syndicatedetonator{desc = "This gaudy button can be used to instantly detonate syndicate bombs that have been activated on the station. It is also fun to press."},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/syndicate_mothership) +"dcM" = (/obj/machinery/recharge_station,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) "dcP" = (/turf/simulated/floor{tag = "icon-asteroidwarning"; icon_state = "asteroidwarning"; temperature = 273.15},/area/mine/explored) "dcQ" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor{tag = "icon-asteroidwarning"; icon_state = "asteroidwarning"; temperature = 273.15},/area/mine/laborcamp) "dcR" = (/obj/machinery/conveyor_switch/oneway{id = "gulag"},/turf/simulated/floor{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp) @@ -8698,9 +8699,9 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqNcqYcqYcrLcsLcrZcrZcrZcuccrZcrZcrZcudcrZcrZcrZcrLcswcqNcqNctkcuecufcugcqNcqNcqNcqNcqNcqNcqNcqNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrQctQctRctRctRctRctRctQctQctQctRctRctRctRctRctQcrQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqNcqYcqYcrLcsLcrZcrZcrZcuhcrZcrZcrZcuicrZcrZcujcrLcukctKcqNcqNcqNcqNcqNcqNaaaaaaaaaaaaaaaaaaaaaaaaaaaculculculculculculculculculculculculaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrQcrUcumcumcumcumcumcumcumcumcumcumcumcumcumcrScrQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqNcqYcrKcrLcrLcrLcrLcrLcrLcuncrZcrZcrLcrLcrLcrLcrLcrLcrPctKcqNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaculcuocupcuqcurcuscutculcuucuvcuwculaaaaaacuxcuxcuxcuxcuxcuxcuxcuxcuxcuycuzcuzcuzcuzcuzcuzcuzcuzcuzcuzcuzcuzcuzcuycuxcuxcuxcuxcuxcuxcuxcuxcuxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqNcqYcrLcrZcrZcuAcuBcuCcrLcrZcrZcrZcrLcuDcuEcuFcuGcuHcrLcswcqNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaculcuqcuqcuqcuqcuqcuqcuqcuIcuJcuKculaaaaaacuxcuLcuMcuNcuNcuNcuNcuNcuOcuPcuzcuzcuzcuzcuzcuzcuzcuzcuzcuzcuzcuzcuzcuQcuOcuRcuRcuRcuRcuRcuMcuScuxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqNcqYcrLcuTcrZcrZcrZcrZcuUcrZcrZcrZcuVcrZcrZcrZcrZcuWcrLcswcqNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaculcuXcuXcuqcuqcuqcuYculcuZcvacvbculaaaaaacuxcuLcuMcuNcvccuNcvccuNcuOcuPcuzcuzcuzcuzcuzcuzcuzcuzcuzcuzcuzcuzcuzcuQcuOcuRcvdcuRcvdcuRcuMcuScuxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqNcqYcrLcrZcrZcrZcrZcrZcvecrZcrZcrZcvfcrZcrZcrZcrZcvgcrLcqYcqNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaculcuqcuqcuqcuqcvhcvhculculcviculculaaaaaacuxcuLcuMcuNcuNcvjcuNcuNcuOcuPcuzcuzcuzcuzcuzcvkcvlcvkcuzcuzcuzcuzcuzcuQcuOcuRcuRcvmcuRcuRcuMcuScuxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqNcqYcrLdcMdcMcuAcuBcuCcrLcrZcrZcrZcrLcuDcuEcuFcuGcuHcrLcswcqNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaculcuqcuqcuqcuqcuqcuqcuqcuIcuJcuKculaaaaaacuxcuLcuMcuNcuNcuNcuNcuNcuOcuPcuzcuzcuzcuzcuzcuzcuzcuzcuzcuzcuzcuzcuzcuQcuOcuRcuRcuRcuRcuRcuMcuScuxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqNcqYcrLcrZcrZcrZcrZcrZcuUcrZcrZcrZcuVcrZcrZcrZcrZcuWcrLcswcqNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaculcuXcuXcuqcuqcuqcuYculcuZcvacvbculaaaaaacuxcuLcuMcuNcvccuNcvccuNcuOcuPcuzcuzcuzcuzcuzcuzcuzcuzcuzcuzcuzcuzcuzcuQcuOcuRcvdcuRcvdcuRcuMcuScuxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqNcqYcrLcuTcrZcrZcrZcrZcvecrZcrZcrZcvfcrZcrZcrZcrZcvgcrLcqYcqNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaculcuqcuqcuqcuqcvhcvhculculcviculculaaaaaacuxcuLcuMcuNcuNcvjcuNcuNcuOcuPcuzcuzcuzcuzcuzcvkcvlcvkcuzcuzcuzcuzcuzcuQcuOcuRcuRcvmcuRcuRcuMcuScuxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqNcqYcrLcuTcrZcrZcvnctdcrLcvocvpcvqcrLcuWcvgcrZcrZcrZcrLcqYcqNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaculcvrcvrcuqcvscvtcvuculcvvcvicvwculaaaaaacuxcuLcuMcuNcuNcuNcuNcuNcuOcuPcuzcuzcuzcuzcuzcvkcvxcvkcuzcuzcuzcuzcuzcuQcuOcuRcuRcuRcuRcuRcuMcuScuxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqNcqYcrLcrZcrZcrZcrLcrLcrLcvycvzcrZcrLcrLcrLcrZcrZcrZcrLcqYcqNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaculcuqcuqcuqcvscvAcvBculcvCcvicvDculaaaaaacuxcuLcuMcuNcvccuNcvccuNcuOcuPcuzcuzcuzcuzcuzcuzcuzcuzcuzcuzcuzcuzcuzcuQcuOcuRcvdcuRcvdcuRcuMcuScuxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqNcqYcrLctdcvEcvFcrLcqYcrLcvGcvGcvGcrLcqYcrLcsdcvHcvIcrLcqYcqNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaculcuqcuqcuqcuqcuqculculculculculculaaaaaacuxcuLcvJcuNcuNcuNcuNcuNcuOcuPcuzcuzcuzcuzcuzcuzcuzcuzcuzcuzcuzcuzcuzcuQcuOcuRcuRcuRcuRcuRcvJcuScuxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa diff --git a/tgstation.dme b/tgstation.dme index a0785564e26..58d214d58eb 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -260,6 +260,7 @@ #include "code\game\gamemodes\nuclear\nuclear.dm" #include "code\game\gamemodes\nuclear\nuclearbomb.dm" #include "code\game\gamemodes\nuclear\pinpointer.dm" +#include "code\game\gamemodes\nuclear\syndieborg.dm" #include "code\game\gamemodes\revolution\revolution.dm" #include "code\game\gamemodes\sandbox\airlock_maker.dm" #include "code\game\gamemodes\sandbox\h_sandbox.dm"