Merge pull request #2254 from Markolie/swordnborg
Syndicate borg update, add medical syndicate borg, energy sword refactor
@@ -209,12 +209,12 @@
|
||||
"ea" = (/turf/unsimulated/wall,/area/tdome/arena_source)
|
||||
"eb" = (/obj/machinery/igniter,/turf/simulated/floor,/area/tdome/arena_source)
|
||||
"ec" = (/turf/simulated/floor,/area/tdome/arena_source)
|
||||
"ed" = (/obj/structure/rack,/obj/item/clothing/under/color/red,/obj/item/clothing/shoes/brown,/obj/item/clothing/suit/armor/tdome/red,/obj/item/clothing/head/helmet/thunderdome,/obj/item/weapon/melee/baton/loaded,/obj/item/weapon/melee/energy/sword/red,/turf/unsimulated/floor{icon_state = "dark"},/area/tdome/arena_source)
|
||||
"ed" = (/obj/structure/rack,/obj/item/clothing/under/color/red,/obj/item/clothing/shoes/brown,/obj/item/clothing/suit/armor/tdome/red,/obj/item/clothing/head/helmet/thunderdome,/obj/item/weapon/melee/baton/loaded,/obj/item/weapon/melee/energy/sword/saber/red,/turf/unsimulated/floor{icon_state = "dark"},/area/tdome/arena_source)
|
||||
"ee" = (/obj/machinery/door/poddoor{id_tag = "thunderdomegen"; name = "General Supply"},/turf/unsimulated/floor{icon_state = "dark"},/area/tdome/arena_source)
|
||||
"ef" = (/obj/machinery/door/poddoor{id_tag = "thunderdome"; name = "Thunderdome Blast Door"},/turf/unsimulated/floor{name = "plating"},/area/tdome/arena_source)
|
||||
"eg" = (/turf/simulated/floor{icon_state = "red"; dir = 8},/area/tdome/arena_source)
|
||||
"eh" = (/turf/simulated/floor{icon_state = "green"; dir = 4},/area/tdome/arena_source)
|
||||
"ei" = (/obj/structure/rack,/obj/item/clothing/under/color/green,/obj/item/clothing/shoes/brown,/obj/item/clothing/suit/armor/tdome/green,/obj/item/clothing/head/helmet/thunderdome,/obj/item/weapon/melee/baton/loaded,/obj/item/weapon/melee/energy/sword/green,/turf/unsimulated/floor{icon_state = "dark"},/area/tdome/arena_source)
|
||||
"ei" = (/obj/structure/rack,/obj/item/clothing/under/color/green,/obj/item/clothing/shoes/brown,/obj/item/clothing/suit/armor/tdome/green,/obj/item/clothing/head/helmet/thunderdome,/obj/item/weapon/melee/baton/loaded,/obj/item/weapon/melee/energy/sword/saber/green,/turf/unsimulated/floor{icon_state = "dark"},/area/tdome/arena_source)
|
||||
"ej" = (/turf/simulated/floor/bluegrid,/area/tdome/arena_source)
|
||||
"ek" = (/obj/machinery/flasher{id = "tdomeflash"; name = "Thunderdome Flash"},/turf/simulated/floor/bluegrid,/area/tdome/arena_source)
|
||||
"el" = (/obj/machinery/door/poddoor{id_tag = "thunderdomehea"; name = "Heavy Supply"},/turf/unsimulated/floor{icon_state = "dark"},/area/tdome/arena_source)
|
||||
@@ -872,14 +872,14 @@
|
||||
"qN" = (/obj/structure/table,/obj/item/weapon/weldingtool/largetank,/obj/item/device/multitool,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
|
||||
"qO" = (/turf/unsimulated/wall/fakeglass{dir = 8; icon_state = "fakewindows3"; tag = "icon-fakewindows (WEST)"},/area/syndicate_mothership)
|
||||
"qP" = (/obj/structure/stool{pixel_y = 8},/turf/unsimulated/floor{tag = "icon-dark"; icon_state = "dark"},/area/syndicate_mothership)
|
||||
"qQ" = (/obj/structure/rack,/obj/item/clothing/under/color/red,/obj/item/clothing/shoes/brown,/obj/item/clothing/suit/armor/tdome/red,/obj/item/clothing/head/helmet/thunderdome,/obj/item/weapon/melee/baton/loaded,/obj/item/weapon/melee/energy/sword/red,/turf/unsimulated/floor{icon_state = "dark"},/area/tdome/arena)
|
||||
"qQ" = (/obj/structure/rack,/obj/item/clothing/under/color/red,/obj/item/clothing/shoes/brown,/obj/item/clothing/suit/armor/tdome/red,/obj/item/clothing/head/helmet/thunderdome,/obj/item/weapon/melee/baton/loaded,/obj/item/weapon/melee/energy/sword/saber/red,/turf/unsimulated/floor{icon_state = "dark"},/area/tdome/arena)
|
||||
"qR" = (/obj/machinery/door/poddoor{id_tag = "thunderdomegen"; name = "General Supply"},/turf/unsimulated/floor{icon_state = "dark"},/area/tdome/arena)
|
||||
"qS" = (/obj/effect/landmark{name = "tdome2"},/turf/unsimulated/floor{name = "plating"},/area/tdome/tdome2)
|
||||
"qT" = (/obj/machinery/door/poddoor{id_tag = "thunderdome"; name = "Thunderdome Blast Door"},/turf/unsimulated/floor{name = "plating"},/area/tdome/arena)
|
||||
"qU" = (/turf/simulated/floor{icon_state = "red"; dir = 8},/area/tdome/arena)
|
||||
"qV" = (/turf/simulated/floor{icon_state = "green"; dir = 4},/area/tdome/arena)
|
||||
"qW" = (/obj/effect/landmark{name = "tdome1"},/turf/unsimulated/floor{name = "plating"},/area/tdome/tdome1)
|
||||
"qX" = (/obj/structure/rack,/obj/item/clothing/under/color/green,/obj/item/clothing/shoes/brown,/obj/item/clothing/suit/armor/tdome/green,/obj/item/clothing/head/helmet/thunderdome,/obj/item/weapon/melee/baton/loaded,/obj/item/weapon/melee/energy/sword/green,/turf/unsimulated/floor{icon_state = "dark"},/area/tdome/arena)
|
||||
"qX" = (/obj/structure/rack,/obj/item/clothing/under/color/green,/obj/item/clothing/shoes/brown,/obj/item/clothing/suit/armor/tdome/green,/obj/item/clothing/head/helmet/thunderdome,/obj/item/weapon/melee/baton/loaded,/obj/item/weapon/melee/energy/sword/saber/green,/turf/unsimulated/floor{icon_state = "dark"},/area/tdome/arena)
|
||||
"qY" = (/turf/unsimulated/wall/fakeglass{color = "#008000"; dir = 1; icon_state = "fakewindows"},/area/wizard_station)
|
||||
"qZ" = (/obj/structure/cult/tome,/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station)
|
||||
"ra" = (/obj/structure/closet/crate{icon_state = "crateopen"; opened = 1},/obj/item/clothing/suit/wizrobe/red,/obj/item/clothing/head/wizard/red,/obj/item/weapon/twohanded/staff,/obj/item/clothing/shoes/sandal,/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station)
|
||||
|
||||
@@ -477,13 +477,13 @@
|
||||
"ji" = (/obj/machinery/computer/station_alert,/turf/simulated/shuttle/floor4/vox,/area/shuttle/vox/station)
|
||||
"jj" = (/obj/machinery/computer/shuttle_control/multi/vox,/turf/simulated/shuttle/floor{icon_state = "floor4"; oxygen = 0},/area/shuttle/vox/station)
|
||||
"jk" = (/obj/structure/table,/obj/machinery/door_control{id = "voxshutters"; name = "remote shutter control"; req_access_txt = "152"},/turf/simulated/shuttle/floor{icon_state = "floor4"; oxygen = 0},/area/shuttle/vox/station)
|
||||
"jl" = (/obj/structure/rack,/obj/item/clothing/under/color/red,/obj/item/clothing/shoes/brown,/obj/item/clothing/suit/armor/tdome/red,/obj/item/clothing/head/helmet/thunderdome,/obj/item/weapon/melee/energy/sword/red,/turf/unsimulated/floor{icon_state = "dark"},/area/tdome/arena_source)
|
||||
"jl" = (/obj/structure/rack,/obj/item/clothing/under/color/red,/obj/item/clothing/shoes/brown,/obj/item/clothing/suit/armor/tdome/red,/obj/item/clothing/head/helmet/thunderdome,/obj/item/weapon/melee/energy/sword/saber/red,/turf/unsimulated/floor{icon_state = "dark"},/area/tdome/arena_source)
|
||||
"jm" = (/obj/machinery/door/poddoor{id_tag = "thunderdomegen"; name = "General Supply"},/turf/unsimulated/floor{icon_state = "dark"},/area/tdome/arena_source)
|
||||
"jn" = (/obj/machinery/door/poddoor{id_tag = "thunderdome"; name = "Thunderdome Blast Door"},/turf/unsimulated/floor{name = "plating"},/area/tdome/arena_source)
|
||||
"jo" = (/turf/simulated/floor{icon_state = "red"; dir = 8},/area/tdome/arena_source)
|
||||
"jp" = (/turf/simulated/floor,/area/tdome/arena_source)
|
||||
"jq" = (/turf/simulated/floor{icon_state = "green"; dir = 4},/area/tdome/arena_source)
|
||||
"jr" = (/obj/structure/rack,/obj/item/clothing/under/color/green,/obj/item/clothing/shoes/brown,/obj/item/clothing/suit/armor/tdome/green,/obj/item/clothing/head/helmet/thunderdome,/obj/item/weapon/melee/energy/sword/green,/turf/unsimulated/floor{icon_state = "dark"},/area/tdome/arena_source)
|
||||
"jr" = (/obj/structure/rack,/obj/item/clothing/under/color/green,/obj/item/clothing/shoes/brown,/obj/item/clothing/suit/armor/tdome/green,/obj/item/clothing/head/helmet/thunderdome,/obj/item/weapon/melee/energy/sword/saber/green,/turf/unsimulated/floor{icon_state = "dark"},/area/tdome/arena_source)
|
||||
"js" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north/shuttlespace_ns7,/area/space)
|
||||
"jt" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 8; name = "thrower_escapeshuttletop(left)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns11,/area/space)
|
||||
"ju" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 8; name = "thrower_escapeshuttletop(left)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns6,/area/space)
|
||||
@@ -903,9 +903,9 @@
|
||||
"rs" = (/obj/machinery/access_button{command = "cycle_interior"; frequency = 1331; master_tag = "synd_airlock"; name = "interior access button"; pixel_x = 25; pixel_y = 25; req_access_txt = "0"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
|
||||
"rt" = (/obj/effect/landmark{name = "Nuclear-Bomb"},/obj/machinery/light/spot,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
|
||||
"ru" = (/obj/machinery/telecomms/allinone{intercept = 1},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
|
||||
"rv" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/regular,/obj/item/robot_parts/r_arm,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
|
||||
"rv" = (/obj/machinery/optable,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
|
||||
"rw" = (/obj/structure/closet/crate/internals,/obj/item/weapon/tank/oxygen/red,/obj/item/clothing/mask/gas,/obj/item/weapon/tank/oxygen/red,/obj/item/clothing/mask/gas,/obj/item/weapon/tank/oxygen/red,/obj/item/clothing/mask/gas,/obj/item/weapon/tank/oxygen/red,/obj/item/clothing/mask/gas,/obj/item/weapon/tank/oxygen/red,/obj/item/clothing/mask/gas,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
|
||||
"rx" = (/obj/structure/closet/crate/medical,/obj/item/weapon/surgicaldrill,/obj/item/weapon/scalpel,/obj/item/weapon/reagent_containers/glass/bottle/morphine,/obj/item/weapon/storage/box/beakers,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
|
||||
"rx" = (/obj/structure/table,/obj/item/weapon/bonegel,/obj/item/weapon/bonesetter,/obj/item/weapon/hemostat,/obj/item/weapon/cautery,/obj/item/weapon/surgicaldrill,/obj/item/weapon/circular_saw,/obj/item/weapon/scalpel,/obj/item/weapon/retractor,/obj/item/weapon/FixOVein,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
|
||||
"ry" = (/obj/structure/shuttle/engine/heater,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating/airless,/area/syndicate_station/start)
|
||||
"rz" = (/obj/machinery/teleport/station,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
|
||||
"rA" = (/obj/machinery/teleport/hub/upgraded,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
|
||||
@@ -1628,7 +1628,7 @@
|
||||
"Fp" = (/obj/machinery/computer/med_data,/turf/unsimulated/floor{dir = 4; icon_state = "carpetside"},/area/admin)
|
||||
"Fq" = (/obj/structure/rack,/obj/item/weapon/shield/energy,/obj/item/weapon/shield/energy{pixel_x = 3; pixel_y = -3},/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/admin)
|
||||
"Fr" = (/obj/structure/rack,/obj/item/weapon/katana{pixel_x = 3; pixel_y = -3},/obj/item/weapon/katana,/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/admin)
|
||||
"Fs" = (/obj/structure/rack,/obj/item/weapon/melee/energy/sword,/obj/item/weapon/melee/energy/sword{pixel_x = 3; pixel_y = -3},/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/admin)
|
||||
"Fs" = (/obj/structure/rack,/obj/item/weapon/melee/energy/sword/saber,/obj/item/weapon/melee/energy/sword/saber{pixel_x = 3; pixel_y = -3},/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/admin)
|
||||
"Ft" = (/obj/structure/rack,/obj/machinery/recharger/wallcharger{pixel_x = 30},/obj/item/weapon/gun/energy/xray,/obj/item/weapon/gun/energy/xray{pixel_x = 3; pixel_y = -3},/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/admin)
|
||||
"Fu" = (/obj/structure/table,/obj/random/toolbox,/obj/random/bomb_supply,/obj/machinery/syndicatebomb/badmin/clown,/turf/unsimulated/floor{tag = "icon-dark"; icon_state = "dark"},/area/admin)
|
||||
"Fv" = (/turf/unsimulated/floor{tag = "icon-dark"; icon_state = "dark"},/area/admin)
|
||||
@@ -1774,14 +1774,14 @@
|
||||
"If" = (/turf/unsimulated/wall/fakeglass{tag = "icon-fakewindows (EAST)"; icon_state = "fakewindows"; dir = 4},/area/tdome)
|
||||
"Ig" = (/obj/structure/rack,/obj/item/clothing/under/color/green,/obj/item/clothing/shoes/brown,/obj/item/weapon/grenade/smokebomb,/obj/item/weapon/legcuffs/beartrap,/obj/item/weapon/sleeping_carp_scroll,/obj/item/weapon/twohanded/bostaff,/turf/unsimulated/floor{icon_state = "dark"},/area/tdome/arena)
|
||||
"Ih" = (/obj/machinery/door/poddoor{id_tag = "thunderdomeaxe"; name = "Axe Supply"},/turf/unsimulated/floor{icon_state = "dark"},/area/tdome/arena)
|
||||
"Ii" = (/obj/structure/rack,/obj/item/clothing/under/color/red,/obj/item/clothing/shoes/brown,/obj/item/clothing/suit/armor/tdome/red,/obj/item/clothing/head/helmet/thunderdome,/obj/item/weapon/melee/energy/sword/red,/turf/unsimulated/floor{icon_state = "dark"},/area/tdome/arena)
|
||||
"Ii" = (/obj/structure/rack,/obj/item/clothing/under/color/red,/obj/item/clothing/shoes/brown,/obj/item/clothing/suit/armor/tdome/red,/obj/item/clothing/head/helmet/thunderdome,/obj/item/weapon/melee/energy/sword/saber/red,/turf/unsimulated/floor{icon_state = "dark"},/area/tdome/arena)
|
||||
"Ij" = (/obj/machinery/door/poddoor{id_tag = "thunderdomegen"; name = "General Supply"},/turf/unsimulated/floor{icon_state = "dark"},/area/tdome/arena)
|
||||
"Ik" = (/turf/unsimulated/floor{name = "plating"},/area/tdome/tdome2)
|
||||
"Il" = (/obj/machinery/door/poddoor{id_tag = "thunderdome"; name = "Thunderdome Blast Door"},/turf/unsimulated/floor{name = "plating"},/area/tdome/arena)
|
||||
"Im" = (/turf/simulated/floor{icon_state = "red"; dir = 8},/area/tdome/arena)
|
||||
"In" = (/turf/simulated/floor{icon_state = "green"; dir = 4},/area/tdome/arena)
|
||||
"Io" = (/turf/unsimulated/floor{name = "plating"},/area/tdome/tdome1)
|
||||
"Ip" = (/obj/structure/rack,/obj/item/clothing/under/color/green,/obj/item/clothing/shoes/brown,/obj/item/clothing/suit/armor/tdome/green,/obj/item/clothing/head/helmet/thunderdome,/obj/item/weapon/melee/energy/sword/green,/turf/unsimulated/floor{icon_state = "dark"},/area/tdome/arena)
|
||||
"Ip" = (/obj/structure/rack,/obj/item/clothing/under/color/green,/obj/item/clothing/shoes/brown,/obj/item/clothing/suit/armor/tdome/green,/obj/item/clothing/head/helmet/thunderdome,/obj/item/weapon/melee/energy/sword/saber/green,/turf/unsimulated/floor{icon_state = "dark"},/area/tdome/arena)
|
||||
"Iq" = (/obj/machinery/door/airlock/hatch{name = "Teleporter Access"; req_access_txt = "0"},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id_tag = "ADMINLOCKDOWN"; name = "Security Doors"; opacity = 0},/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/admin)
|
||||
"Ir" = (/obj/effect/landmark{name = "tdome2"},/turf/unsimulated/floor{name = "plating"},/area/tdome/tdome2)
|
||||
"Is" = (/obj/effect/landmark{name = "tdome1"},/turf/unsimulated/floor{name = "plating"},/area/tdome/tdome1)
|
||||
@@ -1818,6 +1818,7 @@
|
||||
"IX" = (/obj/machinery/embedded_controller/radio/airlock/airlock_controller{frequency = 1331; id_tag = "synd_airlock"; pixel_x = 25; req_access_txt = "150"; tag_airpump = "synd_pump"; tag_chamber_sensor = "synd_sensor"; tag_exterior_door = "synd_outer"; tag_interior_door = "synd_inner"},/obj/machinery/airlock_sensor{frequency = 1331; id_tag = "synd_sensor"; pixel_x = 25; pixel_y = 12; req_access_txt = "150"},/obj/machinery/light{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
|
||||
"IY" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 1; frequency = 1331; id_tag = "synd_pump"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
|
||||
"IZ" = (/obj/structure/rack,/obj/item/clothing/suit/space/syndicate/black/red,/obj/item/clothing/head/helmet/space/syndicate/black/red,/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 1; frequency = 1331; id_tag = "synd_pump"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
|
||||
"Ja" = (/obj/structure/closet/crate/medical,/obj/item/weapon/reagent_containers/glass/bottle/morphine,/obj/item/weapon/storage/box/beakers,/obj/item/robot_parts/l_arm,/obj/item/robot_parts/r_arm,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
|
||||
|
||||
(1,1,1) = {"
|
||||
aaabacadaeafagahaaaiajakalamanaoagafajacadahakaeamaiaoapaqarasatauavawaxayazaAaBaCaDaEaFaGaHaIaJaKawaxayazaAaBaCaDaEaFaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaOaPaPaPaPaPaQaPaPaPaPaPaQaPaPaPaPaPaQaPaPaPaPaPaQaPaPaPaPaPaQaPaPaPaPaPaQaPaPaPaPaPaR
|
||||
@@ -1888,10 +1889,10 @@ aUaXbfaSaTaZaWbaaUbcbdbeaVbgbbaYaWaZbdbfaSbabeaTbgbcaYaLaeanamacakalajaaaeadahab
|
||||
bdaTbcaVbabbbfaWbdaZbgaUaYaSbeaXbfbbbgbcaVaWaUbaaSaZaXaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaMaWaVbbaWbbaWaVbbaWaVbbaWaVbbaWaVbbaWaVbbaWbbaWaVbbaWaVbbaWaVbbaWaVbbaNaWaMaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjnyooopopopopopopqIowowopopopopopopotqJqJqJqKpQnjqLqMqMqMqMqMnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
|
||||
aLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaMbfaXaXbdbfaXbdbfaXbdbfaXbdbfaXbdbfbfaXaXbdbfaXbdbfaXbdbfaXbdbfaXbdbfaXaXaMaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjnyouqNqNqOqPqQouqRowowouqSqTqUqVqWouqsnznynyoGqXqMqMqMqMqMqYnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
|
||||
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaMbcaTaTbgbcaTbgbcaTbgbcaTbgbcaTbgbcbcaTaTbgbcaTbgbcaTbgbcaTbgbcaTbgbcaTaTaMaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjnyouowowowpLowqZowowowraowpLowpLrbouqsnYrcrdpknjrerererererfnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
|
||||
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaMbaaSaZbaaZbaaSaZbaaSaZbaaSaZbaaSaZbaaSaZbaaZbaaSaZbaaSaZbaaSaZbaaSaZbabaaMaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjnyourgrhowowowriowowowrjowowowowoFouqsoGnjnjnjnjnjnjnjnjnjnjnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
|
||||
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaMbaaSaZbaaZbaaSaZbaaSaZbaaSaZbaaSaZbaaSaZbaaZbaaSaZbaaSaZbaaSaZbaaSaZbabaaMaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjnyourgrhowowowriowowowrjowowowowrwouqsoGnjnjnjnjnjnjnjnjnjnjnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
|
||||
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaMaWaVbbaWbbaWaVbbaWaVbbaWaVbbaWaVbbaWaVbbaWbbaWaVbbaWaVbbaWaVbbaWaVbbaNaWaMaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjnyourkrhowrlrmournrornourprqowowowourrnynjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
|
||||
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjnyouowowqzouopouowrtruouopouowowowouqsnynjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
|
||||
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjnyourvrwrxounyouryryryounyouqArzrAouqsnynjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
|
||||
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjnyourxrvJaounyouryryryounyouqArzrAouqsnynjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
|
||||
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjnyouryryryounyoWrBrCrDoYnyouryryryouqsnynjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
|
||||
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjnyoWrBrCrDoYnynynynynynynyoWrBrCrDoYnynynjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
|
||||
rErErErErErErErErErErErErErErEaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjnynynynynynynynynynynynynynynynynynynynynjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
|
||||
|
||||
@@ -612,7 +612,7 @@ client
|
||||
M << "Control of your mob has been offered to dead players."
|
||||
log_admin("[key_name(usr)] has offered control of ([key_name(M)]) to ghosts.")
|
||||
message_admins("[key_name_admin(usr)] has offered control of ([key_name_admin(M)]) to ghosts")
|
||||
var/list/mob/dead/observer/candidates = pollCandidates("Do you want to play as [M.real_name]?", "Player Control", null, FALSE, 100)
|
||||
var/list/mob/dead/observer/candidates = pollCandidates("Do you want to play as [M.real_name]?", poll_time = 100)
|
||||
var/mob/dead/observer/theghost = null
|
||||
|
||||
if(candidates.len)
|
||||
|
||||
@@ -307,7 +307,7 @@ var/list/uplink_items = list()
|
||||
name = "Energy Sword"
|
||||
desc = "The energy sword is an edged weapon with a blade of pure energy. The sword is small enough to be pocketed when inactive. Activating it produces a loud, distinctive noise."
|
||||
reference = "ES"
|
||||
item = /obj/item/weapon/melee/energy/sword
|
||||
item = /obj/item/weapon/melee/energy/sword/saber
|
||||
cost = 8
|
||||
|
||||
/datum/uplink_item/dangerous/chainsaw
|
||||
@@ -511,6 +511,14 @@ var/list/uplink_items = list()
|
||||
item = /obj/item/weapon/soap/syndie
|
||||
cost = 1
|
||||
surplus = 50
|
||||
|
||||
/datum/uplink_item/stealthy_weapons/dart_pistol
|
||||
name = "Dart Pistol"
|
||||
desc = "A miniaturized version of a normal syringe gun. It is very quiet when fired and can fit into any space a small item can."
|
||||
reference = "DART"
|
||||
item = /obj/item/weapon/gun/syringe/syndicate
|
||||
cost = 4
|
||||
surplus = 50
|
||||
|
||||
/datum/uplink_item/stealthy_weapons/detomatix
|
||||
name = "Detomatix PDA Cartridge"
|
||||
|
||||
@@ -12,59 +12,55 @@
|
||||
|
||||
|
||||
/obj/item/weapon/antag_spawner/borg_tele
|
||||
name = "Syndicate Cyborg Teleporter"
|
||||
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"
|
||||
var/TC_cost = 0
|
||||
var/checking = 0
|
||||
var/TC_cost = 0
|
||||
var/borg_to_spawn
|
||||
var/list/possible_types = list("Assault", "Medical")
|
||||
|
||||
/obj/item/weapon/antag_spawner/borg_tele/attack_self(mob/user as mob)
|
||||
if(used)
|
||||
user << "The teleporter is out of power."
|
||||
user << "<span class='warning'>[src] is out of power!</span>"
|
||||
return
|
||||
if(!checking)
|
||||
checking = 1
|
||||
user << "<span class='notice'>The device is now checking for possible candidates.</span>"
|
||||
get_candidate_answer(user, get_candidates(BE_OPERATIVE))
|
||||
else
|
||||
user << "<span class='notice'>The device is already checking for possible candidates.</span>"
|
||||
if(!(user.mind in ticker.mode.syndicates))
|
||||
user << "<span class='danger'>AUTHENTICATION FAILURE. ACCESS DENIED.</span>"
|
||||
return 0
|
||||
if(checking)
|
||||
user << "<span class='warning'>[src] is already checking for possible borgs.</span>"
|
||||
return
|
||||
borg_to_spawn = input("What type of borg would you like to teleport?", "Cyborg Type", type) as null|anything in possible_types
|
||||
if(!borg_to_spawn || checking || used)
|
||||
return
|
||||
|
||||
/obj/item/weapon/antag_spawner/borg_tele/proc/get_candidate_answer(mob/user as mob, var/list/possiblecandidates = list())
|
||||
var/time_passed = world.time
|
||||
if(possiblecandidates.len <= 0)
|
||||
checking = 1
|
||||
user << "<span class='notice'>The device is now checking for possible borgs.</span>"
|
||||
var/list/mob/dead/observer/borg_candidates = pollCandidates("Do you want to play as a Syndicate [borg_to_spawn] borg?", "operative", 1, BE_OPERATIVE, 300)
|
||||
if(borg_candidates.len > 0 && !used)
|
||||
checking = 0
|
||||
user << "<span class='notice'>Unable to connect to Syndicate Command. Please wait and try again later or use the teleporter on your uplink to get your points refunded.</span>"
|
||||
return
|
||||
used = 1
|
||||
var/mob/M = pick(borg_candidates)
|
||||
var/client/C = M.client
|
||||
spawn_antag(C, get_turf(src.loc), "syndieborg")
|
||||
else
|
||||
var/possibleborg = pick(possiblecandidates)
|
||||
spawn(0)
|
||||
var/input = alert(possibleborg,"Do you want to spawn in as a cyborg for the Syndicate operatives?","Please answer in thirty seconds!","Yes","No")
|
||||
if(input == "Yes" && used == 0)
|
||||
if((world.time-time_passed)>300)
|
||||
return
|
||||
possiblecandidates -= possibleborg
|
||||
used = 1
|
||||
checking = 0
|
||||
spawn_antag(possibleborg, get_turf(src.loc), "syndieborg")
|
||||
else
|
||||
possiblecandidates -= possibleborg
|
||||
get_candidate_answer(user, possiblecandidates)
|
||||
return
|
||||
|
||||
sleep(300)
|
||||
if(checking)
|
||||
possiblecandidates -= possibleborg
|
||||
get_candidate_answer(user, possiblecandidates)
|
||||
return
|
||||
|
||||
checking = 0
|
||||
user << "<span class='notice'>Unable to connect to Syndicate command. Please wait and try again later or use the teleporter on your uplink to get your points refunded.</span>"
|
||||
return
|
||||
|
||||
/obj/item/weapon/antag_spawner/borg_tele/spawn_antag(var/client/C, var/turf/T, var/type = "")
|
||||
if(!borg_to_spawn) //If there's no type at all, let it still be used but don't do anything
|
||||
used = 0
|
||||
return
|
||||
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(T)
|
||||
var/mob/living/silicon/robot/R
|
||||
switch(borg_to_spawn)
|
||||
if("Medical")
|
||||
R = new /mob/living/silicon/robot/syndicate/medical(T)
|
||||
else
|
||||
R = new /mob/living/silicon/robot/syndicate(T) //Assault borg by default
|
||||
R.key = C.key
|
||||
ticker.mode.syndicates += R.mind
|
||||
ticker.mode.update_synd_icons_added(R.mind)
|
||||
@@ -77,8 +73,6 @@
|
||||
icon = 'icons/obj/wizard.dmi'
|
||||
icon_state = "vial"
|
||||
|
||||
|
||||
|
||||
/obj/item/weapon/antag_spawner/slaughter_demon/attack_self(mob/user as mob)
|
||||
var/list/demon_candidates = get_candidates(BE_ALIEN)
|
||||
if(user.z == ZLEVEL_CENTCOMM)//this is to make sure the wizard does NOT summon a demon from the Den..
|
||||
@@ -95,9 +89,7 @@
|
||||
else
|
||||
user << "<span class='notice'>You can't seem to work up the nerve to shatter the bottle. Perhaps you should try again later.</span>"
|
||||
|
||||
|
||||
/obj/item/weapon/antag_spawner/slaughter_demon/spawn_antag(var/client/C, var/turf/T, var/type = "", mob/user as mob)
|
||||
|
||||
var /obj/effect/dummy/slaughter/holder = new /obj/effect/dummy/slaughter(T)
|
||||
var/mob/living/simple_animal/slaughter/S = new /mob/living/simple_animal/slaughter/(holder)
|
||||
S.vialspawned = TRUE
|
||||
|
||||
@@ -360,6 +360,9 @@
|
||||
var/mob/living/carbon/nearest_op = null
|
||||
|
||||
/obj/item/weapon/pinpointer/operative/attack_self()
|
||||
if(!usr.mind || !(usr.mind in ticker.mode.syndicates))
|
||||
usr << "<span class='danger'>AUTHENTICATION FAILURE. ACCESS DENIED.</span>"
|
||||
return 0
|
||||
if(!active)
|
||||
active = 1
|
||||
workop()
|
||||
@@ -370,27 +373,33 @@
|
||||
usr << "<span class='notice'>You deactivate the pinpointer.</span>"
|
||||
|
||||
/obj/item/weapon/pinpointer/operative/proc/scan_for_ops()
|
||||
if(!nearest_op)
|
||||
if(active)
|
||||
nearest_op = null //Resets nearest_op every time it scans
|
||||
var/closest_distance = 1000
|
||||
for(var/mob/living/carbon/M in mob_list)
|
||||
if(M.mind in ticker.mode.syndicates)
|
||||
nearest_op = M
|
||||
if(M.mind && (M.mind in ticker.mode.syndicates))
|
||||
if(get_dist(M, get_turf(src)) < closest_distance) //Actually points toward the nearest op, instead of a random one like it used to
|
||||
nearest_op = M
|
||||
if(!nearest_op) // There are simply no operatives left to point to
|
||||
active = 0
|
||||
icon_state = "pinoff"
|
||||
|
||||
/obj/item/weapon/pinpointer/operative/proc/workop()
|
||||
scan_for_ops()
|
||||
point_at(nearest_op, 0)
|
||||
if(active && nearest_op)
|
||||
if(active)
|
||||
scan_for_ops()
|
||||
point_at(nearest_op, 0)
|
||||
spawn(5)
|
||||
.()
|
||||
else
|
||||
return 0
|
||||
|
||||
/obj/item/weapon/pinpointer/operative/examine(mob/user)
|
||||
..(user)
|
||||
if(nearest_op != null)
|
||||
user << "Nearest operative: <b>[nearest_op]</b>."
|
||||
if(nearest_op == null && active)
|
||||
user << "No operatives detected within scanning range."
|
||||
..()
|
||||
if(active)
|
||||
if(nearest_op)
|
||||
user << "Nearest operative detected is <i>[nearest_op.real_name].</i>"
|
||||
else
|
||||
user << "No operatives detected within scanning range."
|
||||
|
||||
/obj/item/weapon/pinpointer/operative/proc/point_at(atom/target, spawnself = 1)
|
||||
if(!active)
|
||||
|
||||
@@ -142,7 +142,7 @@ datum/hSB
|
||||
continue
|
||||
if(istype(O, /obj/item/weapon/dummy))
|
||||
continue
|
||||
if(istype(O, /obj/item/weapon/melee/energy/sword))
|
||||
if(istype(O, /obj/item/weapon/melee/energy/sword/saber))
|
||||
continue
|
||||
if(istype(O, /obj/structure))
|
||||
continue
|
||||
|
||||
@@ -57,8 +57,8 @@
|
||||
if(M.lit)
|
||||
light("<span class='notice'>[user] lights the [name] with their [W].</span>")
|
||||
|
||||
else if(istype(W, /obj/item/weapon/melee/energy/sword))
|
||||
var/obj/item/weapon/melee/energy/sword/S = W
|
||||
else if(istype(W, /obj/item/weapon/melee/energy/sword/saber))
|
||||
var/obj/item/weapon/melee/energy/sword/saber/S = W
|
||||
if(S.active)
|
||||
light("<span class='warning'>[user] swings their [W], barely missing their nose. They light the [name] in the process.</span>")
|
||||
|
||||
|
||||
@@ -1,18 +1,22 @@
|
||||
//This file contains xenoborg specic weapons.
|
||||
|
||||
/obj/item/weapon/melee/energy/alien/claws
|
||||
color
|
||||
name = "energy claws"
|
||||
desc = "Zap zap Wap Wap."
|
||||
desc = "A set of alien energy claws."
|
||||
icon = 'icons/mob/alien.dmi'
|
||||
icon_state = "borg-laser-claws"
|
||||
force = 15.0
|
||||
throwforce = 5.0
|
||||
icon_state_on = "borg-laser-claws"
|
||||
force = 15
|
||||
force_on = 15
|
||||
throwforce = 5
|
||||
throwforce_on = 5
|
||||
throw_speed = 1
|
||||
throw_range = 5
|
||||
w_class = 2.0
|
||||
w_class = 2
|
||||
w_class_on = 2
|
||||
flags = NOSHIELD
|
||||
attack_verb = list("attacked", "slashed", "gored", "sliced", "torn", "ripped", "butchered", "cut")
|
||||
attack_verb_on = list()
|
||||
|
||||
//Bottles for borg liquid squirters. PSSH PSSH
|
||||
/obj/item/weapon/reagent_containers/spray/alien
|
||||
|
||||
@@ -62,8 +62,8 @@ LIGHTERS ARE IN LIGHTERS.DM
|
||||
if(M.lit)
|
||||
light("<span class='notice'>[user] lights their [name] with their [W].</span>")
|
||||
|
||||
else if(istype(W, /obj/item/weapon/melee/energy/sword))
|
||||
var/obj/item/weapon/melee/energy/sword/S = W
|
||||
else if(istype(W, /obj/item/weapon/melee/energy/sword/saber))
|
||||
var/obj/item/weapon/melee/energy/sword/saber/S = W
|
||||
if(S.active)
|
||||
light("<span class='warning'>[user] swings their [W], barely missing their nose. They light their [name] in the process.</span>")
|
||||
|
||||
|
||||
@@ -1,55 +1,101 @@
|
||||
/obj/item/weapon/melee/energy
|
||||
var/active = 0
|
||||
var/force_on = 30 //force when active
|
||||
var/throwforce_on = 20
|
||||
w_class = 2
|
||||
var/w_class_on = 4
|
||||
var/icon_state_on = "axe1"
|
||||
var/list/attack_verb_on = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut")
|
||||
no_embed = 1 // Physically impossible for energy weapons to embed themselves into people, this should fix that. -- Dave
|
||||
hitsound = 'sound/weapons/blade1.ogg' // Probably more appropriate than the previous hitsound. -- Dave
|
||||
|
||||
/obj/item/weapon/melee/energy/suicide_act(mob/user)
|
||||
viewers(user) << pick("<span class='suicide'>[user] is slitting \his stomach open with the [src.name]! It looks like \he's trying to commit seppuku.</span>", \
|
||||
"<span class='suicide'>[user] is falling on the [src.name]! It looks like \he's trying to commit suicide.</span>")
|
||||
user.visible_message(pick("<span class='suicide'>[user] is slitting \his stomach open with the [src.name]! It looks like \he's trying to commit seppuku.</span>", \
|
||||
"<span class='suicide'>[user] is falling on the [src.name]! It looks like \he's trying to commit suicide.</span>"))
|
||||
return (BRUTELOSS|FIRELOSS)
|
||||
|
||||
/obj/item/weapon/melee/energy/attack_self(mob/living/carbon/user)
|
||||
if(user.disabilities & CLUMSY && prob(50))
|
||||
user << "<span class='warning'>You accidentally cut yourself with [src], like a doofus!</span>"
|
||||
user.take_organ_damage(5,5)
|
||||
active = !active
|
||||
if (active)
|
||||
force = force_on
|
||||
throwforce = throwforce_on
|
||||
hitsound = 'sound/weapons/blade1.ogg'
|
||||
if(attack_verb_on.len)
|
||||
attack_verb = attack_verb_on
|
||||
if(!_color)
|
||||
icon_state = icon_state_on
|
||||
else
|
||||
icon_state = "sword[_color]"
|
||||
w_class = w_class_on
|
||||
playsound(user, 'sound/weapons/saberon.ogg', 35, 1) //changed it from 50% volume to 35% because deafness
|
||||
user << "<span class='notice'>[src] is now active.</span>"
|
||||
else
|
||||
force = initial(force)
|
||||
throwforce = initial(throwforce)
|
||||
hitsound = initial(hitsound)
|
||||
if(attack_verb_on.len)
|
||||
attack_verb = list()
|
||||
icon_state = initial(icon_state)
|
||||
w_class = initial(w_class)
|
||||
playsound(user, 'sound/weapons/saberoff.ogg', 35, 1) //changed it from 50% volume to 35% because deafness
|
||||
user << "<span class='notice'>[src] can now be concealed.</span>"
|
||||
add_fingerprint(user)
|
||||
return
|
||||
|
||||
/obj/item/weapon/melee/energy/axe
|
||||
name = "energy axe"
|
||||
desc = "An energised battle axe."
|
||||
icon_state = "axe0"
|
||||
force = 40.0
|
||||
throwforce = 25.0
|
||||
throw_speed = 1
|
||||
force = 40
|
||||
force_on = 150
|
||||
throwforce = 25
|
||||
throwforce_on = 30
|
||||
throw_speed = 3
|
||||
throw_range = 5
|
||||
w_class = 3.0
|
||||
w_class = 3
|
||||
w_class_on = 5
|
||||
hitsound = "swing_hit"
|
||||
flags = CONDUCT | NOSHIELD
|
||||
origin_tech = "combat=3"
|
||||
attack_verb = list("attacked", "chopped", "cleaved", "torn", "cut")
|
||||
attack_verb_on = list()
|
||||
sharp = 1
|
||||
edge = 1
|
||||
|
||||
|
||||
/obj/item/weapon/melee/energy/axe/suicide_act(mob/user)
|
||||
viewers(user) << "<span class='suicide'>[user] swings the [src.name] towards /his head! It looks like \he's trying to commit suicide.</span>"
|
||||
return (BRUTELOSS|FIRELOSS)
|
||||
user.visible_message("<span class='suicide'>[user] swings the [src.name] towards /his head! It looks like \he's trying to commit suicide.</span>")
|
||||
return (BRUTELOSS|FIRELOSS)
|
||||
|
||||
/obj/item/weapon/melee/energy/sword
|
||||
var/hacked = 0
|
||||
var/blade_color
|
||||
color
|
||||
name = "energy sword"
|
||||
desc = "May the force be within you."
|
||||
icon_state = "sword0"
|
||||
force = 3.0
|
||||
throwforce = 5.0
|
||||
throw_speed = 1
|
||||
force = 3
|
||||
throwforce = 5
|
||||
throw_speed = 3
|
||||
throw_range = 5
|
||||
w_class = 2.0
|
||||
hitsound = "swing_hit"
|
||||
flags = NOSHIELD
|
||||
origin_tech = "magnets=3;syndicate=4"
|
||||
attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut")
|
||||
sharp = 1
|
||||
edge = 1
|
||||
var/hacked = 0
|
||||
var/blade_color
|
||||
|
||||
/obj/item/weapon/melee/energy/sword/New()
|
||||
if(_color == null)
|
||||
_color = pick("red", "blue", "green", "purple")
|
||||
|
||||
/obj/item/weapon/melee/energy/sword/IsShield()
|
||||
if(active)
|
||||
return 1
|
||||
return 0
|
||||
|
||||
/obj/item/weapon/melee/energy/sword/cyborg
|
||||
var/hitcost = 250
|
||||
var/hitcost = 50
|
||||
|
||||
/obj/item/weapon/melee/energy/sword/cyborg/attack(mob/M, var/mob/living/silicon/robot/R)
|
||||
if(R.cell)
|
||||
@@ -58,26 +104,114 @@
|
||||
attack_self()
|
||||
R << "<span class='notice'>It's out of charge!</span>"
|
||||
return
|
||||
//C.use(hitcost)
|
||||
..()
|
||||
return
|
||||
|
||||
/obj/item/weapon/melee/energy/sword/cyborg/saw //Used by medical Syndicate cyborgs
|
||||
name = "energy saw"
|
||||
desc = "For heavy duty cutting. It has a carbon-fiber blade in addition to a toggleable hard-light edge to dramatically increase sharpness."
|
||||
force_on = 30
|
||||
force = 18 //About as much as a spear
|
||||
sharp = 1
|
||||
edge = 1
|
||||
hitsound = 'sound/weapons/circsawhit.ogg'
|
||||
origin_tech = "materials=3;biotech=3;syndicate=3"
|
||||
icon = 'icons/obj/surgery.dmi'
|
||||
icon_state = "esaw_0"
|
||||
icon_state_on = "esaw_1"
|
||||
hitcost = 75 //Costs more than a standard cyborg esword
|
||||
_color = null
|
||||
w_class = 3
|
||||
|
||||
/obj/item/weapon/melee/energy/sword/cyborg/saw/New()
|
||||
..()
|
||||
_color = null
|
||||
|
||||
/obj/item/weapon/melee/energy/sword/cyborg/saw/IsShield()
|
||||
return 0
|
||||
|
||||
/obj/item/weapon/melee/energy/sword/saber
|
||||
|
||||
/obj/item/weapon/melee/energy/sword/saber/blue
|
||||
_color = "blue"
|
||||
|
||||
/obj/item/weapon/melee/energy/sword/saber/purple
|
||||
_color = "purple"
|
||||
|
||||
/obj/item/weapon/melee/energy/sword/saber/green
|
||||
_color = "green"
|
||||
|
||||
/obj/item/weapon/melee/energy/sword/saber/red
|
||||
_color = "red"
|
||||
|
||||
/obj/item/weapon/melee/energy/sword/saber/attackby(obj/item/weapon/W, mob/living/user, params)
|
||||
..()
|
||||
if(istype(W, /obj/item/weapon/melee/energy/sword/saber))
|
||||
if(W == src)
|
||||
user << "<span class='notice'>You try to attach the end of the energy sword to... itself. You're not very smart, are you?</span>"
|
||||
if(ishuman(user))
|
||||
user.adjustBrainLoss(10)
|
||||
else
|
||||
user << "<span class='notice'>You attach the ends of the two energy swords, making a single double-bladed weapon! You're cool.</span>"
|
||||
var/obj/item/weapon/twohanded/dualsaber/newSaber = new /obj/item/weapon/twohanded/dualsaber(user.loc)
|
||||
if(src.hacked) // That's right, we'll only check the "original" esword.
|
||||
newSaber.hacked = 1
|
||||
newSaber._color = "rainbow"
|
||||
user.unEquip(W)
|
||||
user.unEquip(src)
|
||||
qdel(W)
|
||||
qdel(src)
|
||||
user.put_in_hands(newSaber)
|
||||
else if(istype(W, /obj/item/device/multitool))
|
||||
if(hacked == 0)
|
||||
hacked = 1
|
||||
_color = "rainbow"
|
||||
user << "<span class='warning'>RNBW_ENGAGE</span>"
|
||||
|
||||
if(active)
|
||||
icon_state = "swordrainbow"
|
||||
// Updating overlays, copied from welder code.
|
||||
// I tried calling attack_self twice, which looked cool, except it somehow didn't update the overlays!!
|
||||
if(user.r_hand == src)
|
||||
user.update_inv_r_hand(0)
|
||||
else if(user.l_hand == src)
|
||||
user.update_inv_l_hand(0)
|
||||
|
||||
else
|
||||
user << "<span class='warning'>It's already fabulous!</span>"
|
||||
|
||||
/obj/item/weapon/melee/energy/sword/pirate
|
||||
name = "energy cutlass"
|
||||
desc = "Arrrr matey."
|
||||
icon_state = "cutlass0"
|
||||
icon_state_on = "cutlass1"
|
||||
|
||||
/obj/item/weapon/melee/energy/sword/pirate/New()
|
||||
return
|
||||
|
||||
/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."
|
||||
icon_state = "blade"
|
||||
force = 30.0 //Normal attacks deal esword damage
|
||||
force = 30
|
||||
sharp = 1
|
||||
edge = 1
|
||||
throwforce = 1//Throwing or dropping the item deletes it.
|
||||
throw_speed = 1
|
||||
throw_speed = 3
|
||||
throw_range = 1
|
||||
w_class = 4.0//So you can't hide it in your pocket or some such.
|
||||
w_class = 4//So you can't hide it in your pocket or some such.
|
||||
flags = NOSHIELD
|
||||
attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut")
|
||||
var/datum/effect/effect/system/spark_spread/spark_system
|
||||
|
||||
//Most of the other special functions are handled in their own files. aka special snowflake code so kewl
|
||||
/obj/item/weapon/melee/energy/blade/New()
|
||||
spark_system = new /datum/effect/effect/system/spark_spread()
|
||||
spark_system.set_up(5, 0, src)
|
||||
spark_system.attach(src)
|
||||
|
||||
/obj/item/weapon/melee/energy/blade/dropped()
|
||||
qdel(src)
|
||||
|
||||
/obj/item/weapon/melee/energy/blade/attack_self(mob/user)
|
||||
return
|
||||
@@ -44,7 +44,7 @@
|
||||
return
|
||||
|
||||
if("murder")
|
||||
new /obj/item/weapon/melee/energy/sword(src)
|
||||
new /obj/item/weapon/melee/energy/sword/saber(src)
|
||||
new /obj/item/clothing/glasses/thermal/syndi(src)
|
||||
new /obj/item/weapon/card/emag(src)
|
||||
new /obj/item/clothing/shoes/syndigaloshes(src)
|
||||
@@ -79,8 +79,8 @@
|
||||
return
|
||||
|
||||
if("darklord")
|
||||
new /obj/item/weapon/melee/energy/sword(src)
|
||||
new /obj/item/weapon/melee/energy/sword(src)
|
||||
new /obj/item/weapon/melee/energy/sword/saber(src)
|
||||
new /obj/item/weapon/melee/energy/sword/saber(src)
|
||||
new /obj/item/weapon/dnainjector/telemut/darkbundle(src)
|
||||
new /obj/item/clothing/head/chaplain_hood(src)
|
||||
new /obj/item/clothing/suit/chaplain_hoodie(src)
|
||||
|
||||
@@ -3,8 +3,6 @@
|
||||
* Banhammer
|
||||
* Sword
|
||||
* Classic Baton
|
||||
* Energy Blade
|
||||
* Energy Axe
|
||||
* Energy Shield
|
||||
*/
|
||||
|
||||
@@ -15,84 +13,6 @@
|
||||
M << "<font color='red'><b> You have been banned FOR NO REISIN by [user]<b></font>"
|
||||
user << "<font color='red'> You have <b>BANNED</b> [M]</font>"
|
||||
|
||||
/*
|
||||
* Sword
|
||||
*/
|
||||
/obj/item/weapon/melee/energy/sword/IsShield()
|
||||
if(active)
|
||||
return 1
|
||||
return 0
|
||||
|
||||
/obj/item/weapon/melee/energy/sword/New()
|
||||
blade_color = pick("red","blue","green","purple")
|
||||
|
||||
/obj/item/weapon/melee/energy/sword/attack_self(mob/living/user as mob)
|
||||
if ((CLUMSY in user.mutations) && prob(50))
|
||||
user << "\red You accidentally cut yourself with [src]."
|
||||
user.take_organ_damage(5,5)
|
||||
active = !active
|
||||
if (active)
|
||||
force = 30
|
||||
throwforce = 20
|
||||
if(istype(src,/obj/item/weapon/melee/energy/sword/pirate))
|
||||
icon_state = "cutlass1"
|
||||
else
|
||||
icon_state = "sword[blade_color]"
|
||||
w_class = 4
|
||||
playsound(user, 'sound/weapons/saberon.ogg', 35, 1)
|
||||
hitsound = 'sound/weapons/blade1.ogg'
|
||||
user << "\blue [src] is now active."
|
||||
else
|
||||
force = 3
|
||||
throwforce = 5.0
|
||||
if(istype(src,/obj/item/weapon/melee/energy/sword/pirate))
|
||||
icon_state = "cutlass0"
|
||||
else
|
||||
icon_state = "sword0"
|
||||
w_class = 2
|
||||
playsound(user, 'sound/weapons/saberoff.ogg', 35, 1)
|
||||
hitsound = "swing_hit"
|
||||
user << "\blue [src] can now be concealed."
|
||||
if(istype(user,/mob/living/carbon/human))
|
||||
var/mob/living/carbon/human/H = user
|
||||
H.update_inv_l_hand()
|
||||
H.update_inv_r_hand()
|
||||
add_fingerprint(user)
|
||||
return
|
||||
|
||||
/obj/item/weapon/melee/energy/sword/attackby(obj/item/weapon/W, mob/living/user, params)
|
||||
..()
|
||||
if(istype(W, /obj/item/weapon/melee/energy/sword))
|
||||
if(W == src)
|
||||
user << "<span class='notice'>You try to attach the end of the energy sword to... itself. You're not very smart, are you?</span>"
|
||||
if(ishuman(user))
|
||||
user.adjustBrainLoss(10)
|
||||
else
|
||||
user << "<span class='notice'>You attach the ends of the two energy swords, making a single double-bladed weapon! You're cool.</span>"
|
||||
var/obj/item/weapon/twohanded/dualsaber/newSaber = new /obj/item/weapon/twohanded/dualsaber(user.loc)
|
||||
if(src.hacked) // That's right, we'll only check the "original" esword.
|
||||
newSaber.hacked = 1
|
||||
newSaber.blade_color = "rainbow"
|
||||
qdel(W)
|
||||
qdel(src)
|
||||
|
||||
else if(istype(W, /obj/item/device/multitool))
|
||||
if(hacked == 0)
|
||||
hacked = 1
|
||||
blade_color = "rainbow"
|
||||
user << "<span class='warning'>RNBW_ENGAGE</span>"
|
||||
|
||||
if(active)
|
||||
icon_state = "swordrainbow"
|
||||
// Updating overlays, copied from welder code.
|
||||
// I tried calling attack_self twice, which looked cool, except it somehow didn't update the overlays!!
|
||||
if(user.r_hand == src)
|
||||
user.update_inv_r_hand(0)
|
||||
else if(user.l_hand == src)
|
||||
user.update_inv_l_hand(0)
|
||||
else
|
||||
user << "<span class='warning'>It's already fabulous!</span>"
|
||||
|
||||
/*
|
||||
* Classic Baton
|
||||
*/
|
||||
@@ -180,51 +100,3 @@
|
||||
|
||||
playsound(src.loc, 'sound/weapons/batonextend.ogg', 50, 1)
|
||||
add_fingerprint(user)
|
||||
|
||||
/*
|
||||
*Energy Blade
|
||||
*/
|
||||
//Most of the other special functions are handled in their own files.
|
||||
|
||||
/obj/item/weapon/melee/energy/sword/green
|
||||
New()
|
||||
blade_color = "green"
|
||||
|
||||
/obj/item/weapon/melee/energy/sword/red
|
||||
New()
|
||||
blade_color = "red"
|
||||
|
||||
/obj/item/weapon/melee/energy/blade/New()
|
||||
spark_system = new /datum/effect/effect/system/spark_spread()
|
||||
spark_system.set_up(5, 0, src)
|
||||
spark_system.attach(src)
|
||||
return
|
||||
|
||||
/obj/item/weapon/melee/energy/blade/dropped()
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
/obj/item/weapon/melee/energy/blade/proc/toss()
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
/*
|
||||
* Energy Axe
|
||||
*/
|
||||
|
||||
/obj/item/weapon/melee/energy/axe/attack_self(mob/user as mob)
|
||||
src.active = !( src.active )
|
||||
if (src.active)
|
||||
user << "\blue The axe is now energised."
|
||||
src.force = 150
|
||||
src.icon_state = "axe1"
|
||||
src.w_class = 5
|
||||
hitsound = 'sound/weapons/blade1.ogg'
|
||||
else
|
||||
user << "\blue The axe can now be concealed."
|
||||
src.force = 40
|
||||
src.icon_state = "axe0"
|
||||
src.w_class = 5
|
||||
hitsound = "swing_hit"
|
||||
src.add_fingerprint(user)
|
||||
return
|
||||
@@ -24,88 +24,77 @@
|
||||
var/wieldsound = null
|
||||
var/unwieldsound = null
|
||||
|
||||
/obj/item/weapon/twohanded/proc/unwield()
|
||||
/obj/item/weapon/twohanded/proc/unwield(mob/living/carbon/user)
|
||||
if(!wielded || !user) return
|
||||
wielded = 0
|
||||
force = force_unwielded
|
||||
name = "[initial(name)]"
|
||||
var/sf = findtext(name," (Wielded)")
|
||||
if(sf)
|
||||
name = copytext(name,1,sf)
|
||||
else //something wrong
|
||||
name = "[initial(name)]"
|
||||
update_icon()
|
||||
|
||||
/obj/item/weapon/twohanded/proc/wield()
|
||||
wielded = 1
|
||||
force = force_wielded
|
||||
name = "[initial(name)] (Wielded)"
|
||||
update_icon()
|
||||
|
||||
/obj/item/weapon/twohanded/mob_can_equip(M as mob, slot)
|
||||
//Cannot equip wielded items.
|
||||
if(wielded)
|
||||
M << "<span class='warning'>Unwield the [initial(name)] first!</span>"
|
||||
return 0
|
||||
|
||||
return ..()
|
||||
|
||||
/obj/item/weapon/twohanded/dropped(mob/user as mob)
|
||||
//handles unwielding a twohanded weapon when dropped as well as clearing up the offhand
|
||||
if(user)
|
||||
var/obj/item/weapon/twohanded/O = user.get_inactive_hand()
|
||||
if(istype(O))
|
||||
O.unwield()
|
||||
return unwield()
|
||||
|
||||
/obj/item/weapon/twohanded/update_icon()
|
||||
if(isrobot(user))
|
||||
user << "<span class='notice'>You free up your module.</span>"
|
||||
else
|
||||
user << "<span class='notice'>You are now carrying the [name] with one hand.</span>"
|
||||
if(unwieldsound)
|
||||
playsound(loc, unwieldsound, 50, 1)
|
||||
var/obj/item/weapon/twohanded/offhand/O = user.get_inactive_hand()
|
||||
if(O && istype(O))
|
||||
O.unwield()
|
||||
return
|
||||
|
||||
/obj/item/weapon/twohanded/pickup(mob/user)
|
||||
unwield()
|
||||
|
||||
/obj/item/weapon/twohanded/attack_self(mob/user as mob)
|
||||
..()
|
||||
|
||||
if(istype(user, /mob/living/carbon/human))
|
||||
/obj/item/weapon/twohanded/proc/wield(mob/living/carbon/user)
|
||||
if(wielded) return
|
||||
if(ishuman(user))
|
||||
var/mob/living/carbon/human/H = user
|
||||
if(H.species.is_small)
|
||||
user << "<span class='warning'>It's too heavy for you to wield fully.</span>"
|
||||
return
|
||||
if(user.get_inactive_hand())
|
||||
user << "<span class='warning'>You need your other hand to be empty!</span>"
|
||||
return
|
||||
wielded = 1
|
||||
force = force_wielded
|
||||
name = "[name] (Wielded)"
|
||||
update_icon()
|
||||
if(isrobot(user))
|
||||
user << "<span class='notice'>You dedicate your module to [name].</span>"
|
||||
else
|
||||
return
|
||||
user << "<span class='notice'>You grab the [name] with both hands.</span>"
|
||||
if (wieldsound)
|
||||
playsound(loc, wieldsound, 50, 1)
|
||||
var/obj/item/weapon/twohanded/offhand/O = new(user) ////Let's reserve his other hand~
|
||||
O.name = "[name] - offhand"
|
||||
O.desc = "Your second grip on the [name]"
|
||||
user.put_in_inactive_hand(O)
|
||||
return
|
||||
|
||||
/obj/item/weapon/twohanded/mob_can_equip(mob/M, slot)
|
||||
//Cannot equip wielded items.
|
||||
if(wielded)
|
||||
M << "<span class='warning'>Unwield the [name] first!</span>"
|
||||
return 0
|
||||
return ..()
|
||||
|
||||
/obj/item/weapon/twohanded/dropped(mob/user)
|
||||
//handles unwielding a twohanded weapon when dropped as well as clearing up the offhand
|
||||
if(user)
|
||||
var/obj/item/weapon/twohanded/O = user.get_inactive_hand()
|
||||
if(istype(O))
|
||||
O.unwield(user)
|
||||
return unwield(user)
|
||||
|
||||
/obj/item/weapon/twohanded/update_icon()
|
||||
return
|
||||
|
||||
/obj/item/weapon/twohanded/attack_self(mob/user)
|
||||
..()
|
||||
if(wielded) //Trying to unwield it
|
||||
unwield()
|
||||
user << "<span class='notice'>You are now carrying the [name] with one hand.</span>"
|
||||
if (src.unwieldsound)
|
||||
playsound(src.loc, unwieldsound, 50, 1)
|
||||
|
||||
var/obj/item/weapon/twohanded/offhand/O = user.get_inactive_hand()
|
||||
if(O && istype(O))
|
||||
O.unwield()
|
||||
|
||||
if(istype(user,/mob/living/carbon/human))
|
||||
var/mob/living/carbon/human/H = user
|
||||
H.update_inv_l_hand()
|
||||
H.update_inv_r_hand()
|
||||
add_fingerprint(user)
|
||||
return
|
||||
|
||||
unwield(user)
|
||||
else //Trying to wield it
|
||||
if(user.get_inactive_hand())
|
||||
user << "<span class='warning'>You need your other hand to be empty</span>"
|
||||
return
|
||||
wield()
|
||||
user << "<span class='notice'>You grab the [initial(name)] with both hands.</span>"
|
||||
if (src.wieldsound)
|
||||
playsound(src.loc, wieldsound, 50, 1)
|
||||
|
||||
var/obj/item/weapon/twohanded/offhand/O = new(user) ////Let's reserve his other hand~
|
||||
O.name = "[initial(name)] - offhand"
|
||||
O.desc = "Your second grip on the [initial(name)]"
|
||||
user.put_in_inactive_hand(O)
|
||||
|
||||
if(istype(user,/mob/living/carbon/human))
|
||||
var/mob/living/carbon/human/H = user
|
||||
H.update_inv_l_hand()
|
||||
H.update_inv_r_hand()
|
||||
add_fingerprint(user)
|
||||
return
|
||||
wield(user)
|
||||
|
||||
///////////OFFHAND///////////////
|
||||
/obj/item/weapon/twohanded/offhand
|
||||
@@ -144,6 +133,8 @@
|
||||
|
||||
/obj/item/weapon/twohanded/required/attack_hand(mob/user)//Can't even pick it up without both hands empty
|
||||
var/obj/item/weapon/twohanded/required/H = user.get_inactive_hand()
|
||||
if(get_dist(src,user) > 1)
|
||||
return 0
|
||||
if(H != null)
|
||||
user.visible_message("<span class='notice'>[src.name] is too cumbersome to carry in one hand!</span>")
|
||||
return
|
||||
@@ -152,9 +143,6 @@
|
||||
..()
|
||||
wielded = 1
|
||||
|
||||
|
||||
obj/item/weapon/twohanded/
|
||||
|
||||
/*
|
||||
* Fireaxe
|
||||
*/
|
||||
@@ -183,16 +171,11 @@ obj/item/weapon/twohanded/
|
||||
if(A && wielded && (istype(A,/obj/structure/window) || istype(A,/obj/structure/grille))) //destroys windows and grilles in one hit
|
||||
|
||||
if(istype(A,/obj/structure/window))
|
||||
/* var/pdiff=performWallPressureCheck(A.loc)
|
||||
if(pdiff>0)
|
||||
message_admins("[A] with pdiff [pdiff] fire-axed by [user.real_name] ([formatPlayerPanel(user,user.ckey)]) at [formatJumpTo(A.loc)]!")
|
||||
log_admin("[A] with pdiff [pdiff] fire-axed by [user.real_name] ([user.ckey]) at [A.loc]!")*///TODO: Figure out how the hell to remake this proc
|
||||
var/obj/structure/window/W = A
|
||||
W.destroy()
|
||||
else
|
||||
qdel(A)
|
||||
|
||||
|
||||
/*
|
||||
* Double-Bladed Energy Swords - Cheridan
|
||||
*/
|
||||
@@ -245,21 +228,17 @@ obj/item/weapon/twohanded/
|
||||
else
|
||||
return 0
|
||||
|
||||
/obj/item/weapon/twohanded/dualsaber/green
|
||||
New()
|
||||
blade_color = "green"
|
||||
/obj/item/weapon/twohanded/dualsaber/green/New()
|
||||
blade_color = "green"
|
||||
|
||||
/obj/item/weapon/twohanded/dualsaber/red
|
||||
New()
|
||||
blade_color = "red"
|
||||
/obj/item/weapon/twohanded/dualsaber/red/New()
|
||||
blade_color = "red"
|
||||
|
||||
/obj/item/weapon/twohanded/dualsaber/purple
|
||||
New()
|
||||
blade_color = "purple"
|
||||
/obj/item/weapon/twohanded/dualsaber/purple/New()
|
||||
blade_color = "purple"
|
||||
|
||||
/obj/item/weapon/twohanded/dualsaber/blue
|
||||
New()
|
||||
blade_color = "blue"
|
||||
/obj/item/weapon/twohanded/dualsaber/blue/New()
|
||||
blade_color = "blue"
|
||||
|
||||
/obj/item/weapon/twohanded/dualsaber/unwield()
|
||||
..()
|
||||
@@ -284,7 +263,6 @@ obj/item/weapon/twohanded/
|
||||
else
|
||||
user << "<span class='warning'>It's starting to look like a triple rainbow - no, nevermind.</span>"
|
||||
|
||||
|
||||
//spears
|
||||
/obj/item/weapon/twohanded/spear
|
||||
icon_state = "spearglass0"
|
||||
@@ -347,7 +325,6 @@ obj/item/weapon/twohanded/
|
||||
density = 0
|
||||
anchored = 1
|
||||
|
||||
|
||||
/obj/structure/headspear/attack_hand(mob/living/user)
|
||||
user.visible_message("<span class='warning'>[user] kicks over \the [src]!</span>", "<span class='danger'>You kick down \the [src]!</span>")
|
||||
new /obj/item/weapon/twohanded/spear(user.loc)
|
||||
@@ -360,9 +337,7 @@ obj/item/weapon/twohanded/
|
||||
name = "Kidan spear"
|
||||
desc = "A spear brought over from the Kidan homeworld."
|
||||
|
||||
|
||||
///CHAINSAW///
|
||||
|
||||
/obj/item/weapon/twohanded/chainsaw
|
||||
icon_state = "chainsaw0"
|
||||
name = "Chainsaw"
|
||||
@@ -383,14 +358,12 @@ obj/item/weapon/twohanded/
|
||||
edge = 1
|
||||
no_embed = 1
|
||||
|
||||
|
||||
/obj/item/weapon/twohanded/chainsaw/update_icon()
|
||||
if(wielded)
|
||||
icon_state = "chainsaw[wielded]"
|
||||
else
|
||||
icon_state = "chainsaw0"
|
||||
|
||||
|
||||
/obj/item/weapon/twohanded/chainsaw/attack(mob/target as mob, mob/living/user as mob)
|
||||
if(wielded)
|
||||
playsound(loc, 'sound/weapons/chainsaw.ogg', 100, 1, -1) //incredibly loud; you ain't goin' for stealth with this thing. Credit to Lonemonk of Freesound for this sound.
|
||||
@@ -415,9 +388,7 @@ obj/item/weapon/twohanded/
|
||||
..()
|
||||
flags &= ~NODROP
|
||||
|
||||
|
||||
// SINGULOHAMMER
|
||||
|
||||
/obj/item/weapon/twohanded/singularityhammer
|
||||
name = "singularity hammer"
|
||||
desc = "The pinnacle of close combat technology, the hammer harnesses the power of a miniaturized singularity to deal crushing blows."
|
||||
@@ -434,18 +405,14 @@ obj/item/weapon/twohanded/
|
||||
var/charged = 5
|
||||
origin_tech = "combat=5;bluespace=4"
|
||||
|
||||
|
||||
|
||||
/obj/item/weapon/twohanded/singularityhammer/New()
|
||||
..()
|
||||
processing_objects.Add(src)
|
||||
|
||||
|
||||
/obj/item/weapon/twohanded/singularityhammer/Destroy()
|
||||
processing_objects.Remove(src)
|
||||
return ..()
|
||||
|
||||
|
||||
/obj/item/weapon/twohanded/singularityhammer/process()
|
||||
if(charged < 5)
|
||||
charged++
|
||||
@@ -455,7 +422,6 @@ obj/item/weapon/twohanded/
|
||||
icon_state = "mjollnir[wielded]"
|
||||
return
|
||||
|
||||
|
||||
/obj/item/weapon/twohanded/singularityhammer/proc/vortex(var/turf/pull as turf, mob/wielder as mob)
|
||||
for(var/atom/X in orange(5,pull))
|
||||
if(istype(X, /atom/movable))
|
||||
@@ -476,8 +442,6 @@ obj/item/weapon/twohanded/
|
||||
step_towards(H,pull)
|
||||
return
|
||||
|
||||
|
||||
|
||||
/obj/item/weapon/twohanded/singularityhammer/afterattack(atom/A as mob|obj|turf|area, mob/user as mob, proximity)
|
||||
if(!proximity) return
|
||||
if(wielded)
|
||||
@@ -490,7 +454,6 @@ obj/item/weapon/twohanded/
|
||||
var/turf/target = get_turf(A)
|
||||
vortex(target,user)
|
||||
|
||||
|
||||
/obj/item/weapon/twohanded/mjollnir
|
||||
name = "Mjollnir"
|
||||
desc = "A weapon worthy of a god, able to strike with the force of a lightning bolt. It crackles with barely contained energy."
|
||||
@@ -519,7 +482,6 @@ obj/item/weapon/twohanded/
|
||||
target.throw_at(throw_target, 200, 4)
|
||||
return
|
||||
|
||||
|
||||
/obj/item/weapon/twohanded/mjollnir/attack(mob/M as mob, mob/user as mob)
|
||||
..()
|
||||
spawn(0)
|
||||
@@ -531,13 +493,10 @@ obj/item/weapon/twohanded/
|
||||
M.Stun(10)
|
||||
shock(M)
|
||||
|
||||
|
||||
/obj/item/weapon/twohanded/mjollnir/update_icon() //Currently only here to fuck with the on-mob icons.
|
||||
icon_state = "mjollnir[wielded]"
|
||||
return
|
||||
|
||||
|
||||
|
||||
/obj/item/weapon/twohanded/knighthammer
|
||||
name = "singuloth knight's hammer"
|
||||
desc = "A hammer made of sturdy metal with a golden skull adorned with wings on either side of the head. <br>This weapon causes devastating damage to those it hits due to a power field sustained by a mini-singularity inside of the hammer."
|
||||
@@ -554,18 +513,14 @@ obj/item/weapon/twohanded/
|
||||
var/charged = 5
|
||||
origin_tech = "combat=5;bluespace=4"
|
||||
|
||||
|
||||
|
||||
/obj/item/weapon/twohanded/knighthammer/New()
|
||||
..()
|
||||
processing_objects.Add(src)
|
||||
|
||||
|
||||
/obj/item/weapon/twohanded/knighthammer/Destroy()
|
||||
processing_objects.Remove(src)
|
||||
return ..()
|
||||
|
||||
|
||||
/obj/item/weapon/twohanded/knighthammer/process()
|
||||
if(charged < 5)
|
||||
charged++
|
||||
@@ -575,7 +530,6 @@ obj/item/weapon/twohanded/
|
||||
icon_state = "knighthammer[wielded]"
|
||||
return
|
||||
|
||||
|
||||
/obj/item/weapon/twohanded/knighthammer/afterattack(atom/A as mob|obj|turf|area, mob/user as mob, proximity)
|
||||
if(!proximity) return
|
||||
if(charged == 5)
|
||||
|
||||
@@ -96,9 +96,9 @@
|
||||
new /obj/item/clothing/suit/armor/tdome/red(src)
|
||||
new /obj/item/clothing/suit/armor/tdome/red(src)
|
||||
new /obj/item/clothing/suit/armor/tdome/red(src)
|
||||
new /obj/item/weapon/melee/energy/sword(src)
|
||||
new /obj/item/weapon/melee/energy/sword(src)
|
||||
new /obj/item/weapon/melee/energy/sword(src)
|
||||
new /obj/item/weapon/melee/energy/sword/saber(src)
|
||||
new /obj/item/weapon/melee/energy/sword/saber(src)
|
||||
new /obj/item/weapon/melee/energy/sword/saber(src)
|
||||
new /obj/item/weapon/gun/energy/laser(src)
|
||||
new /obj/item/weapon/gun/energy/laser(src)
|
||||
new /obj/item/weapon/gun/energy/laser(src)
|
||||
@@ -124,9 +124,9 @@
|
||||
new /obj/item/clothing/suit/armor/tdome/green(src)
|
||||
new /obj/item/clothing/suit/armor/tdome/green(src)
|
||||
new /obj/item/clothing/suit/armor/tdome/green(src)
|
||||
new /obj/item/weapon/melee/energy/sword(src)
|
||||
new /obj/item/weapon/melee/energy/sword(src)
|
||||
new /obj/item/weapon/melee/energy/sword(src)
|
||||
new /obj/item/weapon/melee/energy/sword/saber(src)
|
||||
new /obj/item/weapon/melee/energy/sword/saber(src)
|
||||
new /obj/item/weapon/melee/energy/sword/saber(src)
|
||||
new /obj/item/weapon/gun/energy/laser(src)
|
||||
new /obj/item/weapon/gun/energy/laser(src)
|
||||
new /obj/item/weapon/gun/energy/laser(src)
|
||||
|
||||
@@ -790,7 +790,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
|
||||
M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_l_ear)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses(M), slot_glasses)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/suit/wcoat(M), slot_wear_suit)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/melee/energy/sword(M), slot_l_store)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/melee/energy/sword/saber(M), slot_l_store)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/cloaking_device(M), slot_r_store)
|
||||
|
||||
var/obj/item/weapon/storage/secure/briefcase/sec_briefcase = new(M)
|
||||
|
||||
@@ -151,7 +151,7 @@ var/global/sent_strike_team = 0
|
||||
equip_to_slot_or_del(new /obj/item/weapon/pinpointer(src), slot_in_backpack)
|
||||
equip_to_slot_or_del(new /obj/item/weapon/disk/nuclear(src), slot_in_backpack)
|
||||
|
||||
equip_to_slot_or_del(new /obj/item/weapon/melee/energy/sword(src), slot_l_store)
|
||||
equip_to_slot_or_del(new /obj/item/weapon/melee/energy/sword/saber(src), slot_l_store)
|
||||
equip_to_slot_or_del(new /obj/item/weapon/shield/energy(src), slot_r_store)
|
||||
equip_to_slot_or_del(new /obj/item/weapon/tank/emergency_oxygen/double/full(src), slot_s_store)
|
||||
equip_to_slot_or_del(new /obj/item/weapon/gun/projectile/revolver/mateba(src), slot_belt)
|
||||
|
||||
@@ -157,7 +157,7 @@ var/global/sent_syndicate_strike_team = 0
|
||||
equip_to_slot_or_del(new /obj/item/weapon/pinpointer(src), slot_in_backpack)
|
||||
equip_to_slot_or_del(new /obj/item/weapon/disk/nuclear(src), slot_in_backpack)
|
||||
|
||||
equip_to_slot_or_del(new /obj/item/weapon/melee/energy/sword(src), slot_l_store)
|
||||
equip_to_slot_or_del(new /obj/item/weapon/melee/energy/sword/saber(src), slot_l_store)
|
||||
equip_to_slot_or_del(new /obj/item/weapon/grenade/empgrenade(src), slot_r_store)
|
||||
equip_to_slot_or_del(new /obj/item/weapon/tank/emergency_oxygen/double/full(src), slot_s_store)
|
||||
equip_to_slot_or_del(new /obj/item/weapon/gun/projectile/automatic/pistol/m2411(src), slot_belt)
|
||||
|
||||
@@ -83,7 +83,7 @@
|
||||
// Can't be equipped by any other species due to bone structure and vox cybernetics.
|
||||
/obj/item/clothing/suit/space/vox
|
||||
w_class = 3
|
||||
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)
|
||||
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/saber,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank)
|
||||
slowdown = 2
|
||||
armor = list(melee = 60, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 30)
|
||||
siemens_coefficient = 0.6
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
|
||||
/obj/item/clothing/head/helmet/space/rig/ert
|
||||
name = "emergency response team helmet"
|
||||
desc = "A helmet worn by members of the Nanotrasen Emergency Response Team. Armoured and space ready."
|
||||
@@ -28,7 +29,7 @@
|
||||
icon_state = "ert_commander"
|
||||
item_state = "suit-command"
|
||||
w_class = 3
|
||||
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)
|
||||
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/saber,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank)
|
||||
slowdown = 1
|
||||
armor = list(melee = 60, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 100, rad = 60)
|
||||
allowed = list(/obj/item/device/flashlight, /obj/item/weapon/tank, /obj/item/device/t_scanner, /obj/item/weapon/rcd, /obj/item/weapon/crowbar, \
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
/obj/item/clothing/suit/space/eva/plasmaman
|
||||
name = "plasmaman suit"
|
||||
desc = "A special containment suit designed to protect a plasmaman's volatile body from outside exposure and quickly extinguish it in emergencies."
|
||||
allowed = list(/obj/item/weapon/gun,/obj/item/ammo_casing,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/melee/energy/sword,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank)
|
||||
allowed = list(/obj/item/weapon/gun,/obj/item/ammo_casing,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/melee/energy/sword/saber,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank)
|
||||
slowdown = 0
|
||||
armor = list(melee = 0, bullet = 0, laser = 0 ,energy = 0, bomb = 0, bio = 100, rad = 20)
|
||||
heat_protection = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS
|
||||
@@ -297,7 +297,7 @@
|
||||
name = "blood red plasmaman suit"
|
||||
icon_state = "plasmaman_Nukeops"
|
||||
armor = list(melee = 60, bullet = 50, laser = 30, energy = 15, bomb = 35, bio = 100, rad = 50)
|
||||
allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank,/obj/item/weapon/gun,/obj/item/ammo_casing,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/melee/energy/sword,/obj/item/weapon/restraints/handcuffs)
|
||||
allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank,/obj/item/weapon/gun,/obj/item/ammo_casing,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/melee/energy/sword/saber,/obj/item/weapon/restraints/handcuffs)
|
||||
siemens_coefficient = 0.6
|
||||
|
||||
/obj/item/clothing/head/helmet/space/eva/plasmaman/nuclear
|
||||
|
||||
@@ -334,7 +334,7 @@
|
||||
var/on = 1
|
||||
action_button_name = "Toggle Hardsuit Mode"
|
||||
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,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/melee/energy/sword,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank)
|
||||
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/saber,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank)
|
||||
|
||||
/obj/item/clothing/suit/space/rig/syndi/update_icon()
|
||||
icon_state = "hardsuit[on]-[_color]"
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
item_state = "space_suit_syndicate"
|
||||
desc = "Has a tag on it: Totally not property of of a hostile corporation, honest!"
|
||||
w_class = 3
|
||||
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)
|
||||
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/saber,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank)
|
||||
slowdown = 1
|
||||
armor = list(melee = 60, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 30)
|
||||
siemens_coefficient = 0.8
|
||||
|
||||
@@ -467,7 +467,7 @@ var/list/robot_verbs_default = list(
|
||||
// this function shows information about the malf_ai gameplay type in the status screen
|
||||
/mob/living/silicon/robot/show_malf_ai()
|
||||
..()
|
||||
if(ticker.mode.name == "AI malfunction")
|
||||
if(ticker && ticker.mode.name == "AI malfunction")
|
||||
var/datum/game_mode/malfunction/malf = ticker.mode
|
||||
for (var/datum/mind/malfai in malf.malf_ai)
|
||||
if(connected_ai)
|
||||
@@ -1198,13 +1198,13 @@ var/list/robot_verbs_default = list(
|
||||
/mob/living/silicon/robot/proc/ResetSecurityCodes()
|
||||
set category = "Robot Commands"
|
||||
set name = "Reset Identity Codes"
|
||||
set desc = "Scrambles your security and identification codes and resets your current buffers. Unlocks you and but permenantly severs you from your AI and the robotics console and will deactivate your camera system."
|
||||
set desc = "Scrambles your security and identification codes and resets your current buffers. Unlocks you and but permanently severs you from your AI and the robotics console and will deactivate your camera system."
|
||||
|
||||
var/mob/living/silicon/robot/R = src
|
||||
|
||||
if(R)
|
||||
R.UnlinkSelf()
|
||||
R << "Buffers flushed and reset. Camera system shutdown. All systems operational."
|
||||
R << "Buffers flushed and reset. Camera system shutdown. All systems operational."
|
||||
src.verbs -= /mob/living/silicon/robot/proc/ResetSecurityCodes
|
||||
|
||||
/mob/living/silicon/robot/mode()
|
||||
@@ -1264,75 +1264,50 @@ var/list/robot_verbs_default = list(
|
||||
src << "Your icon has been set. You now require a module reset to change it."
|
||||
|
||||
/mob/living/silicon/robot/deathsquad
|
||||
var/searching_for_ckey = 0
|
||||
icon_state = "nano_bloodhound"
|
||||
lawupdate = 0
|
||||
scrambledcodes = 1
|
||||
modtype = "Commando"
|
||||
faction = list("nanotrasen")
|
||||
designation = "NT Combat Cyborg"
|
||||
designation = "Nanotrasen Combat"
|
||||
req_access = list(access_cent_specops)
|
||||
var/searching_for_ckey = 0
|
||||
|
||||
/mob/living/silicon/robot/deathsquad/New(loc)
|
||||
if(!cell)
|
||||
cell = new /obj/item/weapon/stock_parts/cell(src)
|
||||
cell.maxcharge = 25000
|
||||
cell.charge = 25000
|
||||
|
||||
..()
|
||||
cell.maxcharge = 25000
|
||||
cell.charge = 25000
|
||||
|
||||
/mob/living/silicon/robot/deathsquad/init()
|
||||
aiCamera = new/obj/item/device/camera/siliconcam/robot_camera(src)
|
||||
|
||||
laws = new /datum/ai_laws/deathsquad
|
||||
module = new /obj/item/weapon/robot_module/deathsquad(src)
|
||||
|
||||
|
||||
aiCamera = new/obj/item/device/camera/siliconcam/robot_camera(src)
|
||||
radio = new /obj/item/device/radio/borg/deathsquad(src)
|
||||
radio.recalculateChannels()
|
||||
|
||||
playsound(loc, 'sound/mecha/nominalsyndi.ogg', 75, 0)
|
||||
|
||||
/mob/living/silicon/robot/deathsquad/attack_hand(mob/user)
|
||||
if((ckey == null) && searching_for_ckey == 0)
|
||||
user << "<span class='notice'>Now checking for possible candidates.</span>"
|
||||
var/list/ghosts = list()
|
||||
for(var/mob/dead/observer/G in player_list)
|
||||
ghosts += G
|
||||
get_borg_occupant(user, ghosts)
|
||||
return
|
||||
|
||||
/mob/living/silicon/robot/deathsquad/proc/get_borg_occupant(mob/user as mob, var/list/possiblecandidates = list())
|
||||
var/time_passed = world.time
|
||||
searching_for_ckey = 1
|
||||
if(possiblecandidates.len <= 0)
|
||||
searching_for_ckey = 0
|
||||
user << "<span class='notice'>Cyborg MMI interface failure, unit unable to be started.</span>"
|
||||
return
|
||||
if(isnull(ckey) && !searching_for_ckey)
|
||||
searching_for_ckey = 1
|
||||
user << "<span class='notice'>Now checking for possible borgs.</span>"
|
||||
var/list/borg_candidates = pollCandidates("Do you want to play as a Nanotrasen Combat borg?", poll_time = 300)
|
||||
if(borg_candidates.len > 0 && isnull(ckey))
|
||||
searching_for_ckey = 0
|
||||
var/mob/M = pick(borg_candidates)
|
||||
M.mind.transfer_to(src)
|
||||
M.mind.assigned_role = "MODE"
|
||||
M.mind.special_role = "Death Commando"
|
||||
ticker.mode.traitors |= M.mind // Adds them to current traitor list. Which is really the extra antagonist list.
|
||||
key = M.key
|
||||
else
|
||||
searching_for_ckey = 0
|
||||
user << "<span class='notice'>Unable to connect to Central Command. Please wait and try again later.</span>"
|
||||
return
|
||||
else
|
||||
var/possibleborg = pick(possiblecandidates)
|
||||
spawn(0)
|
||||
var/input = alert(possibleborg,"Do you want to spawn in as a cyborg for the NT Deathsquad?","Please answer in thirty seconds!","Yes","No")
|
||||
var/mob/dead/observer/C = possibleborg
|
||||
if(input == "Yes" && ckey == null && C.client)
|
||||
if((world.time-time_passed)>300)
|
||||
return
|
||||
possiblecandidates -= possibleborg
|
||||
searching_for_ckey = 0
|
||||
C.mind.transfer_to(src)
|
||||
C.mind.assigned_role = "MODE"
|
||||
C.mind.special_role = "Death Commando"
|
||||
ticker.mode.traitors |= C.mind // Adds them to current traitor list. Which is really the extra antagonist list.
|
||||
src.key = C.key
|
||||
else
|
||||
possiblecandidates -= possibleborg
|
||||
get_borg_occupant(user, possiblecandidates)
|
||||
return
|
||||
|
||||
sleep(300)
|
||||
if(searching_for_ckey)
|
||||
possiblecandidates -= possibleborg
|
||||
get_borg_occupant(user, possiblecandidates)
|
||||
return
|
||||
user << "<span class='warning'>[src] is already checking for possible borgs.</span>"
|
||||
return
|
||||
|
||||
/mob/living/silicon/robot/syndicate
|
||||
icon_state = "syndie_bloodhound"
|
||||
@@ -1340,29 +1315,47 @@ var/list/robot_verbs_default = list(
|
||||
scrambledcodes = 1
|
||||
modtype = "Synd"
|
||||
faction = list("syndicate")
|
||||
designation = "Syndicate"
|
||||
designation = "Syndicate Assault"
|
||||
modtype = "Syndicate"
|
||||
req_access = list(access_syndicate)
|
||||
lawchannel = "State"
|
||||
var/playstyle_string = "<span class='userdanger'>You are a Syndicate assault cyborg!</span><br>\
|
||||
<b>You are armed with powerful offensive tools to aid you in your mission: help the operatives secure the nuclear authentication disk. \
|
||||
Your cyborg LMG will slowly produce ammunition from your power supply, and your operative pinpointer will find and locate fellow nuclear operatives. \
|
||||
<i>Help the operatives secure the disk at all costs!</i></b>"
|
||||
|
||||
/mob/living/silicon/robot/syndicate/New(loc)
|
||||
if(!cell)
|
||||
cell = new /obj/item/weapon/stock_parts/cell(src)
|
||||
cell.maxcharge = 25000
|
||||
cell.charge = 25000
|
||||
|
||||
..()
|
||||
|
||||
cell.maxcharge = 25000
|
||||
cell.charge = 25000
|
||||
|
||||
/mob/living/silicon/robot/syndicate/init()
|
||||
aiCamera = new/obj/item/device/camera/siliconcam/robot_camera(src)
|
||||
|
||||
laws = new /datum/ai_laws/syndicate_override
|
||||
module = new /obj/item/weapon/robot_module/syndicate(src)
|
||||
|
||||
aiCamera = new/obj/item/device/camera/siliconcam/robot_camera(src)
|
||||
radio = new /obj/item/device/radio/borg/syndicate(src)
|
||||
radio.recalculateChannels()
|
||||
|
||||
spawn(5)
|
||||
if(playstyle_string)
|
||||
src << playstyle_string
|
||||
|
||||
playsound(loc, 'sound/mecha/nominalsyndi.ogg', 75, 0)
|
||||
|
||||
/mob/living/silicon/robot/syndicate/medical
|
||||
icon_state = "syndi-medi"
|
||||
designation = "Syndicate Medical"
|
||||
playstyle_string = "<span class='userdanger'>You are a Syndicate medical cyborg!</span><br>\
|
||||
<b>You are armed with powerful medical tools to aid you in your mission: help the operatives secure the nuclear authentication disk. \
|
||||
Your hypospray will produce Restorative Nanites, a wonder-drug that will heal most types of bodily damages, including clone and brain damage. It also produces morphine for offense. \
|
||||
Your defibrillator paddles can revive operatives through their hardsuits, or can be used on harm intent to shock enemies! \
|
||||
Your energy saw functions as a circular saw, but can be activated to deal more damage, and your operative pinpointer will find and locate fellow nuclear operatives. \
|
||||
<i>Help the operatives secure the disk at all costs!</i></b>"
|
||||
|
||||
/mob/living/silicon/robot/syndicate/medical/init()
|
||||
..()
|
||||
module = new /obj/item/weapon/robot_module/syndicate_medical(src)
|
||||
|
||||
/mob/living/silicon/robot/proc/notify_ai(var/notifytype, var/oldname, var/newname)
|
||||
if(!connected_ai)
|
||||
|
||||
@@ -344,7 +344,7 @@
|
||||
fix_modules()
|
||||
|
||||
/obj/item/weapon/robot_module/syndicate
|
||||
name = "syndicate robot module"
|
||||
name = "syndicate assault robot module"
|
||||
|
||||
/obj/item/weapon/robot_module/syndicate/New()
|
||||
src.modules += new /obj/item/device/flash/cyborg(src)
|
||||
@@ -358,6 +358,44 @@
|
||||
src.emag = null
|
||||
|
||||
fix_modules()
|
||||
|
||||
/obj/item/weapon/robot_module/syndicate_medical
|
||||
name = "syndicate medical robot module"
|
||||
stacktypes = list(
|
||||
/obj/item/stack/medical/advanced/bruise_pack = 25,
|
||||
/obj/item/stack/medical/advanced/ointment = 25,
|
||||
/obj/item/stack/medical/splint = 25,
|
||||
/obj/item/stack/nanopaste = 25
|
||||
)
|
||||
|
||||
/obj/item/weapon/robot_module/syndicate_medical/New()
|
||||
src.modules += new /obj/item/device/flash/cyborg(src)
|
||||
src.modules += new /obj/item/device/healthanalyzer/advanced(src)
|
||||
src.modules += new /obj/item/device/reagent_scanner/adv(src)
|
||||
src.modules += new /obj/item/weapon/borg_defib(src)
|
||||
src.modules += new /obj/item/roller_holder(src)
|
||||
src.modules += new /obj/item/weapon/reagent_containers/borghypo/syndicate(src)
|
||||
src.modules += new /obj/item/weapon/extinguisher/mini(src)
|
||||
src.modules += new /obj/item/stack/medical/advanced/bruise_pack(src)
|
||||
src.modules += new /obj/item/stack/medical/advanced/ointment(src)
|
||||
src.modules += new /obj/item/stack/medical/splint(src)
|
||||
src.modules += new /obj/item/stack/nanopaste(src)
|
||||
src.modules += new /obj/item/weapon/scalpel(src)
|
||||
src.modules += new /obj/item/weapon/hemostat(src)
|
||||
src.modules += new /obj/item/weapon/retractor(src)
|
||||
src.modules += new /obj/item/weapon/cautery(src)
|
||||
src.modules += new /obj/item/weapon/bonegel(src)
|
||||
src.modules += new /obj/item/weapon/FixOVein(src)
|
||||
src.modules += new /obj/item/weapon/bonesetter(src)
|
||||
src.modules += new /obj/item/weapon/surgicaldrill(src)
|
||||
src.modules += new /obj/item/weapon/melee/energy/sword/cyborg/saw(src) //Energy saw -- primary weapon
|
||||
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)
|
||||
src.modules += new /obj/item/weapon/pinpointer/operative(src)
|
||||
src.emag = null
|
||||
|
||||
fix_modules()
|
||||
|
||||
/obj/item/weapon/robot_module/combat
|
||||
name = "combat robot module"
|
||||
|
||||
@@ -52,7 +52,7 @@
|
||||
melee_damage_upper = 25
|
||||
icon_state = "syndicatemelee"
|
||||
icon_living = "syndicatemelee"
|
||||
weapon1 = /obj/item/weapon/melee/energy/sword/red
|
||||
weapon1 = /obj/item/weapon/melee/energy/sword/saber/red
|
||||
weapon2 = /obj/item/weapon/shield/energy
|
||||
attacktext = "slashes"
|
||||
attack_sound = 'sound/weapons/bladeslice.ogg'
|
||||
|
||||
@@ -27,6 +27,7 @@
|
||||
var/ghettomodded = 0
|
||||
var/recoil = 0
|
||||
var/can_suppress = 0
|
||||
var/can_unsuppress = 1
|
||||
var/clumsy_check = 1
|
||||
var/sawn_desc = null
|
||||
var/sawn_state = SAWN_INTACT
|
||||
|
||||
@@ -100,7 +100,7 @@
|
||||
|
||||
/obj/item/weapon/gun/projectile/attack_hand(mob/user as mob)
|
||||
if(loc == user)
|
||||
if(silenced)
|
||||
if(silenced && can_unsuppress)
|
||||
var/obj/item/weapon/suppressor/S = silenced
|
||||
if(user.l_hand != src && user.r_hand != src)
|
||||
..()
|
||||
|
||||
@@ -1,66 +1,77 @@
|
||||
/obj/item/weapon/gun/syringe
|
||||
name = "syringe gun"
|
||||
desc = "A spring loaded rifle designed to fit syringes, used to incapacitate unruly patients from a distance."
|
||||
icon_state = "syringegun"
|
||||
item_state = "syringegun"
|
||||
w_class = 3
|
||||
throw_speed = 2
|
||||
throw_range = 10
|
||||
force = 4
|
||||
materials = list(MAT_METAL=2000)
|
||||
clumsy_check = 0
|
||||
fire_sound = 'sound/items/syringeproj.ogg'
|
||||
var/list/syringes = list()
|
||||
var/max_syringes = 1
|
||||
|
||||
/obj/item/weapon/gun/syringe/process_chambered()
|
||||
if(!syringes.len) return 0
|
||||
|
||||
var/obj/item/weapon/reagent_containers/syringe/S = syringes[1]
|
||||
|
||||
if(!S) return 0
|
||||
|
||||
in_chamber = new /obj/item/projectile/bullet/dart/syringe(src)
|
||||
S.reagents.trans_to(in_chamber, S.reagents.total_volume)
|
||||
in_chamber.name = S.name
|
||||
syringes.Remove(S)
|
||||
|
||||
qdel(S)
|
||||
return 1
|
||||
|
||||
/obj/item/weapon/gun/syringe/examine(mob/user)
|
||||
..(user)
|
||||
user << "Can hold [max_syringes] syringe\s. Has [syringes.len] syringe\s remaining."
|
||||
|
||||
/obj/item/weapon/gun/syringe/attack_self(mob/living/user as mob)
|
||||
if(!syringes.len)
|
||||
user << "<span class='notice'>[src] is empty.</span>"
|
||||
return 0
|
||||
|
||||
var/obj/item/weapon/reagent_containers/syringe/S = syringes[syringes.len]
|
||||
|
||||
if(!S) return 0
|
||||
S.loc = user.loc
|
||||
|
||||
syringes.Remove(S)
|
||||
user << "<span class = 'notice'>You unload [S] from \the [src]!</span>"
|
||||
|
||||
return 1
|
||||
|
||||
/obj/item/weapon/gun/syringe/attackby(var/obj/item/A as obj, mob/user as mob, var/show_msg = 1, params)
|
||||
if(istype(A, /obj/item/weapon/reagent_containers/syringe))
|
||||
if(syringes.len < max_syringes)
|
||||
user.drop_item()
|
||||
user << "<span class='notice'>You load [A] into \the [src]!</span>"
|
||||
syringes.Add(A)
|
||||
A.loc = src
|
||||
return 1
|
||||
else
|
||||
usr << "<span class='notice'>[src] cannot hold more syringes.</span>"
|
||||
return 0
|
||||
|
||||
/obj/item/weapon/gun/syringe/rapidsyringe
|
||||
name = "rapid syringe gun"
|
||||
desc = "A modification of the syringe gun design, using a rotating cylinder to store up to six syringes."
|
||||
icon_state = "rapidsyringegun"
|
||||
max_syringes = 6
|
||||
/obj/item/weapon/gun/syringe
|
||||
name = "syringe gun"
|
||||
desc = "A spring loaded rifle designed to fit syringes, used to incapacitate unruly patients from a distance."
|
||||
icon_state = "syringegun"
|
||||
item_state = "syringegun"
|
||||
w_class = 3
|
||||
throw_speed = 3
|
||||
throw_range = 7
|
||||
force = 4
|
||||
materials = list(MAT_METAL=2000)
|
||||
clumsy_check = 0
|
||||
fire_sound = 'sound/items/syringeproj.ogg'
|
||||
var/list/syringes = list()
|
||||
var/max_syringes = 1
|
||||
|
||||
/obj/item/weapon/gun/syringe/process_chambered()
|
||||
if(!syringes.len) return 0
|
||||
|
||||
var/obj/item/weapon/reagent_containers/syringe/S = syringes[1]
|
||||
|
||||
if(!S) return 0
|
||||
|
||||
in_chamber = new /obj/item/projectile/bullet/dart/syringe(src)
|
||||
S.reagents.trans_to(in_chamber, S.reagents.total_volume)
|
||||
in_chamber.name = S.name
|
||||
syringes.Remove(S)
|
||||
|
||||
qdel(S)
|
||||
return 1
|
||||
|
||||
/obj/item/weapon/gun/syringe/examine(mob/user)
|
||||
..(user)
|
||||
user << "Can hold [max_syringes] syringe\s. Has [syringes.len] syringe\s remaining."
|
||||
|
||||
/obj/item/weapon/gun/syringe/attack_self(mob/living/user as mob)
|
||||
if(!syringes.len)
|
||||
user << "<span class='notice'>[src] is empty.</span>"
|
||||
return 0
|
||||
|
||||
var/obj/item/weapon/reagent_containers/syringe/S = syringes[syringes.len]
|
||||
|
||||
if(!S) return 0
|
||||
S.forceMove(user.loc)
|
||||
|
||||
syringes.Remove(S)
|
||||
user << "<span class='notice'>You unload [S] from \the [src]!</span>"
|
||||
|
||||
return 1
|
||||
|
||||
/obj/item/weapon/gun/syringe/attackby(var/obj/item/A as obj, mob/user as mob, var/show_msg = 1, params)
|
||||
if(istype(A, /obj/item/weapon/reagent_containers/syringe))
|
||||
if(syringes.len < max_syringes)
|
||||
user.drop_item()
|
||||
user << "<span class='notice'>You load [A] into \the [src]!</span>"
|
||||
syringes.Add(A)
|
||||
A.forceMove(src)
|
||||
return 1
|
||||
else
|
||||
usr << "<span class='notice'>[src] cannot hold more syringes.</span>"
|
||||
return 0
|
||||
|
||||
/obj/item/weapon/gun/syringe/rapidsyringe
|
||||
name = "rapid syringe gun"
|
||||
desc = "A modification of the syringe gun design, using a rotating cylinder to store up to six syringes."
|
||||
icon_state = "rapidsyringegun"
|
||||
max_syringes = 6
|
||||
|
||||
/obj/item/weapon/gun/syringe/syndicate
|
||||
name = "dart pistol"
|
||||
desc = "A small spring-loaded sidearm that functions identically to a syringe gun."
|
||||
icon_state = "syringe_pistol"
|
||||
item_state = "gun" //Smaller inhand
|
||||
w_class = 2
|
||||
origin_tech = "combat=2;syndicate=2"
|
||||
force = 2 //Also very weak because it's smaller
|
||||
silenced = 1 //Softer fire sound
|
||||
can_unsuppress = 0 //Permanently silenced
|
||||
@@ -1040,3 +1040,21 @@ datum/reagent/haloperidol/on_mob_life(var/mob/living/M as mob)
|
||||
result_amount = 3
|
||||
min_temp = 370
|
||||
mix_message = "The solution gently swirls with a metallic sheen."
|
||||
|
||||
|
||||
datum/reagent/medicine/syndicate_nanites //Used exclusively by Syndicate medical cyborgs
|
||||
name = "Restorative Nanites"
|
||||
id = "syndicate_nanites"
|
||||
description = "Miniature medical robots that swiftly restore bodily damage. May begin to attack their host's cells in high amounts."
|
||||
reagent_state = SOLID
|
||||
color = "#555555"
|
||||
|
||||
datum/reagent/medicine/syndicate_nanites/on_mob_life(mob/living/M)
|
||||
M.adjustBruteLoss(-5*REM) //A ton of healing - this is a 50 telecrystal investment.
|
||||
M.adjustFireLoss(-5*REM)
|
||||
M.adjustOxyLoss(-15*REM)
|
||||
M.adjustToxLoss(-5*REM)
|
||||
M.adjustBrainLoss(-15*REM)
|
||||
M.adjustCloneLoss(-3*REM)
|
||||
..()
|
||||
return
|
||||
@@ -22,6 +22,14 @@
|
||||
|
||||
/obj/item/weapon/reagent_containers/borghypo/crisis
|
||||
reagent_ids = list("salglu_solution", "epinephrine", "sal_acid")
|
||||
|
||||
/obj/item/weapon/reagent_containers/borghypo/syndicate
|
||||
name = "syndicate cyborg hypospray"
|
||||
desc = "An experimental piece of Syndicate technology used to produce powerful restorative nanites used to very quickly restore injuries of all types. Also metabolizes potassium iodide, for radiation poisoning, and morphine, for offense."
|
||||
icon_state = "borghypo_s"
|
||||
charge_cost = 20
|
||||
recharge_time = 2
|
||||
reagent_ids = list("syndicate_nanites", "potass_iodide", "ether")
|
||||
|
||||
/obj/item/weapon/reagent_containers/borghypo/New()
|
||||
..()
|
||||
@@ -92,7 +100,7 @@
|
||||
|
||||
charge_tick = 0 //Prevents wasted chems/cell charge if you're cycling through modes.
|
||||
var/datum/reagent/R = chemical_reagents_list[reagent_ids[mode]]
|
||||
user << "\blue Synthesizer is now producing '[R.name]'."
|
||||
user << "<span class='notice'>Synthesizer is now producing '[R.name]'.</span>"
|
||||
return
|
||||
|
||||
/obj/item/weapon/reagent_containers/borghypo/examine(mob/user)
|
||||
@@ -104,8 +112,8 @@
|
||||
for(var/datum/reagents/RS in reagent_list)
|
||||
var/datum/reagent/R = locate() in RS.reagent_list
|
||||
if(R)
|
||||
user << "\blue It currently has [R.volume] units of [R.name] stored."
|
||||
user << "<span class='notice'>It currently has [R.volume] units of [R.name] stored.</span>"
|
||||
empty = 0
|
||||
|
||||
if(empty)
|
||||
user << "\blue It is currently empty. Allow some time for the internal syntheszier to produce more."
|
||||
user << "<span class='notice'>It is currently empty. Allow some time for the internal syntheszier to produce more.</span>"
|
||||
|
||||
@@ -184,7 +184,7 @@
|
||||
)
|
||||
else if( \
|
||||
istype(W, /obj/item/weapon/circular_saw) || \
|
||||
istype(W, /obj/item/weapon/melee/energy/sword) && W:active || \
|
||||
istype(W, /obj/item/weapon/melee/energy/sword/saber) && W:active || \
|
||||
istype(W, /obj/item/weapon/melee/energy/blade) || \
|
||||
istype(W, /obj/item/weapon/shovel) || \
|
||||
istype(W, /obj/item/weapon/hatchet) \
|
||||
|
||||
@@ -18,6 +18,7 @@
|
||||
/datum/surgery_step/open_encased/saw
|
||||
allowed_tools = list(
|
||||
/obj/item/weapon/circular_saw = 100, \
|
||||
/obj/item/weapon/melee/energy/sword/cyborg/saw = 100, \
|
||||
/obj/item/weapon/hatchet = 75
|
||||
)
|
||||
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
/obj/item/weapon/scalpel/laser3 = 95, \
|
||||
/obj/item/weapon/scalpel/laser2 = 85, \
|
||||
/obj/item/weapon/scalpel/laser1 = 75, \
|
||||
/obj/item/weapon/melee/energy/sword = 5
|
||||
/obj/item/weapon/melee/energy/sword/saber = 5
|
||||
)
|
||||
|
||||
min_duration = 90
|
||||
@@ -270,6 +270,7 @@
|
||||
/datum/surgery_step/generic/amputate
|
||||
allowed_tools = list(
|
||||
/obj/item/weapon/circular_saw = 100, \
|
||||
/obj/item/weapon/melee/energy/sword/cyborg/saw = 100, \
|
||||
/obj/item/weapon/hatchet = 75, \
|
||||
/obj/item/weapon/melee/arm_blade = 60
|
||||
)
|
||||
|
||||
|
Before Width: | Height: | Size: 147 KiB After Width: | Height: | Size: 168 KiB |
|
Before Width: | Height: | Size: 70 KiB After Width: | Height: | Size: 70 KiB |
|
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 26 KiB |
|
Before Width: | Height: | Size: 4.5 KiB After Width: | Height: | Size: 5.3 KiB |
@@ -1608,6 +1608,7 @@
|
||||
#include "code\modules\projectiles\guns\energy.dm"
|
||||
#include "code\modules\projectiles\guns\magic.dm"
|
||||
#include "code\modules\projectiles\guns\projectile.dm"
|
||||
#include "code\modules\projectiles\guns\syringe_gun.dm"
|
||||
#include "code\modules\projectiles\guns\energy\advtaser.dm"
|
||||
#include "code\modules\projectiles\guns\energy\hos.dm"
|
||||
#include "code\modules\projectiles\guns\energy\laser.dm"
|
||||
@@ -1642,7 +1643,6 @@
|
||||
#include "code\modules\reagents\grenade_launcher.dm"
|
||||
#include "code\modules\reagents\reagent_containers.dm"
|
||||
#include "code\modules\reagents\reagent_dispenser.dm"
|
||||
#include "code\modules\reagents\syringe_gun.dm"
|
||||
#include "code\modules\reagents\newchem\Blob-Reagents.dm"
|
||||
#include "code\modules\reagents\newchem\chem_heater.dm"
|
||||
#include "code\modules\reagents\newchem\drinks.dm"
|
||||
|
||||