diff --git a/_maps/shuttles/pirate_default.dmm b/_maps/shuttles/pirate_default.dmm
index 1c8670d5b6..c002e66d53 100644
--- a/_maps/shuttles/pirate_default.dmm
+++ b/_maps/shuttles/pirate_default.dmm
@@ -89,7 +89,7 @@
/turf/open/floor/pod/dark,
/area/shuttle/pirate)
"aj" = (
-/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/turf/closed/wall/r_wall/syndicate/pirate/nodiagonal,
/area/shuttle/pirate)
"ak" = (
/obj/machinery/airalarm/all_access{
@@ -419,6 +419,7 @@
/obj/effect/mapping_helpers/airlock/cyclelink_helper{
dir = 1
},
+/obj/structure/fans/tiny,
/turf/open/floor/plating,
/area/shuttle/pirate)
"aK" = (
@@ -463,21 +464,19 @@
/turf/open/floor/plating,
/area/shuttle/pirate)
"aQ" = (
-/obj/machinery/porta_turret/syndicate/energy{
+/obj/machinery/porta_turret/syndicate/energy/pirate{
dir = 1;
faction = list("pirate");
- icon_state = "standard_lethal";
- mode = 1
+ icon_state = "standard_lethal"
},
-/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/turf/closed/wall/r_wall/syndicate/pirate/nodiagonal,
/area/shuttle/pirate)
"aR" = (
-/obj/machinery/porta_turret/syndicate/energy{
+/obj/machinery/porta_turret/syndicate/energy/pirate{
faction = list("pirate");
- icon_state = "standard_lethal";
- mode = 1
+ icon_state = "standard_lethal"
},
-/turf/closed/wall/mineral/plastitanium,
+/turf/closed/wall/r_wall/syndicate/pirate,
/area/shuttle/pirate)
"aS" = (
/obj/effect/turf_decal/stripes/line,
@@ -486,7 +485,7 @@
/area/shuttle/pirate)
"aU" = (
/obj/structure/sign/departments/engineering,
-/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/turf/closed/wall/r_wall/syndicate/pirate/nodiagonal,
/area/shuttle/pirate)
"aV" = (
/obj/effect/mob_spawn/human/pirate{
@@ -867,37 +866,36 @@
dir = 1
},
/obj/docking_port/mobile/pirate{
- callTime = 100;
- dheight = 0;
- dir = 1;
dwidth = 11;
height = 16;
- id = "pirateship";
launch_status = 0;
movement_force = list("KNOCKDOWN" = 0, "THROW" = 0);
name = "Pirate Ship";
port_direction = 2;
- preferred_direction = 1;
width = 17
},
/obj/docking_port/stationary{
- dir = 1;
dwidth = 11;
height = 16;
id = "pirateship_home";
name = "Deep Space";
width = 17
},
+/obj/structure/fans/tiny,
/turf/open/floor/plating,
/area/shuttle/pirate)
+"db" = (
+/obj/structure/shuttle/engine/heater,
+/obj/effect/spawner/structure/window/plastitanium/pirate,
+/turf/open/floor/plating/airless,
+/area/shuttle/pirate)
"df" = (
-/obj/machinery/porta_turret/syndicate/energy{
+/obj/machinery/porta_turret/syndicate/energy/pirate{
dir = 4;
faction = list("pirate");
- icon_state = "standard_lethal";
- mode = 1
+ icon_state = "standard_lethal"
},
-/turf/closed/wall/mineral/plastitanium,
+/turf/closed/wall/r_wall/syndicate/pirate,
/area/shuttle/pirate)
"dy" = (
/obj/structure/chair/wood/normal,
@@ -988,7 +986,7 @@
id = "piratebridge"
},
/obj/structure/grille,
-/obj/structure/window/plastitanium,
+/obj/structure/window/plastitanium/pirate,
/turf/open/floor/plating,
/area/shuttle/pirate)
"ez" = (
@@ -1016,7 +1014,7 @@
/turf/open/floor/plasteel,
/area/shuttle/pirate)
"fW" = (
-/turf/closed/wall/mineral/plastitanium,
+/turf/closed/wall/r_wall/syndicate/pirate,
/area/shuttle/pirate)
"fY" = (
/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
@@ -1084,13 +1082,12 @@
/turf/open/floor/plasteel/showroomfloor,
/area/shuttle/pirate)
"wR" = (
-/obj/machinery/porta_turret/syndicate/energy{
+/obj/machinery/porta_turret/syndicate/energy/pirate{
dir = 8;
faction = list("pirate");
- icon_state = "standard_lethal";
- mode = 1
+ icon_state = "standard_lethal"
},
-/turf/closed/wall/mineral/plastitanium,
+/turf/closed/wall/r_wall/syndicate/pirate,
/area/shuttle/pirate)
"yi" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
@@ -1326,7 +1323,7 @@ aU
be
aD
aG
-ep
+db
aH
"}
(9,1,1) = {"
@@ -1344,7 +1341,7 @@ mU
aL
bP
bX
-ep
+db
aK
"}
(10,1,1) = {"
@@ -1362,7 +1359,7 @@ aj
bO
bQ
bk
-ep
+db
er
"}
(11,1,1) = {"
diff --git a/code/game/machinery/porta_turret/portable_turret.dm b/code/game/machinery/porta_turret/portable_turret.dm
index a27cb9b78c..b9d52b82ce 100644
--- a/code/game/machinery/porta_turret/portable_turret.dm
+++ b/code/game/machinery/porta_turret/portable_turret.dm
@@ -348,6 +348,26 @@
spark_system.start() //creates some sparks because they look cool
qdel(cover) //deletes the cover - no need on keeping it there!
+//turret healing
+/obj/machinery/porta_turret/examine(mob/user)
+ . = ..()
+ if(obj_integrity < max_integrity)
+ . += "Use a welder to fix it."
+
+/obj/machinery/porta_turret/welder_act(mob/living/user, obj/item/I)
+ . = TRUE
+ if(obj_integrity < max_integrity)
+ if(!I.tool_start_check(user, amount=0))
+ return
+ user.visible_message("[user] is welding the turret.", \
+ "You begin repairing the turret...", \
+ "You hear welding.")
+ if(I.use_tool(src, user, 40, volume=50))
+ obj_integrity = max_integrity
+ user.visible_message("[user.name] has repaired [src].", \
+ "You finish repairing the turret.")
+ else
+ to_chat(user, "The turret doesn't need repairing.")
/obj/machinery/porta_turret/process()
@@ -672,6 +692,7 @@
lethal_projectile_sound = 'sound/weapons/laser.ogg'
desc = "An energy blaster auto-turret."
+
/obj/machinery/porta_turret/syndicate/energy/heavy
icon_state = "standard_stun"
base_icon_state = "standard"
@@ -683,6 +704,11 @@
lethal_projectile_sound = 'sound/weapons/lasercannonfire.ogg'
desc = "An energy blaster auto-turret."
+/obj/machinery/porta_turret/syndicate/energy/pirate
+ max_integrity = 260
+ integrity_failure = 20
+ armor = list("melee" = 50, "bullet" = 30, "laser" = 30, "energy" = 30, "bomb" = 50, "bio" = 0, "rad" = 0, "fire" = 90, "acid" = 90)
+
/obj/machinery/porta_turret/syndicate/setup()
return
diff --git a/code/game/objects/effects/spawners/structure.dm b/code/game/objects/effects/spawners/structure.dm
index a5a4dfb44b..cdf3f3e6b4 100644
--- a/code/game/objects/effects/spawners/structure.dm
+++ b/code/game/objects/effects/spawners/structure.dm
@@ -163,6 +163,10 @@ again.
icon_state = "plastitaniumwindow_spawner"
spawn_list = list(/obj/structure/grille, /obj/structure/window/plastitanium)
+//plastitanium pirate window
+
+/obj/effect/spawner/structure/window/plastitanium/pirate
+ spawn_list = list(/obj/structure/grille, /obj/structure/window/plastitanium/pirate)
//ice window
diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm
index 14a7e445c1..d4925c8604 100644
--- a/code/game/objects/structures/window.dm
+++ b/code/game/objects/structures/window.dm
@@ -595,6 +595,14 @@
/obj/structure/window/plastitanium/unanchored
anchored = FALSE
+//pirate ship windows
+/obj/structure/window/plastitanium/pirate
+ desc = "Yarr this window be explosion proof!"
+ explosion_block = 30
+
+/obj/structure/window/plastitanium/pirate/unanchored
+ anchored = FALSE
+
/obj/structure/window/reinforced/clockwork
name = "brass window"
desc = "A paper-thin pane of translucent yet reinforced brass."
diff --git a/code/game/turfs/simulated/wall/mineral_walls.dm b/code/game/turfs/simulated/wall/mineral_walls.dm
index d55cb0b475..b04f4f0aa0 100644
--- a/code/game/turfs/simulated/wall/mineral_walls.dm
+++ b/code/game/turfs/simulated/wall/mineral_walls.dm
@@ -302,4 +302,4 @@
/turf/closed/wall/mineral/plastitanium/copyTurf(turf/T)
. = ..()
- T.transform = transform
+ T.transform = transform
\ No newline at end of file
diff --git a/code/game/turfs/simulated/wall/reinf_walls.dm b/code/game/turfs/simulated/wall/reinf_walls.dm
index 8eab4c34fe..a1d2c1757c 100644
--- a/code/game/turfs/simulated/wall/reinf_walls.dm
+++ b/code/game/turfs/simulated/wall/reinf_walls.dm
@@ -258,3 +258,22 @@
/turf/closed/wall/r_wall/syndicate/overspace
icon_state = "map-overspace"
fixed_underlay = list("space"=1)
+
+/////////////////////Pirate Ship walls/////////////////////
+
+/turf/closed/wall/r_wall/syndicate/pirate
+ desc = "Yarr just try to blow this to smithereens!"
+ explosion_block = 30
+ canSmoothWith = list(/turf/closed/wall/r_wall/syndicate/pirate, /obj/machinery/door/airlock/shuttle, /obj/machinery/door/airlock, /obj/structure/window/plastitanium/pirate, /obj/structure/shuttle/engine, /obj/structure/falsewall/plastitanium)
+
+/turf/closed/wall/r_wall/syndicate/pirate/nodiagonal
+ smooth = SMOOTH_MORE
+ icon_state = "map-shuttle_nd"
+
+/turf/closed/wall/r_wall/syndicate/pirate/nosmooth
+ icon = 'icons/turf/shuttle.dmi'
+ icon_state = "wall"
+
+/turf/closed/wall/r_wall/syndicate/pirate/overspace
+ icon_state = "map-overspace"
+ fixed_underlay = list("space"=1)
diff --git a/code/modules/events/pirates.dm b/code/modules/events/pirates.dm
index 8bc5491970..ab9ab96678 100644
--- a/code/modules/events/pirates.dm
+++ b/code/modules/events/pirates.dm
@@ -177,6 +177,7 @@
shuttleId = "pirateship"
icon_screen = "syndishuttle"
icon_keyboard = "syndie_key"
+ resistance_flags = INDESTRUCTIBLE
light_color = LIGHT_COLOR_RED
possible_destinations = "pirateship_away;pirateship_home;pirateship_custom"
@@ -184,6 +185,7 @@
name = "pirate shuttle navigation computer"
desc = "Used to designate a precise transit location for the pirate shuttle."
shuttleId = "pirateship"
+ resistance_flags = INDESTRUCTIBLE
lock_override = CAMERA_LOCK_STATION
shuttlePortId = "pirateship_custom"
x_offset = 9
@@ -226,6 +228,7 @@
desc = "This sophisticated machine scans the nearby space for items of value."
icon = 'icons/obj/machines/research.dmi'
icon_state = "tdoppler"
+ resistance_flags = INDESTRUCTIBLE
density = TRUE
var/cooldown = 300
var/next_use = 0
@@ -259,6 +262,7 @@
name = "cargo hold pad"
icon = 'icons/obj/telescience.dmi'
icon_state = "lpad-idle-o"
+ resistance_flags = INDESTRUCTIBLE
var/idle_state = "lpad-idle-o"
var/warmup_state = "lpad-idle"
var/sending_state = "lpad-beam"
@@ -272,6 +276,7 @@
/obj/machinery/computer/piratepad_control
name = "cargo hold control terminal"
+ resistance_flags = INDESTRUCTIBLE
var/status_report = "Idle"
var/obj/machinery/piratepad/pad
var/warmup_time = 100