From 42d9e3cf513c7beb1f9fa1d64be130073fe8d916 Mon Sep 17 00:00:00 2001 From: Ghommie <42542238+Ghommie@users.noreply.github.com> Date: Mon, 11 Nov 2019 18:49:18 +0100 Subject: [PATCH] Porting Robustin's Syndicate Infiltrator PR --- _maps/shuttles/infiltrator_basic.dmm | 353 +++++++++--------- .../machinery/porta_turret/portable_turret.dm | 19 + code/game/turfs/simulated/wall/reinf_walls.dm | 26 ++ .../nukeop/equipment/nuclearbomb.dm | 6 +- .../projectiles/projectile/bullets/sniper.dm | 6 + code/modules/shuttle/syndicate.dm | 5 + icons/turf/walls/plastitanium_wall.dmi | Bin 2914 -> 3811 bytes 7 files changed, 236 insertions(+), 179 deletions(-) diff --git a/_maps/shuttles/infiltrator_basic.dmm b/_maps/shuttles/infiltrator_basic.dmm index 263d692764..f7ec35c667 100644 --- a/_maps/shuttles/infiltrator_basic.dmm +++ b/_maps/shuttles/infiltrator_basic.dmm @@ -2,15 +2,21 @@ "aa" = ( /turf/template_noop, /area/template_noop) -"ac" = ( -/obj/machinery/porta_turret/syndicate{ +"ab" = ( +/obj/machinery/porta_turret/syndicate/shuttle{ dir = 9 }, -/turf/closed/wall/mineral/plastitanium, +/turf/closed/wall/r_wall/syndicate, +/area/shuttle/syndicate/bridge) +"ac" = ( +/turf/closed/wall/r_wall/syndicate, /area/shuttle/syndicate/bridge) "ad" = ( -/turf/closed/wall/mineral/plastitanium, -/area/shuttle/syndicate/bridge) +/obj/machinery/porta_turret/syndicate/shuttle{ + dir = 10 + }, +/turf/closed/wall/r_wall/syndicate, +/area/shuttle/syndicate/hallway) "ae" = ( /obj/structure/window/plastitanium, /obj/machinery/door/poddoor/shutters{ @@ -21,11 +27,8 @@ /turf/open/floor/plating, /area/shuttle/syndicate/bridge) "af" = ( -/obj/machinery/porta_turret/syndicate{ - dir = 5 - }, -/turf/closed/wall/mineral/plastitanium, -/area/shuttle/syndicate/bridge) +/turf/closed/wall/r_wall/syndicate, +/area/shuttle/syndicate/hallway) "ag" = ( /obj/machinery/computer/med_data/syndie, /obj/effect/turf_decal/bot_white, @@ -144,7 +147,7 @@ /area/shuttle/syndicate/bridge) "au" = ( /obj/machinery/status_display/evac, -/turf/closed/wall/mineral/plastitanium, +/turf/closed/wall/r_wall/syndicate, /area/shuttle/syndicate/bridge) "av" = ( /obj/machinery/door/airlock/hatch{ @@ -164,14 +167,14 @@ /turf/open/floor/plasteel/dark, /area/shuttle/syndicate/bridge) "aw" = ( -/obj/machinery/porta_turret/syndicate{ - dir = 10 +/obj/machinery/porta_turret/syndicate/shuttle{ + dir = 9 }, -/turf/closed/wall/mineral/plastitanium, -/area/shuttle/syndicate/hallway) +/turf/closed/wall/r_wall/syndicate, +/area/shuttle/syndicate/eva) "ax" = ( -/turf/closed/wall/mineral/plastitanium, -/area/shuttle/syndicate/hallway) +/turf/closed/wall/r_wall/syndicate, +/area/shuttle/syndicate/eva) "ay" = ( /obj/structure/table/reinforced, /obj/item/stack/cable_coil/white, @@ -222,11 +225,8 @@ /turf/open/floor/plasteel/dark, /area/shuttle/syndicate/hallway) "aB" = ( -/obj/machinery/porta_turret/syndicate{ - dir = 6 - }, -/turf/closed/wall/mineral/plastitanium, -/area/shuttle/syndicate/hallway) +/turf/closed/wall/r_wall/syndicate, +/area/shuttle/syndicate/airlock) "aC" = ( /obj/structure/chair/comfy/shuttle{ dir = 4; @@ -265,14 +265,17 @@ /turf/open/floor/plasteel/dark, /area/shuttle/syndicate/hallway) "aF" = ( -/obj/machinery/porta_turret/syndicate{ +/obj/machinery/porta_turret/syndicate/shuttle{ + dir = 5 + }, +/turf/closed/wall/r_wall/syndicate, +/area/shuttle/syndicate/armory) +"aG" = ( +/obj/machinery/porta_turret/syndicate/shuttle{ dir = 9 }, -/turf/closed/wall/mineral/plastitanium, -/area/shuttle/syndicate/eva) -"aG" = ( -/turf/closed/wall/mineral/plastitanium, -/area/shuttle/syndicate/eva) +/turf/closed/wall/r_wall/syndicate, +/area/shuttle/syndicate/medical) "aH" = ( /obj/structure/chair/comfy/shuttle{ dir = 4; @@ -314,14 +317,11 @@ /turf/open/floor/plasteel/dark, /area/shuttle/syndicate/hallway) "aJ" = ( -/turf/closed/wall/mineral/plastitanium, -/area/shuttle/syndicate/airlock) +/turf/closed/wall/r_wall/syndicate, +/area/shuttle/syndicate/medical) "aK" = ( -/obj/machinery/porta_turret/syndicate{ - dir = 5 - }, -/turf/closed/wall/mineral/plastitanium, -/area/shuttle/syndicate/armory) +/turf/closed/wall/r_wall/syndicate/nodiagonal, +/area/shuttle/syndicate/medical) "aL" = ( /obj/machinery/suit_storage_unit/syndicate, /obj/effect/turf_decal/stripes/line{ @@ -508,7 +508,7 @@ /obj/structure/sign/warning/vacuum/external{ layer = 4 }, -/turf/closed/wall/mineral/plastitanium, +/turf/closed/wall/r_wall/syndicate, /area/shuttle/syndicate/airlock) "be" = ( /obj/machinery/suit_storage_unit/syndicate, @@ -517,11 +517,6 @@ }, /turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate/eva) -"bf" = ( -/obj/structure/reagent_dispensers/fueltank, -/obj/effect/turf_decal/bot_white, -/turf/open/floor/plasteel/dark, -/area/shuttle/syndicate/eva) "bg" = ( /obj/structure/grille, /obj/structure/window/plastitanium, @@ -543,31 +538,28 @@ /turf/open/floor/mineral/plastitanium/red, /area/shuttle/syndicate/airlock) "bj" = ( -/obj/machinery/porta_turret/syndicate{ - dir = 9 - }, -/turf/closed/wall/mineral/plastitanium, -/area/shuttle/syndicate/medical) +/turf/closed/wall/r_wall/syndicate/nodiagonal, +/area/shuttle/syndicate/armory) "bk" = ( -/turf/closed/wall/mineral/plastitanium, -/area/shuttle/syndicate/medical) -"bl" = ( /obj/machinery/status_display/ai, -/turf/closed/wall/mineral/plastitanium, +/turf/closed/wall/r_wall/syndicate, /area/shuttle/syndicate/medical) "bm" = ( -/turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/shuttle/syndicate/medical) +/turf/closed/wall/r_wall/syndicate, +/area/shuttle/syndicate/armory) "bn" = ( -/turf/closed/wall/mineral/plastitanium/nodiagonal, +/obj/machinery/status_display/evac, +/turf/closed/wall/r_wall/syndicate, /area/shuttle/syndicate/armory) "bo" = ( -/turf/closed/wall/mineral/plastitanium, -/area/shuttle/syndicate/armory) -"bp" = ( -/obj/machinery/status_display/evac, -/turf/closed/wall/mineral/plastitanium, -/area/shuttle/syndicate/armory) +/obj/machinery/nuclearbomb/syndicate{ + anchored = 1 + }, +/obj/machinery/door/window{ + dir = 1 + }, +/turf/open/floor/circuit/red, +/area/shuttle/syndicate/hallway) "bq" = ( /obj/machinery/sleeper/syndie{ dir = 4 @@ -1043,14 +1035,6 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/shuttle/syndicate/hallway) -"cm" = ( -/obj/machinery/nuclearbomb/syndicate, -/obj/machinery/door/window{ - dir = 1; - name = "Theatre Stage" - }, -/turf/open/floor/circuit/red, -/area/shuttle/syndicate/hallway) "cn" = ( /obj/machinery/light{ dir = 4 @@ -1169,18 +1153,6 @@ /obj/effect/turf_decal/stripes/line, /turf/open/floor/plating/airless, /area/shuttle/syndicate/medical) -"cC" = ( -/obj/machinery/porta_turret/syndicate{ - dir = 6 - }, -/turf/closed/wall/mineral/plastitanium, -/area/shuttle/syndicate/medical) -"cD" = ( -/obj/machinery/porta_turret/syndicate{ - dir = 10 - }, -/turf/closed/wall/mineral/plastitanium, -/area/shuttle/syndicate/armory) "cE" = ( /obj/structure/shuttle/engine/propulsion/left, /obj/effect/turf_decal/stripes/line, @@ -1196,6 +1168,35 @@ /obj/effect/turf_decal/stripes/line, /turf/open/floor/plating/airless, /area/shuttle/syndicate/armory) +"dp" = ( +/obj/machinery/porta_turret/syndicate/shuttle{ + dir = 10 + }, +/turf/closed/wall/r_wall/syndicate, +/area/shuttle/syndicate/armory) +"pd" = ( +/obj/machinery/porta_turret/syndicate/shuttle{ + dir = 5 + }, +/turf/closed/wall/r_wall/syndicate, +/area/shuttle/syndicate/bridge) +"vv" = ( +/obj/structure/reagent_dispensers/fueltank, +/obj/effect/turf_decal/bot_white, +/turf/open/floor/plasteel/dark, +/area/shuttle/syndicate/eva) +"In" = ( +/obj/machinery/porta_turret/syndicate/shuttle{ + dir = 6 + }, +/turf/closed/wall/r_wall/syndicate, +/area/shuttle/syndicate/hallway) +"MJ" = ( +/obj/machinery/porta_turret/syndicate/shuttle{ + dir = 6 + }, +/turf/closed/wall/r_wall/syndicate, +/area/shuttle/syndicate/medical) (1,1,1) = {" aa @@ -1211,16 +1212,16 @@ aa aa aa aa -bj -bk -bk -bk -bk -bk -bk -bk -bk -bk +aG +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ "} (2,1,1) = {" aa @@ -1230,13 +1231,13 @@ aa aa aa aa -aF -aG -aG -aG -aG -aG -bk +aw +ax +ax +ax +ax +ax +aJ bq bC bq @@ -1255,13 +1256,13 @@ aa aa aa aa -aG +ax aL aR aR aR be -bk +aJ br bD bH @@ -1280,13 +1281,13 @@ aa aa aa aa -aG +ax aM aM aM aM aM -bl +bk bs bD bI @@ -1298,51 +1299,51 @@ cu cB "} (5,1,1) = {" +ab +ac +ac +ac ac -ad -ad -ad -ad aa aa -aG +ax aM aM aM aM aM -bk +aJ bt bD bJ bT cb -bm -bk -bk -cC +aK +aJ +aJ +MJ "} (6,1,1) = {" -ad +ac ag an at +ac ad -aw aa -aG +ax aN aS aU aZ -bf -bk +vv +aJ bu bD bJ bT cc -bk +aJ aa aa aa @@ -1352,24 +1353,24 @@ ae ah ao at -ad +ac +af +af +ax +ax ax ax -aG -aG -aG -aG ba bg -bm +aK bv bv bK bv -bk -bk -ax -ax +aJ +aJ +af +af aa "} (8,1,1) = {" @@ -1417,7 +1418,7 @@ aD bL bU az -cm +bo cr cw aa @@ -1427,7 +1428,7 @@ ae ak ap at -ad +ac aA aE aI @@ -1452,75 +1453,75 @@ ae al ar at -ad -ax -ax -ax -ax -aJ -aJ +ac +af +af +af +af +aB +aB bb bh -bn +bj bw bw bM bw -bo -bo -ax -ax +bm +bm +af +af aa "} (12,1,1) = {" -ad +ac am as at -ad -aB +ac +In aa -aJ +aB aO aO aX bc aO -bo +bm bx bG bN bV ce -bo +bm aa aa aa "} (13,1,1) = {" -af -ad -ad -ad -ad +pd +ac +ac +ac +ac aa aa -aJ +aB aP aP aP aP aP -bo +bm by bG bN bV cf -bn -bo -bo -cD +bj +bm +bm +dp "} (14,1,1) = {" aa @@ -1530,13 +1531,13 @@ aa aa aa aa -aJ +aB aP aP aP aP aP -bp +bn bz bG bO @@ -1555,13 +1556,13 @@ aa aa aa aa -aJ +aB aQ aT aT aT bi -bo +bm bA bG bP @@ -1580,13 +1581,13 @@ aa aa aa aa -aK -aJ -aJ +aF +aB +aB aY bd -aJ -bo +aB +bm bB bG bQ @@ -1611,14 +1612,14 @@ aa aa aa aa -aK -bo -bo -bo -bo -bo -bo -bo -bo -bo +aF +bm +bm +bm +bm +bm +bm +bm +bm +bm "} diff --git a/code/game/machinery/porta_turret/portable_turret.dm b/code/game/machinery/porta_turret/portable_turret.dm index 7aaab0d8ea..289f075302 100644 --- a/code/game/machinery/porta_turret/portable_turret.dm +++ b/code/game/machinery/porta_turret/portable_turret.dm @@ -647,6 +647,7 @@ has_cover = 0 scan_range = 9 req_access = list(ACCESS_SYNDICATE) + mode = TURRET_LETHAL stun_projectile = /obj/item/projectile/bullet lethal_projectile = /obj/item/projectile/bullet lethal_projectile_sound = 'sound/weapons/gunshot.ogg' @@ -695,6 +696,24 @@ stun_projectile = /obj/item/projectile/bullet/syndicate_turret lethal_projectile = /obj/item/projectile/bullet/syndicate_turret +/obj/machinery/porta_turret/syndicate/shuttle + scan_range = 9 + shot_delay = 3 + stun_projectile = /obj/item/projectile/bullet/p50/penetrator/shuttle + lethal_projectile = /obj/item/projectile/bullet/p50/penetrator/shuttle + lethal_projectile_sound = 'sound/weapons/gunshot_smg.ogg' + stun_projectile_sound = 'sound/weapons/gunshot_smg.ogg' + armor = list("melee" = 50, "bullet" = 30, "laser" = 30, "energy" = 30, "bomb" = 80, "bio" = 0, "rad" = 0, "fire" = 90, "acid" = 90) + +/obj/machinery/porta_turret/syndicate/shuttle/target(atom/movable/target) + if(target) + setDir(get_dir(base, target))//even if you can't shoot, follow the target + shootAt(target) + addtimer(CALLBACK(src, .proc/shootAt, target), 5) + addtimer(CALLBACK(src, .proc/shootAt, target), 10) + addtimer(CALLBACK(src, .proc/shootAt, target), 15) + return TRUE + /obj/machinery/porta_turret/ai faction = list("silicon") nonlethal_projectile = /obj/item/projectile/beam/disabler diff --git a/code/game/turfs/simulated/wall/reinf_walls.dm b/code/game/turfs/simulated/wall/reinf_walls.dm index d52a3bcc23..0d9bff1bdf 100644 --- a/code/game/turfs/simulated/wall/reinf_walls.dm +++ b/code/game/turfs/simulated/wall/reinf_walls.dm @@ -227,3 +227,29 @@ /turf/closed/wall/r_wall/rcd_act(mob/user, obj/item/construction/rcd/the_rcd, passed_mode) if(the_rcd.canRturf) return ..() + +/turf/closed/wall/r_wall/syndicate + name = "hull" + desc = "The armored hull of an ominous looking ship." + icon = 'icons/turf/walls/plastitanium_wall.dmi' + icon_state = "map-shuttle" + explosion_block = 20 + sheet_type = /obj/item/stack/sheet/mineral/plastitanium + smooth = SMOOTH_MORE|SMOOTH_DIAGONAL + canSmoothWith = list(/turf/closed/wall/r_wall/syndicate, /turf/closed/wall/mineral/plastitanium, /obj/machinery/door/airlock/shuttle, /obj/machinery/door/airlock, /obj/structure/window/plastitanium, /obj/structure/shuttle/engine, /obj/structure/falsewall/plastitanium) + +/turf/closed/wall/r_wall/syndicate/rcd_vals(mob/user, obj/item/construction/rcd/the_rcd) + return FALSE + +/turf/closed/wall/r_wall/syndicate/nodiagonal + smooth = SMOOTH_MORE + icon_state = "map-shuttle_nd" + +/turf/closed/wall/r_wall/syndicate/nosmooth + icon = 'icons/turf/shuttle.dmi' + icon_state = "wall" + smooth = SMOOTH_FALSE + +/turf/closed/wall/r_wall/syndicate/overspace + icon_state = "map-overspace" + fixed_underlay = list("space"=1) diff --git a/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm b/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm index add3c1d9b0..d0e6dafbc1 100644 --- a/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm +++ b/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm @@ -343,10 +343,10 @@ /obj/machinery/nuclearbomb/proc/set_anchor() - if(!isinspace()) - anchored = !anchored - else + if(isinspace() && !anchored) to_chat(usr, "There is nothing to anchor to!") + else + anchored = !anchored /obj/machinery/nuclearbomb/proc/set_safety() safety = !safety diff --git a/code/modules/projectiles/projectile/bullets/sniper.dm b/code/modules/projectiles/projectile/bullets/sniper.dm index 78be94339c..3ffac7804e 100644 --- a/code/modules/projectiles/projectile/bullets/sniper.dm +++ b/code/modules/projectiles/projectile/bullets/sniper.dm @@ -38,3 +38,9 @@ dismemberment = 0 //It goes through you cleanly. knockdown = 0 breakthings = FALSE + +/obj/item/projectile/bullet/p50/penetrator/shuttle //Nukeop Shuttle Variety + icon_state = "gaussstrong" + damage = 25 + speed = 0.3 + range = 16 diff --git a/code/modules/shuttle/syndicate.dm b/code/modules/shuttle/syndicate.dm index 6861676971..bffce9e7ab 100644 --- a/code/modules/shuttle/syndicate.dm +++ b/code/modules/shuttle/syndicate.dm @@ -27,6 +27,11 @@ board.moved = TRUE ..() +/obj/machinery/computer/shuttle/syndicate/allowed(mob/M) + if(issilicon(M) && !(ROLE_SYNDICATE in M.faction)) + return FALSE + return ..() + /obj/machinery/computer/shuttle/syndicate/drop_pod name = "syndicate assault pod control" desc = "Controls the drop pod's launch system." diff --git a/icons/turf/walls/plastitanium_wall.dmi b/icons/turf/walls/plastitanium_wall.dmi index 3cd7332b6a77c42e366eed8845e71dc7cc296818..01dfdd1234deb738088294e1e14dfc0ae7fb4ecc 100644 GIT binary patch delta 3791 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 delta 2887 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