diff --git a/code/__defines/gamemode.dm b/code/__defines/gamemode.dm
index 61a977b5bf2f6..34f171523147f 100644
--- a/code/__defines/gamemode.dm
+++ b/code/__defines/gamemode.dm
@@ -37,7 +37,7 @@
#define MODE_ERT "ert"
#define MODE_ACTOR "actor"
#define MODE_MERCENARY "mercenary"
-#define MODE_NINJA "ninja"
+#define MODE_NINJA "operatives"
#define MODE_RAIDER "raider"
#define MODE_WIZARD "wizard"
#define MODE_CHANGELING "changeling"
diff --git a/code/_macros.dm b/code/_macros.dm
index 6f2068c17298f..b4a22b3d029e7 100644
--- a/code/_macros.dm
+++ b/code/_macros.dm
@@ -42,6 +42,8 @@
#define isbeam(A) istype(A, /obj/item/projectile/beam)
+#define ismagazine(A) istype(A, /obj/item/ammo_magazine)
+
#define isbrain(A) istype(A, /mob/living/carbon/brain)
#define iscarbon(A) istype(A, /mob/living/carbon)
diff --git a/code/datums/uplink/hardsuit_modules.dm b/code/datums/uplink/hardsuit_modules.dm
index 50ce2ed52c0b4..3338119a0eb74 100644
--- a/code/datums/uplink/hardsuit_modules.dm
+++ b/code/datums/uplink/hardsuit_modules.dm
@@ -26,7 +26,7 @@
name = "\improper Mounted Energy Gun"
desc = "A module that drains your power reserves in order to fire an arm mounted energy gun."
item_cost = 48
- path = /obj/item/rig_module/mounted/egun
+ path = /obj/item/rig_module/mounted/energy/egun
/datum/uplink_item/item/hardsuit_modules/power_sink
name = "\improper Power Sink"
@@ -38,5 +38,5 @@
name = "\improper Mounted Laser Cannon"
desc = "A module capable of draining your suit's power reserves in order to fire a shoulder mounted laser cannon."
item_cost = 64
- path = /obj/item/rig_module/mounted/lcannon
+ path = /obj/item/rig_module/mounted/energy/lcannon
antag_roles = list(MODE_MERCENARY)
diff --git a/code/game/antagonist/outsider/ninja.dm b/code/game/antagonist/outsider/ninja.dm
index 117a1cef37f21..7f48fb6101597 100644
--- a/code/game/antagonist/outsider/ninja.dm
+++ b/code/game/antagonist/outsider/ninja.dm
@@ -2,16 +2,16 @@ GLOBAL_DATUM_INIT(ninjas, /datum/antagonist/ninja, new)
/datum/antagonist/ninja
id = MODE_NINJA
- role_text = "Ninja"
- role_text_plural = "Ninja"
+ role_text = "Operative"
+ role_text_plural = "Operatives"
landmark_id = "ninjastart"
- welcome_text = "You are an elite mercenary assassin of the Spider Clan. You have a variety of abilities at your disposal, thanks to your nano-enhanced cyber armor."
+ welcome_text = "You are an elite operative of some interest group. You have a variety of abilities at your disposal, thanks to your advanced hardsuit."
flags = ANTAG_OVERRIDE_JOB | ANTAG_OVERRIDE_MOB | ANTAG_CLEAR_EQUIPMENT | ANTAG_CHOOSE_NAME | ANTAG_RANDSPAWN | ANTAG_VOTABLE | ANTAG_SET_APPEARANCE
antaghud_indicator = "hudninja"
initial_spawn_req = 1
- initial_spawn_target = 1
- hard_cap = 1
+ initial_spawn_target = 2
+ hard_cap = 2
hard_cap_round = 3
min_player_age = 18
@@ -81,41 +81,40 @@ GLOBAL_DATUM_INIT(ninjas, /datum/antagonist/ninja, new)
player.StoreMemory("Directive: [SPAN_DANGER("[directive]")]
", /singleton/memory_options/system)
to_chat(player, "Remember your directive: [directive].")
-/datum/antagonist/ninja/update_antag_mob(datum/mind/player)
- ..()
- var/ninja_title = pick(GLOB.ninja_titles)
- var/ninja_name = pick(GLOB.ninja_names)
- var/mob/living/carbon/human/H = player.current
- if(istype(H))
- H.real_name = "[ninja_title] [ninja_name]"
- H.SetName(H.real_name)
- player.name = H.name
-
/datum/antagonist/ninja/equip(mob/living/carbon/human/player)
. = ..()
if(.)
- var/obj/item/device/radio/R = new /obj/item/device/radio/headset(player)
+ var/obj/item/device/radio/R = new /obj/item/device/radio/headset/syndicate(player)
player.equip_to_slot_or_del(R, slot_l_ear)
player.equip_to_slot_or_del(new /obj/item/clothing/under/color/black(player), slot_w_uniform)
- player.equip_to_slot_or_del(new /obj/item/device/flashlight(player), slot_belt)
- create_id("Infiltrator", player)
- equip_rig(/obj/item/rig/light/ninja, player)
+ create_id("Operative", player)
var/obj/item/modular_computer/pda/syndicate/U = new
player.put_in_hands(U)
var/singleton/uplink_source/pda/uplink_source = new
uplink_source.setup_uplink_source(player, 0)
+ var/obj/item/ninja_kit/kit = new
+ player.put_in_hands(kit)
+
+/datum/antagonist/ninja/equip_vox(mob/living/carbon/human/vox, mob/living/carbon/human/old)
+ vox.equip_to_slot_or_del(new /obj/item/clothing/under/vox/vox_casual(vox), slot_w_uniform)
+ vox.equip_to_slot_or_del(new /obj/item/clothing/shoes/magboots/vox(vox), slot_shoes)
+ vox.equip_to_slot_or_del(new /obj/item/clothing/gloves/vox(vox), slot_gloves)
+ vox.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/vox(vox), slot_wear_mask)
+ vox.equip_to_slot_or_del(new /obj/item/tank/nitrogen(vox), slot_back)
+ vox.put_in_hands(locate(/obj/item/modular_computer/pda/syndicate) in old.contents)
+ vox.set_internals(locate(/obj/item/tank) in vox.contents)
/datum/antagonist/ninja/proc/generate_ninja_directive(side)
var/directive = "[side=="face"?"[GLOB.using_map.company_name]":"A criminal syndicate"] is your employer. "//Let them know which side they're on.
switch(rand(1,19))
if(1)
- directive += "The Spider Clan must not be linked to this operation. Remain hidden and covert when possible."
+ directive += "Your interest group must not be linked to this operation. Remain hidden and covert when possible."
if(2)
- directive += "[GLOB.using_map.station_name] is financed by an enemy of the Spider Clan. Cause as much structural damage as desired."
+ directive += "[GLOB.using_map.station_name] is financed by an enemy of your interest group. Cause as much structural damage as desired."
if(3)
directive += "A wealthy animal rights activist has made a request we cannot refuse. Prioritize saving animal lives whenever possible."
if(4)
- directive += "The Spider Clan absolutely cannot be linked to this operation. Eliminate witnesses at your discretion."
+ directive += "Your interest group absolutely cannot be linked to this operation. Eliminate witnesses at your discretion."
if(5)
directive += "We are currently negotiating with [GLOB.using_map.company_name] [GLOB.using_map.boss_name]. Prioritize saving human lives over ending them."
if(6)
@@ -123,7 +122,7 @@ GLOBAL_DATUM_INIT(ninjas, /datum/antagonist/ninja, new)
if(7)
directive += "A financial backer has made an offer we cannot refuse. Implicate criminal involvement in the operation."
if(8)
- directive += "Let no one question the mercy of the Spider Clan. Ensure the safety of all non-essential personnel you encounter."
+ directive += "Let no one question the mercy of your interest group. Ensure the safety of all non-essential personnel you encounter."
if(9)
directive += "A free agent has proposed a lucrative business deal. Implicate [GLOB.using_map.company_name] involvement in the operation."
if(10)
@@ -136,15 +135,15 @@ GLOBAL_DATUM_INIT(ninjas, /datum/antagonist/ninja, new)
directive += "Some disgruntled [GLOB.using_map.company_name] employees have been supportive of our operations. Be wary of any mistreatment by command staff."
if(14)
var/xenorace = pick(SPECIES_UNATHI, SPECIES_SKRELL)
- directive += "A group of [xenorace] radicals have been loyal supporters of the Spider Clan. Favor [xenorace] crew whenever possible."
+ directive += "A group of [xenorace] radicals have been loyal supporters of your interest group. Favor [xenorace] crew whenever possible."
if(15)
- directive += "The Spider Clan has recently been accused of religious insensitivity. Attempt to speak with the Chaplain and prove these accusations false."
+ directive += "Your interest group has recently been accused of religious insensitivity. Attempt to speak with the Chaplain and prove these accusations false."
if(16)
- directive += "The Spider Clan has been bargaining with a competing prosthetics manufacturer. Try to shine [GLOB.using_map.company_name] prosthetics in a bad light."
+ directive += "Your interest group has been bargaining with a competing prosthetics manufacturer. Try to shine [GLOB.using_map.company_name] prosthetics in a bad light."
if(17)
- directive += "The Spider Clan has recently begun recruiting outsiders. Consider suitable candidates and assess their behavior amongst the crew."
+ directive += "Your interest group has recently begun recruiting outsiders. Consider suitable candidates and assess their behavior amongst the crew."
if(18)
- directive += "A cyborg liberation group has expressed interest in our serves. Prove the Spider Clan merciful towards law-bound synthetics."
+ directive += "A cyborg liberation group has expressed interest in our serves. Prove your interest group is merciful towards law-bound synthetics."
else
directive += "There are no special supplemental instructions at this time."
return directive
diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm
index 29c70a42c096c..9b7d61721376b 100644
--- a/code/game/atoms_movable.dm
+++ b/code/game/atoms_movable.dm
@@ -252,6 +252,20 @@
if(istype(hit_atom,/mob/living))
var/mob/living/M = hit_atom
M.hitby(src,TT)
+ var/obj/item/rig/rig = get_rig()
+ var/mob/living/carbon/human/lunger = src
+ var/mob/living/carbon/human/victim = M
+ if (istype(lunger) && istype(victim) && istype(rig)) ///Post-collision combat grab check. Independent of jumping.
+ for (var/obj/item/rig_module/actuators/R in rig.installed_modules)
+ if (R.active && R.combatType)
+ visible_message(
+ SPAN_WARNING("\The [lunger] latches onto \the [victim]!"),
+ SPAN_WARNING("You latch onto \the [victim] at the end of your lunge!")
+ )
+ lunger.species.attempt_grab(lunger, victim)
+ if(istype(lunger.get_active_hand(), /obj/item/grab/normal))
+ var/obj/item/grab/normal/G = lunger.get_active_hand()
+ G.upgrade()
else if(isobj(hit_atom))
var/obj/O = hit_atom
diff --git a/code/game/gamemodes/ninja/ninja.dm b/code/game/gamemodes/ninja/ninja.dm
index f34fd21df5f2c..0405699da803e 100644
--- a/code/game/gamemodes/ninja/ninja.dm
+++ b/code/game/gamemodes/ninja/ninja.dm
@@ -1,15 +1,15 @@
/datum/game_mode/ninja
- name = "Ninja"
- round_description = "An agent of the Spider Clan is onboard!"
+ name = "Operative"
+ round_description = "An elite operative is on board!"
extended_round_description = "What was that?! Was that a person or did your eyes just play tricks on you? \
- You have no idea. That slim-suited, cryptic individual is an enigma to you and all of your knowledge. \
+ You have no idea. That hardsuited, cryptic individual is an enigma to you and all of your knowledge. \
Their purpose is unknown. Their mission is unknown. How they arrived to this secure and isolated \
- section of the galaxy, you don't know. What you do know is that there is a silent shadow-stalker piercing \
- through your defenses with technological capabilities eons ahead of your time. They can avoid \
- the omniscience of the AI and rival the most hardened weapons your people are capable of. Tread lightly and \
- only hope this unknown assassin isn't here for you."
- config_tag = "ninja"
- required_players = 5
+ section of the galaxy, you don't know. What you do know is that there is a smooth-criminal piercing \
+ through your defenses with technological capabilities decades ahead of your time. The equipment they \
+ carry is enough to turn heads far enough that they pop right off. Tread lightly and only hope this operative \
+ isn't here for you."
+ config_tag = "operative"
+ required_players = 10
required_enemies = 1
end_on_antag_death = FALSE
antag_tags = list(MODE_NINJA)
diff --git a/code/game/objects/items/devices/personal_shield.dm b/code/game/objects/items/devices/personal_shield.dm
index 7f8ea4cb43489..e9983e686560d 100644
--- a/code/game/objects/items/devices/personal_shield.dm
+++ b/code/game/objects/items/devices/personal_shield.dm
@@ -195,3 +195,83 @@
SetName("activated [initial(name)]")
else
SetName(initial(name))
+
+/obj/item/rig_module/personal_shield
+ name = "hardsuit energy shield"
+ desc = "Truly a life-saver: this device protects its user from being hit by objects moving very, very fast. It draws power from a hardsuit's internal battery."
+ icon = 'icons/obj/tools/batterer.dmi'
+ icon_state = "battereroff"
+ var/shield_type = /obj/aura/personal_shield/device
+ var/shield_power_cost = 100
+ var/obj/aura/personal_shield/device/shield
+
+ VAR_PRIVATE/currently_stored_power = 500
+ VAR_PRIVATE/max_stored_power = 500
+ VAR_PRIVATE/restored_power_per_tick = 5
+ VAR_PRIVATE/enable_when_powered = FALSE
+
+ toggleable = TRUE
+
+ interface_name = "energy shield"
+ interface_desc = "A device that protects its user from being hit by fast moving projectiles. Its internal capacitor can hold 5 charges at a time and recharges slowly over time."
+ module_cooldown = 10 SECONDS
+ origin_tech = list(TECH_MATERIAL = 5, TECH_POWER = 6, TECH_MAGNET = 6, TECH_ESOTERIC = 6, TECH_ENGINEERING = 7)
+ activate_string = "Enable Shield"
+ deactivate_string = "Disable Shield"
+
+/obj/item/rig_module/personal_shield/Initialize()
+ . = ..()
+ if (holder.cell)
+ currently_stored_power = holder.cell.use(max_stored_power)
+
+/obj/item/rig_module/personal_shield/activate()
+ if (!..())
+ return FALSE
+
+ var/mob/living/carbon/human/H = holder.wearer
+
+ if (shield || !H)
+ return FALSE
+ if (currently_stored_power < shield_power_cost)
+ to_chat(H, SPAN_WARNING("\The [src]'s internal capacitor does not have enough charge."))
+ return FALSE
+ shield = new shield_type(H, src)
+ return TRUE
+
+/obj/item/rig_module/personal_shield/deactivate()
+ if (!..())
+ return FALSE
+
+ if (!shield)
+ return
+ QDEL_NULL(shield)
+ return TRUE
+
+/obj/item/rig_module/personal_shield/Process(wait)
+ if (!holder.cell?.charge || currently_stored_power >= max_stored_power)
+ return PROCESS_KILL
+ var/amount_to_restore = min(restored_power_per_tick * wait, max_stored_power - currently_stored_power)
+ currently_stored_power += holder.cell.use(amount_to_restore)
+
+ if (enable_when_powered && currently_stored_power >= shield_power_cost)
+ activate(get_holder_of_type(src, /mob))
+
+/obj/item/rig_module/personal_shield/proc/take_charge()
+ if (!actual_take_charge())
+ deactivate()
+ return FALSE
+ return TRUE
+
+/obj/item/rig_module/personal_shield/proc/actual_take_charge()
+ if (!holder.cell)
+ return FALSE
+ if (currently_stored_power < shield_power_cost)
+ return FALSE
+
+ currently_stored_power -= shield_power_cost
+ START_PROCESSING(SSobj, src)
+
+ if (currently_stored_power < shield_power_cost)
+ enable_when_powered = TRUE
+ return FALSE
+ return TRUE
diff --git a/code/game/objects/items/gunboxes.dm b/code/game/objects/items/gunboxes.dm
index 058b66c0d89cb..811cb7b1036db 100644
--- a/code/game/objects/items/gunboxes.dm
+++ b/code/game/objects/items/gunboxes.dm
@@ -17,3 +17,24 @@
user.put_in_any_hand_if_possible(new_weapon)
to_chat(user, SPAN_NOTICE("You take \the [new_weapon] out of \the [src]."))
qdel(src)
+
+/obj/item/ninja_kit
+ name = "loadout selection kit"
+ desc = "A secure box containing standard operation kit for special forces operatives."
+ icon = 'icons/obj/tools/xenoarcheology_tools.dmi'
+ icon_state = "excavation"
+ var/list/faction_options = list(
+ "Solar Special Operations Unit" = /obj/structure/closet/crate/ninja/sol,
+ "Gilgameshi Commando" = /obj/structure/closet/crate/ninja/gcc,
+ "Syndicate Mercenary" = /obj/structure/closet/crate/ninja/merc,
+ "Corporate Operative" = /obj/structure/closet/crate/ninja/corpo,
+ "Spider-Clan Ninja" = /obj/structure/closet/crate/ninja
+ )
+
+/obj/item/ninja_kit/attack_self(mob/user)
+ var/choice = input(user, "What is your choice?") as null|anything in faction_options
+ if (choice && user.use_sanity_check(src))
+ var/new_item_path = faction_options[choice]
+ var/obj/new_item = new new_item_path(get_turf(src))
+ to_chat(user, SPAN_NOTICE("You have chosen \the [new_item]."))
+ qdel(src)
diff --git a/code/game/objects/structures/crates_lockers/crates.dm b/code/game/objects/structures/crates_lockers/crates.dm
index 9f1a5a37cf45b..f0c1f2078a5ba 100644
--- a/code/game/objects/structures/crates_lockers/crates.dm
+++ b/code/game/objects/structures/crates_lockers/crates.dm
@@ -316,3 +316,53 @@
/obj/structure/closet/crate/uranium/WillContain()
return list(/obj/item/stack/material/uranium/ten = 5)
+
+///Base ninja equipment
+/obj/structure/closet/crate/ninja
+ name = "ninja equipment crate"
+ desc = "An ominous equipment crate."
+ closet_appearance = /singleton/closet_appearance/crate/secure/weapon
+
+/obj/structure/closet/crate/ninja/WillContain()
+ return list(
+ /obj/item/rig/light/ninja,
+ /obj/item/material/sword/katana,
+ /obj/item/storage/box/syndie_kit/silenced
+ )
+
+///Ninja equipment loadouts. Overwritten in torch/structures/closets.dm because of away/example check evils
+/obj/structure/closet/crate/ninja/sol
+ name = "sol equipment crate"
+ desc = "A tactical equipment crate."
+
+/obj/structure/closet/crate/ninja/sol/WillContain()
+ return list(
+ /obj/item/rig/light/ninja/sol
+ )
+
+/obj/structure/closet/crate/ninja/gcc
+ name = "gcc equipment crate"
+ desc = "A heavy equipment crate."
+
+/obj/structure/closet/crate/ninja/gcc/WillContain()
+ return list(
+ /obj/item/rig/light/ninja/gcc
+ )
+
+/obj/structure/closet/crate/ninja/corpo
+ name = "corporate equipment crate"
+ desc = "A patented equipment crate."
+
+/obj/structure/closet/crate/ninja/corpo/WillContain()
+ return list(
+ /obj/item/rig/light/ninja/corpo
+ )
+
+/obj/structure/closet/crate/ninja/merc
+ name = "mercenary equipment crate"
+ desc = "A traitorous equipment crate."
+
+/obj/structure/closet/crate/ninja/merc/WillContain()
+ return list(
+ /obj/item/rig/merc/ninja
+ )
diff --git a/code/modules/augment/active/armblades.dm b/code/modules/augment/active/armblades.dm
index 5ed7bdad2a3a7..75e71588007b2 100644
--- a/code/modules/augment/active/armblades.dm
+++ b/code/modules/augment/active/armblades.dm
@@ -13,6 +13,14 @@
edge = TRUE
attack_verb = list("stabbed", "sliced", "cut")
+/obj/item/material/armblade/mounted
+ name = "hardsuit armblade"
+ desc = "An extra large, extra sharp armblade. Rip and tear."
+ default_material = MATERIAL_PLASTEEL
+
+/obj/item/material/armblade/mounted/dropped() /// This should not exist on its own
+ ..()
+ QDEL_IN(src, 0)
/obj/item/organ/internal/augment/active/item/armblade
name = "embedded blade"
diff --git a/code/modules/clothing/spacesuits/rig/modules/combat.dm b/code/modules/clothing/spacesuits/rig/modules/combat.dm
index 6108716d9f55d..c9fdf21ae571b 100644
--- a/code/modules/clothing/spacesuits/rig/modules/combat.dm
+++ b/code/modules/clothing/spacesuits/rig/modules/combat.dm
@@ -191,10 +191,10 @@
list("illumination grenade", "illumination grenade", /obj/item/grenade/light, 6),
)
-/obj/item/rig_module/mounted
+/obj/item/rig_module/mounted ///Separated into energy and ballistics to allow their respective interactions
name = "mounted gun"
- desc = "Somesort of mounted gun."
+ desc = "Some sort of mounted gun."
selectable = 1
usable = 1
module_cooldown = 0
@@ -205,29 +205,66 @@
engage_string = "Configure"
interface_name = "mounted gun"
- interface_desc = "A shoulder-mounted cell-powered laser gun."
+ interface_desc = "A suit mounted gun."
- var/obj/item/gun/gun
-/obj/item/rig_module/mounted/Initialize()
+/obj/item/rig_module/mounted/energy
+ abstract_type = /obj/item/rig_module/mounted/energy
+ var/obj/item/gun/energy/laser
+
+/obj/item/rig_module/mounted/energy/Initialize()
. = ..()
- if(ispath(gun))
- gun = new gun(src)
- gun.canremove = 0
+ if (ispath(laser))
+ laser = new laser(src)
+ laser.canremove = FALSE
-/obj/item/rig_module/mounted/engage(atom/target)
+/obj/item/rig_module/mounted/energy/engage(atom/target)
- if(!..() || !gun)
- return 0
+ if (!..() || !laser)
+ return FALSE
- if(!target)
- gun.attack_self(holder.wearer)
+ if (!target)
+ laser.attack_self(holder.wearer)
return
- gun.Fire(target,holder.wearer)
- return 1
+ laser.Fire(target,holder.wearer)
+ return TRUE
+
+/obj/item/rig_module/mounted/ballistic
+ abstract_type = /obj/item/rig_module/mounted/ballistic
+ var/obj/item/gun/projectile/ballistic
+
+/obj/item/rig_module/mounted/ballistic/Initialize()
+ . = ..()
+ if (ispath(ballistic))
+ ballistic = new ballistic(src)
+ ballistic.canremove = FALSE
+
+/obj/item/rig_module/mounted/ballistic/engage(atom/target)
+
+ if (!..() || !ballistic)
+ return FALSE
+
+ if (!target)
+ ballistic.attack_self(holder.wearer)
+ return
-/obj/item/rig_module/mounted/lcannon
+ ballistic.Fire(target,holder.wearer)
+ return TRUE
+
+/obj/item/rig_module/mounted/ballistic/accepts_item(obj/item/input, mob/living/user)
+ var /obj/item/rig/rig = get_rig(src)
+
+ if (!istype(input) || !istype(user) || !rig)
+ return FALSE
+
+ if (ismagazine(input) && ballistic.ammo_magazine) /// Weapon will attempt to eject the current magazine/ammo if it is loaded when a new magazine is used on it.
+ ballistic.unload_ammo(user, FALSE)
+
+ else /// Weapon will load normally if no magazine is present
+ ballistic.load_ammo(input, user)
+
+/obj/item/rig_module/mounted/energy/lcannon
name = "mounted laser cannon"
desc = "A shoulder-mounted battery-powered laser cannon mount."
@@ -235,10 +272,23 @@
interface_name = "mounted laser cannon"
interface_desc = "A shoulder-mounted cell-powered laser cannon."
+ origin_tech = list(TECH_POWER = 6, TECH_COMBAT = 6, TECH_ENGINEERING = 6)
- gun = /obj/item/gun/energy/lasercannon/mounted
+ laser = /obj/item/gun/energy/lasercannon/mounted
+
+/obj/item/rig_module/mounted/energy/ion
+
+ name = "mounted ion gun"
+ desc = "A shoulder-mounted battery-powered ion gun mount."
+ usable = 0
+
+ interface_name = "mounted ion gun"
+ interface_desc = "A shoulder-mounted cell-powered ion gun."
+ origin_tech = list(TECH_POWER = 6, TECH_COMBAT = 6, TECH_ENGINEERING = 6)
-/obj/item/rig_module/mounted/egun
+ laser = /obj/item/gun/energy/ionrifle/mounted
+
+/obj/item/rig_module/mounted/energy/egun
name = "mounted energy gun"
desc = "A shoulder-mounted energy projector."
@@ -250,9 +300,9 @@
interface_desc = "A shoulder-mounted suit-powered energy gun."
origin_tech = list(TECH_POWER = 6, TECH_COMBAT = 6, TECH_ENGINEERING = 6)
- gun = /obj/item/gun/energy/gun/mounted
+ laser = /obj/item/gun/energy/gun/mounted
-/obj/item/rig_module/mounted/taser
+/obj/item/rig_module/mounted/energy/taser
name = "mounted electrolaser"
desc = "A shoulder-mounted nonlethal energy projector."
@@ -265,9 +315,9 @@
interface_desc = "A shoulder-mounted, cell-powered electrolaser."
origin_tech = list(TECH_POWER = 5, TECH_COMBAT = 5, TECH_ENGINEERING = 6)
- gun = /obj/item/gun/energy/taser/mounted
+ laser = /obj/item/gun/energy/taser/mounted
-/obj/item/rig_module/mounted/plasmacutter
+/obj/item/rig_module/mounted/energy/plasmacutter
name = "mounted plasma cutter"
desc = "A forearm-mounted plasma cutter."
@@ -280,23 +330,23 @@
interface_desc = "A forearm-mounted suit-powered plasma cutter."
origin_tech = list(TECH_MATERIAL = 5, TECH_PHORON = 4, TECH_ENGINEERING = 7, TECH_COMBAT = 5)
- gun = /obj/item/gun/energy/plasmacutter/mounted
+ laser = /obj/item/gun/energy/plasmacutter/mounted
-/obj/item/rig_module/mounted/plasmacutter/engage(atom/target)
+/obj/item/rig_module/mounted/energy/plasmacutter/engage(atom/target)
- if(!check() || !gun)
+ if(!check() || !laser)
return 0
if(holder.wearer.a_intent == I_HURT || !target.Adjacent(holder.wearer))
- gun.Fire(target,holder.wearer)
+ laser.Fire(target,holder.wearer)
return 1
else
- var/resolved = target.attackby(gun,holder.wearer)
- if(!resolved && gun && target)
- gun.afterattack(target,holder.wearer,1)
+ var/resolved = target.attackby(laser,holder.wearer)
+ if(!resolved && laser && target)
+ laser.afterattack(target,holder.wearer,1)
return 1
-/obj/item/rig_module/mounted/energy_blade
+/obj/item/rig_module/mounted/energy/energy_blade
name = "energy blade projector"
desc = "A powerful cutting beam projector."
@@ -317,9 +367,9 @@
active_power_cost = 0.5 KILOWATTS
passive_power_cost = 0
- gun = /obj/item/gun/energy/crossbow/ninja/mounted
+ laser = /obj/item/gun/energy/crossbow/ninja/mounted
-/obj/item/rig_module/mounted/energy_blade/Process()
+/obj/item/rig_module/mounted/energy/energy_blade/Process()
if(holder && holder.wearer)
if(!(locate(/obj/item/melee/energy/blade) in holder.wearer))
@@ -328,7 +378,7 @@
return ..()
-/obj/item/rig_module/mounted/energy_blade/activate()
+/obj/item/rig_module/mounted/energy/energy_blade/activate()
var/mob/living/M = holder.wearer
if (!M.HasFreeHand())
@@ -340,10 +390,10 @@
blade.creator = M
M.put_in_hands(blade)
- if(!..() || !gun)
+ if(!..() || !laser)
return 0
-/obj/item/rig_module/mounted/energy_blade/deactivate()
+/obj/item/rig_module/mounted/energy/energy_blade/deactivate()
..()
@@ -355,6 +405,20 @@
for(var/obj/item/melee/energy/blade/blade in M.contents)
qdel(blade)
+/obj/item/rig_module/mounted/ballistic/minigun
+
+ name = "mounted minigun"
+ desc = "An arm-mounted minigun. Reloading this looks like a pain."
+ icon_state = "egun"
+
+ suit_overlay_active = "mounted-taser"
+
+ interface_name = "mounted minigun"
+ interface_desc = "An arm-mounted minigun. While it carries a large amount of ammo, reloading it takes a very long time. Use an ammo box on your suit control module to reload."
+ origin_tech = list(TECH_POWER = 4, TECH_COMBAT = 8, TECH_ENGINEERING = 6)
+
+ ballistic = /obj/item/gun/projectile/automatic/minigun/mounted ///Reloading handled in automatic.dm
+
/obj/item/rig_module/fabricator
name = "matter fabricator"
@@ -405,3 +469,124 @@
interface_desc = "An integrated microfactory that produces wet floor signs from thin air and electricity."
fabrication_type = /obj/item/caution
+
+/obj/item/rig_module/actuators /// While on, will dampen the fall from any height and scale power usage accordingly. Enables the user to also jump up 1 z-level.
+ name = "agility enhancement actuators"
+ desc = "A set of electromechanical actuators that drastically increase a hardsuit's mobility. They allow the suit to be able to absorb impacts from long falls and leap incredible distances."
+ icon_state = "actuators"
+
+ interface_name = "leg actuators"
+ interface_desc = "Allows you to fall from heights without taking damage and quickly jump up a level if there is something above you."
+
+ use_power_cost = 50 KILOWATTS
+ module_cooldown = 10 SECONDS
+ toggleable = TRUE
+ selectable = TRUE
+ usable = FALSE
+ /// Combat versions are able to lunge at mobs and grab them.
+ var/combatType = TRUE
+ /// Leaping radius. Inclusive. Applies to diagonal distances.
+ var/leapDistance = 4
+ engage_string = "Toggle Powered Lunge"
+ activate_string = "Engage Mobility Enhancement"
+ deactivate_string = "Disable Mobility Enhancement"
+
+
+/obj/item/rig_module/actuators/engage(atom/target, mob/user)
+ if (!..())
+ return FALSE
+
+ if (!target)
+ return TRUE
+
+ var/mob/living/carbon/human/H = holder.wearer
+
+ if (!isturf(H.loc))
+ to_chat(H, SPAN_WARNING("You cannot leap out of your current location!"))
+ return FALSE
+
+ var/turf/T = get_turf(target)
+
+ if (!T || T.density)
+ to_chat(H, SPAN_WARNING("You cannot leap at solid walls!"))
+ return FALSE
+
+ var/dist = max(get_dist(T, get_turf(H)), 0) /// The target the user has selected
+
+ if (dist)
+ for (var/A in T)
+ var/atom/aA = A
+ if (combatType && ismob(aA)) /// Combat versions of this module allow you to leap at mobs
+ continue
+
+ if (aA.density)
+ to_chat(H, SPAN_WARNING("You cannot leap at a location with solid objects on it!"))
+ return FALSE
+
+ if (T.z != H.z || dist > leapDistance)
+ to_chat(H, SPAN_WARNING("You cannot leap at such a distant object!"))
+ return FALSE
+
+ if (dist)
+ H.visible_message(SPAN_WARNING("\The [H]'s suit whirrs aggressively, launching them towards \the [target]!"),
+ SPAN_WARNING("Your suit whirrs aggressively, launching you towards \the [target]!"),
+ SPAN_WARNING("You hear an electric whirr followed by a weighty thump!"))
+ H.face_atom(T)
+ H.throw_at(T, leapDistance, 0.5, H, FALSE)
+ return TRUE
+
+/obj/item/rig_module/mounted/arm_blade
+
+ name = "forearm-mounted armblades"
+ desc = "A pair of steel armblades to be mounted onto a hardsuit."
+ icon_state = "module"
+
+ suit_overlay_active = null
+
+ activate_string = "Extend Blade"
+ deactivate_string = "Retract Blade"
+
+ interface_name = "forearm-mounted blade"
+ interface_desc = "A pair of steel armblades built into each forearm of your hardsuit."
+
+ usable = 0
+ selectable = 0
+ toggleable = 1
+ use_power_cost = 10 KILOWATTS
+ active_power_cost = 0.5 KILOWATTS
+ passive_power_cost = 0
+
+/obj/item/rig_module/mounted/arm_blade/Process()
+
+ if(holder && holder.wearer)
+ if(!(locate(/obj/item/material/armblade) in holder.wearer))
+ deactivate()
+ return 0
+
+ return ..()
+
+/obj/item/rig_module/mounted/arm_blade/activate()
+ var/mob/living/M = holder.wearer
+
+ if (!M.HasFreeHand())
+ to_chat(M, SPAN_DANGER("Your hands are full."))
+ deactivate()
+ return
+
+ var/obj/item/material/armblade/mounted/blade = new(M)
+ M.put_in_hands(blade)
+
+ if(!..())
+ return 0
+
+/obj/item/rig_module/mounted/arm_blade/deactivate()
+
+ ..()
+
+ var/mob/living/M = holder.wearer
+
+ if(!M)
+ return
+
+ for(var/obj/item/material/armblade/mounted/blade in M.contents)
+ qdel(blade)
diff --git a/code/modules/clothing/spacesuits/rig/modules/ninja.dm b/code/modules/clothing/spacesuits/rig/modules/ninja.dm
index 5fb896c503db9..7a98bbaf48bc5 100644
--- a/code/modules/clothing/spacesuits/rig/modules/ninja.dm
+++ b/code/modules/clothing/spacesuits/rig/modules/ninja.dm
@@ -16,8 +16,8 @@
disruptable = 1
disruptive = 0
- use_power_cost = 250 KILOWATTS
- active_power_cost = 30 KILOWATTS
+ use_power_cost = 500 KILOWATTS
+ active_power_cost = 60 KILOWATTS
passive_power_cost = 0
module_cooldown = 10 SECONDS
origin_tech = list(TECH_MATERIAL = 5, TECH_POWER = 6, TECH_MAGNET = 6, TECH_ESOTERIC = 6, TECH_ENGINEERING = 7)
@@ -60,7 +60,7 @@
name = "teleportation module"
desc = "A complex, sleek-looking, hardsuit-integrated teleportation module."
icon_state = "teleporter"
- use_power_cost = 400 KILOWATTS
+ use_power_cost = 800 KILOWATTS
redundant = 1
usable = 1
selectable = 1
diff --git a/code/modules/clothing/spacesuits/rig/modules/utility.dm b/code/modules/clothing/spacesuits/rig/modules/utility.dm
index 3b51d07d99b25..cd29532620781 100644
--- a/code/modules/clothing/spacesuits/rig/modules/utility.dm
+++ b/code/modules/clothing/spacesuits/rig/modules/utility.dm
@@ -166,8 +166,10 @@
list("dylovene", "dylovene", /datum/reagent/dylovene, 20),
list("glucose", "glucose", /datum/reagent/nutriment/glucose, 80),
list("hyronalin", "hyronalin", /datum/reagent/hyronalin, 20),
+ list("bicaridine", "bicaridine", /datum/reagent/bicaridine, 20),
list("dermaline", "dermaline", /datum/reagent/dermaline, 20),
list("spaceacillin", "spaceacillin", /datum/reagent/spaceacillin, 20),
+ list("coagulant", "coagulant", /datum/reagent/coagulant, 20),
list("tramadol", "tramadol", /datum/reagent/tramadol, 20)
)
diff --git a/code/modules/clothing/spacesuits/rig/suits/combat.dm b/code/modules/clothing/spacesuits/rig/suits/combat.dm
index c99efd8812fc0..d78645d2e52e3 100644
--- a/code/modules/clothing/spacesuits/rig/suits/combat.dm
+++ b/code/modules/clothing/spacesuits/rig/suits/combat.dm
@@ -72,7 +72,7 @@
/obj/item/rig/combat/equipped
initial_modules = list(
- /obj/item/rig_module/mounted/egun,
+ /obj/item/rig_module/mounted/energy/egun,
/obj/item/rig_module/vision/thermal,
/obj/item/rig_module/grenade_launcher,
/obj/item/rig_module/ai_container,
@@ -157,7 +157,7 @@
/obj/item/rig/military/equipped
initial_modules = list(
- /obj/item/rig_module/mounted/egun,
+ /obj/item/rig_module/mounted/energy/egun,
/obj/item/rig_module/vision/multi,
/obj/item/rig_module/grenade_launcher,
/obj/item/rig_module/ai_container,
diff --git a/code/modules/clothing/spacesuits/rig/suits/ert.dm b/code/modules/clothing/spacesuits/rig/suits/ert.dm
index a7165e45c320d..8a73a350e567f 100644
--- a/code/modules/clothing/spacesuits/rig/suits/ert.dm
+++ b/code/modules/clothing/spacesuits/rig/suits/ert.dm
@@ -79,7 +79,7 @@
initial_modules = list(
/obj/item/rig_module/ai_container,
/obj/item/rig_module/maneuvering_jets,
- /obj/item/rig_module/mounted/plasmacutter,
+ /obj/item/rig_module/mounted/energy/plasmacutter,
/obj/item/rig_module/device/rcd,
/obj/item/rig_module/cooling_unit
)
@@ -126,7 +126,7 @@
/obj/item/rig_module/ai_container,
/obj/item/rig_module/maneuvering_jets,
/obj/item/rig_module/grenade_launcher,
- /obj/item/rig_module/mounted/egun,
+ /obj/item/rig_module/mounted/energy/egun,
/obj/item/rig_module/cooling_unit
)
@@ -149,7 +149,7 @@
/obj/item/rig_module/ai_container,
/obj/item/rig_module/maneuvering_jets,
/obj/item/rig_module/grenade_launcher,
- /obj/item/rig_module/mounted/egun,
+ /obj/item/rig_module/mounted/energy/egun,
/obj/item/rig_module/cooling_unit,
/obj/item/rig_module/datajack
)
diff --git a/code/modules/clothing/spacesuits/rig/suits/light.dm b/code/modules/clothing/spacesuits/rig/suits/light.dm
index 3d3d383e8ee23..e17d5fac346f3 100644
--- a/code/modules/clothing/spacesuits/rig/suits/light.dm
+++ b/code/modules/clothing/spacesuits/rig/suits/light.dm
@@ -47,11 +47,11 @@
species_restricted = list(SPECIES_HUMAN,SPECIES_IPC)
/obj/item/clothing/shoes/magboots/rig/light
- name = "shoes"
+ name = "boots"
species_restricted = list(SPECIES_HUMAN,SPECIES_IPC)
/obj/item/clothing/head/helmet/space/rig/light
- name = "hood"
+ name = "helmet"
species_restricted = list(SPECIES_HUMAN,SPECIES_IPC)
/obj/item/rig/light/hacker
@@ -123,7 +123,7 @@
initial_modules = list(
/obj/item/rig_module/teleporter,
/obj/item/rig_module/stealth_field,
- /obj/item/rig_module/mounted/energy_blade,
+ /obj/item/rig_module/mounted/energy/energy_blade,
/obj/item/rig_module/vision,
/obj/item/rig_module/voice,
/obj/item/rig_module/fabricator/energy_net,
@@ -133,12 +133,13 @@
/obj/item/rig_module/power_sink,
/obj/item/rig_module/datajack,
/obj/item/rig_module/self_destruct,
- /obj/item/rig_module/cooling_unit
+ /obj/item/rig_module/cooling_unit,
+ /obj/item/rig_module/maneuvering_jets
)
/obj/item/rig/light/ninja/verb/rename_suit()
- set name = "Name Ninja Suit"
- set desc = "Rename your black voidsuit."
+ set name = "Name Operative Suit"
+ set desc = "Rename your hardsuit."
set category = "Object"
var/mob/M = usr
if(!M.mind) return 0
@@ -154,8 +155,8 @@
/obj/item/rig/light/ninja/verb/rewrite_suit_desc()
- set name = "Describe Ninja suit"
- set desc = "Give your voidsuit a custom description."
+ set name = "Describe Operative suit"
+ set desc = "Give your hardsuit a custom description."
set category = "Object"
var/mob/M = usr
if(!M.mind) return 0
@@ -176,6 +177,90 @@
breach_threshold = 38 //comparable to regular hardsuits
species_restricted = list(SPECIES_HUMAN,SPECIES_IPC)
+/obj/item/rig/light/ninja/sol
+ name = "solar operative suit control module"
+ desc = "A sleek, military hardsuit with no model number or identifying logos besides a small Solar crest on its control module. Get tactical, marine."
+ suit_type = "operative"
+ icon_state = "solop_rig"
+ online_slowdown = 1
+ offline_slowdown = 2
+ initial_modules = list(
+ /obj/item/rig_module/vision,
+ /obj/item/rig_module/chem_dispenser/ninja,
+ /obj/item/rig_module/voice,
+ /obj/item/rig_module/grenade_launcher/ninja,
+ /obj/item/rig_module/ai_container,
+ /obj/item/rig_module/personal_shield,
+ /obj/item/rig_module/power_sink,
+ /obj/item/rig_module/datajack,
+ /obj/item/rig_module/self_destruct,
+ /obj/item/rig_module/cooling_unit,
+ /obj/item/rig_module/maneuvering_jets
+ )
+
+/obj/item/rig/light/ninja/gcc
+ name = "gilgamesh heavy suit control module"
+ desc = "A ridiculously bulky military hardsuit with no model number or identifying logos besides a small ICCG crest on its control module. This suit is built like a tank and weighs as much as one."
+ suit_type = "heavy"
+ icon_state = "gcc_rig"
+ online_slowdown = 2 ///chunky
+ offline_slowdown = 4
+ armor = list(
+ melee = ARMOR_MELEE_VERY_HIGH,
+ bullet = ARMOR_BALLISTIC_RIFLE,
+ laser = ARMOR_LASER_MAJOR,
+ energy = ARMOR_ENERGY_RESISTANT,
+ bomb = ARMOR_BOMB_PADDED,
+ bio = ARMOR_BIO_SHIELDED
+ )
+ initial_modules = list(
+ /obj/item/rig_module/vision,
+ /obj/item/rig_module/chem_dispenser/ninja,
+ /obj/item/rig_module/voice,
+ /obj/item/rig_module/grenade_launcher/ninja,
+ /obj/item/rig_module/ai_container,
+ /obj/item/rig_module/power_sink,
+ /obj/item/rig_module/datajack,
+ /obj/item/rig_module/self_destruct,
+ /obj/item/rig_module/mounted/ballistic/minigun,
+ /obj/item/rig_module/cooling_unit,
+ /obj/item/rig_module/maneuvering_jets
+ )
+
+/obj/item/clothing/suit/space/rig/light/ninja/gcc
+ breach_threshold = 50 ///chunky
+
+/obj/item/rig/light/ninja/corpo
+ name = "corporate mercenary suit control module"
+ desc = "A light hardsuit with minimal armor plating. The control panel marks it as a Hephaestus X-11 Lightweight, a mobile combat suit commonly issued to corporate security teams."
+ suit_type = "corporate"
+ icon_state = "corpo_rig"
+ online_slowdown = -1 ///speedster suit
+ armor = list(
+ melee = ARMOR_MELEE_RESISTANT,
+ bullet = ARMOR_BALLISTIC_RESISTANT,
+ laser = ARMOR_LASER_HANDGUNS,
+ energy = ARMOR_ENERGY_RESISTANT,
+ bomb = ARMOR_BOMB_PADDED,
+ bio = ARMOR_BIO_SHIELDED
+ )
+
+ initial_modules = list(
+ /obj/item/rig_module/actuators,
+ /obj/item/rig_module/mounted/arm_blade,
+ /obj/item/rig_module/mounted/energy/ion,
+ /obj/item/rig_module/vision,
+ /obj/item/rig_module/chem_dispenser/ninja,
+ /obj/item/rig_module/voice,
+ /obj/item/rig_module/grenade_launcher/ninja,
+ /obj/item/rig_module/ai_container,
+ /obj/item/rig_module/power_sink,
+ /obj/item/rig_module/datajack,
+ /obj/item/rig_module/self_destruct,
+ /obj/item/rig_module/cooling_unit,
+ /obj/item/rig_module/maneuvering_jets
+ )
+
/obj/item/rig/light/stealth
name = "stealth suit control module"
suit_type = "stealth"
diff --git a/code/modules/clothing/spacesuits/rig/suits/merc.dm b/code/modules/clothing/spacesuits/rig/suits/merc.dm
index 859bd7c22f89b..46e15bed7e3a6 100644
--- a/code/modules/clothing/spacesuits/rig/suits/merc.dm
+++ b/code/modules/clothing/spacesuits/rig/suits/merc.dm
@@ -20,7 +20,7 @@
boot_type = /obj/item/clothing/shoes/magboots/rig/merc
initial_modules = list(
- /obj/item/rig_module/mounted/lcannon,
+ /obj/item/rig_module/mounted/energy/lcannon,
/obj/item/rig_module/vision/thermal,
/obj/item/rig_module/grenade_launcher,
/obj/item/rig_module/ai_container,
@@ -39,6 +39,24 @@
/obj/item/rig_module/cooling_unit
)
+///Variant for Operative gamemode
+/obj/item/rig/merc/ninja
+ cell_type = /obj/item/cell/hyper
+
+ initial_modules = list(
+ /obj/item/rig_module/mounted/energy/lcannon,
+ /obj/item/rig_module/vision,
+ /obj/item/rig_module/chem_dispenser/ninja,
+ /obj/item/rig_module/voice,
+ /obj/item/rig_module/grenade_launcher/ninja,
+ /obj/item/rig_module/ai_container,
+ /obj/item/rig_module/power_sink,
+ /obj/item/rig_module/datajack,
+ /obj/item/rig_module/self_destruct,
+ /obj/item/rig_module/cooling_unit,
+ /obj/item/rig_module/maneuvering_jets
+ )
+
/obj/item/clothing/gloves/rig/merc
item_flags = ITEM_FLAG_THICKMATERIAL | ITEM_FLAG_NOCUFFS | ITEM_FLAG_AIRTIGHT
siemens_coefficient = 0
diff --git a/code/modules/clothing/spacesuits/rig/suits/station.dm b/code/modules/clothing/spacesuits/rig/suits/station.dm
index 702ce27558e54..7b06fbf0712d5 100644
--- a/code/modules/clothing/spacesuits/rig/suits/station.dm
+++ b/code/modules/clothing/spacesuits/rig/suits/station.dm
@@ -92,7 +92,7 @@
/obj/item/rig/industrial/equipped
initial_modules = list(
- /obj/item/rig_module/mounted/plasmacutter,
+ /obj/item/rig_module/mounted/energy/plasmacutter,
/obj/item/rig_module/device/drill,
/obj/item/rig_module/device/orescanner,
/obj/item/rig_module/device/rcd,
@@ -171,7 +171,7 @@
/obj/item/rig/eva/equipped
initial_modules = list(
- /obj/item/rig_module/mounted/plasmacutter,
+ /obj/item/rig_module/mounted/energy/plasmacutter,
/obj/item/rig_module/maneuvering_jets,
/obj/item/rig_module/device/rcd,
/obj/item/rig_module/vision/meson,
@@ -209,7 +209,7 @@
initial_modules = list(
/obj/item/rig_module/ai_container,
/obj/item/rig_module/maneuvering_jets,
- /obj/item/rig_module/mounted/plasmacutter,
+ /obj/item/rig_module/mounted/energy/plasmacutter,
/obj/item/rig_module/device/rcd,
/obj/item/rig_module/device/flash,
/obj/item/rig_module/vision/meson,
@@ -437,7 +437,7 @@
/obj/item/rig_module/vision/sechud,
/obj/item/rig_module/maneuvering_jets,
/obj/item/rig_module/grenade_launcher,
- /obj/item/rig_module/mounted/taser,
+ /obj/item/rig_module/mounted/energy/taser,
/obj/item/rig_module/cooling_unit
)
diff --git a/code/modules/clothing/spacesuits/rig/suits/vox.dm b/code/modules/clothing/spacesuits/rig/suits/vox.dm
index a789486360aee..661ee648808e2 100644
--- a/code/modules/clothing/spacesuits/rig/suits/vox.dm
+++ b/code/modules/clothing/spacesuits/rig/suits/vox.dm
@@ -25,7 +25,7 @@
initial_modules = list(
/obj/item/rig_module/vision/meson,
- /obj/item/rig_module/mounted/plasmacutter,
+ /obj/item/rig_module/mounted/energy/plasmacutter,
/obj/item/rig_module/maneuvering_jets,
/obj/item/rig_module/power_sink,
/obj/item/rig_module/cooling_unit
diff --git a/code/modules/item_worth/worths_list.dm b/code/modules/item_worth/worths_list.dm
index 96e3406867a71..570b71ce0f8d1 100644
--- a/code/modules/item_worth/worths_list.dm
+++ b/code/modules/item_worth/worths_list.dm
@@ -523,9 +523,9 @@ var/global/list/worths = list(
/obj/item/inflatable = 30,
/obj/item/roller_bed = 80,
/obj/item/rig_module/grenade_launcher = 1500,
- /obj/item/rig_module/mounted/egun = 2100,
- /obj/item/rig_module/mounted/energy_blade = 2200,
- /obj/item/rig_module/mounted/lcannon = 4100,
+ /obj/item/rig_module/mounted/energy/egun = 2100,
+ /obj/item/rig_module/mounted/energy/energy_blade = 2200,
+ /obj/item/rig_module/mounted/energy/lcannon = 4100,
/obj/item/rig_module/stealth_field = 2500,
/obj/item/rig_module/teleporter = 3000,
/obj/item/rig_module/fabricator/energy_net = 1200,
diff --git a/code/modules/multiz/movement.dm b/code/modules/multiz/movement.dm
index c0f0dc47609f9..034e403a2d01a 100644
--- a/code/modules/multiz/movement.dm
+++ b/code/modules/multiz/movement.dm
@@ -234,13 +234,22 @@
visible_message("\The [src] falls through \the [landing]!", "You hear a whoosh of displaced air.")
else
visible_message("\The [src] slams into \the [landing]!", "You hear something slam into the deck.")
- if(fall_damage())
- for(var/mob/living/M in landing.contents)
- if(M == src)
+ var/obj/item/rig/rig = get_rig()
+ if (istype(rig))
+ for (var/obj/item/rig_module/actuators/A in rig.installed_modules)
+ if (A.active)
+ visible_message(
+ SPAN_NOTICE("\The [src]'s suit whirrs loudly as \the [rig] absorbs the fall!"),
+ SPAN_NOTICE("You hear an electric *whirr* right after the slam!")
+ )
+ if (fall_damage())
+ for (var/mob/living/M in landing.contents)
+ if (M == src)
continue
visible_message("\The [src] hits \the [M.name]!")
M.take_overall_damage(fall_damage())
+
/atom/movable/proc/fall_damage()
return 0
@@ -255,7 +264,14 @@
if(species && species.handle_fall_special(src, landing))
return
+ var/obj/item/rig/rig = get_rig()
+ if (istype(rig))
+ for (var/obj/item/rig_module/actuators/A in rig.installed_modules)
+ if (A.active && rig.check_power_cost(src, 50 KILOWATTS, A, 0))
+ return
+
..()
+
var/min_damage = 7
var/max_damage = 14
apply_damage(rand(min_damage, max_damage), DAMAGE_BRUTE, BP_HEAD, armor_pen = 50)
@@ -287,7 +303,27 @@
var/turf/T = get_turf(A)
var/turf/above = GetAbove(src)
+ var/obj/item/rig/rig = get_rig()
if(above && T.Adjacent(bound_overlay) && above.CanZPass(src, UP)) //Certain structures will block passage from below, others not
+
+ if (istype(rig)) ///RIG actuator jumps overcome gravity.
+ for (var/obj/item/rig_module/actuators/R in rig.installed_modules)
+ if (R.active && rig.check_power_cost(src, 50 KILOWATTS, A, 0))
+ visible_message(
+ SPAN_NOTICE("\The [src] prepares to leap upwards onto \the [A]!"),
+ SPAN_NOTICE("You crouch, preparing to leap upwards onto \the [A]!")
+ )
+ if (do_after(src, 2 SECONDS, A, DO_PUBLIC_UNIQUE))
+ if(src.incapacitated() || src.restrained())
+ to_chat(src, SPAN_WARNING("You are in no condition to activate your suit."))
+ return TRUE
+ visible_message(
+ SPAN_NOTICE("\The [src]'s suit whirrs aggressively as they leap up to \the [A]!"),
+ SPAN_NOTICE("You leap to \the [A]!")
+ )
+ src.Move(T)
+ return TRUE
+
if(loc.has_gravity() && !can_overcome_gravity())
return FALSE
diff --git a/code/modules/projectiles/ammunition/boxes.dm b/code/modules/projectiles/ammunition/boxes.dm
index 7e62fea70f24b..5429a10d4f35c 100644
--- a/code/modules/projectiles/ammunition/boxes.dm
+++ b/code/modules/projectiles/ammunition/boxes.dm
@@ -369,6 +369,20 @@
max_ammo = 8
multiple_sprites = TRUE
+/obj/item/ammo_magazine/box/minigun
+ name = "minigun box"
+ icon_state = "minigun"
+ origin_tech = list(TECH_COMBAT = 4)
+ mag_type = MAGAZINE
+ caliber = CALIBER_PISTOL_SMALL
+ matter = list(MATERIAL_STEEL = 10000)
+ ammo_type = /obj/item/ammo_casing/pistol/small
+ max_ammo = 200
+ multiple_sprites = TRUE
+
+/obj/item/ammo_magazine/box/minigun/empty
+ initial_ammo = 0
+
/obj/item/ammo_magazine/shotgunmag
name = "shotgun magazine"
desc = "A magazine for semi-automatic shotguns."
diff --git a/code/modules/projectiles/guns/energy/special.dm b/code/modules/projectiles/guns/energy/special.dm
index 88914fbd606cf..6947cd65d38cf 100644
--- a/code/modules/projectiles/guns/energy/special.dm
+++ b/code/modules/projectiles/guns/energy/special.dm
@@ -32,6 +32,15 @@
max_shots = 3
projectile_type = /obj/item/projectile/ion/small
+/obj/item/gun/energy/ionrifle/mounted
+ name = "mounted ion gun"
+ desc = "You should not see this. Call a developer."
+ fire_delay = 30
+ one_hand_penalty = 0
+ self_recharge = TRUE
+ use_external_power = TRUE
+ has_safety = FALSE
+
/obj/item/gun/energy/decloner
name = "biological demolecularisor"
desc = "A gun that discharges high amounts of controlled radiation to slowly break a target into component elements."
diff --git a/code/modules/projectiles/guns/projectile/automatic.dm b/code/modules/projectiles/guns/projectile/automatic.dm
index cef977869ffa8..81c9fef2a2efb 100644
--- a/code/modules/projectiles/guns/projectile/automatic.dm
+++ b/code/modules/projectiles/guns/projectile/automatic.dm
@@ -405,3 +405,63 @@
else
icon_state = "battlerifle-empty"
wielded_item_state = "battlerifle-wielded-empty"
+
+/obj/item/gun/projectile/automatic/minigun
+ name = "minigun"
+ desc = "A man-portable minigun lacking any branding on it. It fires small 7mm projectiles at an obscene rate of fire. Six barrels of fun."
+ icon = 'icons/obj/guns/minigun.dmi'
+ icon_state = "minigun"
+ item_state = "l6closedmag" /// Onmob is WIP sprite
+ w_class = ITEM_SIZE_HUGE
+ force = 15
+ caliber = CALIBER_PISTOL_SMALL
+ origin_tech = list(TECH_COMBAT = 8, TECH_MATERIAL = 4, TECH_ESOTERIC = 8)
+ slot_flags = 0
+ load_method = MAGAZINE
+ magazine_type = /obj/item/ammo_magazine/box/minigun
+ allowed_magazines = /obj/item/ammo_magazine/box/minigun
+ accuracy = 1
+ one_hand_penalty = 20
+ mag_insert_sound = 'sound/weapons/guns/interaction/lmg_magin.ogg'
+ mag_remove_sound = 'sound/weapons/guns/interaction/lmg_magout.ogg'
+ can_special_reload = FALSE
+
+ firemodes = list(
+ list(mode_name="full auto", can_autofire=1, burst=1, fire_delay=0.4, move_delay=1, burst_accuracy = list(0,-1,-2,-3,-4,-4,-4,-4,-4), dispersion = list(1.0, 1.0, 2.0, 2.0, 2.5), burst_delay = 1),
+ list(mode_name="long bursts", can_autofire=0, burst=10, fire_delay=0.2, burst_accuracy = list(0,-1,-2,-3,-4,-8,-8,-16,-16), dispersion = list(1.0, 2.0, 3.0, 3.0, 4.0), burst_delay = 1)
+ )
+
+/obj/item/gun/projectile/automatic/minigun/mounted
+ name = "mounted minigun"
+ accuracy = 0 /// Less accurate than a full-sized minigun and only fires in bursts, but has no one-hand penalty.
+ one_hand_penalty = 0
+ has_safety = FALSE
+ auto_eject = TRUE
+ auto_eject_sound = 'sound/weapons/smg_empty_alarm.ogg'
+
+ firemodes = list(
+ list(mode_name="long bursts", can_autofire=0, burst=5, fire_delay=0.2, burst_accuracy = list(0,-1,-2,-3,-4,-4,-4,-4,-4), dispersion = list(1.0, 1.0, 2.0, 2.0, 2.5), burst_delay = 1),
+ list(mode_name="longer bursts", can_autofire=0, burst=10, fire_delay=0.2, burst_accuracy = list(0,-1,-2,-3,-4,-8,-8,-16,-16), dispersion = list(1.0, 2.0, 3.0, 3.0, 4.0), burst_delay = 1)
+ )
+
+/obj/item/gun/projectile/automatic/minigun/mounted/load_ammo(obj/item/A, mob/user)
+ var/obj/item/rig/rig = get_rig()
+ if (istype(rig))
+ if (!rig.offline && rig.suit_is_deployed())
+ user.visible_message(SPAN_NOTICE("\The [user] begins the slow process of re-arming \The [src]."), range = 4)
+ do_after(user, 10 SECONDS, src, DO_PUBLIC_UNIQUE | DO_BAR_OVER_USER)
+ ..()
+ else
+ to_chat(user, SPAN_DANGER("You can't reload your minigun without deploying your hardsuit!"))
+ return
+
+/obj/item/gun/projectile/automatic/minigun/mounted/unload_ammo(mob/user, allow_dump=0)
+ var/obj/item/rig/rig = get_rig()
+ if (istype(rig))
+ if (!rig.offline && rig.suit_is_deployed())
+ user.visible_message(SPAN_NOTICE("\The [user] begins ejecting the magazine from \The [src]."), range = 4)
+ do_after(user, 2 SECONDS, src, DO_PUBLIC_UNIQUE | DO_BAR_OVER_USER)
+ ..()
+ else
+ to_chat(user, SPAN_DANGER("You can't unload your minigun without deploying your hardsuit!"))
+ return
diff --git a/code/modules/research/designs/designs_mechfab.dm b/code/modules/research/designs/designs_mechfab.dm
index 68008854d6dce..1f7e5ed563682 100644
--- a/code/modules/research/designs/designs_mechfab.dm
+++ b/code/modules/research/designs/designs_mechfab.dm
@@ -748,7 +748,7 @@
/datum/design/item/mechfab/rig/plasmacutter
category = "Hardsuits"
name = "Plasma Cutter"
- build_path = /obj/item/rig_module/mounted/plasmacutter
+ build_path = /obj/item/rig_module/mounted/energy/plasmacutter
materials = list(MATERIAL_STEEL = 2000, MATERIAL_GLASS = 1000, MATERIAL_PLASTIC = 1000, MATERIAL_GOLD = 700, MATERIAL_PHORON = 500)
req_tech = list(TECH_MATERIAL = 4, TECH_PHORON = 3, TECH_ENGINEERING = 6, TECH_COMBAT = 4)
id = "rig_plasmacutter"
@@ -829,7 +829,7 @@
/datum/design/item/mechfab/rig/taser
category = "Hardsuits"
name = "Electrolaser"
- build_path = /obj/item/rig_module/mounted/taser
+ build_path = /obj/item/rig_module/mounted/energy/taser
materials = list(MATERIAL_STEEL = 4000, MATERIAL_PLASTIC = 2500, MATERIAL_GLASS = 2000, MATERIAL_GOLD = 1000)
req_tech = list(TECH_POWER = 5, TECH_COMBAT = 5, TECH_ENGINEERING = 6)
id = "rig_taser"
@@ -838,7 +838,7 @@
/datum/design/item/mechfab/rig/egun
category = "Hardsuits"
name = "Energy Gun"
- build_path = /obj/item/rig_module/mounted/egun
+ build_path = /obj/item/rig_module/mounted/energy/egun
materials = list(MATERIAL_STEEL = 6000, MATERIAL_GLASS = 3000, MATERIAL_PLASTIC = 2500, MATERIAL_GOLD = 2000, MATERIAL_SILVER = 1000)
req_tech = list(TECH_POWER = 6, TECH_COMBAT = 6, TECH_ENGINEERING = 6)
id = "rig_egun"
diff --git a/code/modules/shuttles/antagonist.dm b/code/modules/shuttles/antagonist.dm
index e7542c6b595d7..6fafc2920fa85 100644
--- a/code/modules/shuttles/antagonist.dm
+++ b/code/modules/shuttles/antagonist.dm
@@ -16,5 +16,4 @@
/obj/machinery/computer/shuttle_control/multi/ninja
name = "stealth shuttle control console"
req_access = list(access_syndicate)
- shuttle_tag = "Ninja"
-
+ shuttle_tag = "Tremulous Intent"
diff --git a/icons/mob/onmob/onmob_feet.dmi b/icons/mob/onmob/onmob_feet.dmi
index c7296b49103f6..3b9add2da9a79 100644
Binary files a/icons/mob/onmob/onmob_feet.dmi and b/icons/mob/onmob/onmob_feet.dmi differ
diff --git a/icons/mob/onmob/onmob_hands.dmi b/icons/mob/onmob/onmob_hands.dmi
index 2021f3a7e8ee2..43964e3ce8f4a 100644
Binary files a/icons/mob/onmob/onmob_hands.dmi and b/icons/mob/onmob/onmob_hands.dmi differ
diff --git a/icons/mob/onmob/onmob_head.dmi b/icons/mob/onmob/onmob_head.dmi
index 2670d2d7b401d..2a34029b30293 100644
Binary files a/icons/mob/onmob/onmob_head.dmi and b/icons/mob/onmob/onmob_head.dmi differ
diff --git a/icons/mob/onmob/onmob_rig_back.dmi b/icons/mob/onmob/onmob_rig_back.dmi
index c91f57bd98c99..075bc824abfb0 100644
Binary files a/icons/mob/onmob/onmob_rig_back.dmi and b/icons/mob/onmob/onmob_rig_back.dmi differ
diff --git a/icons/mob/onmob/onmob_suit.dmi b/icons/mob/onmob/onmob_suit.dmi
index 89d35b5fcbee4..71331bc146c25 100644
Binary files a/icons/mob/onmob/onmob_suit.dmi and b/icons/mob/onmob/onmob_suit.dmi differ
diff --git a/icons/obj/clothing/obj_feet.dmi b/icons/obj/clothing/obj_feet.dmi
index d9958f9427fc2..18d7df3ed1928 100644
Binary files a/icons/obj/clothing/obj_feet.dmi and b/icons/obj/clothing/obj_feet.dmi differ
diff --git a/icons/obj/clothing/obj_hands.dmi b/icons/obj/clothing/obj_hands.dmi
index ef3ae3ba91d39..09b807a538398 100644
Binary files a/icons/obj/clothing/obj_hands.dmi and b/icons/obj/clothing/obj_hands.dmi differ
diff --git a/icons/obj/clothing/obj_head.dmi b/icons/obj/clothing/obj_head.dmi
index 87b22c93b7a7e..479862140e9ea 100644
Binary files a/icons/obj/clothing/obj_head.dmi and b/icons/obj/clothing/obj_head.dmi differ
diff --git a/icons/obj/clothing/obj_suit.dmi b/icons/obj/clothing/obj_suit.dmi
index f38e751544bf4..ffdf5c3725673 100644
Binary files a/icons/obj/clothing/obj_suit.dmi and b/icons/obj/clothing/obj_suit.dmi differ
diff --git a/icons/obj/guns/minigun.dmi b/icons/obj/guns/minigun.dmi
new file mode 100644
index 0000000000000..5f82b8f554b91
Binary files /dev/null and b/icons/obj/guns/minigun.dmi differ
diff --git a/icons/obj/rig_modules.dmi b/icons/obj/rig_modules.dmi
index c650d52811850..63f03d33849eb 100644
Binary files a/icons/obj/rig_modules.dmi and b/icons/obj/rig_modules.dmi differ
diff --git a/icons/obj/weapons/ammo.dmi b/icons/obj/weapons/ammo.dmi
index f0ee3b3bb7ce9..0dfd534b19cf1 100644
Binary files a/icons/obj/weapons/ammo.dmi and b/icons/obj/weapons/ammo.dmi differ
diff --git a/maps/antag_spawn/ert/ert_base.dmm b/maps/antag_spawn/ert/ert_base.dmm
index 3b17c4ed1cc41..dad074d2ad553 100644
--- a/maps/antag_spawn/ert/ert_base.dmm
+++ b/maps/antag_spawn/ert/ert_base.dmm
@@ -1092,8 +1092,8 @@
/area/map_template/rescue_base/base)
"cp" = (
/obj/structure/table/rack,
-/obj/item/rig_module/mounted/taser,
-/obj/item/rig_module/mounted/taser,
+/obj/item/rig_module/mounted/energy/taser,
+/obj/item/rig_module/mounted/energy/taser,
/obj/item/rig_module/maneuvering_jets,
/obj/item/rig_module/maneuvering_jets,
/obj/item/rig_module/chem_dispenser/injector,
@@ -1138,12 +1138,12 @@
/area/map_template/rescue_base/base)
"cs" = (
/obj/structure/table/rack,
-/obj/item/rig_module/mounted/taser,
-/obj/item/rig_module/mounted/taser,
+/obj/item/rig_module/mounted/energy/taser,
+/obj/item/rig_module/mounted/energy/taser,
/obj/item/rig_module/maneuvering_jets,
/obj/item/rig_module/maneuvering_jets,
-/obj/item/rig_module/mounted/egun,
-/obj/item/rig_module/mounted/egun,
+/obj/item/rig_module/mounted/energy/egun,
+/obj/item/rig_module/mounted/energy/egun,
/obj/item/rig_module/chem_dispenser/combat,
/obj/item/rig_module/chem_dispenser/combat,
/obj/item/rig_module/grenade_launcher,
@@ -1151,7 +1151,6 @@
/obj/item/rig_module/vision/sechud,
/obj/item/rig_module/device/flash,
/obj/item/rig_module/device/flash,
-/obj/item/rig_module/mounted,
/obj/structure/window/reinforced/crescent{
dir = 1
},
@@ -1559,7 +1558,7 @@
"cY" = (
/obj/structure/window/reinforced/crescent,
/obj/structure/table/rack,
-/obj/item/rig_module/mounted/taser,
+/obj/item/rig_module/mounted/energy/taser,
/obj/item/rig_module/vision/nvg,
/obj/item/rig_module/device/flash,
/obj/structure/window/reinforced/crescent{
@@ -1573,14 +1572,14 @@
"cZ" = (
/obj/structure/window/reinforced/crescent,
/obj/structure/table/rack,
-/obj/item/rig_module/mounted/taser,
-/obj/item/rig_module/mounted/taser,
+/obj/item/rig_module/mounted/energy/taser,
+/obj/item/rig_module/mounted/energy/taser,
/obj/item/rig_module/maneuvering_jets,
/obj/item/rig_module/maneuvering_jets,
/obj/item/rig_module/device/drill,
/obj/item/rig_module/device/drill,
-/obj/item/rig_module/mounted/plasmacutter,
-/obj/item/rig_module/mounted/plasmacutter,
+/obj/item/rig_module/mounted/energy/plasmacutter,
+/obj/item/rig_module/mounted/energy/plasmacutter,
/obj/item/rig_module/device/rcd,
/obj/item/rig_module/device/rcd,
/obj/item/rig_module/vision/meson,
diff --git a/maps/antag_spawn/ninja/ninja.dm b/maps/antag_spawn/ninja/ninja.dm
index 077061564fcf1..9dac650456de8 100644
--- a/maps/antag_spawn/ninja/ninja.dm
+++ b/maps/antag_spawn/ninja/ninja.dm
@@ -1,5 +1,5 @@
/datum/map_template/ruin/antag_spawn/ninja
- name = "Ninja Base"
+ name = "Operative Base"
suffixes = list("ninja/ninja_base.dmm")
shuttles_to_initialise = list(/datum/shuttle/autodock/multi/antag/ninja)
apc_test_exempt_areas = list(
@@ -7,21 +7,19 @@
)
/datum/shuttle/autodock/multi/antag/ninja
- name = "Ninja"
+ name = "Tremulous Intent"
defer_initialisation = TRUE
warmup_time = 0
- destination_tags = list(
- "nav_ninja_start"
- )
shuttle_area = /area/map_template/ninja_dojo/start
current_location = "nav_ninja_start"
landmark_transition = "nav_ninja_transition"
announcer = "Proximity Sensor Array"
+ home_waypoint = "nav_ninja_start"
arrival_message = "Attention, anomalous sensor reading detected entering vessel proximity."
departure_message = "Attention, anomalous sensor reading detected leaving vessel proximity."
/obj/effect/shuttle_landmark/ninja/start
- name = "Clan Dojo"
+ name = "Operations Bunker"
landmark_tag = "nav_ninja_start"
/obj/effect/shuttle_landmark/ninja/internim
@@ -30,18 +28,18 @@
// Areas
/area/map_template/ninja_dojo
- name = "\improper Ninja Base"
+ name = "\improper Operative Base"
icon_state = "green"
requires_power = 0
- dynamic_lighting = 1
+ dynamic_lighting = TRUE
area_flags = AREA_FLAG_RAD_SHIELDED | AREA_FLAG_ION_SHIELDED
req_access = list(access_syndicate)
/area/map_template/ninja_dojo/dojo
- name = "\improper Clan Dojo"
+ name = "\improper Operations Bunker"
dynamic_lighting = 0
/area/map_template/ninja_dojo/start
- name = "\improper Clan Dojo"
+ name = "\improper Operations Bunker"
icon_state = "shuttlered"
- base_turf = /turf/simulated/floor/plating
\ No newline at end of file
+ base_turf = /turf/simulated/floor/plating
diff --git a/maps/antag_spawn/ninja/ninja_base.dmm b/maps/antag_spawn/ninja/ninja_base.dmm
index f8a3cb3694269..2d10aea7a2e19 100644
--- a/maps/antag_spawn/ninja/ninja_base.dmm
+++ b/maps/antag_spawn/ninja/ninja_base.dmm
@@ -1,3368 +1,220 @@
-//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
-"ac" = (
-/turf/unsimulated/floor{
- icon = 'icons/turf/snow.dmi';
- icon_state = "snowwhite"
- },
-/area/map_template/ninja_dojo/dojo)
-"ad" = (
-/turf/unsimulated/floor{
- icon_state = "snow"
- },
-/area/map_template/ninja_dojo/dojo)
-"ae" = (
-/obj/effect/floor_decal/asteroid,
-/turf/unsimulated/floor{
- icon_state = "snow"
- },
-/area/map_template/ninja_dojo/dojo)
-"af" = (
-/obj/effect/floor_decal/asteroid,
-/turf/unsimulated/floor{
- icon = 'icons/turf/snow.dmi';
- icon_state = "snowwhite"
- },
-/area/map_template/ninja_dojo/dojo)
-"ag" = (
-/obj/structure/flora/tree/dead,
-/turf/unsimulated/floor{
- icon_state = "snow"
- },
-/area/map_template/ninja_dojo/dojo)
-"ah" = (
-/obj/structure/flora/tree/pine,
-/turf/unsimulated/floor{
- icon_state = "snow"
- },
-/area/map_template/ninja_dojo/dojo)
-"ai" = (
-/obj/structure/flora/tree/dead,
-/turf/unsimulated/floor{
- icon = 'icons/turf/snow.dmi';
- icon_state = "snowwhite"
- },
-/area/map_template/ninja_dojo/dojo)
-"aj" = (
-/turf/simulated/wall/wood,
-/area/map_template/ninja_dojo/dojo)
-"ak" = (
-/obj/structure/table/glass,
-/obj/item/storage/firstaid/surgery,
-/turf/unsimulated/floor{
- icon_state = "white"
- },
-/area/map_template/ninja_dojo/dojo)
-"al" = (
-/obj/machinery/optable,
-/turf/unsimulated/floor{
- icon_state = "white"
- },
-/area/map_template/ninja_dojo/dojo)
-"am" = (
-/obj/structure/closet/medical_wall{
- pixel_y = 32
- },
-/obj/item/tank/anesthetic,
-/obj/item/clothing/mask/breath/medical,
-/obj/item/clothing/gloves/latex,
-/obj/item/clothing/mask/surgical,
-/obj/structure/hygiene/sink{
- dir = 1;
- pixel_y = 16
- },
-/obj/item/reagent_containers/glass/bottle/stoxin,
-/obj/item/reagent_containers/glass/bottle/stoxin,
-/obj/item/reagent_containers/syringe,
-/turf/unsimulated/floor{
- icon_state = "white"
- },
-/area/map_template/ninja_dojo/dojo)
-"an" = (
-/obj/structure/table/glass,
-/obj/item/reagent_containers/ivbag/nanoblood,
-/obj/item/reagent_containers/ivbag/blood/human/oneg,
-/obj/item/reagent_containers/ivbag/blood/human/oneg,
-/obj/item/reagent_containers/ivbag/blood/skrell/oneg,
-/obj/item/reagent_containers/ivbag/blood/skrell/oneg,
-/obj/item/reagent_containers/ivbag/blood/unathi/oneg,
-/obj/item/reagent_containers/ivbag/blood/unathi/oneg,
-/obj/structure/window/reinforced/crescent{
- dir = 4
- },
-/turf/unsimulated/floor{
- icon_state = "white"
- },
-/area/map_template/ninja_dojo/dojo)
-"ao" = (
-/obj/machinery/atmospherics/unary/cryo_cell,
-/turf/unsimulated/floor{
- icon_state = "white"
- },
-/area/map_template/ninja_dojo/dojo)
-"ap" = (
-/obj/machinery/atmospherics/portables_connector,
-/obj/machinery/portable_atmospherics/canister/oxygen/prechilled,
-/turf/unsimulated/floor{
- icon_state = "white"
- },
-/area/map_template/ninja_dojo/dojo)
-"aq" = (
-/obj/item/reagent_containers/glass/beaker/cryoxadone,
-/obj/structure/table/glass,
-/turf/unsimulated/floor{
- icon_state = "white"
- },
-/area/map_template/ninja_dojo/dojo)
-"ar" = (
-/obj/structure/table/glass,
-/obj/item/reagent_containers/spray/sterilizine,
-/obj/item/reagent_containers/spray/cleaner,
-/turf/unsimulated/floor{
- icon_state = "white"
- },
-/area/map_template/ninja_dojo/dojo)
-"as" = (
-/turf/unsimulated/floor{
- icon_state = "white"
- },
-/area/map_template/ninja_dojo/dojo)
-"at" = (
-/obj/structure/table/glass,
-/obj/item/storage/firstaid/o2{
- pixel_x = 3;
- pixel_y = 3
- },
-/obj/item/storage/firstaid/fire{
- pixel_x = 1
- },
-/obj/structure/window/reinforced/crescent{
- dir = 4
- },
-/turf/unsimulated/floor{
- icon_state = "white"
- },
-/area/map_template/ninja_dojo/dojo)
-"au" = (
-/obj/machinery/atmospherics/pipe/simple/hidden{
- dir = 5
- },
-/turf/unsimulated/floor{
- icon_state = "white"
- },
-/area/map_template/ninja_dojo/dojo)
-"av" = (
-/obj/machinery/atmospherics/pipe/simple/hidden{
- dir = 9
- },
-/turf/unsimulated/floor{
- icon_state = "white"
- },
-/area/map_template/ninja_dojo/dojo)
-"aw" = (
-/obj/structure/table/glass,
-/obj/item/storage/box/beakers,
-/turf/unsimulated/floor{
- icon_state = "white"
- },
-/area/map_template/ninja_dojo/dojo)
-"ax" = (
-/obj/machinery/computer/teleporter,
-/turf/unsimulated/floor{
- icon_state = "plating";
- name = "plating"
- },
-/area/map_template/ninja_dojo/dojo)
-"ay" = (
-/obj/machinery/tele_projector,
-/turf/unsimulated/floor{
- icon_state = "plating";
- name = "plating"
- },
-/area/map_template/ninja_dojo/dojo)
-"az" = (
-/obj/machinery/tele_pad,
-/obj/effect/floor_decal/industrial/hatch/yellow,
-/turf/unsimulated/floor{
- icon_state = "plating";
- name = "plating"
- },
-/area/map_template/ninja_dojo/dojo)
-"aA" = (
-/obj/effect/wingrille_spawn/reinforced/crescent,
-/turf/unsimulated/floor{
- icon_state = "plating";
- name = "plating"
- },
-/area/map_template/ninja_dojo/dojo)
-"aB" = (
-/obj/structure/table/glass,
-/obj/item/reagent_containers/syringe/antiviral,
-/obj/item/reagent_containers/syringe/antiviral,
-/obj/item/stack/medical/advanced/bruise_pack,
-/turf/unsimulated/floor{
- icon_state = "white"
- },
-/area/map_template/ninja_dojo/dojo)
-"aC" = (
-/obj/structure/table/glass,
-/obj/item/storage/firstaid/toxin{
- pixel_x = 3;
- pixel_y = 3
- },
-/obj/item/storage/firstaid/adv{
- pixel_x = 1
- },
-/obj/item/storage/firstaid/radiation,
-/obj/structure/window/reinforced/crescent{
- dir = 4
- },
-/turf/unsimulated/floor{
- icon_state = "white"
- },
-/area/map_template/ninja_dojo/dojo)
-"aD" = (
-/obj/machinery/chemical_dispenser/ert,
-/obj/item/reagent_containers/glass/beaker/large,
-/turf/unsimulated/floor{
- icon_state = "white"
- },
-/area/map_template/ninja_dojo/dojo)
-"aE" = (
-/obj/effect/floor_decal/industrial/warning{
- dir = 1
- },
-/turf/unsimulated/floor{
- icon_state = "dark"
- },
-/area/map_template/ninja_dojo/dojo)
-"aF" = (
-/obj/effect/floor_decal/industrial/warning{
- dir = 1
- },
-/obj/item/device/radio/intercom/syndicate{
- dir = 8;
- pixel_x = 22
- },
-/turf/unsimulated/floor{
- icon_state = "dark"
- },
-/area/map_template/ninja_dojo/dojo)
-"aG" = (
-/turf/unsimulated/floor{
- dir = 8;
- icon_state = "wood"
- },
-/area/map_template/ninja_dojo/dojo)
-"aH" = (
-/obj/structure/flora/tree/pine,
-/turf/unsimulated/floor{
- icon = 'icons/turf/snow.dmi';
- icon_state = "snowwhite"
- },
-/area/map_template/ninja_dojo/dojo)
-"aI" = (
-/obj/structure/iv_stand,
-/obj/structure/window/reinforced/crescent,
-/turf/unsimulated/floor{
- icon_state = "white"
- },
-/area/map_template/ninja_dojo/dojo)
-"aJ" = (
-/obj/structure/table/glass,
-/obj/item/storage/firstaid/regular,
-/obj/item/storage/firstaid/combat,
-/obj/structure/window/reinforced/crescent{
- dir = 4
- },
-/obj/structure/window/reinforced/crescent,
-/turf/unsimulated/floor{
- icon_state = "white"
- },
-/area/map_template/ninja_dojo/dojo)
-"aK" = (
-/obj/effect/floor_decal/spline/fancy/wood/corner,
-/turf/unsimulated/floor{
- icon_state = "white"
- },
-/area/map_template/ninja_dojo/dojo)
-"aL" = (
-/obj/effect/floor_decal/spline/fancy/wood,
-/turf/unsimulated/floor{
- icon_state = "white"
- },
-/area/map_template/ninja_dojo/dojo)
-"aM" = (
-/obj/effect/floor_decal/spline/fancy/wood,
-/obj/machinery/chemical_dispenser/full,
-/obj/item/reagent_containers/glass/beaker/large,
-/turf/unsimulated/floor{
- icon_state = "white"
- },
-/area/map_template/ninja_dojo/dojo)
-"aN" = (
-/obj/machinery/door/morgue{
- name = "Teleporter"
- },
-/turf/unsimulated/floor{
- icon_state = "dark"
- },
-/area/map_template/ninja_dojo/dojo)
-"aO" = (
-/obj/effect/floor_decal/carpet/blue{
- dir = 8
- },
-/obj/effect/floor_decal/carpet/blue{
- dir = 1
- },
-/obj/effect/floor_decal/carpet/blue{
- dir = 9
- },
-/obj/effect/landmark{
- name = "ninjastart"
- },
-/turf/unsimulated/floor{
- dir = 8;
- icon_state = "bcarpet"
- },
-/area/map_template/ninja_dojo/dojo)
-"aP" = (
-/obj/effect/floor_decal/carpet/blue{
- dir = 1
- },
-/turf/unsimulated/floor{
- dir = 8;
- icon_state = "bcarpet"
- },
-/area/map_template/ninja_dojo/dojo)
-"aQ" = (
-/obj/effect/floor_decal/carpet/blue{
- dir = 1
- },
-/obj/effect/floor_decal/carpet/blue{
- dir = 4
- },
-/obj/effect/floor_decal/carpet/blue{
- dir = 5
- },
-/turf/unsimulated/floor{
- dir = 8;
- icon_state = "bcarpet"
- },
-/area/map_template/ninja_dojo/dojo)
-"aR" = (
-/obj/machinery/bodyscanner{
- dir = 8
- },
-/turf/unsimulated/floor{
- icon_state = "white"
- },
-/area/map_template/ninja_dojo/dojo)
-"aS" = (
-/obj/machinery/body_scanconsole{
- dir = 8
- },
-/turf/unsimulated/floor{
- icon_state = "white"
- },
-/area/map_template/ninja_dojo/dojo)
-"aT" = (
-/obj/effect/floor_decal/spline/fancy/wood{
- dir = 4
- },
-/turf/unsimulated/floor{
- icon_state = "white"
- },
-/area/map_template/ninja_dojo/dojo)
-"aU" = (
-/obj/structure/flora/pottedplant/bamboo,
-/turf/unsimulated/floor{
- dir = 8;
- icon_state = "wood"
- },
-/area/map_template/ninja_dojo/dojo)
-"aV" = (
-/obj/structure/flora/pottedplant/orientaltree,
-/turf/unsimulated/floor{
- dir = 8;
- icon_state = "wood"
- },
-/area/map_template/ninja_dojo/dojo)
-"aW" = (
-/obj/effect/floor_decal/carpet/blue{
- dir = 8
- },
-/turf/unsimulated/floor{
- dir = 8;
- icon_state = "bcarpet"
- },
-/area/map_template/ninja_dojo/dojo)
-"aX" = (
-/obj/effect/floor_decal/chapel{
- dir = 1
- },
-/turf/unsimulated/floor{
- dir = 8;
- icon_state = "bcarpet"
- },
-/area/map_template/ninja_dojo/dojo)
-"aY" = (
-/obj/effect/floor_decal/chapel{
- dir = 4
- },
-/turf/unsimulated/floor{
- dir = 8;
- icon_state = "bcarpet"
- },
-/area/map_template/ninja_dojo/dojo)
-"aZ" = (
-/obj/effect/floor_decal/carpet/blue{
- dir = 4
- },
-/turf/unsimulated/floor{
- dir = 8;
- icon_state = "bcarpet"
- },
-/area/map_template/ninja_dojo/dojo)
-"ba" = (
-/obj/machinery/door/morgue{
- name = "Medical"
- },
-/turf/unsimulated/floor{
- dir = 8;
- icon_state = "wood"
- },
-/area/map_template/ninja_dojo/dojo)
-"bb" = (
-/obj/item/device/radio/intercom/syndicate{
- dir = 1;
- pixel_y = -22
- },
-/turf/unsimulated/floor{
- dir = 8;
- icon_state = "wood"
- },
-/area/map_template/ninja_dojo/dojo)
-"bc" = (
-/obj/machinery/door/morgue{
- name = "Dojo"
- },
-/turf/unsimulated/floor{
- dir = 8;
- icon_state = "wood"
- },
-/area/map_template/ninja_dojo/dojo)
-"bd" = (
-/obj/effect/floor_decal/chapel{
- dir = 8
- },
-/turf/unsimulated/floor{
- dir = 8;
- icon_state = "bcarpet"
- },
-/area/map_template/ninja_dojo/dojo)
-"be" = (
-/obj/effect/floor_decal/chapel,
-/turf/unsimulated/floor{
- dir = 8;
- icon_state = "bcarpet"
- },
-/area/map_template/ninja_dojo/dojo)
-"bf" = (
-/obj/effect/floor_decal/spline/fancy/wood,
-/obj/machinery/sleeper{
- dir = 4
- },
-/turf/unsimulated/floor{
- icon_state = "white"
- },
-/area/map_template/ninja_dojo/dojo)
-"bg" = (
-/obj/effect/floor_decal/spline/fancy/wood{
- dir = 6
- },
-/turf/unsimulated/floor{
- icon_state = "white"
- },
-/area/map_template/ninja_dojo/dojo)
-"bh" = (
-/obj/machinery/door/unpowered/simple/wood,
-/turf/unsimulated/floor{
- dir = 8;
- icon_state = "wood"
- },
-/area/map_template/ninja_dojo/dojo)
-"bi" = (
-/obj/effect/floor_decal/carpet/blue,
-/obj/effect/floor_decal/carpet/blue{
- dir = 8
- },
-/obj/effect/floor_decal/carpet/blue{
- dir = 10
- },
-/turf/unsimulated/floor{
- dir = 8;
- icon_state = "bcarpet"
- },
-/area/map_template/ninja_dojo/dojo)
-"bj" = (
-/obj/effect/floor_decal/carpet/blue,
-/turf/unsimulated/floor{
- dir = 8;
- icon_state = "bcarpet"
- },
-/area/map_template/ninja_dojo/dojo)
-"bk" = (
-/obj/effect/floor_decal/carpet/blue{
- dir = 4
- },
-/obj/effect/floor_decal/carpet/blue,
-/obj/effect/floor_decal/carpet/blue{
- dir = 6
- },
-/obj/effect/landmark{
- name = "ninjastart"
- },
-/turf/unsimulated/floor{
- dir = 8;
- icon_state = "bcarpet"
- },
-/area/map_template/ninja_dojo/dojo)
-"bl" = (
-/obj/structure/table/rack,
-/obj/item/storage/belt/medical,
-/turf/unsimulated/floor{
- dir = 8;
- icon_state = "wood"
- },
-/area/map_template/ninja_dojo/dojo)
-"bm" = (
-/obj/item/device/radio/intercom/syndicate{
- dir = 8;
- pixel_x = 22
- },
-/turf/unsimulated/floor{
- dir = 8;
- icon_state = "wood"
- },
-/area/map_template/ninja_dojo/dojo)
-"bn" = (
-/turf/unsimulated/floor{
- icon = 'icons/turf/snow.dmi';
- icon_state = "snowplating"
- },
-/area/map_template/ninja_dojo/dojo)
-"bo" = (
-/obj/effect/floor_decal/snow,
-/turf/unsimulated/floor{
- icon = 'icons/turf/snow.dmi';
- icon_state = "snowplating"
- },
-/area/map_template/ninja_dojo/dojo)
-"bp" = (
-/obj/item/device/radio/intercom/syndicate{
- dir = 4;
- pixel_x = -22
- },
-/turf/unsimulated/floor{
- dir = 8;
- icon_state = "wood"
- },
-/area/map_template/ninja_dojo/dojo)
-"bq" = (
-/obj/structure/table/rack,
-/obj/item/clothing/accessory/storage/white_vest,
-/turf/unsimulated/floor{
- dir = 8;
- icon_state = "wood"
- },
-/area/map_template/ninja_dojo/dojo)
-"br" = (
-/obj/structure/table/rack,
-/obj/item/defibrillator/compact/combat/loaded,
-/turf/unsimulated/floor{
- dir = 8;
- icon_state = "wood"
- },
-/area/map_template/ninja_dojo/dojo)
-"bs" = (
-/obj/structure/table/rack,
-/obj/item/toy/katana{
- name = "practice katana"
- },
-/turf/unsimulated/floor{
- dir = 8;
- icon_state = "wood"
- },
-/area/map_template/ninja_dojo/dojo)
-"bt" = (
-/obj/structure/flora/ausbushes/palebush,
-/turf/unsimulated/floor{
- icon_state = "snow"
- },
-/area/map_template/ninja_dojo/dojo)
-"bu" = (
-/obj/structure/bookcase,
-/turf/unsimulated/floor{
- dir = 8;
- icon_state = "wood"
- },
-/area/map_template/ninja_dojo/dojo)
-"bv" = (
-/obj/structure/flora/pottedplant/flower,
-/turf/unsimulated/floor{
- dir = 8;
- icon_state = "wood"
- },
-/area/map_template/ninja_dojo/dojo)
-"bw" = (
-/obj/structure/table/woodentable,
-/obj/machinery/chemical_dispenser/bar_soft/full,
-/turf/unsimulated/floor{
- dir = 8;
- icon_state = "wood"
- },
-/area/map_template/ninja_dojo/dojo)
-"bx" = (
-/obj/structure/table/woodentable,
-/obj/item/storage/box/glasses,
-/turf/unsimulated/floor{
- dir = 8;
- icon_state = "wood"
- },
-/area/map_template/ninja_dojo/dojo)
-"by" = (
-/obj/structure/table/woodentable,
-/obj/item/storage/box/donkpocket_premium,
-/turf/unsimulated/floor{
- dir = 8;
- icon_state = "wood"
- },
-/area/map_template/ninja_dojo/dojo)
-"bz" = (
-/obj/structure/table/woodentable,
-/obj/machinery/microwave,
-/turf/unsimulated/floor{
- dir = 8;
- icon_state = "wood"
- },
-/area/map_template/ninja_dojo/dojo)
-"bA" = (
-/obj/effect/floor_decal/carpet{
- dir = 8
- },
-/obj/effect/floor_decal/carpet{
- dir = 1
- },
-/obj/effect/floor_decal/carpet{
- dir = 9
- },
-/turf/unsimulated/floor{
- icon_state = "carpet"
- },
-/area/map_template/ninja_dojo/dojo)
-"bB" = (
-/obj/effect/floor_decal/carpet{
- dir = 1
- },
-/turf/unsimulated/floor{
- icon_state = "carpet"
- },
-/area/map_template/ninja_dojo/dojo)
-"bC" = (
-/obj/effect/floor_decal/carpet{
- dir = 4
- },
-/obj/effect/floor_decal/carpet{
- dir = 1
- },
-/obj/effect/floor_decal/carpet{
- dir = 5
- },
-/turf/unsimulated/floor{
- icon_state = "carpet"
- },
-/area/map_template/ninja_dojo/dojo)
-"bD" = (
-/turf/unsimulated/floor{
- icon_state = "freezerfloor"
- },
-/area/map_template/ninja_dojo/dojo)
-"bE" = (
-/obj/effect/floor_decal/snow,
-/turf/unsimulated/floor{
- icon_state = "freezerfloor"
- },
-/area/map_template/ninja_dojo/dojo)
-"bF" = (
-/obj/structure/table/woodentable,
-/obj/item/reagent_containers/food/drinks/dry_ramen,
-/turf/unsimulated/floor{
- dir = 8;
- icon_state = "wood"
- },
-/area/map_template/ninja_dojo/dojo)
-"bG" = (
-/obj/effect/floor_decal/carpet{
- dir = 8
- },
-/turf/unsimulated/floor{
- icon_state = "carpet"
- },
-/area/map_template/ninja_dojo/dojo)
-"bH" = (
-/turf/unsimulated/floor{
- icon_state = "carpet"
- },
-/area/map_template/ninja_dojo/dojo)
-"bI" = (
-/obj/effect/floor_decal/carpet{
- dir = 4
- },
-/turf/unsimulated/floor{
- icon_state = "carpet"
- },
-/area/map_template/ninja_dojo/dojo)
-"bJ" = (
-/obj/effect/floor_decal/snow,
-/turf/unsimulated/floor{
- icon = 'icons/turf/snow.dmi';
- icon_state = "ice"
- },
-/area/map_template/ninja_dojo/dojo)
-"bK" = (
-/obj/machinery/door/morgue{
- name = "Sleeping Chamber"
- },
-/turf/unsimulated/floor{
- dir = 8;
- icon_state = "wood"
- },
-/area/map_template/ninja_dojo/dojo)
-"bL" = (
-/obj/structure/table/woodentable,
-/obj/item/device/flashlight/lamp,
-/turf/unsimulated/floor{
- dir = 8;
- icon_state = "wood"
- },
-/area/map_template/ninja_dojo/dojo)
-"bM" = (
-/obj/effect/floor_decal/snow,
-/obj/structure/aliumizer,
-/turf/unsimulated/floor{
- icon = 'icons/turf/snow.dmi';
- icon_state = "ice"
- },
-/area/map_template/ninja_dojo/dojo)
-"bN" = (
-/obj/effect/landmark{
- name = "ninjastart"
- },
-/turf/unsimulated/floor{
- dir = 8;
- icon_state = "wood"
- },
-/area/map_template/ninja_dojo/dojo)
-"bO" = (
-/obj/structure/bed/padded,
-/obj/item/bedsheet/brown,
-/turf/unsimulated/floor{
- dir = 8;
- icon_state = "wood"
- },
-/area/map_template/ninja_dojo/dojo)
-"bP" = (
-/obj/effect/floor_decal/carpet,
-/obj/effect/floor_decal/carpet{
- dir = 8
- },
-/obj/effect/floor_decal/carpet{
- dir = 10
- },
-/turf/unsimulated/floor{
- icon_state = "carpet"
- },
-/area/map_template/ninja_dojo/dojo)
-"bQ" = (
-/obj/effect/floor_decal/carpet,
-/turf/unsimulated/floor{
- icon_state = "carpet"
- },
-/area/map_template/ninja_dojo/dojo)
-"bR" = (
-/obj/effect/floor_decal/carpet{
- dir = 4
- },
-/obj/effect/floor_decal/carpet,
-/obj/effect/floor_decal/carpet{
- dir = 6
- },
-/turf/unsimulated/floor{
- icon_state = "carpet"
- },
-/area/map_template/ninja_dojo/dojo)
-"bS" = (
-/obj/structure/table/woodentable,
-/obj/item/reagent_containers/food/snacks/soylentgreen,
-/turf/unsimulated/floor{
- dir = 8;
- icon_state = "wood"
- },
-/area/map_template/ninja_dojo/dojo)
-"bT" = (
-/obj/structure/bookcase{
- name = "bookcase (Tactics)"
- },
-/turf/unsimulated/floor{
- dir = 8;
- icon_state = "wood"
- },
-/area/map_template/ninja_dojo/dojo)
-"bU" = (
-/obj/structure/flora/pottedplant/shoot,
-/turf/unsimulated/floor{
- dir = 8;
- icon_state = "wood"
- },
-/area/map_template/ninja_dojo/dojo)
-"bV" = (
-/obj/structure/bookcase{
- name = "bookcase (Religious)"
- },
-/turf/unsimulated/floor{
- dir = 8;
- icon_state = "wood"
- },
-/area/map_template/ninja_dojo/dojo)
-"bW" = (
-/obj/structure/table/woodentable,
-/obj/item/toy/figure/wizard,
-/obj/item/device/radio/intercom/syndicate{
- dir = 1;
- pixel_y = -22
- },
-/turf/unsimulated/floor{
- dir = 8;
- icon_state = "wood"
- },
-/area/map_template/ninja_dojo/dojo)
-"bX" = (
-/obj/structure/table/woodentable,
-/obj/item/clothing/shoes/sandal,
-/obj/item/clothing/mask/balaclava,
-/turf/unsimulated/floor{
- dir = 8;
- icon_state = "wood"
- },
-/area/map_template/ninja_dojo/dojo)
-"bY" = (
-/obj/structure/undies_wardrobe,
-/turf/unsimulated/floor{
- dir = 8;
- icon_state = "wood"
- },
-/area/map_template/ninja_dojo/dojo)
-"bZ" = (
-/obj/machinery/door/morgue{
- name = "Bath"
- },
-/turf/unsimulated/floor{
- icon_state = "freezerfloor"
- },
-/area/map_template/ninja_dojo/dojo)
-"ca" = (
-/obj/structure/table/woodentable,
-/obj/item/flame/candle,
-/turf/unsimulated/floor{
- dir = 8;
- icon_state = "wood"
- },
-/area/map_template/ninja_dojo/dojo)
-"cb" = (
-/obj/effect/floor_decal/spline/fancy/wood/corner,
-/obj/item/device/radio/intercom/syndicate{
- dir = 4;
- pixel_x = -22
- },
-/turf/unsimulated/floor{
- icon_state = "freezerfloor"
- },
-/area/map_template/ninja_dojo/dojo)
-"cc" = (
-/obj/effect/floor_decal/spline/fancy/wood,
-/turf/unsimulated/floor{
- icon_state = "freezerfloor"
- },
-/area/map_template/ninja_dojo/dojo)
-"cd" = (
-/obj/effect/floor_decal/spline/fancy/wood,
-/obj/structure/hygiene/toilet{
- pixel_y = 8
- },
-/turf/unsimulated/floor{
- icon_state = "freezerfloor"
- },
-/area/map_template/ninja_dojo/dojo)
-"ce" = (
-/obj/machinery/door/morgue{
- name = "Shrine"
- },
-/turf/unsimulated/floor{
- dir = 8;
- icon_state = "wood"
- },
-/area/map_template/ninja_dojo/dojo)
-"cf" = (
-/obj/effect/landmark{
- name = "ninjastart"
- },
-/obj/effect/floor_decal/carpet{
- dir = 10
- },
-/obj/effect/floor_decal/carpet{
- dir = 6
- },
-/obj/effect/floor_decal/carpet{
- dir = 9
- },
-/obj/effect/floor_decal/carpet{
- dir = 5
- },
-/turf/unsimulated/floor{
- icon_state = "carpet"
- },
-/area/map_template/ninja_dojo/dojo)
-"cg" = (
-/obj/structure/table/rack{
- desc = "A simple wooden altar covered in cloth.";
- icon = 'icons/obj/cult.dmi';
- icon_state = "churchaltar";
- name = "wooden altar"
- },
-/obj/item/material/sword/katana,
-/turf/unsimulated/floor{
- dir = 8;
- icon_state = "wood"
- },
-/area/map_template/ninja_dojo/dojo)
-"ch" = (
-/obj/effect/floor_decal/spline/fancy/wood{
- dir = 4
- },
-/turf/unsimulated/floor{
- icon_state = "freezerfloor"
- },
-/area/map_template/ninja_dojo/dojo)
-"ci" = (
-/turf/unsimulated/floor{
- icon = 'icons/misc/beach.dmi';
- icon_state = "seashallow";
- name = "water"
- },
-/area/map_template/ninja_dojo/dojo)
-"cj" = (
-/obj/effect/floor_decal/spline/fancy/wood{
- dir = 4
- },
-/obj/structure/hygiene/sink{
- dir = 8;
- pixel_x = -12;
- pixel_y = 2
- },
-/obj/item/storage/mirror{
- pixel_x = -32
- },
-/turf/unsimulated/floor{
- icon_state = "freezerfloor"
- },
-/area/map_template/ninja_dojo/dojo)
-"ck" = (
-/obj/effect/paint/black,
-/turf/simulated/wall/r_titanium,
-/area/map_template/ninja_dojo/start)
-"cl" = (
-/obj/machinery/door/morgue{
- name = "Equipment"
- },
-/turf/unsimulated/floor{
- icon_state = "dark"
- },
-/area/map_template/ninja_dojo/dojo)
-"cm" = (
-/obj/machinery/fabricator/hacked,
-/obj/effect/floor_decal/industrial/outline/grey,
-/turf/unsimulated/floor{
- icon_state = "dark"
- },
-/area/map_template/ninja_dojo/dojo)
-"cn" = (
-/obj/structure/table/rack,
-/obj/item/stack/material/steel{
- amount = 50
- },
-/obj/item/stack/material/steel{
- amount = 50
- },
-/obj/item/stack/material/glass{
- amount = 50
- },
-/obj/item/stack/material/glass{
- amount = 50
- },
-/obj/effect/floor_decal/industrial/outline/grey,
-/obj/item/stack/material/plastic/fifty,
-/obj/item/stack/material/aluminium/fifty,
-/turf/unsimulated/floor{
- icon_state = "dark"
- },
-/area/map_template/ninja_dojo/dojo)
-"co" = (
-/obj/structure/table/steel_reinforced,
-/obj/item/storage/secure/briefcase/money,
-/obj/effect/floor_decal/industrial/outline/grey,
-/turf/unsimulated/floor{
- icon_state = "dark"
- },
-/area/map_template/ninja_dojo/dojo)
-"cp" = (
-/turf/unsimulated/floor{
- icon_state = "dark"
- },
-/area/map_template/ninja_dojo/dojo)
-"cq" = (
-/obj/structure/table/rack,
-/obj/effect/floor_decal/industrial/outline/grey,
-/obj/item/device/multitool/hacktool,
-/turf/unsimulated/floor{
- icon_state = "dark"
- },
-/area/map_template/ninja_dojo/dojo)
-"cr" = (
-/obj/structure/table/rack,
-/obj/item/storage/belt/utility/full,
-/obj/item/device/multitool,
-/obj/effect/floor_decal/industrial/outline/grey,
-/turf/unsimulated/floor{
- icon_state = "dark"
- },
-/area/map_template/ninja_dojo/dojo)
-"cs" = (
-/obj/structure/table/steel_reinforced,
-/obj/effect/floor_decal/industrial/outline/grey,
-/obj/item/implanter/freedom,
-/obj/item/implantcase/freedom,
-/turf/unsimulated/floor{
- icon_state = "dark"
- },
-/area/map_template/ninja_dojo/dojo)
-"ct" = (
-/obj/structure/table/steel_reinforced,
-/obj/item/device/radio/uplink,
-/obj/effect/floor_decal/industrial/outline/grey,
-/turf/unsimulated/floor{
- icon_state = "dark"
- },
-/area/map_template/ninja_dojo/dojo)
-"cu" = (
-/obj/machinery/door/airlock/centcom{
- name = "Equipment"
- },
-/turf/unsimulated/floor{
- icon_state = "dark"
- },
-/area/map_template/ninja_dojo/dojo)
-"cv" = (
-/obj/machinery/acting/changer,
-/obj/effect/floor_decal/industrial/outline/grey,
-/turf/unsimulated/floor{
- icon_state = "dark"
- },
-/area/map_template/ninja_dojo/dojo)
-"cw" = (
-/obj/structure/table/rack,
-/obj/item/stack/nanopaste,
-/obj/item/stack/nanopaste,
-/obj/effect/floor_decal/industrial/outline/grey,
-/turf/unsimulated/floor{
- icon_state = "dark"
- },
-/area/map_template/ninja_dojo/dojo)
-"cx" = (
-/obj/structure/shuttle/engine/propulsion{
- dir = 1
- },
-/obj/effect/paint/black,
-/turf/simulated/wall/r_titanium,
-/area/map_template/ninja_dojo/start)
-"cy" = (
-/obj/structure/table/steel_reinforced,
-/obj/machinery/cell_charger,
-/obj/effect/floor_decal/industrial/outline/grey,
-/obj/item/clothing/accessory/storage/bandolier,
-/turf/unsimulated/floor{
- icon_state = "dark"
- },
-/area/map_template/ninja_dojo/dojo)
-"cz" = (
-/obj/structure/table/steel_reinforced,
-/obj/machinery/recharger,
-/obj/effect/floor_decal/industrial/outline/grey,
-/turf/unsimulated/floor{
- icon_state = "dark"
- },
-/area/map_template/ninja_dojo/dojo)
-"cA" = (
-/obj/structure/table/rack,
-/obj/item/material/star/ninja,
-/obj/item/material/star/ninja,
-/obj/item/material/star/ninja,
-/obj/item/material/star/ninja,
-/obj/item/material/star/ninja,
-/obj/item/material/star/ninja,
-/obj/effect/floor_decal/industrial/outline/grey,
-/turf/unsimulated/floor{
- icon_state = "dark"
- },
-/area/map_template/ninja_dojo/dojo)
-"cB" = (
-/obj/structure/table/rack,
-/obj/item/material/star,
-/obj/item/material/star,
-/obj/item/material/star,
-/obj/item/material/star,
-/obj/item/material/star,
-/obj/item/material/star,
-/obj/effect/floor_decal/industrial/outline/grey,
-/turf/unsimulated/floor{
- icon_state = "dark"
- },
-/area/map_template/ninja_dojo/dojo)
-"cC" = (
-/obj/structure/table/rack,
-/obj/item/clothing/accessory/storage/black_vest,
-/obj/effect/floor_decal/industrial/outline/grey,
-/turf/unsimulated/floor{
- icon_state = "dark"
- },
-/area/map_template/ninja_dojo/dojo)
-"cD" = (
-/obj/structure/table/rack,
-/obj/item/storage/belt/holster/security/tactical,
-/obj/effect/floor_decal/industrial/outline/grey,
-/turf/unsimulated/floor{
- icon_state = "dark"
- },
-/area/map_template/ninja_dojo/dojo)
-"cE" = (
-/obj/structure/table/steel_reinforced,
-/obj/item/plastique,
-/obj/item/plastique,
-/obj/item/device/radio/intercom/syndicate{
- dir = 1;
- pixel_y = -22
- },
-/obj/effect/floor_decal/industrial/outline/grey,
-/turf/unsimulated/floor{
- icon_state = "dark"
- },
-/area/map_template/ninja_dojo/dojo)
-"cF" = (
-/obj/structure/table/steel_reinforced,
-/obj/item/storage/box/anti_photons,
-/obj/effect/floor_decal/industrial/outline/grey,
-/turf/unsimulated/floor{
- icon_state = "dark"
- },
-/area/map_template/ninja_dojo/dojo)
-"cG" = (
-/obj/effect/floor_decal/industrial/warning{
- dir = 4;
- icon_state = "warning"
- },
-/obj/machinery/light{
- dir = 1
- },
-/obj/structure/table/rack,
-/turf/unsimulated/floor{
- icon_state = "dark"
- },
-/area/map_template/ninja_dojo/start)
-"cH" = (
-/obj/machinery/computer/teleporter,
-/turf/simulated/floor/plating,
-/area/map_template/ninja_dojo/start)
-"cI" = (
-/obj/machinery/tele_projector,
-/turf/simulated/floor/plating,
-/area/map_template/ninja_dojo/start)
-"cJ" = (
-/obj/machinery/tele_pad,
-/obj/effect/floor_decal/industrial/hatch/yellow,
-/turf/simulated/floor/plating,
-/area/map_template/ninja_dojo/start)
-"cK" = (
-/obj/machinery/light{
- dir = 1
- },
-/obj/machinery/atmospherics/portables_connector,
-/obj/effect/floor_decal/industrial/outline/yellow,
-/obj/machinery/portable_atmospherics/canister/air/airlock,
-/obj/effect/floor_decal/industrial/warning{
- dir = 8;
- icon_state = "warning"
- },
-/turf/unsimulated/floor{
- icon_state = "dark"
- },
-/area/map_template/ninja_dojo/start)
-"cL" = (
-/obj/structure/bed/chair{
- dir = 4
- },
-/obj/machinery/light{
- dir = 8;
- icon_state = "tube1"
- },
-/obj/effect/floor_decal/industrial/outline/grey,
-/turf/unsimulated/floor{
- icon_state = "dark"
- },
-/area/map_template/ninja_dojo/start)
-"cM" = (
-/turf/unsimulated/floor{
- icon_state = "dark"
- },
-/area/map_template/ninja_dojo/start)
-"cN" = (
-/obj/effect/floor_decal/industrial/warning/corner{
- dir = 4;
- icon_state = "warningcorner"
- },
-/turf/unsimulated/floor{
- icon_state = "dark"
- },
-/area/map_template/ninja_dojo/start)
-"cO" = (
-/obj/effect/floor_decal/industrial/warning{
- dir = 1
- },
-/turf/unsimulated/floor{
- icon_state = "dark"
- },
-/area/map_template/ninja_dojo/start)
-"cP" = (
-/obj/effect/floor_decal/industrial/warning/corner{
- dir = 1
- },
-/obj/machinery/atmospherics/pipe/simple/hidden,
-/turf/unsimulated/floor{
- icon_state = "dark"
- },
-/area/map_template/ninja_dojo/start)
-"cQ" = (
-/obj/machinery/embedded_controller/radio/airlock/docking_port{
- frequency = 1331;
- id_tag = "ninja_shuttle";
- pixel_x = -8;
- pixel_y = 25;
- req_access = list("ACCESS_SYNDICATE")
- },
-/obj/machinery/light{
- dir = 8;
- icon_state = "tube1"
- },
-/turf/unsimulated/floor{
- icon_state = "dark"
- },
-/area/map_template/ninja_dojo/start)
-"cR" = (
-/obj/machinery/door/airlock/external{
- frequency = 1331;
- id_tag = "ninja_shuttle_outer";
- name = "Ship External Access"
- },
-/obj/machinery/door/blast/regular{
- density = 0;
- icon_state = "pdoor0";
- id_tag = "ninjadoor";
- name = "Blast Door";
- opacity = 0
- },
-/turf/unsimulated/floor{
- icon_state = "dark"
- },
-/area/map_template/ninja_dojo/start)
-"cS" = (
-/obj/machinery/sleeper{
- dir = 4
- },
-/obj/effect/floor_decal/industrial/outline/grey,
-/turf/unsimulated/floor{
- icon_state = "dark"
- },
-/area/map_template/ninja_dojo/start)
-"cT" = (
-/obj/effect/shuttle_landmark/ninja/start,
-/turf/unsimulated/floor{
- icon_state = "dark"
- },
-/area/map_template/ninja_dojo/start)
-"cU" = (
-/obj/machinery/atmospherics/pipe/simple/hidden{
- dir = 5
- },
-/obj/machinery/access_button{
- command = "cycle_interior";
- frequency = 1331;
- master_tag = "ninja_shuttle";
- name = "interior access button";
- pixel_x = 25;
- pixel_y = 25;
- req_access = list("ACCESS_SYNDICATE")
- },
-/turf/unsimulated/floor{
- icon_state = "dark"
- },
-/area/map_template/ninja_dojo/start)
-"cV" = (
-/obj/machinery/atmospherics/pipe/simple/hidden{
- dir = 4
- },
-/obj/machinery/door/airlock/external{
- frequency = 1331;
- id_tag = "ninja_shuttle_inner";
- name = "Ship External Access"
- },
-/turf/unsimulated/floor{
- icon_state = "dark"
- },
-/area/map_template/ninja_dojo/start)
-"cW" = (
-/obj/machinery/airlock_sensor{
- frequency = 1331;
- id_tag = "ninja_shuttle_sensor";
- pixel_x = 8;
- pixel_y = -25
- },
-/obj/machinery/atmospherics/unary/vent_pump/high_volume/shuttle{
- dir = 8;
- id_tag = "ninja_shuttle_pump"
- },
-/obj/machinery/button/blast_door{
- id_tag = "ninjadoor";
- name = "remote shutter control";
- pixel_x = 25
- },
-/turf/unsimulated/floor{
- icon_state = "dark"
- },
-/area/map_template/ninja_dojo/start)
-"cX" = (
-/obj/structure/closet,
-/obj/machinery/light{
- dir = 8;
- icon_state = "tube1"
- },
-/obj/effect/floor_decal/industrial/outline/grey,
-/turf/unsimulated/floor{
- icon_state = "dark"
- },
-/area/map_template/ninja_dojo/start)
-"cY" = (
-/obj/structure/table/rack,
-/obj/effect/floor_decal/industrial/outline/grey,
-/turf/unsimulated/floor{
- icon_state = "dark"
- },
-/area/map_template/ninja_dojo/start)
-"cZ" = (
-/obj/structure/table/steel_reinforced,
-/obj/machinery/light{
- dir = 8;
- icon_state = "tube1"
- },
-/obj/item/device/radio/intercom/syndicate{
- dir = 4;
- pixel_x = -22
- },
-/obj/machinery/cell_charger,
-/obj/item/screwdriver,
-/obj/effect/floor_decal/industrial/outline/grey,
-/turf/unsimulated/floor{
- icon_state = "dark"
- },
-/area/map_template/ninja_dojo/start)
-"da" = (
-/obj/structure/bed/chair/shuttle,
-/turf/unsimulated/floor{
- icon_state = "dark"
- },
-/area/map_template/ninja_dojo/start)
-"db" = (
-/obj/machinery/button/blast_door{
- id_tag = "ninjawindow";
- name = "remote shutter control";
- pixel_x = 36;
- pixel_y = -24
- },
-/obj/machinery/button/windowtint{
- id = "ninja_ship";
- pixel_x = -24;
- pixel_y = -25
- },
-/turf/unsimulated/floor{
- icon_state = "dark"
- },
-/area/map_template/ninja_dojo/start)
-"dc" = (
-/obj/structure/table/steel_reinforced,
-/obj/machinery/recharger,
-/obj/item/wrench,
-/obj/machinery/light{
- dir = 4;
- icon_state = "tube1"
- },
-/obj/effect/floor_decal/industrial/outline/grey,
-/turf/unsimulated/floor{
- icon_state = "dark"
- },
-/area/map_template/ninja_dojo/start)
-"dd" = (
-/obj/effect/floor_decal/industrial/outline/grey,
-/obj/machinery/computer/station_alert/all{
- dir = 1
- },
-/turf/unsimulated/floor{
- icon_state = "dark"
- },
-/area/map_template/ninja_dojo/start)
-"de" = (
-/obj/effect/floor_decal/industrial/outline/grey,
-/obj/machinery/computer/shuttle_control/multi/ninja{
- dir = 1
- },
-/turf/unsimulated/floor{
- icon_state = "dark"
- },
-/area/map_template/ninja_dojo/start)
-"df" = (
-/obj/effect/floor_decal/industrial/outline/grey,
-/obj/machinery/computer/modular/preset/security{
- dir = 1;
- icon_state = "console"
- },
-/turf/unsimulated/floor{
- icon_state = "dark"
- },
-/area/map_template/ninja_dojo/start)
-"dg" = (
-/obj/machinery/door/blast/regular{
- id_tag = "ninjawindow";
- name = "Blast Shutter"
- },
-/obj/effect/wallframe_spawn/reinforced/polarized{
- id = "ninja_ship"
- },
-/obj/effect/paint/black,
-/turf/simulated/floor/plating,
-/area/map_template/ninja_dojo/start)
-"ss" = (
-/turf/unsimulated/wall,
-/area/map_template/ninja_dojo/dojo)
-"zr" = (
-/obj/effect/floor_decal/snow,
-/turf/unsimulated/wall,
-/area/map_template/ninja_dojo/dojo)
+"ac" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snowwhite"},/area/map_template/ninja_dojo/dojo)
+"ad" = (/turf/unsimulated/floor{icon_state = "snow"},/area/map_template/ninja_dojo/dojo)
+"ae" = (/obj/effect/floor_decal/asteroid,/turf/unsimulated/floor{icon_state = "snow"},/area/map_template/ninja_dojo/dojo)
+"af" = (/obj/effect/floor_decal/asteroid,/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snowwhite"},/area/map_template/ninja_dojo/dojo)
+"ag" = (/obj/structure/flora/tree/dead,/turf/unsimulated/floor{icon_state = "snow"},/area/map_template/ninja_dojo/dojo)
+"ah" = (/obj/structure/flora/tree/pine,/turf/unsimulated/floor{icon_state = "snow"},/area/map_template/ninja_dojo/dojo)
+"ai" = (/obj/structure/flora/tree/dead,/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snowwhite"},/area/map_template/ninja_dojo/dojo)
+"aj" = (/obj/effect/wallframe_spawn/reinforced,/turf/simulated/wall/prepainted,/area/map_template/ninja_dojo/dojo)
+"ak" = (/obj/structure/table/glass,/obj/item/storage/firstaid/surgery,/turf/unsimulated/floor{icon_state = "white"},/area/map_template/ninja_dojo/dojo)
+"al" = (/obj/machinery/optable,/turf/unsimulated/floor{icon_state = "white"},/area/map_template/ninja_dojo/dojo)
+"am" = (/obj/structure/closet/medical_wall{pixel_y = 32},/obj/item/tank/anesthetic,/obj/item/clothing/mask/breath/medical,/obj/item/clothing/gloves/latex,/obj/item/clothing/mask/surgical,/obj/structure/hygiene/sink{dir = 1; pixel_y = 16},/obj/item/reagent_containers/glass/bottle/stoxin,/obj/item/reagent_containers/glass/bottle/stoxin,/obj/item/reagent_containers/syringe,/turf/unsimulated/floor{icon_state = "white"},/area/map_template/ninja_dojo/dojo)
+"an" = (/obj/structure/table/glass,/obj/item/reagent_containers/ivbag/nanoblood,/obj/item/reagent_containers/ivbag/blood/human/oneg,/obj/item/reagent_containers/ivbag/blood/human/oneg,/obj/item/reagent_containers/ivbag/blood/skrell/oneg,/obj/item/reagent_containers/ivbag/blood/skrell/oneg,/obj/item/reagent_containers/ivbag/blood/unathi/oneg,/obj/item/reagent_containers/ivbag/blood/unathi/oneg,/obj/structure/window/reinforced/crescent{dir = 4},/turf/unsimulated/floor{icon_state = "white"},/area/map_template/ninja_dojo/dojo)
+"ao" = (/obj/machinery/atmospherics/unary/cryo_cell,/turf/unsimulated/floor{icon_state = "white"},/area/map_template/ninja_dojo/dojo)
+"ap" = (/obj/machinery/atmospherics/portables_connector,/obj/machinery/portable_atmospherics/canister/oxygen/prechilled,/turf/unsimulated/floor{icon_state = "white"},/area/map_template/ninja_dojo/dojo)
+"aq" = (/obj/item/reagent_containers/glass/beaker/cryoxadone,/obj/structure/table/glass,/turf/unsimulated/floor{icon_state = "white"},/area/map_template/ninja_dojo/dojo)
+"ar" = (/obj/structure/table/glass,/obj/item/reagent_containers/spray/sterilizine,/obj/item/reagent_containers/spray/cleaner,/turf/unsimulated/floor{icon_state = "white"},/area/map_template/ninja_dojo/dojo)
+"as" = (/turf/unsimulated/floor{icon_state = "white"},/area/map_template/ninja_dojo/dojo)
+"at" = (/obj/structure/table/glass,/obj/item/storage/firstaid/o2{pixel_x = 3; pixel_y = 3},/obj/item/storage/firstaid/fire{pixel_x = 1},/obj/structure/window/reinforced/crescent{dir = 4},/turf/unsimulated/floor{icon_state = "white"},/area/map_template/ninja_dojo/dojo)
+"au" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 5},/obj/effect/floor_decal/corner/blue,/turf/unsimulated/floor{icon_state = "white"},/area/map_template/ninja_dojo/dojo)
+"av" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 9},/obj/effect/floor_decal/corner/blue{dir = 8},/turf/unsimulated/floor{icon_state = "white"},/area/map_template/ninja_dojo/dojo)
+"aw" = (/obj/structure/table/glass,/obj/item/storage/box/beakers,/turf/unsimulated/floor{icon_state = "white"},/area/map_template/ninja_dojo/dojo)
+"ax" = (/obj/machinery/computer/teleporter,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/map_template/ninja_dojo/dojo)
+"ay" = (/obj/machinery/tele_projector,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/map_template/ninja_dojo/dojo)
+"az" = (/obj/machinery/tele_pad,/obj/effect/floor_decal/industrial/hatch/yellow,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/map_template/ninja_dojo/dojo)
+"aA" = (/obj/effect/floor_decal/corner/black/border{dir = 4},/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo)
+"aB" = (/obj/structure/table/glass,/obj/item/reagent_containers/syringe/antiviral,/obj/item/reagent_containers/syringe/antiviral,/obj/item/stack/medical/advanced/bruise_pack,/obj/machinery/light{dir = 8},/turf/unsimulated/floor{icon_state = "white"},/area/map_template/ninja_dojo/dojo)
+"aC" = (/obj/structure/table/glass,/obj/item/storage/firstaid/toxin{pixel_x = 3; pixel_y = 3},/obj/item/storage/firstaid/adv{pixel_x = 1},/obj/item/storage/firstaid/radiation,/obj/structure/window/reinforced/crescent{dir = 4},/turf/unsimulated/floor{icon_state = "white"},/area/map_template/ninja_dojo/dojo)
+"aD" = (/obj/item/reagent_containers/glass/beaker/large,/obj/machinery/light{dir = 4},/obj/machinery/chemical_dispenser/full,/turf/unsimulated/floor{icon_state = "white"},/area/map_template/ninja_dojo/dojo)
+"aE" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo)
+"aF" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/item/device/radio/intercom/syndicate{dir = 8; pixel_x = 22},/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo)
+"aG" = (/obj/machinery/cryopod{dir = 1},/obj/effect/floor_decal/industrial/warning{dir = 8},/obj/effect/floor_decal/industrial/warning{dir = 4},/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/map_template/ninja_dojo/dojo)
+"aH" = (/obj/structure/flora/tree/pine,/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snowwhite"},/area/map_template/ninja_dojo/dojo)
+"aI" = (/obj/structure/iv_stand,/obj/structure/window/reinforced/crescent,/turf/unsimulated/floor{icon_state = "white"},/area/map_template/ninja_dojo/dojo)
+"aJ" = (/obj/structure/table/glass,/obj/item/storage/firstaid/regular,/obj/item/storage/firstaid/combat,/obj/structure/window/reinforced/crescent{dir = 4},/obj/structure/window/reinforced/crescent,/turf/unsimulated/floor{icon_state = "white"},/area/map_template/ninja_dojo/dojo)
+"aK" = (/obj/effect/floor_decal/corner/blue{dir = 6},/turf/unsimulated/floor{icon_state = "white"},/area/map_template/ninja_dojo/dojo)
+"aL" = (/obj/machinery/door/blast/regular/open{icon_state = "pdoor0"; id_tag = "prototype_chamber_blast"},/obj/effect/floor_decal/floordetail/tiled,/turf/unsimulated/floor{icon_state = "white"},/area/map_template/ninja_dojo/dojo)
+"aM" = (/obj/item/reagent_containers/glass/beaker/large,/obj/machinery/chem_master,/turf/unsimulated/floor{icon_state = "white"},/area/map_template/ninja_dojo/dojo)
+"aN" = (/obj/effect/floor_decal/corner/black/border{dir = 7},/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo)
+"aO" = (/obj/effect/floor_decal/corner/blue{dir = 9},/turf/unsimulated/floor{icon_state = "white"},/area/map_template/ninja_dojo/dojo)
+"aQ" = (/obj/structure/table/glass,/obj/effect/floor_decal/corner/black/border{dir = 7},/obj/item/paper_bin,/obj/item/pen,/turf/simulated/floor/tiled,/area/map_template/ninja_dojo/dojo)
+"aR" = (/obj/machinery/bodyscanner{dir = 8},/turf/unsimulated/floor{icon_state = "white"},/area/map_template/ninja_dojo/dojo)
+"aS" = (/obj/machinery/body_scanconsole{dir = 8},/obj/effect/floor_decal/corner/blue{dir = 4},/turf/unsimulated/floor{icon_state = "white"},/area/map_template/ninja_dojo/dojo)
+"aT" = (/obj/effect/floor_decal/corner/blue{dir = 4},/obj/effect/floor_decal/corner/blue{dir = 5},/obj/effect/floor_decal/corner/blue{dir = 8},/turf/unsimulated/floor{icon_state = "white"},/area/map_template/ninja_dojo/dojo)
+"aU" = (/obj/effect/floor_decal/industrial/outline/blue,/obj/machinery/portable_atmospherics/canister/nitrogen,/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo)
+"aV" = (/obj/effect/floor_decal/corner/black/border{dir = 10},/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo)
+"aW" = (/obj/structure/table/rack,/obj/item/tank/oxygen,/obj/item/tank/oxygen,/obj/item/tank/oxygen,/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo)
+"aX" = (/obj/machinery/door/blast/regular/open{id_tag = "bsdwindow"; name = "Exit"},/turf/unsimulated/wall,/area/map_template/ninja_dojo/dojo)
+"aY" = (/turf/unsimulated/floor{dir = 9; icon_state = "vault"},/area/map_template/ninja_dojo/dojo)
+"aZ" = (/obj/structure/table/rack,/obj/item/storage/belt/medical/emt,/obj/item/storage/firstaid/adv,/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo)
+"ba" = (/obj/effect/floor_decal/corner/black/border{dir = 8},/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo)
+"bb" = (/obj/effect/floor_decal/industrial/outline/blue,/obj/machinery/portable_atmospherics/canister/oxygen,/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo)
+"bc" = (/obj/effect/floor_decal/corner/black/border{dir = 6},/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo)
+"bd" = (/turf/simulated/wall/prepainted,/area/map_template/ninja_dojo/dojo)
+"be" = (/obj/machinery/door/blast/regular/open{icon_state = "pdoor0"; id_tag = "prototype_chamber_blast"},/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snowplating"},/area/map_template/ninja_dojo/dojo)
+"bf" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"},/obj/machinery/light{dir = 4},/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snowplating"},/area/map_template/ninja_dojo/dojo)
+"bh" = (/obj/machinery/light{dir = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo)
+"bi" = (/obj/machinery/light,/obj/effect/floor_decal/corner/black/bordercorner{dir = 8},/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo)
+"bj" = (/obj/structure/bed/chair/office/dark,/obj/item/device/radio/intercom/syndicate{dir = 4; pixel_x = -22},/turf/simulated/floor/tiled,/area/map_template/ninja_dojo/dojo)
+"bl" = (/obj/effect/floor_decal/industrial/warning{dir = 4},/obj/effect/floor_decal/floordetail/tiled,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/map_template/ninja_dojo/dojo)
+"bm" = (/obj/structure/table/rack,/obj/item/tank/nitrogen,/obj/item/tank/nitrogen,/obj/item/tank/nitrogen,/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo)
+"bn" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snowplating"},/area/map_template/ninja_dojo/dojo)
+"bo" = (/obj/effect/floor_decal/snow,/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snowplating"},/area/map_template/ninja_dojo/dojo)
+"bp" = (/obj/structure/window/reinforced/polarized{dir = 1},/obj/structure/window/reinforced/polarized,/obj/effect/floor_decal/floordetail/tiled,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/map_template/ninja_dojo/dojo)
+"bq" = (/obj/machinery/light{dir = 4},/turf/simulated/floor/tiled,/area/map_template/ninja_dojo/dojo)
+"br" = (/obj/effect/floor_decal/corner/black/border{dir = 1},/obj/effect/floor_decal/corner/black/border{dir = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo)
+"bs" = (/obj/machinery/light{dir = 8},/obj/effect/floor_decal/corner/black/border{dir = 7},/obj/effect/floor_decal/corner/black/border{dir = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo)
+"bt" = (/obj/structure/pit/closed/grave,/turf/unsimulated/floor{icon_state = "snow"},/area/map_template/ninja_dojo/dojo)
+"bu" = (/obj/machinery/light{dir = 4},/obj/effect/floor_decal/industrial/warning/corner{dir = 8},/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo)
+"bv" = (/obj/effect/floor_decal/corner/blue,/turf/unsimulated/floor{icon_state = "white"},/area/map_template/ninja_dojo/dojo)
+"bw" = (/obj/effect/floor_decal/corner/black/border{dir = 7},/turf/unsimulated/floor{icon_state = "white"},/area/map_template/ninja_dojo/dojo)
+"bx" = (/obj/machinery/recharger/wallcharger{dir = 4; pixel_x = -23; pixel_y = -3},/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo)
+"by" = (/obj/effect/landmark{name = "ninjastart"},/obj/effect/floor_decal/industrial/warning,/obj/effect/floor_decal/floordetail/tiled,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/map_template/ninja_dojo/dojo)
+"bz" = (/obj/machinery/acting/changer,/obj/effect/floor_decal/industrial/warning{dir = 9; icon_state = "warning"},/obj/effect/floor_decal/industrial/warning{dir = 6; icon_state = "warning"},/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo)
+"bA" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 8},/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo)
+"bB" = (/obj/effect/floor_decal/corner/black/bordercorner{dir = 5},/obj/machinery/light{dir = 4},/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo)
+"bC" = (/obj/machinery/door/airlock/centcom{name = "Equipment"},/turf/unsimulated/floor{icon_state = "snow"},/area/map_template/ninja_dojo/dojo)
+"bD" = (/obj/effect/floor_decal/corner/black/border{dir = 1},/obj/machinery/light{dir = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo)
+"bE" = (/obj/effect/floor_decal/corner/black/border{dir = 9},/obj/machinery/rotating_alarm/supermatter{dir = 4; name = "emergency alarm"; on = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo)
+"bF" = (/obj/effect/floor_decal/corner/black/border{dir = 9},/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo)
+"bG" = (/obj/effect/floor_decal/corner/black/bordercorner{dir = 8},/obj/effect/floor_decal/corner/black/bordercorner{dir = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo)
+"bH" = (/obj/effect/floor_decal/industrial/warning{dir = 4; icon_state = "warning"},/obj/effect/floor_decal/industrial/warning{dir = 4; icon_state = "warning"},/turf/unsimulated/floor{dir = 9; icon_state = "vault"},/area/map_template/ninja_dojo/dojo)
+"bI" = (/obj/machinery/door/blast/regular/open{dir = 4; icon_state = "pdoor0"; id_tag = "prototype_chamber_blast"},/obj/effect/floor_decal/floordetail/tiled,/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo)
+"bJ" = (/obj/effect/floor_decal/industrial/warning{dir = 8},/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo)
+"bK" = (/obj/effect/floor_decal/corner/black/bordercorner{dir = 4},/obj/machinery/light{dir = 4},/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo)
+"bL" = (/obj/effect/floor_decal/industrial/warning{dir = 8},/obj/effect/floor_decal/floordetail/tiled,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/map_template/ninja_dojo/dojo)
+"bM" = (/obj/effect/floor_decal/corner/black/border{dir = 10},/obj/machinery/rotating_alarm/supermatter{dir = 4; name = "emergency alarm"; on = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo)
+"bN" = (/obj/machinery/cryopod{dir = 2},/obj/effect/floor_decal/industrial/warning{dir = 8},/obj/effect/floor_decal/industrial/warning{dir = 4},/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/map_template/ninja_dojo/dojo)
+"bO" = (/obj/effect/paint_stripe/yellow,/turf/simulated/wall/prepainted,/area/map_template/ninja_dojo/dojo)
+"bP" = (/obj/effect/floor_decal/corner/black/border{dir = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo)
+"bQ" = (/obj/effect/floor_decal/corner/black/border{dir = 5},/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo)
+"bR" = (/obj/structure/table/rack,/obj/item/storage/box/syndie_kit/chameleon,/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo)
+"bS" = (/obj/effect/floor_decal/asteroid,/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snowplating"},/area/map_template/ninja_dojo/dojo)
+"bT" = (/obj/effect/floor_decal/industrial/warning/corner,/obj/effect/floor_decal/industrial/warning/corner{dir = 4; icon_state = "warningcorner"},/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo)
+"bU" = (/obj/structure/shuttle/engine/propulsion{dir = 1},/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/map_template/ninja_dojo/start)
+"bV" = (/obj/machinery/light{dir = 8},/obj/effect/floor_decal/industrial/warning/corner{dir = 4; icon_state = "warningcorner"},/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo)
+"bW" = (/obj/machinery/light{dir = 8},/obj/effect/floor_decal/industrial/warning/corner{dir = 2; icon_state = "warningcorner"},/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo)
+"bX" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"},/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo)
+"bZ" = (/obj/effect/wallframe_spawn/reinforced,/turf/space,/area/map_template/ninja_dojo/dojo)
+"ca" = (/obj/structure/table/glass,/obj/effect/floor_decal/corner/black/border{dir = 10},/turf/simulated/floor/tiled,/area/map_template/ninja_dojo/dojo)
+"cb" = (/obj/machinery/computer/modular/preset/medical,/obj/effect/floor_decal/industrial/outline/grey,/obj/effect/floor_decal/corner/black/border{dir = 6},/turf/simulated/floor/tiled,/area/map_template/ninja_dojo/dojo)
+"ce" = (/obj/machinery/door/airlock/centcom{name = "Equipment"},/turf/simulated/floor/tiled,/area/map_template/ninja_dojo/dojo)
+"cf" = (/obj/effect/floor_decal/corner/black/bordercorner{dir = 7},/obj/machinery/light,/turf/unsimulated/floor{icon_state = "white"},/area/map_template/ninja_dojo/dojo)
+"cg" = (/turf/simulated/floor/tiled,/area/map_template/ninja_dojo/dojo)
+"ch" = (/obj/structure/bed/chair/office/dark{dir = 1},/obj/item/device/radio/intercom/syndicate{dir = 8; pixel_x = 22},/turf/simulated/floor/tiled,/area/map_template/ninja_dojo/dojo)
+"ci" = (/obj/effect/floor_decal/corner/black/border{dir = 6},/obj/structure/table/glass,/obj/item/stack/material/aluminium/fifty,/obj/item/stack/material/glass/fifty,/obj/item/stack/material/plasteel/fifty,/obj/item/stack/material/plastic/fifty,/obj/item/stack/material/steel/fifty,/obj/item/stack/material/steel/fifty,/obj/item/stack/material/titanium/fifty,/obj/item/stack/material/glass/fifty,/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo)
+"cj" = (/obj/machinery/rotating_alarm/supermatter{dir = 8; name = "emergency alarm"; on = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo)
+"ck" = (/obj/effect/paint/black,/turf/simulated/wall/r_titanium,/area/map_template/ninja_dojo/start)
+"cl" = (/obj/effect/floor_decal/corner/black/border{dir = 9},/obj/machinery/fabricator/hacked,/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo)
+"cm" = (/obj/effect/floor_decal/corner/black/border{dir = 10},/obj/machinery/fabricator/hacked,/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo)
+"cn" = (/obj/effect/floor_decal/industrial/warning{dir = 4; icon_state = "warning"},/turf/unsimulated/floor{dir = 9; icon_state = "vault"},/area/map_template/ninja_dojo/dojo)
+"co" = (/obj/structure/aliumizer,/obj/effect/floor_decal/industrial/warning{dir = 10},/obj/effect/floor_decal/industrial/warning{dir = 5; icon_state = "warning"},/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo)
+"cp" = (/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo)
+"cq" = (/obj/machinery/light{dir = 8},/turf/simulated/floor/tiled,/area/map_template/ninja_dojo/dojo)
+"cr" = (/obj/machinery/rotating_alarm/supermatter{dir = 4; name = "emergency alarm"; on = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo)
+"cs" = (/obj/structure/table/rack,/obj/item/melee/energy/machete{pixel_x = 9; pixel_y = 9},/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo)
+"cu" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"},/obj/machinery/light{dir = 8},/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snowplating"},/area/map_template/ninja_dojo/dojo)
+"cv" = (/obj/effect/floor_decal/industrial/warning{dir = 1; icon_state = "warning"},/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo)
+"cw" = (/obj/effect/floor_decal/industrial/warning{dir = 4; icon_state = "warning"},/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo)
+"cy" = (/obj/structure/table/rack,/obj/item/storage/belt/utility/full,/obj/item/device/multitool,/obj/item/tape_roll,/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo)
+"cz" = (/obj/effect/floor_decal/snow,/obj/machinery/light{dir = 4},/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snowplating"},/area/map_template/ninja_dojo/dojo)
+"cA" = (/obj/structure/table/rack,/obj/item/storage/box/flashbangs,/obj/item/storage/box/smokes,/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo)
+"cB" = (/obj/machinery/light,/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snowplating"},/area/map_template/ninja_dojo/dojo)
+"cC" = (/obj/effect/landmark{name = "ninjastart"},/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/effect/floor_decal/floordetail/tiled,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/map_template/ninja_dojo/dojo)
+"cD" = (/obj/machinery/light,/obj/effect/floor_decal/corner/black/bordercorner{dir = 3},/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo)
+"cE" = (/obj/machinery/door/blast/regular/open{dir = 4; name = "Operative Cryo Chamber"},/turf/unsimulated/wall,/area/map_template/ninja_dojo/dojo)
+"cF" = (/obj/effect/wallframe_spawn/reinforced,/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo)
+"cG" = (/obj/effect/floor_decal/industrial/warning{dir = 4; icon_state = "warning"},/obj/machinery/light{dir = 1},/obj/structure/table/rack,/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/start)
+"cH" = (/obj/machinery/computer/teleporter,/turf/simulated/floor/plating,/area/map_template/ninja_dojo/start)
+"cI" = (/obj/machinery/tele_projector,/turf/simulated/floor/plating,/area/map_template/ninja_dojo/start)
+"cJ" = (/obj/machinery/tele_pad,/obj/effect/floor_decal/industrial/hatch/yellow,/turf/simulated/floor/plating,/area/map_template/ninja_dojo/start)
+"cK" = (/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/portables_connector,/obj/effect/floor_decal/industrial/outline/yellow,/obj/machinery/portable_atmospherics/canister/air/airlock,/obj/effect/floor_decal/industrial/warning{dir = 8; icon_state = "warning"},/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/start)
+"cL" = (/obj/structure/bed/chair{dir = 4},/obj/machinery/light{dir = 8; icon_state = "tube1"},/obj/effect/floor_decal/industrial/outline/grey,/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/start)
+"cM" = (/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/start)
+"cN" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 4; icon_state = "warningcorner"},/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/start)
+"cO" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/start)
+"cP" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/start)
+"cQ" = (/obj/machinery/embedded_controller/radio/airlock/docking_port{frequency = 1331; id_tag = "ninja_shuttle"; pixel_x = -8; pixel_y = 25; req_access = list("ACCESS_SYNDICATE")},/obj/machinery/light{dir = 8; icon_state = "tube1"},/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/start)
+"cR" = (/obj/machinery/door/airlock/external{frequency = 1331; id_tag = "ninja_shuttle_outer"; name = "Ship External Access"},/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id_tag = "ninjadoor"; name = "Blast Door"; opacity = 0},/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/start)
+"cS" = (/obj/machinery/sleeper{dir = 4},/obj/effect/floor_decal/industrial/outline/grey,/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/start)
+"cT" = (/obj/effect/shuttle_landmark/ninja/start,/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/start)
+"cU" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 5},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1331; master_tag = "ninja_shuttle"; name = "interior access button"; pixel_x = 25; pixel_y = 25; req_access = list("ACCESS_SYNDICATE")},/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/start)
+"cV" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/machinery/door/airlock/external{frequency = 1331; id_tag = "ninja_shuttle_inner"; name = "Ship External Access"},/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/start)
+"cW" = (/obj/machinery/airlock_sensor{frequency = 1331; id_tag = "ninja_shuttle_sensor"; pixel_x = 8; pixel_y = -25},/obj/machinery/atmospherics/unary/vent_pump/high_volume/shuttle{dir = 8; id_tag = "ninja_shuttle_pump"},/obj/machinery/button/blast_door{id_tag = "ninjadoor"; name = "remote shutter control"; pixel_x = 25},/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/start)
+"cX" = (/obj/structure/closet,/obj/machinery/light{dir = 8; icon_state = "tube1"},/obj/effect/floor_decal/industrial/outline/grey,/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/start)
+"cY" = (/obj/structure/table/rack,/obj/effect/floor_decal/industrial/outline/grey,/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/start)
+"cZ" = (/obj/structure/table/steel_reinforced,/obj/machinery/light{dir = 8; icon_state = "tube1"},/obj/item/device/radio/intercom/syndicate{dir = 4; pixel_x = -22},/obj/machinery/cell_charger,/obj/item/screwdriver,/obj/effect/floor_decal/industrial/outline/grey,/obj/item/toy/figure/ninja,/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/start)
+"da" = (/obj/structure/bed/chair/shuttle,/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/start)
+"db" = (/obj/machinery/button/blast_door{id_tag = "ninjawindow"; name = "remote shutter control"; pixel_x = 36; pixel_y = -24},/obj/machinery/button/windowtint{id = "ninja_ship"; pixel_x = -24; pixel_y = -25},/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/start)
+"dc" = (/obj/structure/table/steel_reinforced,/obj/machinery/recharger,/obj/item/wrench,/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/effect/floor_decal/industrial/outline/grey,/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/start)
+"dd" = (/obj/effect/floor_decal/industrial/outline/grey,/obj/machinery/computer/station_alert/all{dir = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/start)
+"de" = (/obj/effect/floor_decal/industrial/outline/grey,/obj/machinery/computer/shuttle_control/multi/ninja{dir = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/start)
+"df" = (/obj/effect/floor_decal/industrial/outline/grey,/obj/machinery/computer/modular/preset/security{dir = 1; icon_state = "console"},/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/start)
+"dg" = (/obj/machinery/door/blast/regular{id_tag = "ninjawindow"; name = "Blast Shutter"},/obj/effect/wallframe_spawn/reinforced/polarized{id = "ninja_ship"},/obj/effect/paint/black,/turf/simulated/floor/plating,/area/map_template/ninja_dojo/start)
+"gy" = (/obj/structure/table/rack,/obj/item/clothing/mask/gas/swat/vox,/obj/item/clothing/mask/gas/swat/vox,/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo)
+"qc" = (/obj/effect/floor_decal/corner/blue{dir = 1},/obj/effect/floor_decal/corner/blue{dir = 5},/obj/effect/floor_decal/corner/blue,/turf/unsimulated/floor{icon_state = "white"},/area/map_template/ninja_dojo/dojo)
+"ss" = (/turf/unsimulated/wall,/area/map_template/ninja_dojo/dojo)
+"uZ" = (/obj/effect/floor_decal/corner/blue{dir = 8},/obj/effect/floor_decal/corner/blue,/turf/unsimulated/floor{icon_state = "white"},/area/map_template/ninja_dojo/dojo)
+"vP" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 1; icon_state = "warningcorner"},/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo)
+"vQ" = (/obj/machinery/light{dir = 4},/obj/effect/floor_decal/industrial/warning/corner{dir = 1; icon_state = "warningcorner"},/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo)
+"wG" = (/obj/effect/floor_decal/corner/black/border{dir = 5},/obj/structure/table/glass,/obj/item/stack/material/aluminium/fifty,/obj/item/stack/material/glass/fifty,/obj/item/stack/material/glass/fifty,/obj/item/stack/material/plasteel/fifty,/obj/item/stack/material/steel/fifty,/obj/item/stack/material/steel/fifty,/obj/item/stack/material/titanium/fifty,/obj/item/stack/material/plastic/fifty,/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo)
+"wX" = (/obj/structure/table/glass,/obj/effect/floor_decal/corner/black/border{dir = 1},/obj/item/newspaper,/turf/simulated/floor/tiled,/area/map_template/ninja_dojo/dojo)
+"zr" = (/obj/effect/floor_decal/snow,/turf/unsimulated/wall,/area/map_template/ninja_dojo/dojo)
+"BB" = (/obj/effect/floor_decal/corner/black/bordercorner{dir = 8},/obj/machinery/light,/turf/unsimulated/floor{icon_state = "white"},/area/map_template/ninja_dojo/dojo)
+"Cj" = (/obj/structure/table/rack,/obj/random/biggun,/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo)
+"Hl" = (/obj/structure/table/glass,/obj/effect/floor_decal/corner/black/border{dir = 5},/turf/simulated/floor/tiled,/area/map_template/ninja_dojo/dojo)
+"JH" = (/obj/structure/table/rack,/obj/item/clothing/mask/gas/swat,/obj/item/clothing/mask/gas/swat,/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo)
+"JM" = (/obj/machinery/door/blast/regular/open{icon_state = "pdoor0"; id_tag = "prototype_chamber_blast"},/obj/effect/floor_decal/floordetail/tiled,/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo)
+"KK" = (/obj/effect/floor_decal/corner/black/bordercorner{dir = 4},/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo)
+"LW" = (/obj/structure/table/rack,/obj/item/storage/box/handcuffs,/obj/item/storage/box/handcuffs,/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo)
+"MC" = (/obj/effect/floor_decal/corner/blue{dir = 1},/turf/unsimulated/floor{icon_state = "white"},/area/map_template/ninja_dojo/dojo)
+"Oo" = (/obj/machinery/light,/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo)
+"OL" = (/obj/effect/floor_decal/corner/black/border{dir = 7},/obj/machinery/light,/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo)
+"PF" = (/obj/machinery/computer/modular/preset/civilian{dir = 1; icon_state = "console"},/obj/effect/floor_decal/corner/black/border{dir = 9},/turf/simulated/floor/tiled,/area/map_template/ninja_dojo/dojo)
+"RX" = (/obj/effect/floor_decal/corner/black/border{dir = 7},/obj/effect/floor_decal/corner/blue{dir = 5},/turf/unsimulated/floor{icon_state = "white"},/area/map_template/ninja_dojo/dojo)
+"TP" = (/obj/effect/floor_decal/corner/blue{dir = 8},/turf/unsimulated/floor{icon_state = "white"},/area/map_template/ninja_dojo/dojo)
+"UV" = (/obj/structure/table/rack,/obj/item/storage/belt/holster/security/tactical,/obj/item/storage/belt/holster/security/tactical,/obj/effect/floor_decal/corner/black/bordercorner{dir = 3},/obj/item/clothing/accessory/storage/webbing,/obj/item/clothing/accessory/storage/webbing,/obj/item/clothing/accessory/storage/webbing_large,/obj/item/clothing/accessory/storage/webbing_large,/obj/machinery/light{dir = 1},/obj/item/clothing/accessory/storage/holster/thigh,/obj/item/clothing/accessory/storage/holster/thigh,/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo)
(1,1,1) = {"
-ss
-ss
-ss
-ss
-ss
-ss
-ss
-ss
-ss
-ss
-ss
-ss
-ss
-ss
-ss
-ss
-ss
-ss
-ss
-ss
-ss
-ss
-ss
-ss
-ss
-ss
-ss
-ss
-ss
-ss
-ss
-ss
-ss
-ss
-ss
-ss
-ss
-ss
-zr
-zr
-zr
-"}
-(2,1,1) = {"
-ss
-ac
-ac
-ad
-ad
-ac
-ac
-af
-ac
-ac
-ac
-ac
-ag
-ac
-ac
-ac
-ac
-ad
-ag
-bn
-bo
-ad
-ag
-ac
-ad
-bn
-bn
-bn
-bo
-bo
-bn
-bn
-bn
-bn
-bo
-bn
-bn
-bo
-bo
-bo
-zr
-"}
-(3,1,1) = {"
-ss
-ad
-af
-ad
-ad
-ad
-ai
-ad
-ac
-ad
-ad
-ac
-ad
-ad
-ad
-ac
-ae
-ad
-ad
-bo
-bn
-ad
-ad
-ad
-ad
-bn
-bo
-bo
-bn
-bn
-bn
-bn
-ck
-ck
-ck
-ck
-bn
-bn
-bo
-bn
-zr
-"}
-(4,1,1) = {"
-ss
-ad
-ad
-ad
-ac
-ac
-ad
-ad
-ac
-ac
-aH
-ac
-ad
-ad
-ad
-ad
-ad
-ad
-ad
-bn
-bn
-ac
-ad
-ad
-ac
-bn
-bn
-bn
-bn
-bn
-bn
-ck
-ck
-cL
-cS
-ck
-ck
-bn
-bn
-bn
-ss
-"}
-(5,1,1) = {"
-ss
-ad
-ad
-ad
-ac
-ad
-ad
-ac
-ad
-ad
-ac
-ac
-ad
-ad
-ad
-ad
-ad
-ad
-ad
-bn
-bo
-ad
-ad
-ae
-ad
-bo
-bn
-bn
-bn
-bn
-bn
-cx
-ck
-cM
-cM
-ck
-ck
-ck
-bn
-bn
-zr
-"}
-(6,1,1) = {"
-ss
-ac
-ac
-ac
-ae
-ad
-ad
-ad
-ac
-ac
-ac
-ad
-ad
-ad
-ad
-ae
-ac
-ac
-ag
-bo
-bn
-ad
-ag
-ad
-ad
-bo
-bn
-ck
-ck
-ck
-ck
-ck
-cG
-cN
-cM
-cX
-cZ
-ck
-ck
-bn
-zr
-"}
-(7,1,1) = {"
-ss
-ac
-ac
-ac
-ac
-ad
-aj
-aj
-aj
-aj
-aj
-aj
-aj
-aj
-ad
-ad
-ad
-ad
-ad
-bn
-bn
-ad
-ad
-ad
-ad
-bo
-bn
-bn
-bo
-bn
-bn
-ck
-cH
-cO
-cM
-cM
-cM
-dd
-dg
-bn
-zr
-"}
-(8,1,1) = {"
-ss
-ac
-ac
-ac
-ac
-ad
-aj
-ak
-ar
-aB
-aI
-aR
-as
-aj
-aj
-aj
-aj
-aj
-aA
-bh
-bh
-aA
-aj
-aj
-ad
-bn
-bn
-bn
-bo
-bo
-bn
-ck
-cI
-cO
-cT
-cM
-da
-de
-dg
-bn
-ss
-"}
-(9,1,1) = {"
-ss
-ac
-ag
-ac
-ad
-ad
-aj
-al
-as
-as
-as
-aS
-as
-bf
-bl
-bq
-aj
-bu
-aG
-aG
-aG
-aG
-bT
-aj
-ad
-bn
-bn
-bn
-bn
-bn
-bn
-ck
-cJ
-cO
-cM
-cM
-db
-df
-dg
-bn
-ss
-"}
-(10,1,1) = {"
-ss
-ac
-ac
-ad
-ad
-ad
-aj
-am
-as
-as
-as
-as
-as
-aL
-aG
-aG
-aA
-aV
-bA
-bG
-bG
-bP
-bU
-aA
-ad
-bn
-bn
-ck
-ck
-ck
-ck
-ck
-cK
-cP
-cU
-cY
-dc
-ck
-ck
-bn
-ss
-"}
-(11,1,1) = {"
-ss
-ac
-ac
-ad
-ad
-ad
-aj
-an
-at
-aC
-aJ
-as
-as
-aL
-aG
-aG
-ba
-aG
-bB
-bH
-bH
-bQ
-aG
-bh
-bn
-bn
-bn
-bn
-bn
-bn
-bn
-cx
-ck
-ck
-cV
-ck
-ck
-ck
-bn
-bn
-ss
-"}
-(12,1,1) = {"
-ss
-ac
-ac
-ad
-ad
-ad
-aj
-ao
-au
-as
-aK
-aT
-aT
-bg
-aG
-aG
-ba
-aG
-bB
-bH
-bH
-bQ
-aG
-bh
-bn
-bn
-bn
-bn
-bn
-bn
-bn
-ck
-ck
-cQ
-cW
-ck
-ck
-bn
-bn
-bn
-ss
-"}
-(13,1,1) = {"
-ss
-ac
-ad
-ad
-ad
-ad
-aj
-ap
-av
-as
-aL
-aG
-aG
-aG
-aG
-aG
-aA
-bv
-bC
-bI
-bI
-bR
-aU
-aA
-ad
-bn
-bn
-bo
-bo
-bn
-bn
-bn
-ck
-cR
-ck
-ck
-bn
-bn
-bn
-bn
-zr
-"}
-(14,1,1) = {"
-ss
-ac
-ad
-ac
-ae
-ad
-aj
-aq
-aw
-aD
-aM
-aU
-aG
-aG
-bm
-br
-aj
-bu
-aG
-aG
-aG
-aG
-bV
-aj
-ad
-bn
-bn
-bn
-bn
-bn
-bn
-bn
-bn
-bn
-bn
-bn
-bo
-bo
-bn
-bn
-ss
-"}
-(15,1,1) = {"
-ss
-ac
-ad
-ac
-ac
-ad
-aj
-aj
-aj
-aj
-aj
-aA
-ba
-aj
-aj
-aj
-aj
-aj
-aA
-bh
-bh
-aA
-aj
-aj
-ad
-bo
-bn
-bn
-bn
-bo
-bn
-bn
-bn
-bn
-bo
-bo
-bo
-bn
-bn
-bn
-zr
-"}
-(16,1,1) = {"
-ss
-ad
-ad
-ac
-ac
-ad
-ad
-aj
-ax
-aE
-aA
-aV
-aG
-aj
-ad
-ad
-ad
-ad
-ad
-bn
-bn
-ad
-ad
-ad
-ad
-ad
-ad
-ad
-ad
-bn
-bn
-ad
-ad
-ad
-ac
-ad
-ad
-ad
-ad
-ad
-ss
-"}
-(17,1,1) = {"
-ss
-ad
-ac
-ad
-ac
-ad
-ad
-aj
-ay
-aE
-aN
-aG
-aG
-aA
-ae
-bo
-bn
-bn
-bn
-bn
-bo
-bo
-bn
-bn
-bn
-ad
-ad
-ae
-ad
-bn
-bn
-ad
-ac
-ac
-ad
-ad
-ad
-ad
-ac
-ah
-ss
-"}
-(18,1,1) = {"
-ss
-ad
-ac
-ah
-ac
-ac
-ac
-aj
-az
-aF
-aA
-aG
-aG
-aA
-ad
-bn
-ag
-bn
-ad
-ad
-ad
-ad
-bn
-ah
-bn
-ac
-ad
-ad
-ad
-bn
-bn
-ad
-ad
-ad
-ad
-ag
-ad
-ad
-ad
-ad
-ss
-"}
-(19,1,1) = {"
-ss
-ad
-ad
-ad
-ac
-ac
-ad
-aj
-aj
-aj
-aj
-aG
-bb
-aj
-ad
-bo
-bn
-bn
-ad
-ad
-ad
-ad
-bn
-bn
-bn
-ac
-ad
-ad
-ac
-bn
-bo
-ad
-ae
-ad
-ad
-ac
-ac
-ad
-ad
-ae
-ss
-"}
-(20,1,1) = {"
-ss
-ad
-ad
-ac
-ac
-ad
-ad
-ad
-ac
-ad
-aA
-aG
-aG
-aj
-ad
-bn
-ad
-ad
-bD
-bE
-bE
-bE
-ad
-ad
-bn
-ad
-ad
-ad
-ac
-bn
-bn
-ad
-ad
-ac
-ad
-ad
-ad
-ad
-ac
-ad
-ss
-"}
-(21,1,1) = {"
-ss
-ad
-ad
-ac
-ad
-ac
-ad
-ad
-af
-ad
-aA
-aG
-aG
-bh
-bn
-bn
-ae
-ad
-bE
-bJ
-bM
-bD
-ad
-ad
-bo
-bn
-bo
-bn
-bn
-bn
-bn
-ad
-ad
-ac
-ad
-ac
-ad
-ad
-ad
-ac
-ss
-"}
-(22,1,1) = {"
-ss
-ac
-ad
-ac
-ad
-ai
-ad
-ad
-ac
-ad
-aA
-aG
-aG
-bh
-bo
-bn
-ac
-ac
-bD
-bJ
-bJ
-bE
-ad
-ad
-bo
-bn
-bn
-bo
-bn
-bn
-bn
-ad
-ad
-ad
-ad
-ac
-ad
-ad
-ad
-ad
-ss
-"}
-(23,1,1) = {"
-ss
-ac
-ac
-ac
-ad
-ad
-ad
-ad
-ac
-ad
-aA
-aG
-aG
-aj
-ad
-bn
-ac
-ad
-bE
-bE
-bD
-bE
-ac
-ad
-bn
-ac
-ad
-ad
-ad
-bn
-bn
-ad
-ad
-ad
-ad
-ad
-ad
-ad
-ag
-ad
-ss
-"}
-(24,1,1) = {"
-ss
-ad
-ad
-ad
-ad
-ad
-ad
-ac
-ad
-ad
-aj
-aG
-aG
-aj
-ad
-bn
-bn
-bn
-ad
-ac
-ad
-ad
-bn
-bn
-bn
-ac
-ae
-ad
-ad
-bn
-bn
-ad
-ad
-ad
-ad
-ad
-ad
-ad
-ad
-ad
-ss
-"}
-(25,1,1) = {"
-ss
-ac
-ad
-ad
-ad
-ad
-ad
-ac
-ad
-ad
-aj
-aG
-aG
-aA
-ad
-bo
-bt
-bn
-ad
-ad
-ad
-ac
-bn
-ag
-bn
-ac
-ad
-aj
-aj
-cu
-cu
-aj
-aj
-ad
-ad
-ae
-ad
-ad
-ad
-ad
-ss
-"}
-(26,1,1) = {"
-ss
-ad
-ad
-ad
-ad
-ac
-ac
-ac
-ad
-ad
-aj
-aG
-aG
-aA
-ad
-bn
-bn
-bn
-bo
-bo
-bn
-bn
-bn
-bo
-bn
-ad
-ad
-aj
-cm
-cp
-cp
-cy
-aj
-ad
-ad
-ad
-ac
-ac
-ac
-ad
-ss
-"}
-(27,1,1) = {"
-ss
-ad
-ac
-ac
-ad
-ad
-ac
-ac
-ad
-ad
-aj
-aV
-aG
-aj
-ad
-ad
-ad
-ad
-ad
-bn
-bn
-ad
-ad
-ae
-ad
-ad
-ad
-aj
-cn
-cp
-cp
-cz
-aj
-ad
-ad
-ad
-ac
-ad
-ac
-ad
-ss
-"}
-(28,1,1) = {"
-ss
-ad
-ad
-ac
-ac
-ad
-ae
-ac
-aj
-aj
-aj
-aA
-bc
-aj
-aj
-aj
-aA
-aA
-aj
-bh
-bh
-aj
-aA
-aA
-aj
-aj
-aj
-aj
-co
-cp
-cp
-cA
-aj
-ad
-ad
-ad
-ad
-ad
-ac
-ad
-ss
-"}
-(29,1,1) = {"
-ss
-ad
-ae
-ac
-ad
-ad
-ae
-ac
-aj
-aG
-aG
-aG
-aG
-aG
-bp
-bc
-aG
-aG
-aG
-aG
-aG
-aG
-aG
-aG
-aG
-bp
-aG
-cl
-cp
-cp
-cp
-cB
-aj
-ad
-ad
-ad
-ad
-ad
-af
-ad
-ss
-"}
-(30,1,1) = {"
-ss
-ac
-ac
-ac
-ac
-ad
-ac
-ad
-aA
-aG
-aG
-aG
-aG
-aG
-aG
-aA
-aV
-aG
-aG
-aG
-aG
-aG
-aG
-aG
-aG
-aG
-aV
-aj
-cq
-cp
-cp
-cC
-aj
-ad
-ad
-ad
-ad
-ad
-ac
-ad
-ss
-"}
-(31,1,1) = {"
-ss
-ac
-ac
-ac
-ac
-ac
-ac
-ad
-aA
-aG
-aO
-aW
-aW
-bi
-aG
-aj
-aj
-aj
-aA
-bK
-bK
-aA
-aj
-aj
-aA
-ce
-aA
-aj
-cr
-cp
-cp
-cD
-aj
-ad
-ad
-ac
-ad
-ad
-ad
-ad
-ss
-"}
-(32,1,1) = {"
-ss
-ad
-ad
-ac
-ad
-ac
-ac
-ad
-aA
-aG
-aP
-aX
-bd
-bj
-aG
-bs
-aj
-bw
-bF
-aG
-aG
-bS
-bW
-aj
-aG
-cf
-aG
-aj
-cs
-cp
-cp
-cE
-aj
-ad
-ad
-ad
-ad
-aH
-ac
-ad
-ss
-"}
-(33,1,1) = {"
-ss
-ad
-ad
-ac
-ag
-ad
-ac
-ad
-aA
-aG
-aP
-aY
-be
-bj
-aG
-bs
-aj
-bx
-aG
-aG
-aG
-aG
-bX
-aj
-ca
-cg
-ca
-aj
-ct
-cp
-cp
-cF
-aj
-ad
-ad
-ad
-ad
-ac
-ad
-ad
-ss
-"}
-(34,1,1) = {"
-ss
-ad
-ad
-ac
-ad
-ad
-ac
-ad
-aA
-aG
-aQ
-aZ
-aZ
-bk
-aG
-bs
-aj
-by
-aG
-aG
-bN
-aG
-bY
-aj
-aj
-aj
-aj
-aj
-aj
-cv
-cw
-aj
-aj
-ad
-ad
-ad
-ad
-ad
-ad
-ad
-ss
-"}
-(35,1,1) = {"
-ss
-ad
-ad
-ad
-ac
-ad
-ac
-ad
-aj
-aG
-aG
-aG
-aG
-aG
-aG
-bs
-aj
-bz
-aG
-bL
-bO
-aG
-aG
-bZ
-cb
-ch
-cj
-aj
-aj
-aj
-aj
-aj
-ad
-ad
-ad
-ad
-ad
-ad
-ad
-ad
-ss
-"}
-(36,1,1) = {"
-ss
-ad
-ad
-ad
-ad
-ad
-ad
-ad
-aj
-aj
-aA
-aA
-aA
-aA
-aA
-aj
-aj
-aj
-aA
-aA
-aA
-aA
-aj
-aj
-cc
-ci
-ci
-aj
-ad
-ad
-ad
-ad
-ad
-ad
-ad
-ad
-ad
-ad
-ad
-ad
-ss
-"}
-(37,1,1) = {"
-ss
-ae
-ad
-ad
-ad
-ad
-ad
-ad
-ad
-ad
-ad
-ad
-ad
-ad
-ad
-ad
-ad
-ad
-ad
-ad
-ad
-ad
-ad
-aj
-cd
-ci
-ci
-aj
-ad
-ad
-ad
-ad
-ad
-ad
-ad
-ad
-ad
-ad
-ac
-ad
-ss
-"}
-(38,1,1) = {"
-ss
-ad
-ad
-ad
-ad
-ac
-ad
-ad
-ad
-ad
-ad
-ad
-ae
-ad
-ad
-ad
-ad
-ad
-ad
-ad
-ad
-ad
-ad
-aj
-aj
-aj
-aj
-aj
-ad
-ae
-ac
-ac
-ad
-ad
-ad
-ad
-ad
-ad
-ac
-ad
-ss
-"}
-(39,1,1) = {"
-ss
-ad
-ag
-ad
-ad
-ac
-ad
-ad
-ad
-ad
-ad
-ad
-ac
-ac
-ac
-ac
-ac
-ac
-ac
-ac
-ad
-ad
-ad
-ad
-ad
-ad
-ad
-ad
-ad
-ac
-ac
-ad
-ad
-ad
-ac
-ad
-ad
-ad
-ac
-ad
-ss
-"}
-(40,1,1) = {"
-ss
-ad
-ad
-ad
-ad
-ac
-ad
-ad
-ad
-ag
-ad
-ad
-ad
-ad
-ad
-ad
-ad
-ad
-ad
-ad
-ac
-ac
-ac
-ac
-ad
-ad
-ad
-ac
-ac
-ad
-ad
-ad
-ad
-ad
-ad
-ad
-ad
-ad
-ad
-ad
-ss
-"}
-(41,1,1) = {"
-ss
-ad
-ad
-ad
-ad
-ad
-ac
-ad
-ad
-ad
-ad
-ad
-ad
-ad
-ad
-ad
-ag
-ad
-ad
-ad
-ad
-ad
-ad
-ad
-ac
-aH
-ac
-ad
-ad
-ad
-ad
-ad
-ad
-ad
-ad
-ac
-ad
-ag
-ad
-ad
-ss
-"}
-(42,1,1) = {"
-ss
-ad
-ad
-ad
-ad
-ad
-ad
-ac
-ac
-ac
-ad
-ad
-ac
-ad
-ad
-ad
-ad
-ad
-ad
-ad
-ad
-ad
-ad
-ad
-ac
-ac
-ad
-ad
-ad
-ad
-ad
-ad
-ad
-ad
-ad
-ad
-ad
-ad
-ad
-ad
-ss
-"}
-(43,1,1) = {"
-ss
-ad
-ad
-ad
-ad
-ad
-ad
-ad
-ad
-ad
-ac
-ac
-ac
-ad
-ae
-ad
-ad
-ad
-ad
-ad
-ad
-ad
-ae
-ad
-ac
-ad
-ad
-ad
-ad
-ad
-ad
-ad
-ad
-ad
-ad
-ad
-ad
-ad
-ad
-ad
-ss
-"}
-(44,1,1) = {"
-ss
-ss
-ss
-ss
-ss
-ss
-ss
-ss
-ss
-ss
-ss
-ss
-ss
-ss
-ss
-ss
-ss
-ss
-ss
-ss
-ss
-ss
-ss
-ss
-ss
-ss
-ss
-ss
-ss
-ss
-ss
-ss
-ss
-ss
-ss
-ss
-ss
-ss
-ss
-ss
-ss
+ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
+ssacadadadacacacacadadadadadadadadadadadadacacadacadadadadacacadadadadadaeadadadadadadss
+ssacafadadacacacagadadadadadadadadacadadadadacadadadacadaeacacadadadadadadadagadadadadss
+ssadadadadacacacacadadadadadadadadahadacacacacadadadacacacacacacacacadadadadadadadadadss
+ssadadacacaeacacadadadadadaeacacacacacacadadadadadadadacadacacadagadacadadadadadadadadss
+ssacadacadadadadadadadadadadadadadacacadacaiadadadacadadadadacacadadadadadacacacadadadss
+ssacaiadadadbdbdbdbdbdbdbdbdbdadadacadadadadadadadacacaeaeacacacacacacadadadadadacadadss
+ssafadadacadbdakalamanaoapaqbdbdbdbdbdadadadadacacacadadadadadadadadadadadadadadadacadss
+ssacacacadacbdarbvTPatauavawbdaxayazbdacafacacadadadadadadadadadadadadadadadadadadacadss
+ssacadacadacbdaBaKaOaCaKaOaDbdaEaEaFbdadadbtadbtadbtadbtadadadadadadadadadadadagadacadss
+ssacadaHacacbdaIaKaOaJaKaOaMbdcDaNbibdadadbtadbtadbtadbtadadadadadadadadadadadadadadacss
+ssacacacacadbdaRaSqcuZaTMCasbdbdJMbdbdadadbtadbtadbtadbtadadadadadadadadadadadadadadacss
+ssagadadadadbdascfbwRXBBasasbaKKbPbdadadadadadadadadadadadadadbdbdbdbdbdbdbdacadadacacss
+ssacadadadadbdbdbdaLaLbdbdbdbdbdbdbdbdbdbdajajajbdbdbdadadadadbdbjcgcgcgcebdacadadadadss
+ssacadadadadadadbdbFbQbdadadadadadadbdcmCjbRLWcAUVcibdadadadadbdPFwXHlbqbdbdacadadadaess
+ssacacadadaeadadbdcpcpbdadadadadadadbdbxbPbPbrbPbPaZbdadadadbdbdbZbZbZbdbdbdacadadadadss
+ssacaeadadacadadbdcpcpbdadadadadadadbdJHaWbbbXbAcpcybdadadbdbdbVcvcvcvvQbdbdacadagadadss
+ssadadadadacadbdbdaVbcbdbdadadadadadbdbdbdbdJMcFcFcFbdbdbdbdcrcpcpbycpcpcjbdbdbdbdbdadss
+ssagadadadagadbdcsbacpbBbdbdbdbdbdbdbdbdbEbDcvbPbPbPbDbQaYbIcpbFbOaGbObQaYbIbhbzcwbCadss
+ssbnbobnbnboadbdbsbGcpbHbIbJbhcpcpbhcnbIbJcpcpcpcpcpcpaAaYbIcpbablbpbLaAaYbIcpcpbTbdadss
+ssbobnbnbobnadbdcsbacpbKbdbdbdbdbdbdbdbdbMOLbXaNaNaNOLbcaYbIcpaVbObNbObcaYbIOococwbCadss
+ssadadacadadadbdbdbFbQbdbdadadadadadbdbdbdbdJMcFcFcFbdbdbdbdcrcpcpcCcpcpcjbdbdbdbdbdadss
+ssagadadadagadadbdcpbnbdadadadadadadbdgybmaUcvvPcpcybdadadbdbdbWbXbXbXbubdbdadacadadaess
+ssacadadaeadadadbdcubfbdadadadadadadbdbxaNaNaNaNaNaZbdadadbdbdbdbZbZbZbdbdadadacadadadss
+sssszrzrzrzrssssssbebesssszrssssadadbdclCjbRLWcAUVwGbdadadbdbdcqcaaQcbbdadadadadacacacss
+ssbnbnbnbobobnbnbnbnbnbnbnbnbozradadbdbdbdajajajbdbdbdadadbdcecgcgcgchbdadadadadaHacadss
+ssbnbobnbnbnbnbnbnbnbnbnbnbnbnzradadadadadadadadadadadadadbdbdbdbdbdbdbdadadadadacadadss
+ssbnbobnbnbobnbnbobobnbnbobnbnzraeadadadbnboadadadadadadadadadadadadadadadadadacadadadss
+ssbobnbnbnbnbnbobobnbnbnbobnbnssadadacacbnbnadadadadadadadadadadadadadadadadadacadadadss
+ssbobnckbnbnbnbnbnbnbockbnbnczssbnbnbnbnbnbnbnbnadadadadadadadadadadadadadadacadadadadss
+ssbnbnckckbnbUbUbUbnckckbnbnbncEbnbnbobnbnbnbnbnadadadadadadadadadadadadadadacadadadadss
+ssbnbnckckckckckckckckckbnbnbncEadadadadadadbnbnbnadadadadadadadadadadadadadadadadadadss
+ssbnckckckcGcHcIcJcKckckckbnbncEacadaeadadadadbnbnbnadadadadadadadadadadadadadadadadadss
+ssbnckcLcMcNcOcOcOcPckcQcRbnbncEacadadacacadadadbnbnbnadadadadadadadadadadadadadadadadss
+ssbockcScMcMcMcTcMcUcVcWckbnczssadadadadadadadadadbnbnbnadadadadadadadadadadacadadadadss
+ssbnckckckcXcMcMcMcYckckckbnbossadagacadacacadadaeadbnbnbnadacadadadadadadadadadacadadss
+ssbnbnckckcZcMdadbdcckckbnbobozradadacadadadadadadacbnbnbnadadadadadadadadadadadadadadss
+ssbobnbnckckdddedfckckbnbnbobnzradadadadadadadadadacadbnbnbnadaHacadadadadadadadagadadss
+zrbobobnbnckdgdgdgckbnbnbnbnbnzracadadacadadagadadacacbnbSbnadacadadadadacacacadadadadss
+zrbobncBbnbnbnbnbnbnbncBbnbnbnssahadaeadacadadadadadadbnbnadadadadadadadadadadadadadadss
+zrzrzrsszrzrzrsssssssssszrsszrssssssssssssssssssssssssaXaXssssssssssssssssssssssssssssss
"}
diff --git a/maps/sierra/items/clothing/clothing.dm b/maps/sierra/items/clothing/clothing.dm
index 1007fa833a49c..ee7442f18758a 100644
--- a/maps/sierra/items/clothing/clothing.dm
+++ b/maps/sierra/items/clothing/clothing.dm
@@ -10,6 +10,5 @@
initial_modules = list(
/obj/item/rig_module/maneuvering_jets,
-//INF /obj/item/rig_module/ai_container,
- /obj/item/rig_module/mounted/taser
+ /obj/item/rig_module/mounted/energy/taser
)
diff --git a/maps/sierra/z4_admin.dmm b/maps/sierra/z4_admin.dmm
index 4a4d863a7a9bd..28729acd15b13 100644
--- a/maps/sierra/z4_admin.dmm
+++ b/maps/sierra/z4_admin.dmm
@@ -3653,9 +3653,9 @@
/area/holodeck/source_cafe)
"avN" = (
/obj/structure/table/rack,
-/obj/item/rig_module/mounted/taser,
-/obj/item/rig_module/mounted/taser,
-/obj/item/rig_module/mounted/taser,
+/obj/item/rig_module/mounted/energy/taser,
+/obj/item/rig_module/mounted/energy/taser,
+/obj/item/rig_module/mounted/energy/taser,
/obj/item/rig_module/maneuvering_jets,
/obj/item/rig_module/maneuvering_jets,
/obj/item/rig_module/grenade_launcher,
@@ -3669,8 +3669,8 @@
/obj/item/rig_module/chem_dispenser/injector,
/obj/item/rig_module/chem_dispenser/combat,
/obj/item/rig_module/chem_dispenser/combat,
-/obj/item/rig_module/mounted/egun,
-/obj/item/rig_module/mounted/egun,
+/obj/item/rig_module/mounted/energy/egun,
+/obj/item/rig_module/mounted/energy/egun,
/obj/effect/floor_decal/corner/red/diagonal,
/obj/effect/floor_decal/borderfloorblack,
/turf/unsimulated/floor{
diff --git a/maps/torch/structures/closets.dm b/maps/torch/structures/closets.dm
index db0c86b777a93..d3d5d36085327 100644
--- a/maps/torch/structures/closets.dm
+++ b/maps/torch/structures/closets.dm
@@ -69,3 +69,61 @@
/obj/structure/closet/secure_closet/brig/WillContain()
return null
+
+///Ninja equipment loadouts. Placed here because it relies on Torch evil.
+/obj/structure/closet/crate/ninja/sol
+ name = "sol equipment crate"
+ desc = "A tactical equipment crate."
+
+/obj/structure/closet/crate/ninja/sol/WillContain()
+ return list(
+ /obj/item/rig/light/ninja/sol,
+ /obj/item/gun/projectile/pistol/m22f,
+ /obj/item/ammo_magazine/pistol/double = 2,
+ /obj/item/clothing/under/scga/utility/urban,
+ /obj/item/clothing/shoes/swat,
+ /obj/item/clothing/accessory/scga_rank/e6
+ )
+
+/obj/structure/closet/crate/ninja/gcc
+ name = "gcc equipment crate"
+ desc = "A heavy equipment crate."
+
+/obj/structure/closet/crate/ninja/gcc/WillContain()
+ return list(
+ /obj/item/rig/light/ninja/gcc,
+ /obj/item/gun/projectile/pistol/optimus,
+ /obj/item/ammo_magazine/pistol/double = 2,
+ /obj/item/ammo_magazine/box/minigun = 2,
+ /obj/item/clothing/under/iccgn/utility,
+ /obj/item/clothing/shoes/iccgn/utility,
+ /obj/item/clothing/accessory/iccgn_rank/or6
+ )
+
+/obj/structure/closet/crate/ninja/corpo
+ name = "corporate equipment crate"
+ desc = "A patented equipment crate."
+
+/obj/structure/closet/crate/ninja/corpo/WillContain()
+ return list(
+ /obj/item/rig/light/ninja/corpo,
+ /obj/item/gun/energy/gun,
+ /obj/item/inducer,
+ /obj/item/clothing/under/rank/security/corp,
+ /obj/item/clothing/shoes/swat,
+ /obj/item/clothing/accessory/badge/holo
+ )
+
+/obj/structure/closet/crate/ninja/merc
+ name = "mercenary equipment crate"
+ desc = "A traitorous equipment crate."
+
+/obj/structure/closet/crate/ninja/merc/WillContain()
+ return list(
+ /obj/item/rig/merc/ninja,
+ /obj/item/gun/projectile/revolver/medium,
+ /obj/item/ammo_magazine/speedloader = 2,
+ /obj/item/clothing/under/syndicate/combat,
+ /obj/item/clothing/shoes/swat,
+ /obj/item/clothing/mask/gas/syndicate
+ )
diff --git a/maps/torch/torch_simplemobs.dm b/maps/torch/torch_simplemobs.dm
index fce2e1881e6e0..98fc34bcd9c49 100644
--- a/maps/torch/torch_simplemobs.dm
+++ b/maps/torch/torch_simplemobs.dm
@@ -228,7 +228,7 @@
casingtype = /obj/item/ammo_casing/rifle
projectiletype = /obj/item/projectile/bullet/rifle
natural_weapon = /obj/item/gun/projectile/automatic/l6_saw
- weapon1 = /obj/item/rig_module/mounted/lcannon
+ weapon1 = /obj/item/rig_module/mounted/energy/lcannon
var/attack_mode = ATTACK_MODE_SAW
var/num_shots
diff --git a/maps/torch/z1_admin.dmm b/maps/torch/z1_admin.dmm
index 553e87cb307fd..133b4db1535f7 100644
--- a/maps/torch/z1_admin.dmm
+++ b/maps/torch/z1_admin.dmm
@@ -4257,9 +4257,9 @@
/area/centcom/control)
"azQ" = (
/obj/structure/table/rack,
-/obj/item/rig_module/mounted/taser,
-/obj/item/rig_module/mounted/taser,
-/obj/item/rig_module/mounted/taser,
+/obj/item/rig_module/mounted/energy/taser,
+/obj/item/rig_module/mounted/energy/taser,
+/obj/item/rig_module/mounted/energy/taser,
/obj/item/rig_module/maneuvering_jets,
/obj/item/rig_module/maneuvering_jets,
/obj/item/rig_module/grenade_launcher,
@@ -4267,16 +4267,16 @@
/obj/item/rig_module/device/drill,
/obj/item/rig_module/device/healthscanner,
/obj/item/rig_module/device/healthscanner,
-/obj/item/rig_module/mounted/plasmacutter,
-/obj/item/rig_module/mounted/plasmacutter,
+/obj/item/rig_module/mounted/energy/plasmacutter,
+/obj/item/rig_module/mounted/energy/plasmacutter,
/obj/item/rig_module/device/rcd,
/obj/item/rig_module/device/rcd,
/obj/item/rig_module/chem_dispenser/injector,
/obj/item/rig_module/chem_dispenser/injector,
/obj/item/rig_module/chem_dispenser/combat,
/obj/item/rig_module/chem_dispenser/combat,
-/obj/item/rig_module/mounted/egun,
-/obj/item/rig_module/mounted/egun,
+/obj/item/rig_module/mounted/energy/egun,
+/obj/item/rig_module/mounted/energy/egun,
/turf/unsimulated/floor{
dir = 1;
icon_state = "vault"