diff --git a/code/modules/projectiles/guns/energy/laser.dm b/code/modules/projectiles/guns/energy/laser.dm index 489b7ac91b..243dc76bf1 100644 --- a/code/modules/projectiles/guns/energy/laser.dm +++ b/code/modules/projectiles/guns/energy/laser.dm @@ -9,6 +9,11 @@ origin_tech = "combat=3;magnets=2" projectile_type = "/obj/item/projectile/beam" +/obj/item/weapon/gun/energy/laser/practice + name = "practice laser gun" + desc = "A modified version of the basic laser gun, this one fires less concentrated energy bolts designed for target practice." + projectile_type = "/obj/item/projectile/beam/practice" + obj/item/weapon/gun/energy/laser/retro name ="retro laser" diff --git a/code/modules/projectiles/projectile/beams.dm b/code/modules/projectiles/projectile/beams.dm index 3c80aa220a..3da9d4d108 100644 --- a/code/modules/projectiles/projectile/beams.dm +++ b/code/modules/projectiles/projectile/beams.dm @@ -7,6 +7,9 @@ flag = "laser" eyeblur = 2 +/obj/item/projectile/beam/practice + damage = 0 + /obj/item/projectile/beam/heavylaser name = "heavy laser" diff --git a/maps/tgstation.2.0.8.dmm b/maps/tgstation.2.0.8.dmm index 58115f92f5..02d07d3f6a 100644 --- a/maps/tgstation.2.0.8.dmm +++ b/maps/tgstation.2.0.8.dmm @@ -274,7 +274,7 @@ "afn" = (/obj/effect/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; name = "EXTERNAL AIRLOCK"; pixel_x = -1; pixel_y = -32},/obj/effect/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; name = "EXTERNAL AIRLOCK"; pixel_x = -1; pixel_y = 32},/turf/simulated/floor/plating,/area/maintenance/fsmaint) "afo" = (/obj/structure/table/reinforced{tag = "icon-reinf_tabledir (NORTHWEST)"; icon_state = "reinf_tabledir"; dir = 9},/obj/structure/window/reinforced{dir = 1},/obj/machinery/magnetic_controller{autolink = 1; name = "Firing Range Control Console"; path = "w;e;e;w;s;n;n;s"; pixel_x = -29},/obj/item/weapon/paper{info = "Congratulations to your station for winning the space lottery and winning this free NT Deluxe firing range!

Directions:
First you'll want to make sure there is a target stake in the center of the magnetic platform. Next, take an aluminum target from the crates back there and slip it into the stake. Make sure it clicks! Next, there should be a control console mounted on the wall somewhere in the room.

This control console dictates the behaviors of the magnetic platform, which can move your firing target around to simulate real-world combat situations. From here, you can turn off the magnets or adjust their electromagnetic levels and magnetic fields. The electricity level dictates the strength of the pull - you will usually want this to be the same value as the speed. The magnetic field level dictates how far the magnetic pull reaches.

Speed and path are the next two settings. Speed is associated with how fast the machine loops through the designated path. Paths dictate where the magnetic field will be centered at what times. There should be a pre-fabricated path input already. You can enable moving to observe how the path affects the way the stake moves. To script your own path, look at the following key:


N: North
S: South
E: East
W: West
C: Center
R: Random (results may vary)
; or &: separators. They are not necessary but can make the path string better visible. "; name = "Firing Range Instructions"},/turf/simulated/floor{dir = 5; icon_state = "warning"},/area/security/range) "afp" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/security/range) -"afq" = (/obj/structure/table/reinforced{tag = "icon-reinf_tabledir (NORTHEAST)"; icon_state = "reinf_tabledir"; dir = 5},/obj/structure/window/reinforced{dir = 1},/obj/machinery/recharger,/turf/simulated/floor{dir = 9; icon_state = "warning"},/area/security/range) +"afq" = (/obj/structure/table/reinforced{tag = "icon-reinf_tabledir (NORTHEAST)"; icon_state = "reinf_tabledir"; dir = 5},/obj/structure/window/reinforced{dir = 1},/obj/machinery/recharger,/obj/item/weapon/gun/energy/laser/practice,/turf/simulated/floor{dir = 9; icon_state = "warning"},/area/security/range) "afr" = (/turf/simulated/wall,/area/security/range) "afs" = (/obj/machinery/light_switch{pixel_x = 24},/turf/simulated/floor,/area/security/range) "aft" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "SC1"; name = "Secure Cell 1 Blast Door"; opacity = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/security/brig) @@ -342,11 +342,11 @@ "agD" = (/obj/item/device/radio/intercom{frequency = 1442; layer = 4; name = "Intercom"; pixel_y = 20},/obj/structure/stool/chair{dir = 1},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor,/area/security/brig) "agE" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/simulated/wall,/area/security/brig) "agF" = (/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/structure/cable,/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/security/range) -"agG" = (/obj/structure/table{icon_state = "tabledir"; dir = 2},/obj/item/weapon/storage/flashbang_kit,/turf/simulated/floor,/area/security/range) -"agH" = (/obj/structure/table{icon_state = "tabledir"; dir = 2},/obj/item/clothing/ears/earmuffs{pixel_x = -3; pixel_y = -2},/obj/item/clothing/ears/earmuffs,/turf/simulated/floor,/area/security/range) -"agI" = (/obj/structure/table{tag = "icon-tabledir (SOUTHWEST)"; icon_state = "tabledir"; dir = 10},/obj/machinery/light,/obj/item/clothing/glasses/sunglasses,/obj/item/clothing/glasses/sunglasses{pixel_x = -2; pixel_y = -3},/obj/item/weapon/pepperspray,/turf/simulated/floor,/area/security/range) -"agJ" = (/obj/structure/cable,/obj/machinery/power/apc{cell_type = 2500; name = "Firing Range APC"; pixel_y = -28},/obj/structure/closet/crate,/obj/item/target,/obj/item/target,/obj/item/target/alien,/obj/item/target/syndicate,/obj/item/target/syndicate,/obj/item/target/syndicate,/turf/simulated/floor,/area/security/range) -"agK" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/obj/structure/closet/crate,/obj/item/target,/obj/item/target,/obj/item/target/alien,/obj/item/target/syndicate,/obj/item/target/syndicate,/obj/item/target/syndicate,/turf/simulated/floor,/area/security/range) +"agG" = (/obj/structure/table{icon_state = "tabledir"; dir = 2},/obj/item/weapon/storage/flashbang_kit,/obj/item/weapon/pepperspray,/turf/simulated/floor,/area/security/range) +"agH" = (/obj/item/clothing/ears/earmuffs{pixel_x = -3; pixel_y = -2},/obj/item/clothing/ears/earmuffs,/obj/item/clothing/glasses/sunglasses,/obj/item/clothing/glasses/sunglasses,/obj/structure/table{tag = "icon-tabledir (SOUTHWEST)"; icon_state = "tabledir"; dir = 10},/turf/simulated/floor,/area/security/range) +"agI" = (/obj/machinery/light,/obj/structure/closet/crate,/obj/item/target/syndicate,/obj/item/target/syndicate,/obj/item/target/syndicate,/obj/item/target/syndicate,/obj/item/target/syndicate,/obj/item/target/syndicate,/obj/item/target/syndicate,/turf/simulated/floor,/area/security/range) +"agJ" = (/obj/structure/cable,/obj/machinery/power/apc{cell_type = 2500; name = "Firing Range APC"; pixel_y = -28},/obj/structure/closet/crate,/obj/item/target/alien,/obj/item/target/alien,/obj/item/target/alien,/obj/item/target/alien,/obj/item/target/alien,/obj/item/target/alien,/obj/item/target/alien,/turf/simulated/floor,/area/security/range) +"agK" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/obj/structure/closet/crate,/obj/item/target,/obj/item/target,/obj/item/target,/obj/item/target,/obj/item/target,/obj/item/target,/obj/item/target,/turf/simulated/floor,/area/security/range) "agL" = (/obj/structure/closet/secure_closet/brig,/turf/simulated/floor{icon_state = "red"},/area/security/brig) "agM" = (/obj/machinery/light,/obj/structure/closet/secure_closet/brig,/turf/simulated/floor{icon_state = "red"},/area/security/brig) "agN" = (/turf/simulated/floor{icon_state = "red"},/area/security/brig) @@ -6227,7 +6227,7 @@ "cpM" = (/obj/machinery/door/airlock/external,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "NTrasen"; name = "Outer Airlock"; opacity = 0},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/specops/centcom) "cpN" = (/turf/space,/turf/simulated/shuttle/wall{dir = 1; icon_state = "diagonalWall3"},/area/shuttle/specops/centcom) "cpO" = (/obj/machinery/door/airlock/centcom{name = "General Access"; opacity = 1; req_access_txt = "101"},/turf/unsimulated/floor{icon_state = "delivery"},/area/centcom/control) -"cpP" = (/obj/structure/table,/obj/item/assembly/shock_kit{icon = 'icons/obj/assemblies.dmi'},/obj/item/device/assembly/signaler,/obj/item/weapon/handcuffs,/obj/item/weapon/melee/classic_baton,/turf/unsimulated/floor{icon_state = "whiteshiny"},/area/centcom/control) +"cpP" = (/obj/structure/table,/obj/item/assembly/shock_kit{icon = 'assemblies.dmi'},/obj/item/device/assembly/signaler,/obj/item/weapon/handcuffs,/obj/item/weapon/melee/classic_baton,/turf/unsimulated/floor{icon_state = "whiteshiny"},/area/centcom/control) "cpQ" = (/obj/structure/shuttle/engine/propulsion{tag = "icon-propulsion (EAST)"; icon_state = "propulsion"; dir = 4},/turf/space,/area/shuttle/specops/centcom) "cpR" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/shuttle/engine/heater{tag = "icon-heater (WEST)"; icon_state = "heater"; dir = 8},/turf/unsimulated/floor,/area/shuttle/specops/centcom) "cpS" = (/obj/effect/landmark{name = "Commando-Bomb"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/specops/centcom)